News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

Fast and precise pow (Rebuilding _libm_sse2_pow_precise)

Started by guga, May 16, 2025, 09:48:42 PM

Previous topic - Next topic

guga

Hello everyone, has anyone ever used fixed mathematical series tables to accurately calculate the pow of a number? I managed to recreate the _libm_sse2_pow_precise API from ucrtbased.dll but I'm having trouble understanding how the values in the tables were obtained. Has anyone seen these values before? I was able to more or less understand how the values in the first table were generated (I still need to understand a certain sequence used in this table). But I didn't understand how the values in the other tables were obtained. My idea is to be able to recreate these tables automatically, with a specific function that creates them. That way I can understand exactly how the function was created, and which mathematical equations were used to further improve the precision (which is around 15/16 digits).

The 1st table is:

; Array of 130 Real8 (In fact, it is 128, but it contains 2 extra Real8 seems to be used for alignment)
; 1st value = 16384/16384 = 16384/(256*64) = ((128*128)+0)/((128)*128) = ((128*128)+0/2)/((128)*128)
; 2nd value = 16257/16384 = 16257/(256*64) = ((127*128)+1)/((128)*128) = ((127*128)+2/2)/((128)*128) = ((127*128)+(128*(1/64))/2)/((128)*128)
; 3rd value = 16132/16384 = 16132/(256*64) = ((126*128)+4)/((128)*128) = ((126*128)+8/2)/((128)*128) = ((126*128)+(128*(4/64))/2)/((128)*128)
; 4th value = 16009/16384 = 16009/(256*64) = ((125*128)+9)/((128)*128) = ((125*128)+18/2)/((128)*128) = ((125*128)+(128*(9/64))/2)/((128)*128)
; 5th value = 15887.5/16384 = 15887.5/(256*64) = ((124*128)+15.5)/((128)*128) = ((124*128)+31/2)/((128)*128) = ((124*128)+(128*(15.5/64))/2)/((128)*128)
; 6th value = 15768/16384 = 15768/(256*64) = ((123*128)+24)/((128)*128) = ((123*128)+48/2)/((128)*128) = ((123*128)+(128*(24/64))/2)/((128)*128)
; 128th value = ((0*128)+16384/2)/((128)*128) ?
[<16 acrt_pow_rcp_t1:   R$ 1.0,                 0.99224853515625,   0.984619140625,     0.97711181640625,
                        R$ 0.969696044921875,   0.96240234375,      0.955230712890625,  0.948150634765625,
                        R$ 0.941162109375,      0.934295654296875,  0.92755126953125,   0.920867919921875,
                        R$ 0.914276123046875,   0.907806396484375,  0.901397705078125,  0.895111083984375,
                        R$ 0.888885498046875,   0.88275146484375,   0.876708984375,     0.870758056640625,
                        R$ 0.8648681640625,     0.85906982421875,   0.85333251953125,   0.847686767578125,
                        R$ 0.84210205078125,    0.83660888671875,   0.8311767578125,    0.8258056640625,
                        R$ 0.820526123046875,   0.815277099609375,  0.81011962890625,   0.805023193359375,
                        R$ 0.79998779296875,    0.7950439453125,    0.790130615234375,  0.7852783203125,
                        R$ 0.780487060546875,   0.7757568359375,    0.771087646484375,  0.7664794921875,
                        R$ 0.76190185546875,    0.75738525390625,   0.7529296875,       0.74853515625,
                        R$ 0.744171142578125,   0.739898681640625,  0.735626220703125,  0.731414794921875,
                        R$ 0.727264404296875,   0.723175048828125,  0.7191162109375,    0.715087890625,
                        R$ 0.71112060546875,    0.707183837890625,  0.70330810546875,   0.699462890625,
                        R$ 0.695648193359375,   0.69189453125,      0.68817138671875,   0.684478759765625,
                        R$ 0.68084716796875,    0.67724609375,      0.673675537109375,  0.670166015625,
                        R$ 0.666656494140625,   0.6632080078125,    0.6597900390625,    0.656402587890625,
                        R$ 0.653076171875,      0.649749755859375,  0.646453857421875,  0.643218994140625,
                        R$ 0.6400146484375,     0.636810302734375,  0.6336669921875,    0.63055419921875,
                        R$ 0.62744140625,       0.6243896484375,    0.621368408203125,  0.61834716796875,
                        R$ 0.615386962890625,   0.6124267578125,    0.609527587890625,  0.60662841796875,
                        R$ 0.603759765625,      0.6009521484375,    0.59814453125,      0.5953369140625,
                        R$ 0.59259033203125,    0.589874267578125,  0.587158203125,     0.58447265625,
                        R$ 0.581817626953125,   0.579193115234375,  0.576568603515625,  0.574005126953125,
                        R$ 0.571441650390625,   0.568878173828125,  0.566375732421875,  0.563873291015625,
                        R$ 0.5614013671875,     0.5589599609375,    0.5565185546875,    0.554107666015625,
                        R$ 0.551727294921875,   0.549346923828125,  0.5469970703125,    0.544677734375,
                        R$ 0.5423583984375,     0.540069580078125,  0.537811279296875,  0.535552978515625,
                        R$ 0.5333251953125,     0.5311279296875,    0.5289306640625,    0.526763916015625,
                        R$ 0.52459716796875,    0.5224609375,       0.52032470703125,   0.518218994140625,
                        R$ 0.516143798828125,   0.514068603515625,  0.511993408203125,  0.50994873046875,
                        R$ 0.5079345703125,     0.50592041015625,   0.503936767578125,  0.501953125,
                        R$ 0.5,                 0.0]

2nd table:
; Array of 258 Real8  (In fact, it is 256, but it contains 2 extra Real8 seems to be used for alignment)
; last = -0.005624549193726125, -1.51981979419044e-13 = log2(256/257). But, since we divided in 2, we have :
; a+b = log2(256/257)
; b = log2(256/257+1/257)
; a = log2(256/257) - log2(256/257+1/257)
[acrt_pow_log2_t1:      R$ 0,                   0,                      0.011226567492713,      1.016823494307948e-13,
                        R$ 0.0223623095939729,  1.509641361505043e-13,  0.0334044275305132,     2.101197734774185e-13,
                        R$ 0.0443954952202148,  1.016044049030341e-13,  0.05528793895632589,    1.883374902839381e-13,
                        R$ 0.06607887153541014, 2.138176331783674e-13,  0.07681181343741628,    5.709230722804341e-14,
                        R$ 0.08748485519754468, 5.868843569563728e-14,  0.09804893735872611,    3.619681935484368e-14,
                        R$ 0.1085010673270972,  1.543184264571083e-13,  0.1189338494700678,     1.860362057011582e-13,
                        R$ 0.1292981514975509,  7.554748217812214e-14,  0.1395434412183931,     1.516994721722207e-13,
                        R$ 0.1497643178722683,  1.051178722669094e-14,  0.159861361818912,      2.114869849339652e-13,
                        R$ 0.169930504897593,   4.40052858963378e-14,   0.1799207848823698,     2.240129032913967e-13,
                        R$ 0.1898300623352043,  1.375795440150339e-13,  0.1996561785576887,     7.145026853877997e-14,
                        R$ 0.2094478621945655,  5.367375028888726e-14,  0.2191526981448533,     1.924498639378365e-13,
                        R$ 0.2288200663576845,  5.936005594789268e-14,  0.2383968281446869,     1.433009328177132e-13,
                        R$ 0.2479330168987417,  1.684200910040635e-13,  0.2573747720703068,     8.862301254885962e-14,
                        R$ 0.2667727821483368,  1.013232499019477e-13,  0.2761257811359883,     1.12230539696592e-13,
                        R$ 0.2853788294112292,  1.016334320206645e-13,  0.294637603289857,      5.597048496184292e-15,
                        R$ 0.303793130980921,   1.853744221157845e-13,  0.3128977458679856,     1.60639003923233e-13,
                        R$ 0.3219501088344714,  1.549098793317993e-13,  0.3308934886636052,     9.419397015157054e-14,
                        R$ 0.3398369322621875,  1.80893087169476e-13,   0.3487240266531444,     2.169974414678604e-13,
                        R$ 0.3575533804798852,  6.149443240964241e-14,  0.3663235901076405,     3.826580964617253e-14,
                        R$ 0.3750332399847593,  1.955977358664581e-14,  0.3836809030231052,     2.947640342943602e-14,
                        R$ 0.3923229262338737,  2.112545050340321e-13,  0.4009007622883018,     2.098488527644043e-13,
                        R$ 0.409412950084743,   2.227235158820077e-13,  0.4178580183411214,     1.011301267316563e-13,
                        R$ 0.4262936480765802,  1.897728976533714e-13,  0.4346003667162677,     4.004267917640788e-14,
                        R$ 0.4429551907162477,  1.400196786904386e-13,  0.4512382853470172,     5.62719093585379e-14,
                        R$ 0.4594481290662316,  2.213963319159338e-14,  0.4675831925114835,     1.412876082947186e-13,
                        R$ 0.4757031623373678,  7.587747414268379e-15,  0.4838075221205145,     1.18664971091356e-13,
                        R$ 0.4918338344011772,  1.878064226732364e-13,  0.4998427913988053,     5.862732383910959e-15,
                        R$ 0.5077712507477372,  4.150897571512671e-14,  0.5156805763556349,     9.786938359853908e-14,
                        R$ 0.5235702112477156,  1.569667701192254e-13,  0.5313759570817638,     2.177088304752577e-13,
                        R$ 0.5391601869698661,  2.823731509563395e-14,  0.5469223213460737,     3.256485334128137e-14,
                        R$ 0.5545971068684139,  8.319730657207256e-14,  0.5622479276762533,     1.439645407616248e-13,
                        R$ 0.5698741825767684,  4.094263358904957e-14,  0.5774095661072352,     2.038623382754154e-13,
                        R$ -0.4150154853314234, -1.564570207123908e-13, -0.4075333316711749,    -1.492022497514329e-13,
                        R$ -0.4000789026219991, -1.351495278093843e-14, -0.3926528318520468,    -1.069202642230373e-13,
                        R$ -0.3853231761756888, -1.828572895052894e-13, -0.3779560917237177,    -1.547692563069645e-13,
                        R$ -0.3706193021482704, -7.800659110273396e-14, -0.3633819147821669,    -1.147403162887244e-13,
                        R$ -0.3561768305162332, -1.219956031355297e-13, -0.3489355820486253,    -1.476319661150002e-13,
                        R$ -0.3417967723917172, -1.113041314078495e-13, -0.3346922876937697,    -8.923071668805204e-14,
                        R$ -0.3275526440811518, -8.864338416218237e-14, -0.3205185246326892,    -1.844162847219179e-15,
                        R$ -0.3135207985078523, -1.902032350780128e-14, -0.3064889647284872,    -1.456359191949078e-13,
                        R$ -0.2995657852932254, -1.307094403586611e-14, -0.292609222764213,     -8.378060738742084e-14,
                        R$ -0.2857634254039567, -4.701821600676295e-14, -0.2788849888020195,    -1.511802016849652e-13,
                        R$ -0.2720465243899071, -3.076548904101923e-14, -0.2653220242348198,    -4.915978648845209e-14,
                        R$ -0.2585660338897924, -1.405312834892581e-13, -0.2517782570357667,    -1.009393730467223e-13,
                        R$ -0.2451069943811035, -1.033265339614818e-13, -0.2384793801425076,    -7.970918592730934e-14,
                        R$ -0.2318211786573556, -4.8659121779957e-14,   -0.2252074369434922,    -9.752275842785794e-15,
                        R$ -0.2186389106134357, -4.177604593923986e-14, -0.2121163585759405,    -1.87283555703194e-13,
                        R$ -0.2055641835243023, -1.534170470249947e-13, -0.1991355280706557,    -1.144747712045036e-13,
                        R$ -0.192678098233273,  -2.02774688785164e-13,  -0.1861916352681874,    -3.093545419374396e-14,
                        R$ -0.1798313565068383, -1.22416012559691e-13,  -0.1734429135508435,    -7.084811750820007e-14,
                        R$ -0.1671044823797274, -2.062854042969882e-13, -0.1608168496734379,    -1.092122852622241e-13,
                        R$ -0.1545016938646313, -1.337455005808682e-13, -0.1482382318115469,    -9.705478385564927e-14,
                        R$ -0.1420272600159933, -5.785496642520203e-14, -0.1357894336024401,    -1.543442716838467e-13,
                        R$ -0.1296050111523073, -1.980247712130743e-13, -0.123474798243933,     -2.075149641280211e-13,
                        R$ -0.1173184260098878, -1.160610222980619e-13, -0.1112171945496812,    -7.534408284934441e-14,
                        R$ -0.1051719176959978, -1.033034157098786e-13, -0.09910120289146107,   -8.226723868429274e-14,
                        R$ -0.09308739044399772, -2.197956159692524e-13, -0.08713130154046667,  -6.276674125004108e-14,
                        R$ -0.08115052127186573, -3.026990936508615e-15, -0.07522842768435112,  -1.286550323901214e-13,
                        R$ -0.06928192436521385, -2.095461474301054e-13, -0.06339508128849047,  -1.882220931891893e-14,
                        R$ -0.05748411879881132, -8.583738744817724e-14, -0.05163380031081033,  -4.815871164781571e-14,
                        R$ -0.04584496485881573, -7.18250842909487e-14,  -0.04003280800907305,  -4.664515782175133e-14,
                        R$ -0.03419714109190863, -1.428593977599921e-13, -0.0284241129484144,   -1.358834028958522e-13,
                        R$ -0.02271457304459545, -1.634509902670196e-13, -0.01698234753348515,  -1.627787964810823e-13,
                        R$ -0.01131462529701821, -4.846959270555319e-14, -0.005624549193726125, -1.51981979419044e-13,
                        R$ 0,                    0]


3rd table:

; array of 130 Real8 = 130*8 = 1040 bytes  (In fact, it is 128, but it contains 2 extra Real8 seems to be used for alignment)
[acrt_pow_rcp_t2:       R$ 1.0,                 0.999908447265625,  0.999786376953125,  0.999664306640625,
                        R$ 0.999542236328125,   0.999420166015625,  0.999298095703125,  0.999176025390625,
                        R$ 0.999053955078125,   0.998931884765625,  0.998809814453125,  0.998687744140625,
                        R$ 0.998565673828125,   0.998443603515625,  0.998321533203125,  0.998199462890625,
                        R$ 0.998077392578125,   0.997955322265625,  0.997833251953125,  0.997711181640625,
                        R$ 0.997589111328125,   0.997467041015625,  0.997344970703125,  0.997222900390625,
                        R$ 0.997100830078125,   0.996978759765625,  0.996856689453125,  0.996734619140625,
                        R$ 0.996612548828125,   0.996490478515625,  0.996368408203125,  0.996246337890625,
                        R$ 0.996124267578125,   0.996002197265625,  0.995880126953125,  0.995758056640625,
                        R$ 0.995635986328125,   0.995513916015625,  0.995391845703125,  0.995269775390625,
                        R$ 0.995147705078125,   0.995025634765625,  0.994903564453125,  0.994781494140625,
                        R$ 0.994659423828125,   0.994537353515625,  0.99444580078125,   0.99432373046875,
                        R$ 0.99420166015625,    0.99407958984375,   0.99395751953125,   0.99383544921875,
                        R$ 0.99371337890625,    0.99359130859375,   0.99346923828125,   0.99334716796875,
                        R$ 0.99322509765625,    0.99310302734375,   0.99298095703125,   0.99285888671875,
                        R$ 0.99273681640625,    0.99261474609375,   0.99249267578125,   0.99237060546875,
                        R$ 1.00390625,          1.00384521484375,   1.0037841796875,    1.00372314453125,
                        R$ 1.003662109375,      1.00360107421875,   1.0035400390625,    1.00347900390625,
                        R$ 1.00341796875,       1.00335693359375,   1.0032958984375,    1.00323486328125,
                        R$ 1.003173828125,      1.00311279296875,   1.0030517578125,    1.00299072265625,
                        R$ 1.0029296875,        1.00286865234375,   1.0028076171875,    1.00274658203125,
                        R$ 1.002685546875,      1.00262451171875,   1.0025634765625,    1.00250244140625,
                        R$ 1.00244140625,       1.00238037109375,   1.0023193359375,    1.00225830078125,
                        R$ 1.002197265625,      1.00213623046875,   1.0020751953125,    1.00201416015625,
                        R$ 1.001953125,         1.00189208984375,   1.0018310546875,    1.00177001953125,
                        R$ 1.001708984375,      1.00164794921875,   1.0015869140625,    1.00152587890625,
                        R$ 1.00146484375,       1.00140380859375,   1.0013427734375,    1.00128173828125,
                        R$ 1.001220703125,      1.00115966796875,   1.0010986328125,    1.00103759765625,
                        R$ 1.0009765625,        1.00091552734375,   1.0008544921875,    1.00079345703125,
                        R$ 1.000732421875,      1.00067138671875,   1.0006103515625,    1.00054931640625,
                        R$ 1.00048828125,       1.00042724609375,   1.0003662109375,    1.00030517578125,
                        R$ 1.000244140625,      1.00018310546875,   1.0001220703125,    1.00006103515625,
                        R$ 1.0,                 0.0]



Btw, the tables seems to contains 2 or 4 extra Real8 used for align
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

guga

4th table

; array of 258 Real8 = 258*8 = 2064 bytes  (In fact, it is 256, but it contains 2 extra Real8 seems to be used for alignment)
[acrt_pow_log2_t2: R$ 0, 0, 0.0001320887224665057, 3.026078632670094e-14
R$ 0.0003082258335780352, 1.124369745920572e-14, 0.0004843844515107776
R$ 1.903404018633784e-13, 0.0006605645819490746, 1.360301172389496e-13
R$ 0.0008367662298951473, 1.008377266663287e-13, 0.00101298940057859
R$ 1.118400172014953e-13, 0.001189234099228997, 1.980402962614453e-13
R$ 0.001365500331303338, 1.629956576979862e-13, 0.001541788102031205
R$ 3.95652747764643e-14, 0.001718097416414821, 8.991134284368603e-14
R$ 0.001894428279911153, 1.233789962422219e-13, 0.002070780697749797
R$ 1.786182784606054e-13, 0.002247154675387719, 6.883773564429666e-14
R$ 0.002423550217827142, 6.392638790015439e-14, 0.002599967330297659
R$ 2.083336485192877e-13, 0.002776406018483613, 9.369659466456748e-14
R$ 0.00295286628715985, 2.230829667393829e-13, 0.003129348142010713
R$ 1.920027121301932e-13, 0.003305851588265796, 5.265098573379892e-14
R$ 0.00348237663092732, 8.65354229618834e-14, 0.003658923275452253
R$ 1.223560624394118e-13, 0.003835491527070189, 2.181273219431695e-13
R$ 0.004012081391238098, 2.064315977053137e-13, 0.004188692873185573
R$ 1.491675660714541e-13, 0.004365325978142209, 1.101774594110659e-13
R$ 0.004541980711337601, 1.552480180535887e-13, 0.004718657078228716
R$ 1.247377673641787e-13, 0.00489535508404515, 8.832532173246751e-14
R$ 0.005072074734016496, 1.176366628153659e-13, 0.005248816033599724
R$ 5.887241836403713e-14, 0.005425578987797053, 2.149298434083969e-13
R$ 0.005602363602292826, 2.085353984807866e-13, 0.005779169882316637
R$ 1.191140828574256e-13, 0.005955997833098081, 2.804304028312898e-14
R$ 0.006132847459866753, 1.865251616880913e-14, 0.006309718767852246
R$ 1.762268153757303e-13, 0.006486611762738903, 1.332579097004816e-13
R$ 0.006663526449528945, 2.0631477405019e-13, 0.006840462833906713
R$ 3.180229333022904e-14, 0.007017420920647055, 1.575779506824242e-13
R$ 0.007194400715434313, 2.239633846636919e-13, 0.007371402223725454
R$ 1.00613727776042e-13, 0.0075484254505227, 1.138922438134334e-13
R$ 0.007725470401283019, 1.373765885826852e-13, 0.007902537081463379
R$ 4.660712387442989e-14, 0.008035351354465092, 1.779540657512234e-13
R$ 0.008212456073806607, 4.84136748459322e-14, 0.008389582536892704
R$ 1.546045680667371e-13, 0.008566730749407725, 1.520621667666882e-13
R$ 0.008743900716581265, 1.530365318998788e-13, 0.008921092443870293
R$ 4.437230418092991e-14, 0.009098305936277029, 1.696306974974602e-13
R$ 0.009275541199485815, 1.922220893707314e-13, 0.009452798238953619
R$ 4.901690999851026e-15, 0.009630077059455289, 1.845178670144181e-13
R$ 0.009807377666902539, 1.730237013901949e-13, 0.009984700066524965
R$ 9.646737105227633e-14, 0.01016204426355216, 8.287209019893124e-14
R$ 0.0103394102634411, 3.486340610857252e-14, 0.01051679807142136
R$ 8.441752187352747e-14, 0.01069420769294993, 1.381149179584253e-13
R$ 0.01087163913348377, 1.045150006862668e-13, 0.01104909239825247
R$ 1.215307513229208e-13, -0.005624549193726125, -1.51981979419044e-13
R$ -0.005536834037002336, -8.39554315012231e-14, -0.005449113546774242
R$ -1.570959534331267e-13, -0.005361387722587097, -1.775402557762978e-13
R$ -0.005273656563758777, -1.786803973183034e-13, -0.005185920069607164
R$ -1.937900808455538e-13, -0.005098178239677509, -2.865094890736807e-14
R$ -0.005010431072832944, -1.710472567874437e-13, -0.004922678568846095
R$ -1.991501155910151e-13, -0.004834920727034842, -1.457595160852659e-13
R$ -0.004747157546717062, -4.355694898511842e-14, -0.004659389026983263
R$ -1.524790515599519e-13, -0.004571615167606069, -5.022287701538693e-14
R$ -0.004483835967448613, -2.23861593741848e-13, -0.004396051426510894
R$ -2.348137746263453e-14, -0.004308261543428671, -1.632918122378509e-13
R$ -0.004220466317974569, -2.20515431708447e-13, -0.004132665749466469
R$ -2.270034183096471e-13, -0.004044859837222248, -2.144882234864991e-13
R$ -0.003957048580559785, -2.145835387870935e-13, -0.003869231979024335
R$ -3.14105915037523e-14, -0.003781410031479027, -1.510928175215772e-13
R$ -0.003693582737696488, -1.501401042826415e-13, -0.003605750096994598
R$ -5.96908145033904e-14, -0.003517912108463861, -1.381380817806073e-13
R$ -0.00343006877164953, -1.890087553021017e-13, -0.003342220086096859
R$ -1.571072176473979e-14, -0.003254366050668978, -1.036539027268881e-13
R$ -0.003166506665138513, -2.863449751971163e-14, -0.003078641928595971
R$ -4.845068235489542e-14, -0.00299077184035923, -1.934078795479823e-13
R$ -0.002902896400200916, -3.894505306257473e-14, -0.002815015606984161
R$ -6.987673214832359e-14, -0.002727129460254218, -8.87772542080616e-14
R$ -0.002639237959328966, -1.254754375316458e-13, -0.002551341103526283
R$ -2.096808768047939e-13, -0.002463438892391423, -1.436102386090714e-13
R$ -0.00237553132501489, -1.841082586859539e-13, -0.002287618400941938
R$ -1.331530110894102e-13, -0.002199700119490444, -1.997690543224918e-14
R$ -0.002111776479750915, -1.010666577939101e-13, -0.002023847481268604
R$ -1.780422352896898e-13, -0.001935913123588762, -5.240417784726179e-14
R$ -0.001847973405574521, -2.076545954175557e-13, -0.001760028326998508
R$ -2.176814107444407e-13, -0.001672077887178602, -1.11000382887547e-13
R$ -0.001584122085205308, -1.433814026335814e-13, -0.001496160920623879
R$ -1.157274370122938e-13, -0.001408194392752193, -5.619552646294779e-14
R$ -0.001320222500680757, -2.20196755662203e-13, -0.001232245244182195
R$ -1.809015225701754e-13, -0.001144262622347014, -1.934815618999196e-13
R$ -0.001056274634720467, -5.82415387024573e-14, -0.0009682812803930574
R$ -3.01137209319898e-14, -0.0008802825586826657, -1.365369238995784e-13
R$ -0.0007922784691345441, -1.774564810476099e-13, -0.0007042690110665717
R$ -1.800715656018116e-13, -0.0006162541837966273, -1.714614858846534e-13
R$ -0.00052823398664259, -1.785856560630599e-13, -0.0004402084191497124
R$ -9.098914439675769e-16, -0.0003521774801811262, -1.19901080977114e-13
R$ -0.0002641411695094575, -1.074114298733444e-13, -0.0001760994862252119
R$ -2.172941584192324e-13, -0.00008805243010101549, -2.116142002074782e-14
R$ 0, 0]



5th table
; array of 258 Real8
[acrt_pow_rcp_t3: R$ 1.442694902420044, 1.442693471908569, 1.442692041397095
R$ 1.442690849304199, 1.442689418792725, 1.44268798828125
R$ 1.442686557769775, 1.44268536567688, 1.442683935165405
R$ 1.442682504653931, 1.442681074142456, 1.442679882049561
R$ 1.442678451538086, 1.442677021026611, 1.442675590515137
R$ 1.442674160003662, 1.442672967910767, 1.442671537399292
R$ 1.442670106887817, 1.442668676376343, 1.442667484283447
R$ 1.442666053771973, 1.442664623260498, 1.442663192749023
R$ 1.442662000656128, 1.442660570144653, 1.442659139633179
R$ 1.442657709121704, 1.442656278610229, 1.442655086517334
R$ 1.442653656005859, 1.442652225494385, 1.44265079498291
R$ 1.442649602890015, 1.44264817237854, 1.442646741867065
R$ 1.442645311355591, 1.442643880844116, 1.442642688751221
R$ 1.442641258239746, 1.442639827728271, 1.442638397216797
R$ 1.442637205123901, 1.442635774612427, 1.442634344100952
R$ 1.442632913589478, 1.442631721496582, 1.442630290985107
R$ 1.442628860473633, 1.442627429962158, 1.442625999450684
R$ 1.442624807357788, 1.442623376846313, 1.442621946334839
R$ 1.442620515823364, 1.442619323730469, 1.442617893218994
R$ 1.44261646270752, 1.442615032196045, 1.442613840103149
R$ 1.442612409591675, 1.4426109790802, 1.442609548568726
R$ 1.442608118057251, 1.442606925964355, 1.442605495452881
R$ 1.442604064941406, 1.442602634429932, 1.442601442337036
R$ 1.442600011825562, 1.442598581314087, 1.442597150802612
R$ 1.442595958709717, 1.442594528198242, 1.442593097686768
R$ 1.442591667175293, 1.442590236663818, 1.442589044570923
R$ 1.442587614059448, 1.442586183547974, 1.442584753036499
R$ 1.442583560943604, 1.442582130432129, 1.442580699920654
R$ 1.44257926940918, 1.442578077316284, 1.44257664680481
R$ 1.442575216293335, 1.44257378578186, 1.442572355270386
R$ 1.44257116317749, 1.442569732666016, 1.442568302154541
R$ 1.442566871643066, 1.442565679550171, 1.442564249038696
R$ 1.442562818527222, 1.442561388015747, 1.442560195922852
R$ 1.442558765411377, 1.442557334899902, 1.442555904388428
R$ 1.442554473876953, 1.442553281784058, 1.442551851272583
R$ 1.442550420761108, 1.442548990249634, 1.442547798156738
R$ 1.442546367645264, 1.442544937133789, 1.442543506622314
R$ 1.442542314529419, 1.442540884017944, 1.44253945350647
R$ 1.442538022994995, 1.442536592483521, 1.442535400390625
R$ 1.44253396987915, 1.442532539367676, 1.442531108856201
R$ 1.442529916763306, 1.442528486251831, 1.442527055740356
R$ 1.442525625228882, 1.442524433135986, 1.442523002624512
R$ 1.442521572113037, 1.442520141601562, 1.442782878875732
R$ 1.442782163619995, 1.442781686782837, 1.4427809715271
R$ 1.442780256271362, 1.442779541015625, 1.442778825759888
R$ 1.44277811050415, 1.442777395248413, 1.442776679992676
R$ 1.442775964736938, 1.44277548789978, 1.442774772644043
R$ 1.442774057388306, 1.442773342132568, 1.442772626876831
R$ 1.442771911621094, 1.442771196365356, 1.442770481109619
R$ 1.442770004272461, 1.442769289016724, 1.442768573760986
R$ 1.442767858505249, 1.442767143249512, 1.442766427993774
R$ 1.442765712738037, 1.4427649974823, 1.442764282226562
R$ 1.442763805389404, 1.442763090133667, 1.44276237487793
R$ 1.442761659622192, 1.442760944366455, 1.442760229110718
R$ 1.44275951385498, 1.442758798599243, 1.442758083343506
R$ 1.442757606506348, 1.44275689125061, 1.442756175994873
R$ 1.442755460739136, 1.442754745483398, 1.442754030227661
R$ 1.442753314971924, 1.442752599716187, 1.442751884460449
R$ 1.442751407623291, 1.442750692367554, 1.442749977111816
R$ 1.442749261856079, 1.442748546600342, 1.442747831344604
R$ 1.442747116088867, 1.44274640083313, 1.442745923995972
R$ 1.442745208740234, 1.442744493484497, 1.44274377822876
R$ 1.442743062973022, 1.442742347717285, 1.442741632461548
R$ 1.442740917205811, 1.442740201950073, 1.442739725112915
R$ 1.442739009857178, 1.44273829460144, 1.442737579345703
R$ 1.442736864089966, 1.442736148834229, 1.442735433578491
R$ 1.442734718322754, 1.442734003067017, 1.442733526229858
R$ 1.442732810974121, 1.442732095718384, 1.442731380462646
R$ 1.442730665206909, 1.442729949951172, 1.442729234695435
R$ 1.442728519439697, 1.442728042602539, 1.442727327346802
R$ 1.442726612091064, 1.442725896835327, 1.44272518157959
R$ 1.442724466323853, 1.442723751068115, 1.442723035812378
R$ 1.442722320556641, 1.442721843719482, 1.442721128463745
R$ 1.442720413208008, 1.442719697952271, 1.442718982696533
R$ 1.442718267440796, 1.442717552185059, 1.442716836929321
R$ 1.442716121673584, 1.442715644836426, 1.442714929580688
R$ 1.442714214324951, 1.442713499069214, 1.442712783813477
R$ 1.442712068557739, 1.442711353302002, 1.442710638046265
R$ 1.442709922790527, 1.442709445953369, 1.442708730697632
R$ 1.442708015441895, 1.442707300186157, 1.44270658493042
R$ 1.442705869674683, 1.442705154418945, 1.442704439163208
R$ 1.44270396232605, 1.442703247070312, 1.442702531814575
R$ 1.442701816558838, 1.442701101303101, 1.442700386047363
R$ 1.442699670791626, 1.442698955535889, 1.442698240280151
R$ 1.442697763442993, 1.442697048187256, 1.442696332931519
R$ 1.442695617675781, 1.442694902420044, 0.0]




Btw, the tables seems to contains 2 or 4 extra Real8 used for align
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

guga

6th table
; Array of 514 Real8
[acrt_pow_log2_t3: R$ 0, 0, 0.000001430512156730401, 1.64394539905828e-13
R$ 0.000002861025905076531, 1.556072355024121e-13, 0.000004053121756442124
R$ 1.70735242598682e-13, 0.000005483638233272359, 3.393325894260967e-14
R$ 0.000006914155846970971, 1.787047518188288e-13, 0.000008344675052285311
R$ 1.503051832822325e-13, 0.000009536775451124413, 1.490978738920983e-13
R$ 0.00001096729715754918, 2.200770702728377e-13, 0.00001239782045558968
R$ 1.178931752867144e-13, 0.00001382834511787223, 6.992267735039363e-14
R$ 0.00001502045006418484, 5.241449717899461e-14, 0.00001645097722757782
R$ 1.038425331121927e-13, 0.00001788150575521286, 2.094919362320289e-13
R$ 0.00001931203587446362, 1.419918441007808e-13, 0.00002074256735795643
R$ 1.28718745175558e-13, 0.00002193467798861093, 1.401354501619227e-13
R$ 0.00002336521197321417, 2.262858114976707e-13, 0.00002479574754943314
R$ 1.392974608476407e-13, 0.00002622628448989417, 1.065468867010195e-13
R$ 0.00002741839966802218, 1.017405996004179e-13, 0.00002884893910959363
R$ 1.684332551766157e-13, 0.00003027948014278081, 6.199798215530495e-14
R$ 0.00003171002254021005, 9.811269057749889e-15, 0.00003290214203843789
R$ 2.161901122993986e-13, 0.00003433268716435123, 3.609272316871314e-14
R$ 0.00003576323342713295, 1.376255398382174e-13, 0.00003719378128153039
R$ 6.604402453155766e-14, 0.00003862433050016989, 4.872466581044466e-14
R$ 0.00003981645591011329, 5.67963486239447e-14, 0.00004124700762986322
R$ 1.389649166312656e-13, 0.00004267756094122888, 4.802993632870214e-14
R$ 0.00004410811561683659, 1.136789631004368e-14, 0.00004530024557425349
R$ 3.328915612756188e-15, 0.00004673080275097163, 6.617457251950451e-14
R$ 0.00004816136129193183, 1.833011403488492e-13, 0.00004959192142450775
R$ 1.273377568401947e-13, 0.00005102248292132572, 1.256609106277783e-13
R$ 0.00005221461856308451, 1.467866447381837e-13, 0.00005364518278838659
R$ 1.726874796893837e-14, 0.00005507574815055705, 1.694190346924574e-13
R$ 0.00005650631510434323, 1.484929672453615e-13, 0.00005769845529357553
R$ 1.535859214430789e-13, 0.00005912902497584582, 4.838574145834865e-15
R$ 0.00006055959579498449, 1.377701944086278e-13, 0.00006199016820573888
R$ 9.763624460015895e-14, 0.0000631823129424447, 8.673086804021568e-14
R$ 0.00006461288785430952, 1.461690847569645e-13, 0.00006604346435779007
R$ 3.254970233753423e-14, 0.000067474041998139, 2.006228849556349e-13
R$ 0.00006890462123010366, 1.956440950204176e-13, 0.00007009677165115136
R$ 2.140450720435735e-13, 0.00007152735361160012, 8.128970207829634e-14
R$ 0.00007295793693629093, 2.864006052624349e-15, 0.00007438852139785013
R$ 2.061444727374861e-13, 0.00007558067636637134, 2.086250054972199e-13
R$ 0.00007701126378378831, 5.677498815065671e-14, 0.00007844185233807366
R$ 1.866391046552165e-13, 0.00007987244248397474, 1.434728174842135e-13
R$ 0.00008106460199996945, 1.300673564165687e-13, 0.00008249519464698096
R$ 1.865377077679364e-13, 0.0000839257888856082, 6.998562667522999e-14
R$ 0.00008535638448847749, 7.787601973542197e-15, 0.00008678698122821515
R$ 2.273201225063353e-13, 0.00008797914665592543, 1.598898362090234e-14
R$ 0.0000894097461241472, 1.078093970477927e-13, 0.0000908403471839847
R$ 2.662097616880261e-14, 0.00009227094938069058, 2.271738853027094e-13
R$ 0.00009346311935587437, 3.464198041886814e-17, 0.00009489372428106435
R$ 7.289521618551281e-14, 0.00009632433057049639, 2.00131416397277e-13
R$ 0.00009775493845154415, 1.54372380636876e-13, 0.00009894711274682777
R$ 1.388331600380832e-13, 0.000100377723128986, 1.927752371946668e-13
R$ 0.0001018083351027599, 7.373004990699465e-14, 0.0001032389484407759
R$ 9.074087114779278e-15, 0.0001046695629156602, 2.261838377661032e-13
R$ 0.0001058617431226594, 1.286058865906658e-14, 0.0001072923603260278
R$ 1.023227075261518e-13, 0.000108722979121012, 1.881116059284149e-14
R$ 0.0001101535990528646, 2.170761122825348e-13, 0.0001113457835799636
R$ 2.15430778185943e-13, 0.000112776406467674, 5.869419556051461e-14
R$ 0.0001142070304922527, 1.837420832915262e-13, 0.0001156376561084471
R$ 1.358299040615336e-13, 0.0001168298451830196, 1.185232625304213e-13
R$ 0.0001182604733003245, 1.70376673009607e-13, 0.0001196911030092451
R$ 4.927798835213344e-14, 0.0001211217338550341, 2.099773730455703e-13
R$ 0.0001225523662924388, 1.977302898129293e-13, 0.0001237445610513532
R$ 2.1015494979381e-13, 0.000125175196217242, 7.032471249622007e-14
R$ 0.0001266058325199992, 2.123033300979868e-13, 0.0001280364704143722
R$ 1.813462653542081e-13, 0.0001292286697207601, 1.781875130840851e-13
R$ 0.0001306593103436171, 1.966706792300232e-14, 0.0001320899521033425
R$ 1.429662633327201e-13, 0.0001335205954546836, 9.334056210042326e-14
R$ 0.0001347127993085451, 7.463285185876999e-14, 0.0001361434451609966
R$ 1.248372195255438e-13, 0.0001375740926050639, 2.124662671097775e-15
R$ 0.0001390047411859996, 1.612453458876318e-13, 0.000140435391358551
R$ 1.474547320027884e-13, 0.0001416276008967543, 1.586199831178549e-13
R$ 0.0001430582537977898, 1.731069528509697e-14, 0.0001444889078356937
R$ 1.578454334728518e-13, 0.0001459195634652133, 1.254796605408497e-13
R$ 0.0001471117775508901, 1.21173851764616e-13, 0.0001485424356815201
R$ 1.886828547109084e-13, 0.0001499730954037659, 8.329931886378599e-14
R$ 0.0001514037564902537, 3.239973344476338e-14, 0.0001525959751234041
R$ 1.265732033797346e-14, 0.0001540266387110023, 6.165228540573155e-14
R$ 0.0001554573036628426, 1.651391733188491e-13, 0.0001568879702062986
R$ 9.574712244446532e-14, 0.0001583186381139967, 8.085262204455472e-14
R$ 0.0001595108624314889, 9.112483540719435e-14, 0.0001609415328402974
R$ 1.761498190174993e-13, 0.0001623722048407217, 8.830665019094188e-14
R$ 0.000163802878205388, 5.497181822158605e-14, 0.0001649951070703537
R$ 4.988532823075644e-14, 0.0001664257829361304, 1.164897553899617e-13
R$ 0.0001678564603935229, 1.023681658595369e-14, 0.0001692871389877837
R$ 1.85876676588118e-13, 0.0001704793724002229, 1.654659400858969e-13
R$ 0.0001719100537229679, 2.136911591172563e-13, 0.0001733407366373285
R$ 8.906979878206305e-14, 0.0001747714209159312, 1.897834843856117e-14
R$ -0.00008797378177405335, -3.693324294747513e-14, -0.000087258569237747
R$ -2.04098621796641e-13, -0.00008678176095600065, -4.277051824350725e-14
R$ -0.00008606654796494695, -7.374159465758639e-14, -0.00008535133451914589
R$ -2.048945612320832e-13, -0.00008463612084597116, -2.088553909732898e-13
R$ -0.00008392090694542276, -8.562373233020722e-14, -0.000083205692590127
R$ -6.257290919454598e-14, -0.00008249047778008389, -1.397025700142615e-13
R$ -0.00008177526274266711, -8.963868779355458e-14, -0.00008106004725050298
R$ -1.397545864225669e-13, -0.00008058323669501988, -2.035567039913591e-13
R$ -0.00007986802074810839, -1.174732222150849e-13, -0.00007915280434644956
R$ -1.315685838110667e-13, -0.00007843758771741705, -1.846876178106521e-14
R$ -0.00007772237063363718, -5.547080012782316e-15, -0.00007700715309510997
R$ -9.280318695016504e-14, -0.00007629193532920908, -5.286305559340549e-14
R$ -0.00007557671710856084, -1.13100009828637e-13, -0.00007509990473408834
R$ -1.836480004341912e-13, -0.00007438468605869275, -1.076810821590146e-13
R$ -0.00007366946692854981, -1.318903119876763e-13, -0.00007295424757103319
R$ -2.890166291792855e-14, -0.00007223902775876923, -2.608845883346459e-14
R$ -0.00007152380749175791, -1.234503481742229e-13, -0.00007080858699737291
R$ -9.3613303936387e-14, -0.00007009336604824057, -1.639506500020817e-13
R$ -0.00006937814487173455, -1.070883593664447e-13, -0.00006890133045089897
R$ -1.753597191757648e-13, -0.00006818610859227192, -2.096621533793974e-13
R$ -0.0000674708865062712, -1.167640133814618e-13, -0.00006675566396552313
R$ -1.240386230616428e-13, -0.00006604044119740138, -4.111955412637959e-15
R$ -0.0000653252177471586, -2.117310097563184e-13, -0.00006460999429691583
R$ -6.47744081978722e-14, -0.0000638947703919257, -1.79891500581245e-14
R$ -0.00006317954603218823, -7.137488377091368e-14, -0.00006270272956498957
R$ -1.373520086128896e-13, -0.00006198750475050474, -5.452371356270698e-14
R$ -0.00006127227948127256, -7.186547285274053e-14, -0.00006055705375729303
R$ -1.893769349149114e-13, -0.00005984182780593983, -1.796840727373857e-13
R$ -0.00005912660162721295, -4.278653475103897e-14, -0.00005841137499373872
R$ -6.057644829455613e-15, -0.00005769614790551714, -6.949705140246527e-14
R$ -0.00005698092058992188, -5.730727456142644e-15, -0.00005650410207636014
R$ -6.939601293275178e-14, -0.00005578887407864386, -9.678425744222398e-14
R$ -0.00005507364562618022, -2.243395093511909e-13, -0.00005435841694634291
R$ -2.2468774164381e-13, -0.00005364318803913193, -9.782860274694785e-14
R$ -0.00005292795867717359, -7.113541653018028e-14, -0.00005221272886046791
R$ -1.446078314193281e-13, -0.00005149749881638854, -9.087182039645719e-14
R$ -0.0000510206784838374, -1.612224837130065e-13, -0.00005030544775763701
R$ -1.986365488158779e-13, -0.00004959021680406295, -1.088412504716354e-13
R$ -0.00004887498539574153, -1.192099125468918e-13, -0.00004815975376004644
R$ -2.368508021272758e-15, -0.00004744452144223033, -2.130640362035772e-13
R$ -0.00004672928912441421, -6.917511918592114e-14, -0.00004601405635185074
R$ -2.544875627605762e-14, -0.00004529882312453992, -8.188459589475289e-14
R$ -0.0000448220007456257, -1.498902417097785e-13, -0.00004410676706356753
R$ -7.009740366315591e-14, -0.00004339153292676201, -9.046583059791222e-14
R$ -0.00004267629833520914, -2.109951709328963e-13, -0.00004196106351628259
R$ -2.043113976432022e-13, -0.00004124582846998237, -7.041415914663291e-14
R$ -0.0000405305929689348, -3.667677930370069e-14, -0.00003981535701313987
R$ -1.030989065311628e-13, -0.00003910012082997127, -4.230651380202161e-14
R$ -0.00003862329640469397, -1.079495370629234e-13, -0.00003790805953940435
R$ -1.382970636984089e-13, -0.00003719282244674105, -4.142913281802618e-14
R$ -0.0000364775848993304, -4.471906827932448e-14, -0.00003576234689717239
R$ -1.481665184960979e-13, -0.00003504710866764071, -1.243974564383855e-13
R$ -0.00003433186998336168, -2.007852059621678e-13, -0.00003361663107170898
R$ -1.49955740036438e-13, -0.00003313980482744228, -2.222392170015739e-13
R$ -0.00003242456546104222, -3.517150250014857e-14, -0.00003170932541252114
R$ -1.756329858657198e-13, -0.00003099408513662638, -1.888759646221316e-13
R$ -0.00003027884463335795, -7.490008717916897e-14, -0.00002956360367534216
R$ -6.107867738932616e-14, -0.00002884836226257903, -1.474113836613424e-13
R$ -0.00002813312062244222, -1.065241789602021e-13, -0.00002741787852755806
R$ -1.657903871368305e-13, -0.00002694105046430195, -8.304386734796152e-15
R$ -0.00002622580768729676, -1.587009432423048e-13, -0.0000255105646829179
R$ -1.818762996023095e-13, -0.00002479532145116536, -7.783010422058627e-14
R$ -0.00002408007776466548, -7.393568094562017e-14, -0.00002336483362341824
R$ -1.701926781821414e-13, -0.00002264958925479732, -1.392270688911251e-13
R$ -0.00002193434443142905, -2.084121769194877e-13, -0.00002121909938068711
R$ -1.503739752271584e-13, -0.00002074226904369425, -2.178482426372076e-13
R$ -0.00002002702353820496, -2.356163523040752e-14, -0.00001931177735059464
R$ -1.567981313952534e-13, -0.00001859653093561064, -1.628100286465251e-13
R$ -0.00001788128429325297, -4.159697538494361e-14, -0.00001716603719614795
R$ -2.053229545393903e-14, -0.00001645078964429558, -9.961563725318647e-14
R$ -0.00001573554186506954, -5.147297373860604e-14, -0.00001502029363109614
R$ -1.03477628752059e-13, -0.0000145434612477402, -1.685208825968106e-13
R$ -0.00001382821255901945, -8.427205322821007e-14, -0.00001311296341555135
R$ -1.00169604781431e-13, -0.0000123977138173359, -2.162131856531851e-13
R$ -0.00001168246399174677, -2.050287687964293e-13, -0.00001096721393878397
R$ -6.661600260682923e-14, -0.00001025196343107382, -2.834821092276003e-14
R$ -0.000009536712468616315, -9.022504213884163e-14, -0.000009059878266270971
R$ -1.618482492123198e-13, -0.000008344626849066117, -8.74671033243007e-14
R$ -0.000007629374977113912, -1.13229642719529e-13, -0.000006914122877788031
R$ -1.176184034747526e-14, -0.0000061988703237148, -1.043702004355092e-14
R$ -0.000005483617314894218, -1.092548301994126e-13, -0.00000476836407869996
R$ -8.084124376296187e-14, -0.000004053110387758352, -1.525695845680414e-13
R$ -0.000003337856469443068, -9.706582556150695e-14, -0.000002861020220734645
R$ -1.662248380384509e-13, -0.000002145765620298334, -2.01831698580088e-13
R$ -0.000001430510792488349, -1.102055216811216e-13, -7.152555099310121e-7
R$ -1.187196311729539e-13, 0, 0]



7th table

; Array of 256 Real8 (Added 2 more t avoid errors. Now we have 258)
; This is to 2^(x/128) = a+b
[acrt_pow_exp2_tbl: R$ 1.0, 0.0, 1.005429901112803, 9.499186535455032e-17
R$ 1.0108892860517, -1.523477860336858e-17, 1.016378314910953
R$ -5.77217007319966e-17, 1.021897148654117, 5.109225028973444e-17
R$ 1.027445949118764, -4.95607417464537e-17, 1.033024879021228
R$ 7.600838874027088e-18, 1.038634101961379, 5.996273788852509e-17
R$ 1.044273782427414, 8.551889705537964e-17, 1.049944085800687
R$ 5.592937848127003e-17, 1.055645178360557, 1.759325738772092e-18
R$ 1.061377227289262, -1.197353708536566e-17, 1.067140400676824
R$ -7.899853966841581e-17, 1.072934867525976, -3.839668843358824e-18
R$ 1.07876079775712, -6.656660436056593e-17, 1.084618362213309
R$ 3.166152845816345e-17, 1.090507732665258, -3.046782079812471e-17
R$ 1.096429081816377, -5.919933484449315e-17, 1.102382583307841
R$ 5.266036871570694e-17, 1.108368411723679, -8.786813845180527e-17
R$ 1.114386742595892, 1.041027845684557e-16, 1.120437752409607
R$ -6.201085906554178e-17, 1.126521618608242, 5.165856758795456e-17
R$ 1.132638519598719, 3.237356166738e-17, 1.138788634756692
R$ 8.912812676025407e-17, 1.144972144431804, 4.641289892170011e-17
R$ 1.151189229952983, 3.250710218863827e-17, 1.157440073633751
R$ -9.123871231134399e-17, 1.163724858777577, 3.829204836924093e-17
R$ 1.17004376968325, -1.847744201790004e-18, 1.176396991650281
R$ 5.554203254218078e-17, 1.182784710984341, 1.542975430079076e-17
R$ 1.189207115002721, 3.982015231465646e-17, 1.195664392039827
R$ 4.616603670481481e-17, 1.202156731452703, 6.6449814992523e-17
R$ 1.208684323626582, -4.746725945228984e-17, 1.215247359980469
R$ -7.712630692681487e-17, 1.221846032972758, -1.061102121140269e-16
R$ 1.22848053610687, -1.89878163130253e-17, 1.235151063936933
R$ -1.075524434430784e-16, 1.241857812073484, 4.658027591836936e-17
R$ 1.248600977189205, -8.261810999021964e-17, 1.255380757024691
R$ -6.711389821296878e-18, 1.262197350394251, -3.084464887473846e-17
R$ 1.269050957191733, 2.667932131342186e-18, 1.275941778396392
R$ 9.91543024421429e-17, 1.282870016078778, 1.713594918243561e-17
R$ 1.289835873406666, 8.949257530897592e-17, 1.29683955465101
R$ 2.538250279488831e-17, 1.303881265191936, 8.647675598267871e-17
R$ 1.310961211524764, -7.181536135519454e-17, 1.318079601266064
R$ -5.457955827149153e-17, 1.325236643159741, -2.858731210038861e-17
R$ 1.332432547083162, -5.101586630916743e-17, 1.339667524053303
R$ 8.927282594831731e-17, 1.346941786232946, 3.224065101254679e-17
R$ 1.354255546936893, 7.700948379802988e-17, 1.361609020638225
R$ 1.533787661270668e-18, 1.369002422974591, 9.593797919118848e-17
R$ 1.37643597075453, -6.898588935871801e-17, 1.383909881963832
R$ -6.770511658794785e-17, 1.391424375771926, -4.906174865288989e-17
R$ 1.398979672538311, -9.614213209051322e-17, 1.406575993819015
R$ 7.034914812136421e-18, 1.414213562373095, -9.667293313452912e-17
R$ 1.421892602169166, -1.607782891589024e-17, 1.42961333839197
R$ -1.203164248905365e-17, 1.437375997448982, -4.204034016467557e-17
R$ 1.445180806977047, -3.023758134993987e-17, 1.453027995849053
R$ -5.779948609396105e-17, 1.460917794180647, -5.600377186075216e-17
R$ 1.468850433336982, 8.465882756533626e-17, 1.476826145939499
R$ -3.483994556892796e-17, 1.484845165872752, 1.078008676440748e-16
R$ 1.492907728291265, 1.419292015428404e-17, 1.501014069626426
R$ -6.413767275790234e-17, 1.509164427593423, -1.016455327754295e-16
R$ 1.517359041198215, -4.308699472043341e-17, 1.525598150744538
R$ -1.102494171234256e-16, 1.533881997840956, 8.875226844438446e-17
R$ 1.542210825407941, 7.94983480969762e-17, 1.550584877685
R$ -1.460070659068939e-17, 1.559004400237837, 3.781207053357528e-17
R$ 1.567469639965553, -1.035206176884972e-16, 1.575980845107886
R$ -1.01369164712783e-17, 1.584538265252494, -1.93377170345857e-17
R$ 1.593142151342267, -1.009440654231196e-16, 1.601792755682693
R$ -6.054917453527784e-17, 1.610490331949254, 2.470719256979789e-17
R$ 1.619235135194864, 2.094133415422909e-17, 1.628027421857348
R$ -6.712955084707083e-17, 1.636867449766964, 7.698325071319876e-17
R$ 1.645755478153965, -1.012567991367477e-16, 1.654691767656194
R$ 9.643294303196027e-17, 1.663676580326736, 5.8909926967131e-17
R$ 1.672710179641597, -5.476715964599563e-17, 1.681792830507429
R$ 8.199010020581497e-17, 1.690924799269305, -9.669671474394879e-17
R$ 1.700106353718523, -8.023719370397699e-18, 1.709337763100463
R$ -9.868779456632931e-17, 1.718619298122478, -1.851380418263111e-17
R$ 1.727951230961838, -1.075098186120464e-16, 1.737333835273706
R$ 3.164389299292957e-17, 1.746767386199169, -1.075229048350751e-16
R$ 1.756252160373299, 2.960140695448873e-17, 1.765788435933273
R$ 9.461315018083268e-17, 1.775376492526521, 6.429731796556571e-17
R$ 1.785016611318935, 1.533040012103131e-17, 1.794709075003107
R$ 1.822745842791209e-17, 1.804454167806624, -5.177222408793318e-17
R$ 1.814252175500399, -9.969531538920349e-17, 1.824103385407053
R$ -1.015962786227708e-16, 1.834008086409342, 3.283107224245627e-17
R$ 1.843966568958626, -5.939742026949965e-17, 1.853979125083385
R$ 9.761887490727594e-17, 1.864046048397789, 6.54091268062057e-17
R$ 1.8741676341103, -6.122763413004141e-17, 1.884344179032335
R$ -8.226593125533711e-17, 1.894575981586966, 3.40340353521653e-17
R$ 1.904863341817674, 6.533857514718277e-17, 1.915206561397147
R$ -1.061994605619596e-16, 1.925605943636125, -9.914963769693741e-17
R$ 1.936061793492294, 1.033238596067633e-16, 1.946574417579233
R$ 6.811022349533877e-17, 1.9571441241754, 8.960767791036667e-17
R$ 1.967771223233176, -1.031492801153113e-16, 1.978456026387951
R$ 4.038875310927817e-17, 1.989198846967266, 8.205132638369199e-18,
R$ 0, 0]


Btw, the tables seems to contains 2 or 4 extra Real8 used for align
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

guga

On the 1st table, it seems to b a sequence like this:

1st value = 16384/16384 = 16384/(256*64) = ((128*128)+0)/((128)*128) = ((128*128)+0/2)/((128)*128)
2nd value = 16257/16384 = 16257/(256*64) = ((127*128)+1)/((128)*128) = ((127*128)+2/2)/((128)*128) = ((127*128)+(128*(1/64))/2)/((128)*128)
3rd value = 16132/16384 = 16132/(256*64) = ((126*128)+4)/((128)*128) = ((126*128)+8/2)/((128)*128) = ((126*128)+(128*(4/64))/2)/((128)*128)
4th value = 16009/16384 = 16009/(256*64) = ((125*128)+9)/((128)*128) = ((125*128)+18/2)/((128)*128) = ((125*128)+(128*(9/64))/2)/((128)*128)
5th value = 15887.5/16384 = 15887.5/(256*64) = ((124*128)+15.5)/((128)*128) = ((124*128)+31/2)/((128)*128) = ((124*128)+(128*(15.5/64))/2)/((128)*128)
6th value = 15768/16384 = 15768/(256*64) = ((123*128)+24)/((128)*128) = ((123*128)+48/2)/((128)*128) = ((123*128)+(128*(24/64))/2)/((128)*128)
128th value = ((0*128)+16384/2)/((128)*128) ?

So, it seems to be a formula ion this format:

(((n-1)*128)+x/2)/((128)*128)

where n = Index f the serie varying from 0 to 128
x some unknown value that seems to be: 0/2, 2/2, 8/2, 18/2, 31/2, 48/2....16384/2
So, x seems also to be a sequence divided by 2 of: 0; 2; 8; 18; 31; 48.....16384. But how these numbers where calculated ?
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

jj2007

Quote from: guga on May 16, 2025, 09:48:42 PMfixed mathematical series tables to accurately calculate the pow of a number

Sounds a bit like FastMath: calculate once y=f(x) using whatever slow function for a given range, then get y=f(x) really fast a Million times. Is that what you intend? If yes, what would be the slow function to generate the tables?

What would be the application of such an algo?

guga

Hi JJ

I´m using it to replace a pow function in RosAsm library (but it can be used in other apps and not only RosAsm). I succeeded to rebuild the libm_sse2_pow_precise from ucrtbased.dll and it has a high level of precision. But, although i succeeded to rebuild it, i have no idea how those tables where created. I´ll post the code soon, but i wanted to understand how those tables where generated, to see if it could be possible to achieve a even higher precision.

The internal code in ucrtbased.dll is a complete mess, highly optimized and thus, hard to maintain. That´s why i gave a try rebuilding it.

Did you used the libm_sse2_pow_precise before ? Take a look at it. It´s really precise, but the internal code is a mess.
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

jj2007

I'm afraid my math is not sufficient to understand the role of the tables :cool:

daydreamer

my none asm creations
https://masm32.com/board/index.php?topic=6937.msg74303#msg74303
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."
Like SIMD coding

guga

Hi Daydreamer,

yeah, but how those values were created ? I mena, how to reate a function to generate those exact values?
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com

daydreamer

Quote from: guga on May 17, 2025, 02:07:00 AMyeah, but how those values were created ? I mena, how to reate a function to generate those exact values?
I have concentrated on trigo functions since the day I discovered use cosine and sine in basic to draw circle

I have never coded a pow function or created pow LUT before, but someone else knows pow by heart
For others that LUT makes no sense,but those that used trigo LUT many years recognise it



my none asm creations
https://masm32.com/board/index.php?topic=6937.msg74303#msg74303
I am an Invoker
"An Invoker is a mage who specializes in the manipulation of raw and elemental energies."
Like SIMD coding

jack

Hi guga, have a look at this pdf Hardware Implementation of Number Inversion Function
in the appendix there are tables that have at least some of the numbers that you posted, so maybe there's a hint in there somewhere as to how they were calculated

jack

Harmonized Parabolic Synthesis is a hardware-efficient methodology for approximating mathematical functions, including the power function. It combines Parabolic Synthesis with Second-Degree Interpolation to achieve high precision and low complexity. By using multiple intervals to approximate a mathematical expression, it can calculate functions like the inverse square root within a unit in the last place (ULP), according to DiVA portal.

jack

guga
ask your favorite AI can you explain how the LUT are computed using the "Harmonized Parabolic Synthesis" for the power function?

ChatGPT session

InfiniteLoop

Have you come full circle? Weren't these approximations done almost 10 years ago on this very forum?

It is straight forward enough to generate the Chebyshev coefficients using simultaneous linear equations. I have no idea what those integer numbers are for.  Pow needs log2(x) and 2^x.






guga

Quote from: jack on May 18, 2025, 08:53:00 PMHi guga, have a look at this pdf Hardware Implementation of Number Inversion Function
in the appendix there are tables that have at least some of the numbers that you posted, so maybe there's a hint in there somewhere as to how they were calculated

Tks, Jack, i´ll take a look
Coding in Assembly requires a mix of:
80% of brain, passion, intuition, creativity
10% of programming skills
10% of alcoholic levels in your blood.

My Code Sites:
http://rosasm.freeforums.org
http://winasm.tripod.com