// param[0]*dSlope_fringe + param[1]*tx dSlope_fringe + param[2]*ty // dSlope_fringe + param[3]*tx^2 dSlope_fringe + param[4]*tx ty dSlope_fringe + // param[5]*ty^2 dSlope_fringe static constexpr std::array cxParams{ 2.3651938744210517e-05f, -2.4718153204881903e-07f, -2.7690299120794934e-07f, 2.508478321635503e-05f, -7.508022621065355e-06f, -0.00039258296680414194f}; // param[0]*dSlope_fringe + param[1]*tx dSlope_fringe + param[2]*ty // dSlope_fringe + param[3]*tx^2 dSlope_fringe + param[4]*tx ty dSlope_fringe + // param[5]*ty^2 dSlope_fringe static constexpr std::array dxParams{ -7.183029512898401e-09f, 1.6430895054251044e-10f, 3.1143173077871784e-10f, -2.0582932667061724e-09f, 2.6856200665886875e-09f, 1.0749331088200651e-07f}; // param[0]*dSlope_fringe + param[1]*ty dSlope_fringe_abs + param[2]*ty tx // dSlope_fringe + param[3]*ty^3 dSlope_fringe_abs + param[4]*ty tx^2 // dSlope_fringe_abs + param[5]*ty^3 tx dSlope_fringe + param[6]*ty tx^3 // dSlope_fringe + param[7]*ty^3 tx^2 dSlope_fringe_abs static constexpr std::array, 6> yCorrParamsLayers{ {{2.06193496447819f, 178.58670055636662f, 4933.9980834516955f, -5989.782562960663f, -3803.247898143819f, 17607.149465820912f, -3298.587154728303f, 98108.91423364067f}, {2.1102885866738106f, 170.79984391320363f, 5027.519452338939f, -6234.112770314693f, -3812.2056333090277f, 17702.577817674854f, -3295.9929385463493f, 100213.69136832686f}, {2.547635326797324f, 82.93933462708969f, 5906.88098227199f, -8268.967972411678f, -3716.1786733072126f, 18023.932720819746f, -3165.482387461017f, 116885.5736458388f}, {2.600288255464069f, 71.1601965913926f, 6014.674228745354f, -8490.942138317274f, -3690.6929935728f, 18009.760695804787f, -3146.045950082512f, 118635.81920417435f}, {3.0843430497664124f, -39.686968106726f, 7006.584828466226f, -10366.665848435327f, -3405.885485937598f, 17521.619970089232f, -2999.1387338164445f, 133011.59030251123f}, {3.141903601599932f, -52.88939238378475f, 7124.369933438938f, -10575.644961794284f, -3369.2890674630526f, 17429.78994336067f, -2986.611303660346f, 134572.5752802516f}}}; // param[0]*dSlope_fringe + param[1]*ty dSlope_fringe_abs + param[2]*ty tx // dSlope_fringe + param[3]*ty^3 dSlope_fringe_abs + param[4]*ty tx^2 // dSlope_fringe_abs + param[5]*ty^3 tx dSlope_fringe + param[6]*ty tx^3 // dSlope_fringe + param[7]*ty^3 tx^2 dSlope_fringe_abs static constexpr std::array yCorrParamsRef{ 2.504923275584172f, 92.4086343789379f, 5818.867378383749f, -8083.04568210194f, -3735.5853018571634f, 18033.75939906904f, -3181.17231050616f, 115431.05521920368f}; // param[0]*ty tx dSlope_fringe + param[1]*ty dSlope_fringe^2 + param[2]*ty^3 // dSlope_fringe_abs + param[3]*ty tx^2 dSlope_fringe_abs + param[4]*ty tx^3 // dSlope_fringe + param[5]*ty^3 tx^2 dSlope_fringe_abs static constexpr std::array tyCorrParamsRef{ 0.9870717850585039f, -0.4976516719011502f, -2.5682958729229592f, 0.8970663737107117f, 1.4540251292812194f, 12.539824059085458f}; // param[0]*ty dSlope_fringe_abs + param[1]*ty tx dSlope_fringe + param[2]*ty // dSlope_fringe^2 + param[3]*ty^3 dSlope_fringe_abs + param[4]*ty tx^2 // dSlope_fringe_abs static constexpr std::array cyParams{ -7.464987093115252e-06f, 4.412035012762941e-05f, -5.007621394169884e-05f, 0.00021094521102540647f, 8.91399421610022e-05f}; // param[0]*ty dSlope_xEndT^2 + param[1]*ty dSlope_yEndT^2 static constexpr std::array bendYParamsMatch{-1984.2882091279218f, -42174.48891587323f}; // param[0]*dSlope_yEndT + param[1]*ty dSlope_xEndT_abs + param[2]*ty // dSlope_yEndT_abs + param[3]*ty tx dSlope_xEndT + param[4]*ty dSlope_xEndT^2 + // param[5]*ty dSlope_yEndT^2 + param[6]*tx^2 dSlope_yEndT + param[7]*ty tx^2 // dSlope_xEndT_abs + param[8]*ty^3 tx dSlope_xEndT static constexpr std::array bendYParams{ 4700.747153107311f, 45.40720809943048f, 2514.738958543279f, 1858.8119307400252f, 1800.892373791363f, 392.9683629800529f, -120.80799327543636f, -2255.183942819593f, 20645.081206990108f};