// 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.367774378066799e-05f, 3.1004441531669574e-08f, -1.605483898174686e-06f, 1.1210365445813011e-05f, -1.5377217306094694e-06f, -0.0004017786583715275f}; // 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.0451952947738354e-09f, 3.945903225460629e-12f, 7.781625527098891e-10f, 4.431230284316372e-09f, -6.953255361210171e-10f, 9.550879522874042e-08f}; // 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{ {{1.3474248860762983f, 130.11076651128678f, 5340.4596274347305f, -4851.065334436029f, -1794.2875686564955f, 5382.788590159561f, -671.3560455465264f, 49884.52533632587f}, {1.393952177794525f, 119.60770632016337f, 5436.422762146092f, -5092.354966706172f, -1675.653323542881f, 5153.922220636538f, -453.1292795803567f, 51617.74282139478f}, {1.8442343325658632f, 6.8275114407249475f, 6332.274499162861f, -7133.638977242854f, -365.78962325877814f, 2626.433700910796f, 1672.1494476186358f, 65599.08848512608f}, {1.900686334976461f, -7.940491195690186f, 6442.018755365796f, -7357.325848186985f, -192.23144827875396f, 2280.857790590392f, 1923.1472661054195f, 67044.82829094905f}, {2.425727702398976f, -145.79930142635806f, 7456.268660500962f, -9238.073593806623f, 1430.2291325623407f, -1180.8774121065728f, 4040.9166649185836f, 78397.0115693063f}, {2.488333771252118f, -162.15280506652812f, 7577.281438257911f, -9446.412486824844f, 1622.389028392822f, -1621.440794398176f, 4270.60182443343f, 79569.50539599231f}}}; // 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{ 1.7987635226365302f, 18.744334588582092f, 6242.719025160538f, -6946.163263452655f, -506.30266635330634f, 2908.3584282966212f, 1464.710417044897f, 64389.16858092022f}; // 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{ 1.0280165532713306f, -0.47942460227173767f, -2.6982833566794304f, 0.7316231294188605f, 1.969506908220979f, 25.349524745353946f}; // 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{ -1.103981853968599e-05f, 7.046563109285905e-05f, -4.140028527399551e-05f, 0.00021959107412548358f, 0.00017736607823106676f}; // param[0]*ty dSlope_xEndT^2 + param[1]*ty dSlope_yEndT^2 static constexpr std::array bendYParamsMatch{-1239.2553109773403f, -86630.344942859f}; // 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{ 3682.0115146458256f, 72.985687376518f, 349.6067709006536f, 2476.2407038570277f, 1265.678672097613f, 4158.454833125193f, 4053.021919112473f, -309.19179906189663f, 15843.943404779522f};