// Persistence of Vision Ray Tracer Include File // File: gamma.inc // Desc: gamma function approximation // part of waves.inc water wave simulation // Date: November 2001 // Auth: Christoph Hormann #declare GAMMA_ARR = array[1001] { 999999.422785323, 99.4325851191505, 49.4422101631957, 32.7849983517941, 24.4609550228561, 19.4700853112555, 16.1457274918606, 13.7736006077338, 11.9965663835353, 10.6162165352756, 9.51350769866873, 8.61268640035729, 7.86325154678253, 7.23024192101199, 6.68868618338428, 6.22027287404988, 5.81126916645613, 5.45117418010421, 5.13182119054465, 4.84676335333494, 4.5908437119988, 4.35988806192076, 4.15048157959278, 3.95980372335778, 3.78550440974983, 3.62560990822191, 3.47845045311891, 3.34260394246484, 3.21685170182962, 3.10014340098713, 2.99156898768759, 2.89033605401171, 2.79575144690836, 2.70720622261519, 2.62416325649848, 2.54614697721229, 2.47273481210033, 2.40355002007865, 2.33825565639831, 2.27654946611879, 2.21815954375769, 2.16284062829634, 2.11037092764029, 2.06054938633597, 2.01319332601839, 1.96813640060238, 1.92522681831553, 1.88432579082438, 1.84530617633088, 1.80805128892389, 1.77245385090552, 1.73841506846386, 1.70584381408396, 1.67465590159559, 1.64477344184609, 1.61612426873358, 1.58864142680254, 1.56226271283873, 1.53693026494352, 1.51259019345232, 1.48919224881282, 1.46668952217975, 1.44503817503039, 1.4241971945744, 1.40412817213507, 1.38479510202651, 1.36616419875147, 1.34820373060428, 1.33088386798878, 1.31417654495735, 1.29805533264756, 1.28249532344245, 1.26747302481095, 1.252966261899, 1.23895408804303, 1.22541670246518, 1.21233537448837, 1.19969237367745, 1.1874709053741, 1.17565505114681, 1.1642297137253, 1.15318056603125, 1.14249400395508, 1.13215710256239, 1.12215757544374, 1.11248373694847, 1.10312446706738, 1.09406917875078, 1.08530778746772, 1.07683068282991, 1.06862870211932, 1.06069310557269, 1.0530155532891, 1.04558808363803, 1.03840309305596, 1.03145331712903, 1.02473181286759, 1.01823194208659, 1.01194735581251, 1.00587197964411, 1.0, 0.994325851191506, 0.988844203263913, 0.983549950553824, 0.978438200914245, 0.973504265562776, 0.968743649511638, 0.964152042541366, 0.959725310682822, 0.955459488174801, 0.951350769866873, 0.947395504039302, 0.943590185613904, 0.939931449731558, 0.936416065673799, 0.933040931107482, 0.92980306663298, 0.926699610617716, 0.923727814298037, 0.92088503713364, 0.918168742399761, 0.915576493003359, 0.913105947510411, 0.910754856372289, 0.908521058339959, 0.906402477055477, 0.904397117810918, 0.902503064465506, 0.900718476512295, 0.899041586286269, 0.897470696306277, 0.896004176743631, 0.894640463010675, 0.893378053463013, 0.892215507209484, 0.891151442024301, 0.890184532356117, 0.889313507429102, 0.888537149431357, 0.88785429178633, 0.887263817503075, 0.886764657601501, 0.886355789608922, 0.886036236124469, 0.885805063448092, 0.885661380271072, 0.885604336425144, 0.88563312168746, 0.885746964638824, 0.885945131572707, 0.886226925452758, 0.886591684916571, 0.887038783323661, 0.887567627845664, 0.888177658596888, 0.888868347803466, 0.889639199009425, 0.890489746318076, 0.891419553667241, 0.892428214136867, 0.89351534928769, 0.894680608529649, 0.895923668518844, 0.897244232581873, 0.898642030166443, 0.900116816317232, 0.901668371175973, 0.903296499504866, 0.905001030232371, 0.906781816020575, 0.90863873285329, 0.910571679644141, 0.912580577863881, 0.914665371186272, 0.916826025151839, 0.919062526848883, 0.921374884611161, 0.923763127731639, 0.926227306191801, 0.928767490405982, 0.931383770980243, 0.934076258485314, 0.936845083243165, 0.939690395126781, 0.942612363372738, 0.945611176406196, 0.948687041677948, 0.951840185513178, 0.955070852971593, 0.958379307718623, 0.961765831907387, 0.965230726071148, 0.968774309025974, 0.972396917783367, 0.976098907472606, 0.979880651272581, 0.983742540352887, 0.987684983823992, 0.991708408696261, 0.995813259847667, 1.0, 1.00426910970342, 1.00862108732919, 1.01305644907044, 1.01757572895081, 1.02217947884091, 1.02686826848234, 1.03164268551926, 1.03650333553745, 1.04145084211053, 1.04648584685356, 1.05160900948363, 1.05682100788757, 1.06212253819666, 1.06751431486813, 1.0729970707736, 1.07857155729426, 1.08423854442273, 1.08999882087168, 1.09585319418903, 1.10180249087971, 1.10784755653406, 1.1139892559627, 1.12022847333792, 1.12656611234155, 1.13300309631935, 1.13954036844176, 1.14617889187119, 1.15291964993574, 1.15976364630929, 1.16671190519816, 1.17376547153416, 1.18092541117409, 1.18819281110581, 1.19556877966071, 1.20305444673281, 1.21065096400432, 1.21835950517787, 1.22618126621527, 1.234117465583, 1.24216934450431, 1.25033816721812, 1.25862522124467, 1.26703181765799, 1.27555929136525, 1.28420900139305, 1.29298233118071, 1.30188068888057, 1.31090550766546, 1.32005824604333, 1.32934038817914, 1.33875344422402, 1.34829895065197, 1.35797847060387, 1.36779359423921, 1.37774593909537, 1.3878371504547, 1.39806890171938, 1.40844289479424, 1.41896086047762, 1.4296245588603, 1.44043577973273, 1.45139634300053, 1.46250809910845, 1.47377292947297, 1.48519274692343, 1.49676949615212, 1.50850515417313, 1.52040173079038, 1.53246126907477, 1.54468584585059, 1.55707757219148, 1.56963859392588, 1.58237109215225, 1.5952772837642, 1.60835942198555, 1.62161979691564, 1.635060736085, 1.64868460502141, 1.66249380782671, 1.67649078776444, 1.69067802785842, 1.70505805150256, 1.71963342308201, 1.73440674860584, 1.74938067635146, 1.76455789752098, 1.77994114690964, 1.79553320358659, 1.8113368915882, 1.82735508062404, 1.84359068679589, 1.86004667332987, 1.8767260513219, 1.89363188049686, 1.91076726998153, 1.92813537909166, 1.94573941813326, 1.9635826492186 , 1.98166838709686, 2.0, 2.01858091050388, 2.03741459640497, 2.05650459161299, 2.07585448705966, 2.09546793162387, 2.11534863307361, 2.13550035902487, 2.15592693791789, 2.17663226001101, 2.19762027839248, 2.21889501001045, 2.24046053672165, 2.26232100635889, 2.2844806338178, 2.30694370216325, 2.3297145637556, 2.35279764139732, 2.37619742950027, 2.39991849527398, 2.42396547993537, 2.44834309994028, 2.4730561482372, 2.49810949554355, 2.52350809164507, 2.54925696671853, 2.57536123267837, 2.60182608454761, 2.62865680185348, 2.65585875004827, 2.68343738195577, 2.7113982392439, 2.73974695392389, 2.76848924987653, 2.79763094440606, 2.82717794982209, 2.85713627505019, 2.88751202727155, 2.91831141359235, 2.94954074274337, 2.98120642681033, 3.01331498299566, 3.0458730354121, 3.07888731690892, 3.11236467093121, 3.14631205341298, 3.18073653470455, 3.215645301535, 3.25104565901034, 3.2869450326479 , 3.32335097044784, 3.36027114500229, 3.39771335564295, 3.43568553062778, 3.47419572936759, 3.5132521446932, 3.55286310516404, 3.5930370774188, 3.63378266856914, 3.67510862863703, 3.71702385303679, 3.75953738510244, 3.80265841866138, 3.84639630065523, 3.89076053380863, 3.93576077934709, 3.98140685976463, 4.02770876164225, 4.07467663851823, 4.12232081381113, 4.1706517837966, 4.21968022063891, 4.26941697547838, 4.31987308157565, 4.37105975751391, 4.42298841046025, 4.47567063948718, 4.52911823895545, 4.58334320195951, 4.63835772383651, 4.69417420574042, 4.75080525828215, 4.80826370523722, 4.86656258732209, 4.92571516604058, 4.98573492760167, 5.04663558691001, 5.10843109163068, 5.17113562632939, 5.23476361668989, 5.2993297338097, 5.36484889857605, 5.43133628612322, 5.49880733037316, 5.56727772866076, 5.63676344644552, 5.70728072211131, 5.77884607185579, 5.85147629467142, 5.9251884774196, 6.0, 6.07592854061667, 6.152992081143, 6.23120891258736, 6.31059764066137, 6.39117719145282, 6.47296681720525, 6.55598610220636, 6.64025496878711, 6.72579368343403, 6.81262286301668, 6.9007634811325, 6.99023687457156, 7.08106474990332, 7.17326919018789, 7.26687266181423, 7.36189802146768, 7.4583685232295, 7.55630782581085, 7.65573999992399, 7.75668953579318, 7.8591813508083, 7.96324079732378, 8.06889367060568, 8.17616621693003, 8.28508514183522, 8.39567761853148, 8.50797129647067, 8.62199431007942, 8.7377752876588, 8.85534336045404, 8.97472817189732, 9.09595988702732, 9.21906920208885, 9.34408735431624, 9.47104613190401, 9.59997788416866, 9.73091553190513, 9.86389257794214, 9.99894311790001, 10.1361018511551, 10.2754040920152, 10.4168857811094, 10.5605834969976, 10.7065344680034, 10.8547765842748, 11.0053484100777, 11.1582891963264, 11.313638893356, 11.4714381639412, 11.6317283965674, 11.7945517189581, 11.9599510118632, 12.1279699231161, 12.2986528819613, 12.4720451136609, 12.648192654384, 12.8271423663851, 13.0089419534775, 13.1936399768069, 13.3812858709324, 13.5719299602198, 13.7656234755542, 13.9624185713785, 14.1623683430634, 14.3655268446169, 14.5719491067385, 14.781691155227, 14.9948100297471, 15.2113638029631, 15.4314116000474, 15.6550136185704, 15.8822311487796, 16.1131265942772, 16.347763493102, 16.5862065392259, 16.8285216044718, 17.074775760862 , 17.3250373034069, 17.5793757733404, 17.8378619818136, 18.100568034055, 18.3675673540062, 18.6389347094436, 18.9147462375958, 19.1950794712664, 19.4800133654727, 19.7696283246107, 20.064006230158, 20.3632304689237, 20.6673859618579, 20.9765591934324, 21.290838241603, 21.6103128083665, 21.9350742509234, 22.2652156134598, 22.6008316595608, 22.9420189052675, 23.2888756527923, 23.6415020249042, 24.0, 24.3644734478728, 24.7350281661948, 25.1117719177271, 25.4948144682719, 25.8842676253839, 26.2802452778533, 26.6828634359799, 27.0922402726514, 27.5084961652452, 27.9317537383684, 28.3621379074546, 28.7997759232348, 29.2447974171007, 29.6973344473779, 30.1575215465291, 30.6254957693056, 31.101396741867, 31.5853667118894, 32.0775505996815, 32.5780960503314, 33.087153486903, 33.6048761647063, 34.131420226662, 34.6669447597833, 35.2116118527997, 35.7655866549441, 36.3290374359298, 36.9021356471399, 37.4850559840562, 38.0779764499523, 38.6810784208774, 39.294546711958, 39.9185696450447, 40.5533391177325, 41.1990506737825, 41.8559035749754, 42.5241008744254, 43.2038494913866, 43.895360287581, 44.5988481450826, 45.3145320457871, 46.0426351525035, 46.7833848916993, 47.537013037935, 48.3037558000228, 49.0838539089467, 49.8775527075792, 50.6851022422348, 51.5067573560959, 52.3427777845535, 53.1934282525008, 54.0589785736216, 54.9397037517158, 55.8358840841041, 56.7478052671569, 57.6757585039909, 58.6200406143801, 59.580954146927, 60.5588074935439, 61.5539150062892, 62.5665971166133, 63.5971804570604, 64.6459979854824, 65.7133891118143, 66.7996998274686, 67.9052828374016, 69.0304976949103, 70.1757109392163, 71.3412962358969, 72.5276345202229, 73.7351141434664, 74.9641310222396, 76.215088790931, 77.4883989573035, 78.7844810613232, 80.1037628372857, 81.446680379312, 82.8136783102852, 84.2052099543004, 85.6217375127053, 87.0637322438045, 88.5316746463098, 90.0260546466125, 91.5473717899638, 93.096135435642, 94.6728649561971, 96.2780899408542, 97.9123504031712, 99.5761969930367, 101.270191213103, 102.994905639753, 104.750924148687, 106.538842145247, 108.359266799562, 110.212817286626, 112.100125031421, 114.021833959179, 115.978600750905, 117.971095104272, 120.0, 122.066011973843, 124.169841394298, 126.312212746167, 128.493864920091, 130.715551508189, 132.978041105938, 135.282117620418, 137.628580585069, 140.018245481098, 142.451944065679, 144.930524707093, 147.454852726962, 150.025810749727, 152.644299059522, 155.311235964625, 158.027558169617, 160.794221155452, 163.612199567587, 166.482487612347, 169.406099461723, 172.384069666764, 175.417453579767, 178.507327785442, 181.654790541265, 184.860962227198, 188.126985805006, 191.45402728735, 194.843276216899, 198.295946155658, 201.813275184747, 205.396526414859, 209.046988507617, 212.765976208088, 216.554830888691, 220.414921104736, 224.347643161868, 228.354421695664, 232.43671026366, 236.595991950062, 240.833779983446, 245.151618367708, 249.551082526569, 254.033779961927, 258.601350926367, 263.255469110124, 267.997842342849, 272.830213310458, 277.754360287447, 282.772097884967, 287.885277815044, 293.095789671279, 298.405561726391, 303.816561746988, 309.330797825937, 314.950319232721, 320.677217282189, 326.513626222097, 332.461724139853, 338.52373388891, 344.70192403522 , 350.998609824201, 357.41615416868, 363.956968658266, 370.623514590632, 377.418304025198, 384.343900859693, 391.402921930141, 398.598038134749, 405.931975582253, 413.407516765271, 421.027501759193, 428.794829447211, 436.712458772035, 444.783410014922, 453.010766102609, 461.397673942765, 469.94734578863, 478.663060633449, 487.5481656354, 496.606077573691, 505.840284336504, 515.254346441523, 524.851898589751, 534.636651253388, 544.612392298506, 554.782988643315, 565.152387952814, 575.724620370647, 586.503800288986, 597.494128157311, 608.699892330939, 620.125470960226, 631.775333921314, 643.654044789395, 655.766262855425, 668.116745187272, 680.710348736301, 693.552032490415, 706.64685967459, 720.0, 733.616731962796, 747.502445193675, 761.662642859388, 776.102944117347, 790.829086624542, 805.846929101983, 821.162453955938, 836.78176995722, 852.711114979887, 868.95685880064, 885.525505960338, 902.423698689009, 919.658219895824, 937.235996225467, 955.164101182442, 973.449758324839, 992.100344529142, 1011.12339332769, 1030.52659832043, 1050.31781666268, 1070.50507263061, 1091.09656126615, 1112.10065210331, 1133.52589297749, 1155.38101391999, 1177.67493113934, 1200.41675109168, 1223.61577464212, 1247.28150131909, 1271.42363366391, 1296.05208167776, 1321.17696736814, 1346.8086293972, 1372.9576278343, 1399.63474901507, 1426.85101050948, 1454.61766620138, 1482.94621148215, 1511.84838856089, 1541.33619189405, 1571.42187373701, 1602.11794982057, 1633.43720515519, 1665.3926999658, 1697.9977757603, 1731.2660615348, 1765.21148011867, 1799.84825466266, 1835.19091527343, 1871.25430579779, 1908.05359076003, 1945.60426245607, 1983.92214820783, 2023.02341778163, 2062.92459097432, 2103.64254537116, 2145.19452427918, 2187.59814484023, 2230.87140632792, 2275.03269863245, 2320.10081093797, 2366.09494059666, 2413.0347022043, 2460.9401368818, 2509.83172176756, 2559.73037972556, 2610.65748927404, 2662.63489474012, 2715.68491664528, 2769.83036232731, 2825.09453680419, 2881.50125388525, 2939.07484753579, 2997.84018350058, 3057.8226711926, 3119.04827585309, 3181.54353098902, 3245.33555109478, 3310.45204466436, 3376.9213275011, 3444.77233633159, 3514.03464273119, 3584.738467368, 3656.91469457318, 3730.59488724476, 3805.81130209314, 3882.59690523583, 3960.98538815005, 4041.01118399111, 4122.70948428545, 4206.11625600679, 4291.26825904476, 4378.2030640747, 4466.95907083841, 4557.57552684521, 4650.09254650341, 4744.55113069202, 4840.9931867831, 4939.46154912538, 5039.99999999999, 5142.6532910592, 5247.4671652596, 5354.48837930149, 5463.76472658611, 5575.34506070302, 5689.27931946001, 5805.61854946848, 5924.41493129712, 6045.7218052074, 6169.59369748454, 6296.08634737799, 6425.25673466573, 6557.16310785723, 6691.86501304984, 6829.42332345446, 6969.90026960585, 7113.35947027394, 7259.86596409279, 7409.48624192388, 7562.2882799713, 7718.34157366669, 7877.71717234162, 8040.4877147069, 8206.72746515704, 8376.51235091991, 8549.92000007159, 8727.02978043653, 8907.92283939465, 9092.68214461612, 9281.39252574655, 9474.14071706445, 9671.01540113477, 9872.10725348148, 10077.5089883038, 10287.3154052608, 10501.6234373498, 10720.5321999042, 10944.1430407383, 11172.559591465, 11405.887820016, 11644.2360843912, 11887.7151876686, 12136.4384343031, 12390.5216877455, 12650.0834294143, 12915.2448190496, 13186.1297564865, 13462.8649448767, 13745.579955398, 14034.4072934834, 14329.4824666078, 14630.9440536696, 14938.933776005, 15253.5965700734, 15575.0806618561, 15903.537643006, 16239.1225487934, 16581.993937889, 16932.3139740289, 17290.2485096066, 17655.9671712379, 18029.6434473465, 18411.4547778188, 18801.582645777, 19200.2126715219, 19607.5347086978, 20023.7429427319, 20449.0359916041, 20883.6170090021, 21327.6937899203, 21781.4788787603, 22245.1896799942, 22719.0485714517, 23203.2830202945, 23698.1257017427, 24203.81462062, 24720.5932357847, 25248.7105875174, 25788.4214279354, 26339.9863545086, 26903.6719467498, 27479.7509061579, 28068.5021994915, 28670.2112054537, 29285.1698648714, 29913.676834452, 30556.037644206, 31212.5648586225, 31883.57824169, 32569.404925855, 33270.3795850137, 33986.8446116345, 34719.1502981124, 35467.6550224568, 36232.7254384193, 37014.7366701672, 37814.0725116155, 38631.1256305291, 39466.2977775118, 40320.0, 41192.6528613841, 42084.6866653819, 42996.5416857909, 43928.6684017523, 44881.5277386594, 45855.5913148477, 46851.3416942107, 47869.2726448807, 48909.8894041279, 49973.7089496247, 51061.2602772355, 52173.0846854858, 53309.7360668793, 54471.7812062258, 55659.8000861539, 56874.3861999837, 58116.1468721381, 59385.703586279, 60683.6923213565, 62010.7638957647, 63367.5843198035, 64754.8351566481, 66173.2138920379, 67623.434312894, 69106.2268950894, 70622.3392005912, 72172.5362842101, 73757.6011101877, 75378.3349788675, 77035.5579636965, 78730.1093588056, 80462.8481374413, 82234.6534215006, 84046.4249624535, 85899.0836339276, 87793.5719362439, 89730.8545131979, 91711.9186813868, 93737.7749723917, 95809.4576881345, 97928.0254697303, 100094.56188017, 102310.176001175, 104576.003044572, 106893.20497855, 109262.97116916, 111686.51903744, 114165.094732554, 116699.973821329, 119292.461994609, 121943.895790833, 124655.643337265, 127429.105109322, 130265.714708427, 133166.93965887, 136134.282224131, 139169.280243159, 142273.507987087, 145448.577036908, 148696.137182617, 152017.877344358, 155415.526516127, 158890.854732577, 162445.674059513, 166081.839608664, 169801.250577323, 173605.851313486, 177497.632407124, 181478.631808229, 185550.935972306, 189716.681034003, 193978.05400955, 198337.294028773, 202796.693597373, 207358.599890249, 212025.416076631, 216799.602677832, 221683.678958402, 226680.224351551, 231791.879919676, 237021.349850866, 242371.402992313, 247844.874421509, 253444.667056211, 259173.753304112, 265035.176753245, 271032.053904107, 277167.575944567, 283445.010568624, 289867.70384011, 296439.082102473, 303162.65393578, 310042.012162144, 317080.835900765, 324282.892673853, 331652.040564699, 339192.230429191, 346907.508162151, 354802.017019831, 362000.0 } #macro Frac(Z) (Z - int(Z)) #end #macro gamma(Z) #if ((Z>=0) & (Z<10)) ( GAMMA_ARR[floor(Z*100)]*(1-Frac(Z*100)) + GAMMA_ARR[ceil(Z*100)]*Frac(Z*100) ) #else 362000.0 + 10*362000.0*(Z-10) #end #end