// 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.3628306778018416e-05f, -7.19771861165089e-08f, 3.248418380328151e-07f, 2.6881717464207296e-05f, -6.537420589831312e-06f, -0.00039289581962324784f}; // 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.18790793915834e-09f, 4.7986327974178375e-11f, 7.13463998213032e-11f, -2.520224089278051e-09f, 2.4747440852381746e-09f, 1.0762574214248519e-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.1306770885304434f, 180.2222209770173f, 4853.131101890899f, -6123.652925937315f, -4551.240678305918f, 20632.60305510518f, -3415.29123274347f, 126559.1007926661f}, {2.175203716660659f, 172.72381981701915f, 4945.014188634468f, -6380.830571564433f, -4602.924072668265f, 20829.635141565563f, -3433.806494914635f, 130007.59152024389f}, {2.5743317586923378f, 87.71266516089986f, 5809.530207031148f, -8537.845860421816f, -4911.821579598318f, 22092.036589321608f, -3508.5221607663275f, 159121.63414772807f}, {2.6221658200701587f, 76.28409732811838f, 5915.576830201963f, -8774.579607632928f, -4935.012900704745f, 22188.94235854527f, -3513.1127646983728f, 162352.835562057f}, {3.0618206552501497f, -31.425432378983942f, 6892.109900105941f, -10782.129032247016f, -5080.737404519508f, 22668.517828933243f, -3566.7147088003135f, 189848.13210005284f}, {3.1141241701319005f, -44.26600930559903f, 7008.146581992213f, -11006.31695746298f, -5093.302574444156f, 22685.666476870472f, -3576.0133538470614f, 192911.92951651153f}}}; // 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.5355725519292434f, 96.89447197746154f, 5722.961028387106f, -8339.764244653692f, -4891.242037601194f, 22010.28473985554f, -3504.4195149839848f, 156448.99209783948f}; // 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.9899471139088064f, -0.5059432055201221f, -2.550570603988762f, 0.7450738950403519f, 1.3031387871014593f, 19.816645982113517f}; // 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.441766369680508e-06f, 4.336997757623537e-05f, -5.006101739000532e-05f, 0.00021282438531792388f, 8.518341859535606e-05f}; // param[0]*ty dSlope_xEndT^2 + param[1]*ty dSlope_yEndT^2 static constexpr std::array bendYParamsMatch{-2013.996976697715f, -36581.28872679571f}; // 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{ 4670.131906805909f, 34.01176857068833f, 2572.4275106696755f, 1877.7857102923758f, 1795.5732039840786f, -134.38955819620367f, 912.253244700893f, -1587.9787371800358f, 21149.39490754696f};