double getOptimalDF(unsigned int N, unsigned int m) {
  if (m < 1)
    return 0.0;
  else if (m >= 1 && m < 7) {
    if (N < 97) {
      const double dfLUT[6 * 96] = {1,
                                    1,
                                    1,
                                    1,
                                    1,
                                    1,
                                    0.286535730580963,
                                    0.313405026255228,
                                    0.302302065670699,
                                    0.304931433419360,
                                    0.304207267806462,
                                    0.295200983222171,
                                    0.280404534944377,
                                    0.261993361638258,
                                    0.188621251756131,
                                    0.243277852771489,
                                    0.215230217928873,
                                    0.200555709104807,
                                    0.222144343862097,
                                    0.183881439834043,
                                    0.126486068103919,
                                    0.152837046255515,
                                    0.146553911685564,
                                    0.143949498674247,
                                    0.201765257153999,
                                    0.156756588011550,
                                    0.0966713345320333,
                                    0.126838214621722,
                                    0.119759709102859,
                                    0.118108415531563,
                                    0.182835849707188,
                                    0.136094257302092,
                                    0.0801057846520175,
                                    0.103135778085260,
                                    0.0987321746164191,
                                    0.0961898377760306,
                                    0.198584536763086,
                                    0.143730288458311,
                                    0.0664170631394259,
                                    0.104216312645053,
                                    0.0915523406788585,
                                    0.0843631151227219,
                                    0.167637759878204,
                                    0.119383345099339,
                                    0.0583727711411420,
                                    0.0929865590348050,
                                    0.0940219341422456,
                                    0.0756257255323145,
                                    0.148852790219506,
                                    0.100002070784993,
                                    0.0508146136068421,
                                    0.0750377176002302,
                                    0.0702369292348170,
                                    0.0675945851189043,
                                    0.138803897113211,
                                    0.111408414343653,
                                    0.0454900280641910,
                                    0.0725517536658211,
                                    0.0644016234320574,
                                    0.0584956389004383,
                                    0.126793055589455,
                                    0.0908866115465545,
                                    0.0411321307334058,
                                    0.0692738289380772,
                                    0.0708437443424617,
                                    0.0548992042850836,
                                    0.114285729504047,
                                    0.0788135480152052,
                                    0.0376176771970332,
                                    0.0565434040652236,
                                    0.0527665716497745,
                                    0.0476913976908450,
                                    0.119300694235864,
                                    0.147886072362769,
                                    0.0337555209440450,
                                    0.0582208546838003,
                                    0.0505924058911284,
                                    0.0460259804262407,
                                    0.118988253910350,
                                    0.0726684117385397,
                                    0.0315050050623462,
                                    0.0519481778699604,
                                    0.0485046047216217,
                                    0.0483969709491359,
                                    0.0974894309874196,
                                    0.0855519921440915,
                                    0.0292154816696315,
                                    0.0479901709588337,
                                    0.0430890658863303,
                                    0.0393903321276035,
                                    0.0909267573069019,
                                    0.0702170867730463,
                                    0.0278219527702299,
                                    0.0689434674781626,
                                    0.0452192374939217,
                                    0.0388722228234852,
                                    0.0866758627954328,
                                    0.0620812871786083,
                                    0.0260113460316605,
                                    0.0421830382385265,
                                    0.0387943082685463,
                                    0.0358006788114896,
                                    0.0795932637147764,
                                    0.0749930690534258,
                                    0.0246725701760771,
                                    0.0433951600384139,
                                    0.0377430654462939,
                                    0.0332792408636930,
                                    0.0766025310809220,
                                    0.0588704044841320,
                                    0.0235955925399967,
                                    0.0398907767801552,
                                    0.0370076106787303,
                                    0.0362398866871031,
                                    0.0713440757573736,
                                    0.0665466025179797,
                                    0.0221191961227829,
                                    0.0373217610695905,
                                    0.0332517421729284,
                                    0.0295270902938340,
                                    0.0686008814759274,
                                    0.0576770399960665,
                                    0.0209268813769427,
                                    0.0536315379976979,
                                    0.0380812835703351,
                                    0.0296019937192688,
                                    0.0674915852819815,
                                    0.0506378518319878,
                                    0.0198819503906200,
                                    0.0327970802383811,
                                    0.0302082446922441,
                                    0.0280565769070661,
                                    0.0621814797644564,
                                    0.0548947441408895,
                                    0.0194334102048846,
                                    0.0511925490209149,
                                    0.0304522618273720,
                                    0.0264489351317071,
                                    0.0596115816127902,
                                    0.0498354302023666,
                                    0.0183720815752653,
                                    0.0315552905431255,
                                    0.0289393985195708,
                                    0.0255784922741505,
                                    0.0566968747918586,
                                    0.0498746350578228,
                                    0.0175928038444230,
                                    0.0309626587204910,
                                    0.0271979331268442,
                                    0.0247771235904147,
                                    0.0561000678350336,
                                    0.0482263370072755,
                                    0.0167509047906884,
                                    0.0306836298681903,
                                    0.0295136904797102,
                                    0.0301887161817878,
                                    0.0553833077786568,
                                    0.0469881444091836,
                                    0.0161950300918126,
                                    0.0280696633948006,
                                    0.0248654019486431,
                                    0.0212116621765097,
                                    0.0517212345310446,
                                    0.0450108974439320,
                                    0.0156613623531573,
                                    0.0393065059110886,
                                    0.0268695996550433,
                                    0.0242034874632327,
                                    0.0534247005600975,
                                    0.0441303928731280,
                                    0.0151212532179802,
                                    0.0261282130636768,
                                    0.0236273818759760,
                                    0.0211302238716508,
                                    0.0483247677033497,
                                    0.0430018047708304,
                                    0.0145408386436545,
                                    0.0389057869650058,
                                    0.0235949004376349,
                                    0.0206741521110715,
                                    0.0460210649897785,
                                    0.0419087545569386,
                                    0.0142782233468975,
                                    0.0253619334872626,
                                    0.0234076370670243,
                                    0.0229241870795940,
                                    0.0461003236094212,
                                    0.0395260295924286,
                                    0.0138448301795670,
                                    0.0246822971153225,
                                    0.0216397682610892,
                                    0.0195688253502099,
                                    0.0430752171698957,
                                    0.0381070522560722,
                                    0.0132563109840366,
                                    0.0345561822741686,
                                    0.0252006608925133,
                                    0.0229907424565463,
                                    0.0420830900942783,
                                    0.0365552745908592,
                                    0.0128910289829759,
                                    0.0222236005196593,
                                    0.0200912973461312,
                                    0.0183283745143871,
                                    0.0404258268846344,
                                    0.0365844581595456,
                                    0.0126340879725718,
                                    0.0324620639413316,
                                    0.0216805808082700,
                                    0.0180141832282019,
                                    0.0401191255843743,
                                    0.0352586967032804,
                                    0.0122055803112268,
                                    0.0217208130239961,
                                    0.0195478210298138,
                                    0.0175157240055103,
                                    0.0387476690155897,
                                    0.0340665244338038,
                                    0.0119338595009010,
                                    0.0314754559588272,
                                    0.0194926209695145,
                                    0.0169808039049446,
                                    0.0384534992241625,
                                    0.0336010168572037,
                                    0.0115774103251644,
                                    0.0301973391903957,
                                    0.0196979848616612,
                                    0.0199931908959458,
                                    0.0366832946799787,
                                    0.0321486868378579,
                                    0.0112530813828470,
                                    0.0296923779654012,
                                    0.0180146476430734,
                                    0.0169568466942015,
                                    0.0376917074508066,
                                    0.0333351387401858,
                                    0.0109073039819467,
                                    0.0285258346319584,
                                    0.0216457882107305,
                                    0.0195064706605696,
                                    0.0349950765396196,
                                    0.0312712872627659,
                                    0.0107184037127667,
                                    0.0188700465091009,
                                    0.0169935593644321,
                                    0.0152685906179230,
                                    0.0347179519520870,
                                    0.0315213608941155,
                                    0.0104559536243444,
                                    0.0274666100908269,
                                    0.0184395403030014,
                                    0.0163684322340871,
                                    0.0336271410154620,
                                    0.0291546936851201,
                                    0.0103382049936376,
                                    0.0185273391569489,
                                    0.0167610779193276,
                                    0.0161827584138184,
                                    0.0325404660477993,
                                    0.0284934843283116,
                                    0.00994925278678341,
                                    0.0264597128234477,
                                    0.0165792404731140,
                                    0.0142159566466314,
                                    0.0324828020692176,
                                    0.0285033038569324,
                                    0.00977700528508094,
                                    0.0270761639351920,
                                    0.0167757691421617,
                                    0.0169750710334952,
                                    0.0322739927661327,
                                    0.0278115650366688,
                                    0.00957783634064658,
                                    0.0251800527138816,
                                    0.0154847280515556,
                                    0.0134191397874395,
                                    0.0315802746556976,
                                    0.0271900662806948,
                                    0.00937421122322141,
                                    0.0242958172194686,
                                    0.0185562861131863,
                                    0.0166022273247081,
                                    0.0312562190010846,
                                    0.0270215062139014,
                                    0.00915838218747557,
                                    0.0163165469198270,
                                    0.0146791059254116,
                                    0.0141442071804363,
                                    0.0298957702091218,
                                    0.0264584454897542,
                                    0.00893763985312985,
                                    0.0234934911541286,
                                    0.0162397889518126,
                                    0.0131374548617133,
                                    0.0286473032887305,
                                    0.0260229195182037,
                                    0.00873698828934518,
                                    0.0230109237844625,
                                    0.0146006271964759,
                                    0.0127700594716558,
                                    0.0290294749247222,
                                    0.0249593538030056,
                                    0.00867029711350995,
                                    0.0228426874813668,
                                    0.0146974224234290,
                                    0.0125358989841179,
                                    0.0268052565957549,
                                    0.0239295755567404,
                                    0.00849973696922565,
                                    0.0220848674285994,
                                    0.0148034604325694,
                                    0.0150992510802916,
                                    0.0273257972179152,
                                    0.0238732853901964,
                                    0.00828111610789272,
                                    0.0218637683650602,
                                    0.0137996482106061,
                                    0.0132717511190369,
                                    0.0268412743477370,
                                    0.0232957497439944,
                                    0.00811092570491636,
                                    0.0211768926560976,
                                    0.0159703503951248,
                                    0.0150210748760231,
                                    0.0264272930333729,
                                    0.0226365854870749,
                                    0.00795619024743068,
                                    0.0210289055839998,
                                    0.0129720516046906,
                                    0.0113281048915063,
                                    0.0257925287507495,
                                    0.0226267174591728,
                                    0.00791979967408489,
                                    0.0204434676635900,
                                    0.0148377174540664,
                                    0.0133472961116309,
                                    0.0251813729703272,
                                    0.0223978475960224,
                                    0.00775442620409063,
                                    0.0201873550730969,
                                    0.0130807748333761,
                                    0.0128714730072783,
                                    0.0246128432812693,
                                    0.0215448585852668,
                                    0.00756535854952169,
                                    0.0201037340175707,
                                    0.0132437124506879,
                                    0.0108039060755587,
                                    0.0244935100772315,
                                    0.0216641890069636,
                                    0.00741538122606615,
                                    0.0194715579078440,
                                    0.0131800670919955,
                                    0.0132084316810890,
                                    0.0239428972422362,
                                    0.0209952915105509,
                                    0.00729263372843204,
                                    0.0193285795993192,
                                    0.0123033085490358,
                                    0.0113176323171634,
                                    0.0245211722248032,
                                    0.0214426303597227,
                                    0.00714609483115586,
                                    0.0187678880794944,
                                    0.0139200308313409,
                                    0.0137049328304858,
                                    0.0229785596516036,
                                    0.0203006402545530,
                                    0.00707189676435824,
                                    0.0186619040220006,
                                    0.0117488562146934,
                                    0.0100923693498908,
                                    0.0222495886582748,
                                    0.0196189841166998,
                                    0.00694893798432048,
                                    0.0180809386116389,
                                    0.0135660728653243,
                                    0.0123379099879740,
                                    0.0224165111086159,
                                    0.0196292804984855,
                                    0.00680511470023437,
                                    0.0179829414306312,
                                    0.0116433609244045,
                                    0.0116712076502994,
                                    0.0230064806385155,
                                    0.0195685751309968,
                                    0.00679550308720253,
                                    0.0179921611709940,
                                    0.0120520573523409,
                                    0.0112648557735797,
                                    0.0221473701118188,
                                    0.0190259804901316,
                                    0.00662714736728971,
                                    0.0174153217434285,
                                    0.0118792410922819,
                                    0.0119463491043253,
                                    0.0222284233850171,
                                    0.0189569986593411,
                                    0.00659876314204988,
                                    0.0173171433797013,
                                    0.0113092848917238,
                                    0.0102595442961945,
                                    0.0213679756007036,
                                    0.0187145422153635,
                                    0.00641933910137340,
                                    0.0168533689776484,
                                    0.0124494651592826,
                                    0.0134442873502279,
                                    0.0203410947351749,
                                    0.0179671439820678,
                                    0.00641702303308976,
                                    0.0167765182995985,
                                    0.0107392583872162,
                                    0.0100418441272656,
                                    0.0205769717205021,
                                    0.0180606188359185,
                                    0.00632732128105611,
                                    0.0162977093677025,
                                    0.0128731652563376,
                                    0.0112899169016350,
                                    0.0200045997064156,
                                    0.0178236285710944,
                                    0.00618559453434285,
                                    0.0162132324578271,
                                    0.0106695365006391,
                                    0.0106414388547316,
                                    0.0195745479734150,
                                    0.0176128666775710,
                                    0.00608983318444651,
                                    0.0162886103442102,
                                    0.0111788312770270,
                                    0.0108527591423869,
                                    0.0197570755957475,
                                    0.0173210147889876,
                                    0.00603664177145397,
                                    0.0157481229195956,
                                    0.0107667843480706,
                                    0.0115694694293289,
                                    0.0192072932602050,
                                    0.0167523402401350,
                                    0.00598162408703552,
                                    0.0156944666493778,
                                    0.0104500315500638,
                                    0.00869918752702094,
                                    0.0192549279334858,
                                    0.0170630823247449,
                                    0.00587221126171008,
                                    0.0152963708556715,
                                    0.0112851434557191,
                                    0.0138985326929529,
                                    0.0190680841199657,
                                    0.0164630206102400,
                                    0.00578500096563830,
                                    0.0152418605069725,
                                    0.00994032609336375,
                                    0.00893497288207774,
                                    0.0187527577946502,
                                    0.0163215195784633,
                                    0.00568021279274697,
                                    0.0148546007321515,
                                    0.0156536292884337,
                                    0.00992054854734246,
                                    0.0187090781641469,
                                    0.0162902841157773,
                                    0.00566118487270783,
                                    0.0147605516699547,
                                    0.00972651308232302,
                                    0.00825660589216017,
                                    0.0187483932210098,
                                    0.0161582892160823,
                                    0.00560498673393789,
                                    0.0148461734732133,
                                    0.0105441389394452,
                                    0.00892087236087181,
                                    0.0178505207421212,
                                    0.0156510530475579,
                                    0.00546082706147610,
                                    0.0143738700870872,
                                    0.00988934517049537,
                                    0.00837412074470527,
                                    0.0179444551545752,
                                    0.0155057338755742,
                                    0.00542455701872545,
                                    0.0143583932631219,
                                    0.00989154852842195,
                                    0.00806284097025337,
                                    0.0172482277160552,
                                    0.0152929092234910,
                                    0.00540760088922871,
                                    0.0139927346859935,
                                    0.0104531002163711,
                                    0.00744578728671298,
                                    0.0177806738954098,
                                    0.0151719699134844,
                                    0.00529528554290738,
                                    0.0139650059723539,
                                    0.00930007346079130,
                                    0.00763940824581528,
                                    0.0173532574002316,
                                    0.0150274909106590,
                                    0.00523180404821391,
                                    0.0136161213211966,
                                    0.0143783219886104,
                                    0.00735476634393024,
                                    0.0168799675007447,
                                    0.0147189452861415,
                                    0.00512531469177738,
                                    0.0135451646341051,
                                    0.00909889303730167,
                                    0.00717687259470160,
                                    0.0170771027793238,
                                    0.0147717674540675,
                                    0.00514683407197119,
                                    0.0136040282544694,
                                    0.0125076141494779,
                                    0.00746052235113134,
                                    0.0168230280199414,
                                    0.0148239278438290,
                                    0.00505190246210728,
                                    0.0132183426339741,
                                    0.00942601213621858,
                                    0.00720259707621030,
                                    0.0162092092541085,
                                    0.0142883357445182,
                                    0.00501555048598031,
                                    0.0132367606091543,
                                    0.00947719004941255,
                                    0.00671070233930744,
                                    0.0162995657285549,
                                    0.0143682762715256,
                                    0.00497211226538670,
                                    0.0129004248190315,
                                    0.0135404538167744,
                                    0.00689752304126516,
                                    0.0157716686338333,
                                    0.0138468550712362,
                                    0.00485397761131488,
                                    0.0128862290549038,
                                    0.00850895839029396,
                                    0.00682709827243405,
                                    0.0157853313797894,
                                    0.0138499898370057,
                                    0.00485581388272643,
                                    0.0125804369192988,
                                    0.0132367503746168,
                                    0.00646499960640746,
                                    0.0160563860862572,
                                    0.0138618485883055,
                                    0.00479332821428841,
                                    0.0125121148569109,
                                    0.00794540602773179,
                                    0.00661201855731945,
                                    0.0158426632503910,
                                    0.0135727909628957,
                                    0.00477185318153346,
                                    0.0121423625325515,
                                    0.00778485240589310,
                                    0.00615822433136518,
                                    0.0155706950025644,
                                    0.0135953509544725,
                                    0.00471722471867608,
                                    0.0122130724904145,
                                    0.00758345101085547,
                                    0.00644726598517334,
                                    0.0152441240400296,
                                    0.0131690267212254,
                                    0.00468388252938771,
                                    0.0120765605034441,
                                    0.00756642530757339,
                                    0.00621613798344276,
                                    0.0149536804825575,
                                    0.0130386566282805,
                                    0.00456550569208802,
                                    0.0118711857732349,
                                    0.00740334112425530,
                                    0.00634801147615309};
      return dfLUT[(N - 1) * 6 + (m - 1)];
    } else {
      if (m == 1)
        return 0.2892 * exp(-0.11294 * N) + 0.054895 * exp(-0.013092 * N);
      else if (m == 2)
        return 0.37177 * exp(-0.27004 * N) + 0.08958 * exp(-0.021978 * N);
      else if (m == 3)
        return 0.6658 * exp(-0.4844 * N) + 0.04553 * exp(-0.030793 * N);
      else if (m == 4)
        return 0.50656 * exp(-0.36419 * N) + 0.061509 * exp(-0.01904 * N);
      else if (m == 5)
        return 0.51554 * exp(-0.38706 * N) + 0.060656 * exp(-0.025357 * N);
      else if (m == 6)
        return 0.51908 * exp(-0.40187 * N) + 0.057579 * exp(-0.027425 * N);
    }
  } else
    return 1.0 / (1.5 * max(N, m));
}


x86 assembly (clang, -O0):
<getOptimalDF>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1240,%rsp
mov    %edi,-0xc(%rbp)
mov    %esi,-0x10(%rbp)
cmpl   $0x1,-0x10(%rbp)
jae    1158 <getOptimalDF+0x28>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    14cd <getOptimalDF+0x39d>
cmpl   $0x1,-0x10(%rbp)
jb     1495 <getOptimalDF+0x365>
cmpl   $0x7,-0x10(%rbp)
jae    1495 <getOptimalDF+0x365>
cmpl   $0x61,-0xc(%rbp)
jae    11b4 <getOptimalDF+0x84>
lea    -0x1210(%rbp),%rdi
lea    0xf4c(%rip),%rsi
mov    $0x1200,%edx
call   1040 <memcpy@plt>
mov    -0xc(%rbp),%eax
sub    $0x1,%eax
imul   $0x6,%eax,%eax
mov    -0x10(%rbp),%ecx
sub    $0x1,%ecx
add    %ecx,%eax
mov    %eax,%eax
movsd  -0x1210(%rbp,%rax,8),%xmm0
ff ff
movsd  %xmm0,-0x8(%rbp)
jmp    14cd <getOptimalDF+0x39d>
cmpl   $0x1,-0x10(%rbp)
jne    1229 <getOptimalDF+0xf9>
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm0
movsd  0xefa(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x1218(%rbp)
ff
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm1
movsd  0xed1(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movaps %xmm0,%xmm2
movsd  -0x1218(%rbp),%xmm0
ff
movsd  0xead(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0xe99(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    14cd <getOptimalDF+0x39d>
cmpl   $0x2,-0x10(%rbp)
jne    129e <getOptimalDF+0x16e>
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm0
movsd  0xe65(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x1220(%rbp)
ff
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm1
movsd  0xe3c(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movaps %xmm0,%xmm2
movsd  -0x1220(%rbp),%xmm0
ff
movsd  0xe18(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0xe04(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    14cd <getOptimalDF+0x39d>
cmpl   $0x3,-0x10(%rbp)
jne    1313 <getOptimalDF+0x1e3>
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm0
movsd  0xdd0(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x1228(%rbp)
ff
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm1
movsd  0xda7(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movaps %xmm0,%xmm2
movsd  -0x1228(%rbp),%xmm0
ff
movsd  0xd83(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0xd6f(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    14cd <getOptimalDF+0x39d>
cmpl   $0x4,-0x10(%rbp)
jne    1388 <getOptimalDF+0x258>
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm0
movsd  0xd3b(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x1230(%rbp)
ff
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm1
movsd  0xd12(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movaps %xmm0,%xmm2
movsd  -0x1230(%rbp),%xmm0
ff
movsd  0xcee(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0xcda(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    14cd <getOptimalDF+0x39d>
cmpl   $0x5,-0x10(%rbp)
jne    13fd <getOptimalDF+0x2cd>
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm0
movsd  0xca6(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x1238(%rbp)
ff
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm1
movsd  0xc7d(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movaps %xmm0,%xmm2
movsd  -0x1238(%rbp),%xmm0
ff
movsd  0xc59(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0xc45(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    14cd <getOptimalDF+0x39d>
cmpl   $0x6,-0x10(%rbp)
jne    1472 <getOptimalDF+0x342>
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm0
movsd  0xc11(%rip),%xmm1
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movsd  %xmm0,-0x1240(%rbp)
ff
mov    -0xc(%rbp),%eax
cvtsi2sd %rax,%xmm1
movsd  0xbe8(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1050 <exp@plt>
movaps %xmm0,%xmm2
movsd  -0x1240(%rbp),%xmm0
ff
movsd  0xbc4(%rip),%xmm1
mulsd  %xmm2,%xmm1
movsd  0xbb0(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    14cd <getOptimalDF+0x39d>
jmp    1477 <getOptimalDF+0x347>
jmp    147c <getOptimalDF+0x34c>
jmp    1481 <getOptimalDF+0x351>
jmp    1486 <getOptimalDF+0x356>
jmp    148b <getOptimalDF+0x35b>
jmp    1490 <getOptimalDF+0x360>
jmp    14c8 <getOptimalDF+0x398>
mov    -0xc(%rbp),%edi
mov    -0x10(%rbp),%esi
mov    $0x0,%al
call   1030 <max@plt>
cvtsi2sd %eax,%xmm0
movsd  0xb5a(%rip),%xmm1
mulsd  %xmm0,%xmm1
movsd  0xb46(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x8(%rbp)
jmp    14cd <getOptimalDF+0x39d>
jmp    14cd <getOptimalDF+0x39d>
movsd  -0x8(%rbp),%xmm0
add    $0x1240,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<getOptimalDF>:
sub    $0x18,%rsp
test   %esi,%esi
je     114c <getOptimalDF+0x2c>
cmp    $0x6,%esi
ja     1154 <getOptimalDF+0x34>
cmp    $0x60,%edi
ja     1178 <getOptimalDF+0x58>
lea    (%rdi,%rdi,2),%eax
lea    (%rsi,%rax,2),%eax
add    $0xfffffff9,%eax
lea    0xfae(%rip),%rcx
movsd  (%rcx,%rax,8),%xmm0
add    $0x18,%rsp
ret
xorps  %xmm0,%xmm0
add    $0x18,%rsp
ret
xor    %eax,%eax
call   1030 <max@plt>
cvtsi2sd %eax,%xmm1
mulsd  0xe99(%rip),%xmm1
movsd  0xe99(%rip),%xmm0
divsd  %xmm1,%xmm0
add    $0x18,%rsp
ret
add    $0xffffffff,%esi
cmp    $0x4,%esi
ja     11e2 <getOptimalDF+0xc2>
lea    0xf49(%rip),%rax
movslq (%rax,%rsi,4),%rcx
add    %rax,%rcx
jmp    *%rcx
mov    %edi,%eax
cvtsi2sd %rax,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xeeb(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  0xed6(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0xed1(%rip),%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0xecb(%rip),%xmm1
jmp    1374 <getOptimalDF+0x254>
mov    %edi,%eax
cvtsi2sd %rax,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xeb9(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  0xea4(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0xe9f(%rip),%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0xe99(%rip),%xmm1
jmp    1374 <getOptimalDF+0x254>
mov    %edi,%eax
cvtsi2sd %rax,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xe27(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  0xe12(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0xe0d(%rip),%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0xe07(%rip),%xmm1
jmp    1374 <getOptimalDF+0x254>
mov    %edi,%eax
cvtsi2sd %rax,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xdb5(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  0xda0(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0xd9b(%rip),%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0xd95(%rip),%xmm1
jmp    1374 <getOptimalDF+0x254>
mov    %edi,%eax
cvtsi2sd %rax,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xd43(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  0xd2e(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0xd29(%rip),%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0xd23(%rip),%xmm1
jmp    1374 <getOptimalDF+0x254>
mov    %edi,%eax
cvtsi2sd %rax,%xmm1
movsd  %xmm1,0x8(%rsp)
movsd  0xcd4(%rip),%xmm0
mulsd  %xmm1,%xmm0
call   1040 <exp@plt>
movsd  %xmm0,0x10(%rsp)
movsd  0x8(%rsp),%xmm0
mulsd  0xcbf(%rip),%xmm0
call   1040 <exp@plt>
mulsd  0xcba(%rip),%xmm0
movsd  0x10(%rsp),%xmm1
mulsd  0xcb4(%rip),%xmm1
addsd  %xmm1,%xmm0
add    $0x18,%rsp
ret

LLVM IR (-O0):
@__const.getOptimalDF.dfLUT = [576 x double] [double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 0x3FD25699F5FEC3D7, double 0x3FD40ED3F48AC435, double 0x3FD358EAC36468CD, double 0x3FD383FF2183BF54, double 0x3FD37821C29BCB0C, double 0x3FD2E492AA2BEBD5, double 0x3FD1F225DCCF1DB6, double 0x3FD0C47FCE0058C9, double 0x3FC824BDBDCFC3E1, double 0x3FCF23BA8ABF50A2, double 0x3FCB8CA9ED8EC779, double 0x3FC9ABCF39D0CC53, double 0x3FCC6F39D1F085DB, double 0x3FC7896D5136DC93, double 0x3FC030B20AF3F686, double 0x3FC3902A11A47045, double 0x3FC2C24750E52AD5, double 0x3FC26CEFEA8A6E24, double 0x3FC9D371A67904B2, double 0x3FC4109991789878, double 0x3FB8BF73DC46981C, double 0x3FC03C3C0FD77732, double 0x3FBEA89281F9AA2D, double 0x3FBE3C5A6617272D, double 0x3FC7672A4583ADDF, double 0x3FC16B896024982F, double 0x3FB481D00D4D0373, double 0x3FBA671B39EC77F2, double 0x3FB94683050A5CFD, double 0x3FB89FE5AF74A1FE, double 0x3FC96B37D571C305, double 0x3FC265C10C2FC17B, double 0x3FB100B56A148813, double 0x3FBAADEB96852CBD, double 0x3FB76FF9651683BD, double 0x3FB598D23470D68A, double 0x3FC5752774203402, double 0x3FBE8FE82AE384A7, double 0x3FADE3092E0E62CB, double 0x3FB7CDF79605A5C7, double 0x3FB811D24C3F636A, double 0x3FB35C3521E5C6B0, double 0x3FC30D9BB4F49FCF, double 0x3FB999BC578DC747, double 0x3FAA045F7F3355BA, double 0x3FB335ABFF0F3994, double 0x3FB1FB0C2208F61C, double 0x3FB14DE0F478EE0B, double 0x3FC1C4537B544CAE, double 0x3FBC8543081AEED8, double 0x3FA74A780DA8DE80, double 0x3FB292C071431C3F, double 0x3FB07C9FF27332CB, double 0x3FADF323F0126FA1, double 0x3FC03AC13D8EED61, double 0x3FB74458503C98DE, double 0x3FA50F4548A12A1C, double 0x3FB1BBEDFDC1FB3F, double 0x3FB222D0CD13BA13, double 0x3FAC1BBF9DF632E8, double 0x3FBD41D45E9E8FF6, double 0x3FB42D1FEB35000D, double 0x3FA3429FCAA01FCA, double 0x3FACF341CE87800D, double 0x3FAB0438571D9AE1, double 0x3FA86B01C2C3F276, double 0x3FBE8A7D842214E9, double 0x3FC2EDEE4A2A7E65, double 0x3FA1486755073A41, double 0x3FADCF1FB59FCA5A, double 0x3FA9E73F7174EAD8, double 0x3FA790B7A164E26B, double 0x3FBE7603A3273164, double 0x3FB29A65A3DE89D3, double 0x3FA0216C8CCE61FE, double 0x3FAA98F39A13983D, double 0x3FA8D59875F83416, double 0x3FA8C77CDEE76CA5, double 0x3FB8F5113DCBEF0A, double 0x3FB5E6BC405DD461, double 0x3F9DEAA9C93B587F, double 0x3FA8922AED98643B, double 0x3FA60FC521980D7C, double 0x3FA42AF838888466, double 0x3FB746F9D8F6E7AF, double 0x3FB1F9BF3B4F8552, double 0x3F9C7D5BA50935BB, double 0x3FB1A64772176FB0, double 0x3FA726F9D45F7677, double 0x3FA3E70F5B7FD7DB, double 0x3FB63063AC0F1876, double 0x3FAFC91E54405CA3, double 0x3F9AA2B7E21FA9D0, double 0x3FA59903E35C5BEB, double 0x3FA3DCD8FA919629, double 0x3FA254777157036C, double 0x3FB4603960A309CA, double 0x3FB332BEEB02D9A5, double 0x3F9943C4280EDD4F, double 0x3FA637E3F256DF7C, double 0x3FA3530F1F7C38AE, double 0x3FA109FA064A6099, double 0x3FB39C3935C88BD3, double 0x3FAE2442FBEC5BE8, double 0x3F9829716927F6CC, double 0x3FA46C905B5D9853, double 0x3FA2F2A95B22F145, double 0x3FA28E08D0438251, double 0x3FB2439AF8242A03, double 0x3FB10932B979819E, double 0x3F96A66A1FD83AFF, double 0x3FA31BD67E722F4F, double 0x3FA1065F5255E385, double 0x3F9E3C597CA1D973, double 0x3FB18FD3CE6A7723, double 0x3FAD87D85106C0C9, double 0x3F956DDB3C7C266E, double 0x3FAB7597CB77F55C, double 0x3FA37F63D70C6FEB, double 0x3F9E4FFC2BAEC0AF, double 0x3FB14720E78A92FF, double 0x3FA9ED345B1DBCD5, double 0x3F945BEF1AD568BB, double 0x3FA0CAC7660E67AC, double 0x3F9EEEE8FC174CD3, double 0x3F9CBADD0103A4A3, double 0x3FAFD6403C02ACFC, double 0x3FAC1B29F59D6495, double 0x3F93E65A151E7212, double 0x3FAA35E8E7AFFA46, double 0x3F9F2EE0B28D1954, double 0x3F9B156DFD9E6BA1, double 0x3FAE8568C2FAC2FB, double 0x3FA984078DCD7153, double 0x3F92D0218619D04A, double 0x3FA02803D9CC0878, double 0x3F9DA24A28D47256, double 0x3F9A313F8F31A0D3, double 0x3FAD075F6E086AC2, double 0x3FA9892B0CF25248, double 0x3F9203D914A0806A, double 0x3F9FB4ACDA6828C7, double 0x3F9BD9C66531C1CD, double 0x3F995F2C9E0A0418, double 0x3FACB925E94F489C, double 0x3FA8B11F5881163D, double 0x3F912726310485BC, double 0x3F9F6B878B39CD04, double 0x3F9E38D63D9417C1, double 0x3F9EE9CA72D6054D, double 0x3FAC5B336F4EA908, double 0x3FA80ED47F1307CA, double 0x3F90956E1268854C, double 0x3F9CBE4B39295DCF, double 0x3F997650E0AF6DAB, double 0x3F95B8828D5E1D7B, double 0x3FAA7B34A5A3A050, double 0x3FA70BAB18F878F9, double 0x3F9009883C787062, double 0x3FA41FFB7AD0F9DA, double 0x3F9B83B44F199FDA, double 0x3F98C8CC8C6A3851, double 0x3FAB5A7B7B688E6E, double 0x3FA69842444CA79B, double 0x3F8EF7E4405DB745, double 0x3F9AC15AB27215F1, double 0x3F9831C6C1CA287B, double 0x3F95A32951F18F6D, double 0x3FA8BE0621BED070, double 0x3FA604552251C353, double 0x3F8DC79653728075, double 0x3FA3EB7595479981, double 0x3F982942F6ED961F, double 0x3F952B9ADCC221A4, double 0x3FA79012B21DCAFB, double 0x3FA575107479EDC8, double 0x3F8D3DE6B28F2C26, double 0x3F99F87A8B9081CA, double 0x3F97F82BEEB7D09D, double 0x3F977970272D4DC5, double 0x3FA79A762C799713, double 0x3FA43CC178E16315, double 0x3F8C5AADA6B824DF, double 0x3F994650EB9A1392, double 0x3F9628BC43E5C84D, double 0x3F9409D9A399E4E8, double 0x3FA60DF472068DAF, double 0x3FA382C47E5FA359, double 0x3F8B261FF122E753, double 0x3FA1B159117BFD95, double 0x3F99CE33B97BD548, double 0x3F978AE29BD8B43D, double 0x3FA58BEA2F56CED8, double 0x3FA2B75F79BA6375, double 0x3F8A669C9F263C43, double 0x3F96C1C895B9A819, double 0x3F9492D02424B494, double 0x3F92C4AC64833529, double 0x3FA4B2B1A8C43AF5, double 0x3FA2BB32B6AC9C22, double 0x3F89DFE695418036, double 0x3FA09EDE1DFA3447, double 0x3F96336F261E852D, double 0x3F92724F5F512E7B, double 0x3FA48A7E78A87347, double 0x3FA20D6D8A7AF7DE, double 0x3F88FF3D421F94D7, double 0x3F963DFB16528743, double 0x3F940458101FDBA5, double 0x3F91EFA45713E529, double 0x3FA3D6BC066FB6A3, double 0x3FA1712AE0A9C3D6, double 0x3F8870C7822BE2CC, double 0x3FA01D8D0BF09054, double 0x3F93F5DFA64F3EF4, double 0x3F91636A75B9E1FE, double 0x3FA3B02D532B48BD, double 0x3FA1342709072F8B, double 0x3F87B5E5B5C06ADD, double 0x3F9EEC0D20FEF1A3, double 0x3F942BB5631C9BC3, double 0x3F9479185429C02D, double 0x3FA2C8271DEB8A45, double 0x3FA075CAED27E873, double 0x3F870BDB0425FFCF, double 0x3F9E67ADC1351D31, double 0x3F92726E89E76309, double 0x3F915D22B7FAC220, double 0x3FA34C53D5A9C94B, double 0x3FA1114DA564B892, double 0x3F8656918F1EB3F1, double 0x3F9D35E05B576A0F, double 0x3F962A5041D84CA4, double 0x3F93F9811630ABB1, double 0x3FA1EADFEA84721A, double 0x3FA002CA4831DE88, double 0x3F85F387CB4B1353, double 0x3F9352AB6285B8AF, double 0x3F9166C276D9FAB4, double 0x3F8F45238AE14356, double 0x3FA1C68D286FC6BA, double 0x3FA023915C54CEB0, double 0x3F8569EE56EBA050, double 0x3F9C20350049D0AF, double 0x3F92E1D09A37FA16, double 0x3F90C2E2E4875E78, double 0x3FA137939DD6BA39, double 0x3F9DDABA5F9C25F5, double 0x3F852C3262C6B10C, double 0x3F92F8D4AF0B4277, double 0x3F9129D0E60970E8, double 0x3F9092368895EED4, double 0x3FA0A924DAF19C67, double 0x3F9D2D655D5B53CC, double 0x3F8460461AB60251, double 0x3F9B184144F3FA59, double 0x3F90FA25FE7F8884, double 0x3F8D1D4167077226, double 0x3FA0A195F923B3BF, double 0x3F9D2FF85792EB32, double 0x3F8405F76F9E30F2, double 0x3F9BB9DA9A69404A, double 0x3F912DAACF52C539, double 0x3F9161E9BBBE9B2C, double 0x3FA086377EE23E2A, double 0x3F9C7AA28921DCFB, double 0x3F839D8B6ECBCFC4, double 0x3F99C8CCBBABB3A8, double 0x3F8FB675048D13A2, double 0x3F8B7B7E74385491, double 0x3FA02B4A2DB09934, double 0x3F9BD7B675CE7F0C, double 0x3F8332C955094822, double 0x3F98E100B18C811E, double 0x3F93006B47F72588, double 0x3F91002C9D99FCEB, double 0x3FA000D0ACD002E7, double 0x3F9BAB8695E8D2F9, double 0x3F82C1A13FD5F7C8, double 0x3F90B548ED9E0286, double 0x3F8E10143F12C3DC, double 0x3F8CF7A35A248002, double 0x3F9E9CFF2D58FEBA, double 0x3F9B17EC385372E6, double 0x3F824DE5B6FB1FA5, double 0x3F980EAD80B41167, double 0x3F90A129C9C495AE, double 0x3F8AE7CF57DEB05D, double 0x3F9D55B7FAF98A11, double 0x3F9AA5C0911BC6A6, double 0x3F81E4B2B7BF05AC, double 0x3F97902CF46B890D, double 0x3F8DE6EF027AC832, double 0x3F8A27305E63D011, double 0x3F9DB9E715AFDB04, double 0x3F998EF1E140B819, double 0x3F81C1BB94649D73, double 0x3F976412CEBDAA0E, double 0x3F8E19AEA5272ACF, double 0x3F89AC6BE14D4DC7, double 0x3F9B72D651C23513, double 0x3F9880FEA1B1858C, double 0x3F81684F62759BEF, double 0x3F969D6A5D5E8BC4, double 0x3F8E5146D36774B7, double 0x3F8EEC5B2CABEB68, double 0x3F9BFB4B358D6328, double 0x3F98723D0FFEF181, double 0x3F80F5B096DCBABC, double 0x3F966374A86189FD, double 0x3F8C42FD6E163CC8, double 0x3F8B2E384822A446, double 0x3F9B7C476E06A667, double 0x3F97DAD74D252060, double 0x3F809C760524A98C, double 0x3F95AF65358E2C89, double 0x3F905A88129C6313, double 0x3F8EC35E8ABF0CFA, double 0x3F9B0FC19D335946, double 0x3F972E0B8970BCB9, double 0x3F804B55C74EC8CB, double 0x3F958899F7040BB6, double 0x3F8A91174B3BBDB7, double 0x3F873330804704D5, double 0x3F9A695B4DDCC890, double 0x3F972B754E030D08, double 0x3F80384184BA80D8, double 0x3F94EF21E420B82D, double 0x3F8E633CB9B33512, double 0x3F8B55D3C250DC4C, double 0x3F99C9255580F4C4, double 0x3F96EF761BB3ECE9, double 0x3F7FC31AEF220E92, double 0x3F94ABFE7753A6C6, double 0x3F8ACA17E0ECEEFC, double 0x3F8A5C5BDCF0DBFA, double 0x3F99341BF3D18935, double 0x3F960FDAFC152966, double 0x3F7EFCDA78D7E614, double 0x3F949612C08823BE, double 0x3F8B1F84FED3A003, double 0x3F86205BBA1BD000, double 0x3F9914D3A2FBDBD1, double 0x3F962F231D1DF951, double 0x3F7E5F973DA739AF, double 0x3F93F05A21AA5A51, double 0x3F8AFE26A8F42289, double 0x3F8B0D05B0D0568A, double 0x3F98847CA281F042, double 0x3F957FCA29A196FE, double 0x3F7DDEE175D85C0C, double 0x3F93CADF050761BB, double 0x3F89327A1ECE3EEF, double 0x3F872DB2E55CEAB0, double 0x3F991C14030F79DD, double 0x3F95F50E908A789C, double 0x3F7D45393980BBC2, double 0x3F9337E3A610CF8A, double 0x3F8C821AE9707A59, double 0x3F8C1154F26810C3, double 0x3F9787B108D9EE2C, double 0x3F94C9B0E7ECB6D8, double 0x3F7CF76BD52D7E63, double 0x3F931C1B2DD28477, double 0x3F880FC8C9A8FD5E, double 0x3F84AB4EE2601ED0, double 0x3F96C8989E8C064D, double 0x3F9416FFBCA5DB3A, double 0x3F7C767D56274666, double 0x3F9283CF40126771, double 0x3F8BC8877A5571C2, double 0x3F89449E3F31D937, double 0x3F96F45A98685F4A, double 0x3F9419B2B723D88F, double 0x3F7BDFAE11541CFE, double 0x3F926A1EC5526008, double 0x3F87D87973163426, double 0x3F87E712F94D8A08, double 0x3F978F02C7C1013C, double 0x3F9409C8D8DE2830, double 0x3F7BD599F84F785F, double 0x3F926C897F414F9F, double 0x3F88AEBFC16C2D29, double 0x3F871207592229F5, double 0x3F96ADCCD94A69E7, double 0x3F937B8BEFEAF4C0, double 0x3F7B251153551F4D, double 0x3F91D55275597079, double 0x3F885424BFF0F286, double 0x3F887753D5AD6AA4, double 0x3F96C30C3DEBD128, double 0x3F936976A516B7E4, double 0x3F7B074DFE39FA01, double 0x3F91BB95D1E7620E, double 0x3F8729528602410B, double 0x3F8502F4B9CACA53, double 0x3F95E17C918C07A5, double 0x3F9329E7AB19301E, double 0x3F7A4B2A38098E19, double 0x3F91420272587EB4, double 0x3F897F1AEDB1C98C, double 0x3F8B88ADB3E5E61F, double 0x3F94D44BC29C1269, double 0x3F9265FA9F38D626, double 0x3F7A48BC81096AEF, double 0x3F912DDD15C00587, double 0x3F85FE76DC737B2D, double 0x3F8490D180F1F0FB, double 0x3F951221325C709F, double 0x3F927E7B9CFBB0C8, double 0x3F79EAAD5F9321B5, double 0x3F90B058C2EF9C68, double 0x3F8A5D3EFE2D006A, double 0x3F871F2AFEEFC7A0, double 0x3F947C15F608D54F, double 0x3F92405B773C50B7, double 0x3F795610E3B37B70, double 0x3F909A339CACDD57, double 0x3F85D9E8F2AB7714, double 0x3F85CB2DBEE85B93, double 0x3F940B59AD84EA6C, double 0x3F92091B7979D4BF, double 0x3F78F1A725D83DC9, double 0x3F90ADF622E71611, double 0x3F86E4ED55F04C39, double 0x3F8639F8ACB40DB1, double 0x3F943B32E6317ECA, double 0x3F91BC99A0357CDA, double 0x3F78B9E0AFC6E945, double 0x3F902046A3A6F6E1, double 0x3F860CE55543AE9F, double 0x3F87B1BBE6A5F7FD, double 0x3F93AB13A196CBC5, double 0x3F91278685D9F3F0, double 0x3F78802FFD4AE38D, double 0x3F901235D3F2EF22, double 0x3F8566D37DFF5EA1, double 0x3F81D0E12F714EC9, double 0x3F93B790570B6D1A, double 0x3F9178FC1237064F, double 0x3F780D75B5301E59, double 0x3F8F53B42494AD8B, double 0x3F871CAA50957791, double 0x3F8C76D57B0769AB, double 0x3F93869576C540B3, double 0x3F90DBAE9C75196A, double 0x3F77B2035F46A29B, double 0x3F8F371FE342D937, double 0x3F845B97FBDC4F1A, double 0x3F824C7FC28DA966, double 0x3F9333EC45C056F4, double 0x3F90B696A33DF9E5, double 0x3F77442282DDE061, double 0x3F8E6C16C2B7C37F, double 0x3F900781476E1C79, double 0x3F8451397C8DC136, double 0x3F932878FB69CC5E, double 0x3F90AE667614498A, double 0x3F77302EBE288279, double 0x3F8E3AC7B58C0778, double 0x3F83EB7E7CBDD61B, double 0x3F80E8D6E24326CB, double 0x3F9332C75EF277D1, double 0x3F908BCC6EF8333D, double 0x3F76F5412B77EB41, double 0x3F8E67ABAC4E3895, double 0x3F85982A5F467212, double 0x3F82451B38557905, double 0x3F9247682B374696, double 0x3F9006D463F2EA68, double 0x3F765E179A35DE7C, double 0x3F8D700C2F8726EB, double 0x3F8440DD70B06695, double 0x3F81267375D9A119, double 0x3F92600800223DDD, double 0x3F8FC1785F2B2706, double 0x3F76380F6FD9F5F2, double 0x3F8D67EEEBE7DD6A, double 0x3F8442052B7DAF23, double 0x3F808340323D9E53, double 0x3F91A984F7D152EA, double 0x3F8F51E387CE0272, double 0x3F762647CF8142C8, double 0x3F8CA8390EDD1345, double 0x3F85686F5C91A9AB, double 0x3F7E7F794E3B008E, double 0x3F923518D386C8F8, double 0x3F8F127B54C1265C, double 0x3F75B08263AD220D, double 0x3F8C99AF5F8483E3, double 0x3F830BEABAEA7CF8, double 0x3F7F4A800939A0CA, double 0x3F91C50D640D60D5, double 0x3F8EC6BBB0048AB2, double 0x3F756DF1B4941B9E, double 0x3F8BE2C4DE2EEA3D, double 0x3F8D7261B5B31367, double 0x3F7E20080EABA14B, double 0x3F9148FB717E32FA, double 0x3F8E24F76515B0CA, double 0x3F74FE482FB9ED23, double 0x3F8BBD9138FAB5E0, double 0x3F82A270C03339E7, double 0x3F7D657F114F0FA7, double 0x3F917CA8F7CA5E95, double 0x3F8E40A910F46702, double 0x3F7514D8C045DB39, double 0x3F8BDC6DC3930F0B, double 0x3F899D978DC8B14F, double 0x3F7E8EECB825A05C, double 0x3F913A0E4CA94EE0, double 0x3F8E5C01EA4CD1B4, double 0x3F74B14DBDB7A270, double 0x3F8B1237EA8FDAA6, double 0x3F834DF1EEDAA3E3, double 0x3F7D80786E37A888, double 0x3F9099259E8FC95C, double 0x3F8D4333F5E5525A, double 0x3F748B2F94F086D6, double 0x3F8B1BDFEF5ED1E2, double 0x3F8368C6EA8FC6DE, double 0x3F7B7CAE7149CB4D, double 0x3F90B0D556F8FB30, double 0x3F8D6D1D657D1F84, double 0x3F745DA3392667D1, double 0x3F8A6B89B59E33AE, double 0x3F8BBB18F287424D, double 0x3F7C4093BE2B952F, double 0x3F902672C3F151A6, double 0x3F8C5BBD6D77A04E, double 0x3F73E1C3B189AE6D, double 0x3F8A641862E069CE, double 0x3F816D2510131F78, double 0x3F7BF6BB3CE82BBF, double 0x3F902A07A82180D6, double 0x3F8C5D622B32F003, double 0x3F73E3B09D25FB3B, double 0x3F89C3C5A91A2C0E, double 0x3F8B1BDE8FB6E03F, double 0x3F7A7B0B1E0CFF0A, double 0x3F907115D4879A30, double 0x3F8C6399D2CA7F71, double 0x3F73A22B3EB5B5C5, double 0x3F899FF3A0E9F063, double 0x3F8045AE58572417, double 0x3F7B1534376D7EAE, double 0x3F90390F222AFA4A, double 0x3F8BCC0D2A689D5B, double 0x3F738BA695B22CCE, double 0x3F88DE184FC9B234, double 0x3F7FE30267CCCA79, double 0x3F79395DC1ACA026, double 0x3F8FE3874E7EFC57, double 0x3F8BD7E11DD11ABC, double 0x3F73525E5E50447D, double 0x3F89032AD770A7CD, double 0x3F7F0FD32151AF1B, double 0x3F7A6872C8E10121, double 0x3F8F384FB1AA2D77, double 0x3F8AF85CD8B3D768, double 0x3F732F6824832DAB, double 0x3F88BB9883489E0D, double 0x3F7EFDF8D3E60236, double 0x3F797617D58A7C66, double 0x3F8EA0090504F3B5, double 0x3F8AB402DE6AFBF4, double 0x3F72B3479A320D7C, double 0x3F884FEB95494951, double 0x3F7E52F740282CD7, double 0x3F7A005F5AF492B0]
define double @getOptimalDF(i32 %0, i32 %1) {
%3 = alloca double
%4 = alloca i32
%5 = alloca i32
%6 = alloca [576 x double]
store i32 %0, i32* %4
store i32 %1, i32* %5
%7 = load i32, i32* %5
%8 = icmp ult i32 %7, 1
br i1 %8, label %9, label %10
9: ; preds = %2
store double 0.000000e+00, double* %3
br label %129
10: ; preds = %2
%11 = load i32, i32* %5
%12 = icmp uge i32 %11, 1
br i1 %12, label %13, label %121
13: ; preds = %10
%14 = load i32, i32* %5
%15 = icmp ult i32 %14, 7
br i1 %15, label %16, label %121
16: ; preds = %13
%17 = load i32, i32* %4
%18 = icmp ult i32 %17, 97
br i1 %18, label %19, label %30
19: ; preds = %16
%20 = bitcast [576 x double]* %6 to i8*
%21 = load i32, i32* %4
%22 = sub i32 %21, 1
%23 = mul i32 %22, 6
%24 = load i32, i32* %5
%25 = sub i32 %24, 1
%26 = add i32 %23, %25
%27 = zext i32 %26 to i64
%28 = getelementptr inbounds [576 x double], [576 x double]* %6, i64 0, i64 %27
%29 = load double, double* %28
store double %29, double* %3
br label %129
30: ; preds = %16
%31 = load i32, i32* %5
%32 = icmp eq i32 %31, 1
br i1 %32, label %33, label %44
33: ; preds = %30
%34 = load i32, i32* %4
%35 = uitofp i32 %34 to double
%36 = fmul double -1.129400e-01, %35
%37 = call double @exp(double %36)
%38 = load i32, i32* %4
%39 = uitofp i32 %38 to double
%40 = fmul double -1.309200e-02, %39
%41 = call double @exp(double %40)
%42 = fmul double 5.489500e-02, %41
%43 = call double @llvm.fmuladd.f64(double 2.892000e-01, double %37, double %42)
store double %43, double* %3
br label %129
44: ; preds = %30
%45 = load i32, i32* %5
%46 = icmp eq i32 %45, 2
br i1 %46, label %47, label %58
47: ; preds = %44
%48 = load i32, i32* %4
%49 = uitofp i32 %48 to double
%50 = fmul double -2.700400e-01, %49
%51 = call double @exp(double %50)
%52 = load i32, i32* %4
%53 = uitofp i32 %52 to double
%54 = fmul double -2.197800e-02, %53
%55 = call double @exp(double %54)
%56 = fmul double 8.958000e-02, %55
%57 = call double @llvm.fmuladd.f64(double 3.717700e-01, double %51, double %56)
store double %57, double* %3
br label %129
58: ; preds = %44
%59 = load i32, i32* %5
%60 = icmp eq i32 %59, 3
br i1 %60, label %61, label %72
61: ; preds = %58
%62 = load i32, i32* %4
%63 = uitofp i32 %62 to double
%64 = fmul double -4.844000e-01, %63
%65 = call double @exp(double %64)
%66 = load i32, i32* %4
%67 = uitofp i32 %66 to double
%68 = fmul double -3.079300e-02, %67
%69 = call double @exp(double %68)
%70 = fmul double 4.553000e-02, %69
%71 = call double @llvm.fmuladd.f64(double 6.658000e-01, double %65, double %70)
store double %71, double* %3
br label %129
72: ; preds = %58
%73 = load i32, i32* %5
%74 = icmp eq i32 %73, 4
br i1 %74, label %75, label %86
75: ; preds = %72
%76 = load i32, i32* %4
%77 = uitofp i32 %76 to double
%78 = fmul double -3.641900e-01, %77
%79 = call double @exp(double %78)
%80 = load i32, i32* %4
%81 = uitofp i32 %80 to double
%82 = fmul double -1.904000e-02, %81
%83 = call double @exp(double %82)
%84 = fmul double 6.150900e-02, %83
%85 = call double @llvm.fmuladd.f64(double 5.065600e-01, double %79, double %84)
store double %85, double* %3
br label %129
86: ; preds = %72
%87 = load i32, i32* %5
%88 = icmp eq i32 %87, 5
br i1 %88, label %89, label %100
89: ; preds = %86
%90 = load i32, i32* %4
%91 = uitofp i32 %90 to double
%92 = fmul double -3.870600e-01, %91
%93 = call double @exp(double %92)
%94 = load i32, i32* %4
%95 = uitofp i32 %94 to double
%96 = fmul double -2.535700e-02, %95
%97 = call double @exp(double %96)
%98 = fmul double 6.065600e-02, %97
%99 = call double @llvm.fmuladd.f64(double 5.155400e-01, double %93, double %98)
store double %99, double* %3
br label %129
100: ; preds = %86
%101 = load i32, i32* %5
%102 = icmp eq i32 %101, 6
br i1 %102, label %103, label %114
103: ; preds = %100
%104 = load i32, i32* %4
%105 = uitofp i32 %104 to double
%106 = fmul double -4.018700e-01, %105
%107 = call double @exp(double %106)
%108 = load i32, i32* %4
%109 = uitofp i32 %108 to double
%110 = fmul double -2.742500e-02, %109
%111 = call double @exp(double %110)
%112 = fmul double 5.757900e-02, %111
%113 = call double @llvm.fmuladd.f64(double 5.190800e-01, double %107, double %112)
store double %113, double* %3
br label %129
114: ; preds = %100
br label %115
115: ; preds = %114
br label %116
116: ; preds = %115
br label %117
117: ; preds = %116
br label %118
118: ; preds = %117
br label %119
119: ; preds = %118
br label %120
120: ; preds = %119
br label %128
121: ; preds = %13, %10
%122 = load i32, i32* %4
%123 = load i32, i32* %5
%124 = call i32 (i32, i32, ...) bitcast (i32 (...)* @max to i32 (i32, i32, ...)*)(i32 %122, i32 %123)
%125 = sitofp i32 %124 to double
%126 = fmul double 1.500000e+00, %125
%127 = fdiv double 1.000000e+00, %126
store double %127, double* %3
br label %129
128: ; preds = %120
br label %129
129: ; preds = %9, %19, %33, %47, %61, %75, %89, %103, %121, %128
%130 = load double, double* %3
ret double %130
}

LLVM IR (-O2):
@__const.getOptimalDF.dfLUT = [576 x double] [double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 1.000000e+00, double 0x3FD25699F5FEC3D7, double 0x3FD40ED3F48AC435, double 0x3FD358EAC36468CD, double 0x3FD383FF2183BF54, double 0x3FD37821C29BCB0C, double 0x3FD2E492AA2BEBD5, double 0x3FD1F225DCCF1DB6, double 0x3FD0C47FCE0058C9, double 0x3FC824BDBDCFC3E1, double 0x3FCF23BA8ABF50A2, double 0x3FCB8CA9ED8EC779, double 0x3FC9ABCF39D0CC53, double 0x3FCC6F39D1F085DB, double 0x3FC7896D5136DC93, double 0x3FC030B20AF3F686, double 0x3FC3902A11A47045, double 0x3FC2C24750E52AD5, double 0x3FC26CEFEA8A6E24, double 0x3FC9D371A67904B2, double 0x3FC4109991789878, double 0x3FB8BF73DC46981C, double 0x3FC03C3C0FD77732, double 0x3FBEA89281F9AA2D, double 0x3FBE3C5A6617272D, double 0x3FC7672A4583ADDF, double 0x3FC16B896024982F, double 0x3FB481D00D4D0373, double 0x3FBA671B39EC77F2, double 0x3FB94683050A5CFD, double 0x3FB89FE5AF74A1FE, double 0x3FC96B37D571C305, double 0x3FC265C10C2FC17B, double 0x3FB100B56A148813, double 0x3FBAADEB96852CBD, double 0x3FB76FF9651683BD, double 0x3FB598D23470D68A, double 0x3FC5752774203402, double 0x3FBE8FE82AE384A7, double 0x3FADE3092E0E62CB, double 0x3FB7CDF79605A5C7, double 0x3FB811D24C3F636A, double 0x3FB35C3521E5C6B0, double 0x3FC30D9BB4F49FCF, double 0x3FB999BC578DC747, double 0x3FAA045F7F3355BA, double 0x3FB335ABFF0F3994, double 0x3FB1FB0C2208F61C, double 0x3FB14DE0F478EE0B, double 0x3FC1C4537B544CAE, double 0x3FBC8543081AEED8, double 0x3FA74A780DA8DE80, double 0x3FB292C071431C3F, double 0x3FB07C9FF27332CB, double 0x3FADF323F0126FA1, double 0x3FC03AC13D8EED61, double 0x3FB74458503C98DE, double 0x3FA50F4548A12A1C, double 0x3FB1BBEDFDC1FB3F, double 0x3FB222D0CD13BA13, double 0x3FAC1BBF9DF632E8, double 0x3FBD41D45E9E8FF6, double 0x3FB42D1FEB35000D, double 0x3FA3429FCAA01FCA, double 0x3FACF341CE87800D, double 0x3FAB0438571D9AE1, double 0x3FA86B01C2C3F276, double 0x3FBE8A7D842214E9, double 0x3FC2EDEE4A2A7E65, double 0x3FA1486755073A41, double 0x3FADCF1FB59FCA5A, double 0x3FA9E73F7174EAD8, double 0x3FA790B7A164E26B, double 0x3FBE7603A3273164, double 0x3FB29A65A3DE89D3, double 0x3FA0216C8CCE61FE, double 0x3FAA98F39A13983D, double 0x3FA8D59875F83416, double 0x3FA8C77CDEE76CA5, double 0x3FB8F5113DCBEF0A, double 0x3FB5E6BC405DD461, double 0x3F9DEAA9C93B587F, double 0x3FA8922AED98643B, double 0x3FA60FC521980D7C, double 0x3FA42AF838888466, double 0x3FB746F9D8F6E7AF, double 0x3FB1F9BF3B4F8552, double 0x3F9C7D5BA50935BB, double 0x3FB1A64772176FB0, double 0x3FA726F9D45F7677, double 0x3FA3E70F5B7FD7DB, double 0x3FB63063AC0F1876, double 0x3FAFC91E54405CA3, double 0x3F9AA2B7E21FA9D0, double 0x3FA59903E35C5BEB, double 0x3FA3DCD8FA919629, double 0x3FA254777157036C, double 0x3FB4603960A309CA, double 0x3FB332BEEB02D9A5, double 0x3F9943C4280EDD4F, double 0x3FA637E3F256DF7C, double 0x3FA3530F1F7C38AE, double 0x3FA109FA064A6099, double 0x3FB39C3935C88BD3, double 0x3FAE2442FBEC5BE8, double 0x3F9829716927F6CC, double 0x3FA46C905B5D9853, double 0x3FA2F2A95B22F145, double 0x3FA28E08D0438251, double 0x3FB2439AF8242A03, double 0x3FB10932B979819E, double 0x3F96A66A1FD83AFF, double 0x3FA31BD67E722F4F, double 0x3FA1065F5255E385, double 0x3F9E3C597CA1D973, double 0x3FB18FD3CE6A7723, double 0x3FAD87D85106C0C9, double 0x3F956DDB3C7C266E, double 0x3FAB7597CB77F55C, double 0x3FA37F63D70C6FEB, double 0x3F9E4FFC2BAEC0AF, double 0x3FB14720E78A92FF, double 0x3FA9ED345B1DBCD5, double 0x3F945BEF1AD568BB, double 0x3FA0CAC7660E67AC, double 0x3F9EEEE8FC174CD3, double 0x3F9CBADD0103A4A3, double 0x3FAFD6403C02ACFC, double 0x3FAC1B29F59D6495, double 0x3F93E65A151E7212, double 0x3FAA35E8E7AFFA46, double 0x3F9F2EE0B28D1954, double 0x3F9B156DFD9E6BA1, double 0x3FAE8568C2FAC2FB, double 0x3FA984078DCD7153, double 0x3F92D0218619D04A, double 0x3FA02803D9CC0878, double 0x3F9DA24A28D47256, double 0x3F9A313F8F31A0D3, double 0x3FAD075F6E086AC2, double 0x3FA9892B0CF25248, double 0x3F9203D914A0806A, double 0x3F9FB4ACDA6828C7, double 0x3F9BD9C66531C1CD, double 0x3F995F2C9E0A0418, double 0x3FACB925E94F489C, double 0x3FA8B11F5881163D, double 0x3F912726310485BC, double 0x3F9F6B878B39CD04, double 0x3F9E38D63D9417C1, double 0x3F9EE9CA72D6054D, double 0x3FAC5B336F4EA908, double 0x3FA80ED47F1307CA, double 0x3F90956E1268854C, double 0x3F9CBE4B39295DCF, double 0x3F997650E0AF6DAB, double 0x3F95B8828D5E1D7B, double 0x3FAA7B34A5A3A050, double 0x3FA70BAB18F878F9, double 0x3F9009883C787062, double 0x3FA41FFB7AD0F9DA, double 0x3F9B83B44F199FDA, double 0x3F98C8CC8C6A3851, double 0x3FAB5A7B7B688E6E, double 0x3FA69842444CA79B, double 0x3F8EF7E4405DB745, double 0x3F9AC15AB27215F1, double 0x3F9831C6C1CA287B, double 0x3F95A32951F18F6D, double 0x3FA8BE0621BED070, double 0x3FA604552251C353, double 0x3F8DC79653728075, double 0x3FA3EB7595479981, double 0x3F982942F6ED961F, double 0x3F952B9ADCC221A4, double 0x3FA79012B21DCAFB, double 0x3FA575107479EDC8, double 0x3F8D3DE6B28F2C26, double 0x3F99F87A8B9081CA, double 0x3F97F82BEEB7D09D, double 0x3F977970272D4DC5, double 0x3FA79A762C799713, double 0x3FA43CC178E16315, double 0x3F8C5AADA6B824DF, double 0x3F994650EB9A1392, double 0x3F9628BC43E5C84D, double 0x3F9409D9A399E4E8, double 0x3FA60DF472068DAF, double 0x3FA382C47E5FA359, double 0x3F8B261FF122E753, double 0x3FA1B159117BFD95, double 0x3F99CE33B97BD548, double 0x3F978AE29BD8B43D, double 0x3FA58BEA2F56CED8, double 0x3FA2B75F79BA6375, double 0x3F8A669C9F263C43, double 0x3F96C1C895B9A819, double 0x3F9492D02424B494, double 0x3F92C4AC64833529, double 0x3FA4B2B1A8C43AF5, double 0x3FA2BB32B6AC9C22, double 0x3F89DFE695418036, double 0x3FA09EDE1DFA3447, double 0x3F96336F261E852D, double 0x3F92724F5F512E7B, double 0x3FA48A7E78A87347, double 0x3FA20D6D8A7AF7DE, double 0x3F88FF3D421F94D7, double 0x3F963DFB16528743, double 0x3F940458101FDBA5, double 0x3F91EFA45713E529, double 0x3FA3D6BC066FB6A3, double 0x3FA1712AE0A9C3D6, double 0x3F8870C7822BE2CC, double 0x3FA01D8D0BF09054, double 0x3F93F5DFA64F3EF4, double 0x3F91636A75B9E1FE, double 0x3FA3B02D532B48BD, double 0x3FA1342709072F8B, double 0x3F87B5E5B5C06ADD, double 0x3F9EEC0D20FEF1A3, double 0x3F942BB5631C9BC3, double 0x3F9479185429C02D, double 0x3FA2C8271DEB8A45, double 0x3FA075CAED27E873, double 0x3F870BDB0425FFCF, double 0x3F9E67ADC1351D31, double 0x3F92726E89E76309, double 0x3F915D22B7FAC220, double 0x3FA34C53D5A9C94B, double 0x3FA1114DA564B892, double 0x3F8656918F1EB3F1, double 0x3F9D35E05B576A0F, double 0x3F962A5041D84CA4, double 0x3F93F9811630ABB1, double 0x3FA1EADFEA84721A, double 0x3FA002CA4831DE88, double 0x3F85F387CB4B1353, double 0x3F9352AB6285B8AF, double 0x3F9166C276D9FAB4, double 0x3F8F45238AE14356, double 0x3FA1C68D286FC6BA, double 0x3FA023915C54CEB0, double 0x3F8569EE56EBA050, double 0x3F9C20350049D0AF, double 0x3F92E1D09A37FA16, double 0x3F90C2E2E4875E78, double 0x3FA137939DD6BA39, double 0x3F9DDABA5F9C25F5, double 0x3F852C3262C6B10C, double 0x3F92F8D4AF0B4277, double 0x3F9129D0E60970E8, double 0x3F9092368895EED4, double 0x3FA0A924DAF19C67, double 0x3F9D2D655D5B53CC, double 0x3F8460461AB60251, double 0x3F9B184144F3FA59, double 0x3F90FA25FE7F8884, double 0x3F8D1D4167077226, double 0x3FA0A195F923B3BF, double 0x3F9D2FF85792EB32, double 0x3F8405F76F9E30F2, double 0x3F9BB9DA9A69404A, double 0x3F912DAACF52C539, double 0x3F9161E9BBBE9B2C, double 0x3FA086377EE23E2A, double 0x3F9C7AA28921DCFB, double 0x3F839D8B6ECBCFC4, double 0x3F99C8CCBBABB3A8, double 0x3F8FB675048D13A2, double 0x3F8B7B7E74385491, double 0x3FA02B4A2DB09934, double 0x3F9BD7B675CE7F0C, double 0x3F8332C955094822, double 0x3F98E100B18C811E, double 0x3F93006B47F72588, double 0x3F91002C9D99FCEB, double 0x3FA000D0ACD002E7, double 0x3F9BAB8695E8D2F9, double 0x3F82C1A13FD5F7C8, double 0x3F90B548ED9E0286, double 0x3F8E10143F12C3DC, double 0x3F8CF7A35A248002, double 0x3F9E9CFF2D58FEBA, double 0x3F9B17EC385372E6, double 0x3F824DE5B6FB1FA5, double 0x3F980EAD80B41167, double 0x3F90A129C9C495AE, double 0x3F8AE7CF57DEB05D, double 0x3F9D55B7FAF98A11, double 0x3F9AA5C0911BC6A6, double 0x3F81E4B2B7BF05AC, double 0x3F97902CF46B890D, double 0x3F8DE6EF027AC832, double 0x3F8A27305E63D011, double 0x3F9DB9E715AFDB04, double 0x3F998EF1E140B819, double 0x3F81C1BB94649D73, double 0x3F976412CEBDAA0E, double 0x3F8E19AEA5272ACF, double 0x3F89AC6BE14D4DC7, double 0x3F9B72D651C23513, double 0x3F9880FEA1B1858C, double 0x3F81684F62759BEF, double 0x3F969D6A5D5E8BC4, double 0x3F8E5146D36774B7, double 0x3F8EEC5B2CABEB68, double 0x3F9BFB4B358D6328, double 0x3F98723D0FFEF181, double 0x3F80F5B096DCBABC, double 0x3F966374A86189FD, double 0x3F8C42FD6E163CC8, double 0x3F8B2E384822A446, double 0x3F9B7C476E06A667, double 0x3F97DAD74D252060, double 0x3F809C760524A98C, double 0x3F95AF65358E2C89, double 0x3F905A88129C6313, double 0x3F8EC35E8ABF0CFA, double 0x3F9B0FC19D335946, double 0x3F972E0B8970BCB9, double 0x3F804B55C74EC8CB, double 0x3F958899F7040BB6, double 0x3F8A91174B3BBDB7, double 0x3F873330804704D5, double 0x3F9A695B4DDCC890, double 0x3F972B754E030D08, double 0x3F80384184BA80D8, double 0x3F94EF21E420B82D, double 0x3F8E633CB9B33512, double 0x3F8B55D3C250DC4C, double 0x3F99C9255580F4C4, double 0x3F96EF761BB3ECE9, double 0x3F7FC31AEF220E92, double 0x3F94ABFE7753A6C6, double 0x3F8ACA17E0ECEEFC, double 0x3F8A5C5BDCF0DBFA, double 0x3F99341BF3D18935, double 0x3F960FDAFC152966, double 0x3F7EFCDA78D7E614, double 0x3F949612C08823BE, double 0x3F8B1F84FED3A003, double 0x3F86205BBA1BD000, double 0x3F9914D3A2FBDBD1, double 0x3F962F231D1DF951, double 0x3F7E5F973DA739AF, double 0x3F93F05A21AA5A51, double 0x3F8AFE26A8F42289, double 0x3F8B0D05B0D0568A, double 0x3F98847CA281F042, double 0x3F957FCA29A196FE, double 0x3F7DDEE175D85C0C, double 0x3F93CADF050761BB, double 0x3F89327A1ECE3EEF, double 0x3F872DB2E55CEAB0, double 0x3F991C14030F79DD, double 0x3F95F50E908A789C, double 0x3F7D45393980BBC2, double 0x3F9337E3A610CF8A, double 0x3F8C821AE9707A59, double 0x3F8C1154F26810C3, double 0x3F9787B108D9EE2C, double 0x3F94C9B0E7ECB6D8, double 0x3F7CF76BD52D7E63, double 0x3F931C1B2DD28477, double 0x3F880FC8C9A8FD5E, double 0x3F84AB4EE2601ED0, double 0x3F96C8989E8C064D, double 0x3F9416FFBCA5DB3A, double 0x3F7C767D56274666, double 0x3F9283CF40126771, double 0x3F8BC8877A5571C2, double 0x3F89449E3F31D937, double 0x3F96F45A98685F4A, double 0x3F9419B2B723D88F, double 0x3F7BDFAE11541CFE, double 0x3F926A1EC5526008, double 0x3F87D87973163426, double 0x3F87E712F94D8A08, double 0x3F978F02C7C1013C, double 0x3F9409C8D8DE2830, double 0x3F7BD599F84F785F, double 0x3F926C897F414F9F, double 0x3F88AEBFC16C2D29, double 0x3F871207592229F5, double 0x3F96ADCCD94A69E7, double 0x3F937B8BEFEAF4C0, double 0x3F7B251153551F4D, double 0x3F91D55275597079, double 0x3F885424BFF0F286, double 0x3F887753D5AD6AA4, double 0x3F96C30C3DEBD128, double 0x3F936976A516B7E4, double 0x3F7B074DFE39FA01, double 0x3F91BB95D1E7620E, double 0x3F8729528602410B, double 0x3F8502F4B9CACA53, double 0x3F95E17C918C07A5, double 0x3F9329E7AB19301E, double 0x3F7A4B2A38098E19, double 0x3F91420272587EB4, double 0x3F897F1AEDB1C98C, double 0x3F8B88ADB3E5E61F, double 0x3F94D44BC29C1269, double 0x3F9265FA9F38D626, double 0x3F7A48BC81096AEF, double 0x3F912DDD15C00587, double 0x3F85FE76DC737B2D, double 0x3F8490D180F1F0FB, double 0x3F951221325C709F, double 0x3F927E7B9CFBB0C8, double 0x3F79EAAD5F9321B5, double 0x3F90B058C2EF9C68, double 0x3F8A5D3EFE2D006A, double 0x3F871F2AFEEFC7A0, double 0x3F947C15F608D54F, double 0x3F92405B773C50B7, double 0x3F795610E3B37B70, double 0x3F909A339CACDD57, double 0x3F85D9E8F2AB7714, double 0x3F85CB2DBEE85B93, double 0x3F940B59AD84EA6C, double 0x3F92091B7979D4BF, double 0x3F78F1A725D83DC9, double 0x3F90ADF622E71611, double 0x3F86E4ED55F04C39, double 0x3F8639F8ACB40DB1, double 0x3F943B32E6317ECA, double 0x3F91BC99A0357CDA, double 0x3F78B9E0AFC6E945, double 0x3F902046A3A6F6E1, double 0x3F860CE55543AE9F, double 0x3F87B1BBE6A5F7FD, double 0x3F93AB13A196CBC5, double 0x3F91278685D9F3F0, double 0x3F78802FFD4AE38D, double 0x3F901235D3F2EF22, double 0x3F8566D37DFF5EA1, double 0x3F81D0E12F714EC9, double 0x3F93B790570B6D1A, double 0x3F9178FC1237064F, double 0x3F780D75B5301E59, double 0x3F8F53B42494AD8B, double 0x3F871CAA50957791, double 0x3F8C76D57B0769AB, double 0x3F93869576C540B3, double 0x3F90DBAE9C75196A, double 0x3F77B2035F46A29B, double 0x3F8F371FE342D937, double 0x3F845B97FBDC4F1A, double 0x3F824C7FC28DA966, double 0x3F9333EC45C056F4, double 0x3F90B696A33DF9E5, double 0x3F77442282DDE061, double 0x3F8E6C16C2B7C37F, double 0x3F900781476E1C79, double 0x3F8451397C8DC136, double 0x3F932878FB69CC5E, double 0x3F90AE667614498A, double 0x3F77302EBE288279, double 0x3F8E3AC7B58C0778, double 0x3F83EB7E7CBDD61B, double 0x3F80E8D6E24326CB, double 0x3F9332C75EF277D1, double 0x3F908BCC6EF8333D, double 0x3F76F5412B77EB41, double 0x3F8E67ABAC4E3895, double 0x3F85982A5F467212, double 0x3F82451B38557905, double 0x3F9247682B374696, double 0x3F9006D463F2EA68, double 0x3F765E179A35DE7C, double 0x3F8D700C2F8726EB, double 0x3F8440DD70B06695, double 0x3F81267375D9A119, double 0x3F92600800223DDD, double 0x3F8FC1785F2B2706, double 0x3F76380F6FD9F5F2, double 0x3F8D67EEEBE7DD6A, double 0x3F8442052B7DAF23, double 0x3F808340323D9E53, double 0x3F91A984F7D152EA, double 0x3F8F51E387CE0272, double 0x3F762647CF8142C8, double 0x3F8CA8390EDD1345, double 0x3F85686F5C91A9AB, double 0x3F7E7F794E3B008E, double 0x3F923518D386C8F8, double 0x3F8F127B54C1265C, double 0x3F75B08263AD220D, double 0x3F8C99AF5F8483E3, double 0x3F830BEABAEA7CF8, double 0x3F7F4A800939A0CA, double 0x3F91C50D640D60D5, double 0x3F8EC6BBB0048AB2, double 0x3F756DF1B4941B9E, double 0x3F8BE2C4DE2EEA3D, double 0x3F8D7261B5B31367, double 0x3F7E20080EABA14B, double 0x3F9148FB717E32FA, double 0x3F8E24F76515B0CA, double 0x3F74FE482FB9ED23, double 0x3F8BBD9138FAB5E0, double 0x3F82A270C03339E7, double 0x3F7D657F114F0FA7, double 0x3F917CA8F7CA5E95, double 0x3F8E40A910F46702, double 0x3F7514D8C045DB39, double 0x3F8BDC6DC3930F0B, double 0x3F899D978DC8B14F, double 0x3F7E8EECB825A05C, double 0x3F913A0E4CA94EE0, double 0x3F8E5C01EA4CD1B4, double 0x3F74B14DBDB7A270, double 0x3F8B1237EA8FDAA6, double 0x3F834DF1EEDAA3E3, double 0x3F7D80786E37A888, double 0x3F9099259E8FC95C, double 0x3F8D4333F5E5525A, double 0x3F748B2F94F086D6, double 0x3F8B1BDFEF5ED1E2, double 0x3F8368C6EA8FC6DE, double 0x3F7B7CAE7149CB4D, double 0x3F90B0D556F8FB30, double 0x3F8D6D1D657D1F84, double 0x3F745DA3392667D1, double 0x3F8A6B89B59E33AE, double 0x3F8BBB18F287424D, double 0x3F7C4093BE2B952F, double 0x3F902672C3F151A6, double 0x3F8C5BBD6D77A04E, double 0x3F73E1C3B189AE6D, double 0x3F8A641862E069CE, double 0x3F816D2510131F78, double 0x3F7BF6BB3CE82BBF, double 0x3F902A07A82180D6, double 0x3F8C5D622B32F003, double 0x3F73E3B09D25FB3B, double 0x3F89C3C5A91A2C0E, double 0x3F8B1BDE8FB6E03F, double 0x3F7A7B0B1E0CFF0A, double 0x3F907115D4879A30, double 0x3F8C6399D2CA7F71, double 0x3F73A22B3EB5B5C5, double 0x3F899FF3A0E9F063, double 0x3F8045AE58572417, double 0x3F7B1534376D7EAE, double 0x3F90390F222AFA4A, double 0x3F8BCC0D2A689D5B, double 0x3F738BA695B22CCE, double 0x3F88DE184FC9B234, double 0x3F7FE30267CCCA79, double 0x3F79395DC1ACA026, double 0x3F8FE3874E7EFC57, double 0x3F8BD7E11DD11ABC, double 0x3F73525E5E50447D, double 0x3F89032AD770A7CD, double 0x3F7F0FD32151AF1B, double 0x3F7A6872C8E10121, double 0x3F8F384FB1AA2D77, double 0x3F8AF85CD8B3D768, double 0x3F732F6824832DAB, double 0x3F88BB9883489E0D, double 0x3F7EFDF8D3E60236, double 0x3F797617D58A7C66, double 0x3F8EA0090504F3B5, double 0x3F8AB402DE6AFBF4, double 0x3F72B3479A320D7C, double 0x3F884FEB95494951, double 0x3F7E52F740282CD7, double 0x3F7A005F5AF492B0]
define double @getOptimalDF(i32 %0, i32 %1) {
%3 = icmp eq i32 %1, 0
br i1 %3, label %69, label %4
4: ; preds = %2
%5 = icmp ult i32 %1, 7
br i1 %5, label %6, label %64
6: ; preds = %4
%7 = icmp ult i32 %0, 97
br i1 %7, label %8, label %15
8: ; preds = %6
%9 = mul nuw nsw i32 %0, 6
%10 = add nuw nsw i32 %1, -7
%11 = add nsw i32 %10, %9
%12 = zext i32 %11 to i64
%13 = getelementptr inbounds [576 x double], [576 x double]* @__const.getOptimalDF.dfLUT, i64 0, i64 %12
%14 = load double, double* %13
br label %69
15: ; preds = %6
switch i32 %1, label %56 [
i32 1, label %16
i32 2, label %24
i32 3, label %32
i32 4, label %40
i32 5, label %48
]
16: ; preds = %15
%17 = uitofp i32 %0 to double
%18 = fmul double %17, -1.129400e-01
%19 = tail call double @exp(double %18)
%20 = fmul double %17, -1.309200e-02
%21 = tail call double @exp(double %20)
%22 = fmul double %21, 5.489500e-02
%23 = tail call double @llvm.fmuladd.f64(double %19, double 2.892000e-01, double %22)
br label %69
24: ; preds = %15
%25 = uitofp i32 %0 to double
%26 = fmul double %25, -2.700400e-01
%27 = tail call double @exp(double %26)
%28 = fmul double %25, -2.197800e-02
%29 = tail call double @exp(double %28)
%30 = fmul double %29, 8.958000e-02
%31 = tail call double @llvm.fmuladd.f64(double %27, double 3.717700e-01, double %30)
br label %69
32: ; preds = %15
%33 = uitofp i32 %0 to double
%34 = fmul double %33, -4.844000e-01
%35 = tail call double @exp(double %34)
%36 = fmul double %33, -3.079300e-02
%37 = tail call double @exp(double %36)
%38 = fmul double %37, 4.553000e-02
%39 = tail call double @llvm.fmuladd.f64(double %35, double 6.658000e-01, double %38)
br label %69
40: ; preds = %15
%41 = uitofp i32 %0 to double
%42 = fmul double %41, -3.641900e-01
%43 = tail call double @exp(double %42)
%44 = fmul double %41, -1.904000e-02
%45 = tail call double @exp(double %44)
%46 = fmul double %45, 6.150900e-02
%47 = tail call double @llvm.fmuladd.f64(double %43, double 5.065600e-01, double %46)
br label %69
48: ; preds = %15
%49 = uitofp i32 %0 to double
%50 = fmul double %49, -3.870600e-01
%51 = tail call double @exp(double %50)
%52 = fmul double %49, -2.535700e-02
%53 = tail call double @exp(double %52)
%54 = fmul double %53, 6.065600e-02
%55 = tail call double @llvm.fmuladd.f64(double %51, double 5.155400e-01, double %54)
br label %69
56: ; preds = %15
%57 = uitofp i32 %0 to double
%58 = fmul double %57, -4.018700e-01
%59 = tail call double @exp(double %58)
%60 = fmul double %57, -2.742500e-02
%61 = tail call double @exp(double %60)
%62 = fmul double %61, 5.757900e-02
%63 = tail call double @llvm.fmuladd.f64(double %59, double 5.190800e-01, double %62)
br label %69
64: ; preds = %4
%65 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @max to i32 (i32, i32, ...)*)(i32 %0, i32 %1)
%66 = sitofp i32 %65 to double
%67 = fmul double %66, 1.500000e+00
%68 = fdiv double 1.000000e+00, %67
br label %69
69: ; preds = %2, %8, %16, %24, %32, %40, %48, %56, %64
%70 = phi double [ %14, %8 ], [ %23, %16 ], [ %31, %24 ], [ %39, %32 ], [ %47, %40 ], [ %55, %48 ], [ %63, %56 ], [ %68, %64 ], [ 0.000000e+00, %2 ]
ret double %70
}