// 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.3868254581810784e-05f, 3.02866836110634e-07f, -1.258134546869174e-06f, 2.055125622745459e-05f, -8.43882857604563e-07f, -0.00040419320773762247f}; // 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.1656923176439955e-09f, -6.483478746098866e-11f, 6.406471716433269e-10f, 3.030968257925674e-09f, -1.071410974481206e-09f, 9.693189165639112e-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.3688049952020758f, 135.09204877769724f, 5183.447314315424f, -5209.988119695723f, -2415.7166344286074f, 8795.85783210857f, 2069.457237064429f, 91317.38235042075f}, {1.4172960818384617f, 124.06283247025283f, 5283.251381769978f, -5463.641224410536f, -2323.869285883205f, 8699.990318702852f, 2232.0370393994895f, 94150.47618101149f}, {1.8864299295556193f, 5.767416383218119f, 6226.590579931637f, -7608.642389795354f, -1252.6010204186323f, 7270.87237766583f, 3714.0085836168146f, 117489.02617311807f}, {1.9451405249311116f, -9.7012851981317f, 6342.998679882009f, -7843.817065804064f, -1107.0739172034819f, 7044.4286321180025f, 3877.509106570216f, 119984.79231192796f}, {2.489326023769284f, -153.87073828414464f, 7421.00043944685f, -9823.442069109278f, 262.4878616443491f, 4590.036718172717f, 5162.878437180566f, 140426.87180766204f}, {2.5539656260801014f, -170.9487830752297f, 7549.649148157026f, -10043.0261839414f, 424.98147421267777f, 4262.009669219739f, 5292.849022143505f, 142631.72702927233f}}}; // 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.8391888595075918f, 18.25466104513896f, 6131.688050046953f, -7411.584102637481f, -1370.094839995361f, 7453.355097839984f, 3577.049389483069f, 115408.1720252512f}; // 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.0460150796565257f, -0.4770571101284279f, -2.898523033574428f, 0.6493580937115923f, 2.4710543113441723f, 34.31448035425585f}; // 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.1198641299272948e-05f, 7.646913456456331e-05f, -4.144044458309573e-05f, 0.00022907832215516983f, 0.00018538023542764083f}; // param[0]*ty dSlope_xEndT^2 + param[1]*ty dSlope_yEndT^2 static constexpr std::array bendYParamsMatch{-1267.987032039514f, -77829.45282454212f}; // 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{ 3724.407618683348f, 80.91359420280105f, 418.25627465185966f, 2429.8096256553517f, 1266.8223339973058f, 4649.86772069172f, 3009.012537455061f, -813.6962531711048f, 15472.986803207034f};