// 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.3423300069602547e-05f, -2.3330633602697552e-07f, -1.2928592439451096e-06f, 1.3053732962362176e-05f, -8.049864556093329e-07f, -0.0003783000602213195f}; // 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.081504357450659e-09f, 6.332344842301326e-11f, 7.226386913190309e-10f, 1.9652987435451158e-09f, 2.4002993735207796e-10f, 1.0093221654489787e-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{ {{1.9197053879155341f, 153.51422811934628f, 3821.5137604083666f, -6772.634890000673f, -658.7338314651573f, 39619.9149251342f, 28672.949469113293f, 213340.8019953593f}, {1.9851319768937286f, 144.64310301911712f, 3876.05039767017f, -7155.755260162438f, -589.4390461488691f, 40615.46883043754f, 29482.628788465012f, 220262.1495294539f}, {2.6017979137949787f, 45.64133602570621f, 4411.82915867289f, -10459.665266186426f, 235.56240654289923f, 49198.60898494063f, 36688.26765838628f, 280439.62843237934f}, {2.677543540070421f, 32.44001261768335f, 4480.398663110747f, -10829.959047240967f, 348.7525237343603f, 50166.372695774575f, 37518.588378671906f, 287282.75702702824f}, {3.372710135594406f, -91.48186598272598f, 5134.918997464039f, -14003.393897036112f, 1415.9273516689204f, 58376.24164087091f, 44706.54336312739f, 346389.9986535769f}, {3.4549004477006386f, -106.21598305585107f, 5214.945259152377f, -14360.008938815261f, 1542.5603613010117f, 59279.2439428005f, 45515.21673037552f, 353045.0209636879f}}}; // 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.5403736089260014f, 56.264579786578906f, 4356.295553586731f, -10151.197103789937f, 144.25471700769302f, 48402.525588330784f, 36002.49880122329f, 274790.46385372337f}; // 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.9693849309483902f, -0.4595846003615417f, -4.031605465287957f, 2.6625002150319803f, 11.690812178273044f, 40.44826194518934f}; // 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.3335055410398758e-05f, 9.048974456149508e-05f, -3.7120691198064574e-05f, 0.0002565430666653834f, 0.00020096539200504642f}; // param[0]*ty dSlope_xEndT^2 + param[1]*ty dSlope_yEndT^2 static constexpr std::array bendYParamsMatch{-1924.0730305783843f, -34035.96390907769f}; // 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{ 3078.225685913047f, 6.585995448171445f, -820.9019664658771f, 3225.624013748613f, 1149.1563015130828f, -150.10616121357208f, 5277.3630591769015f, 866.6215300406806f, -156.12975726876874f};