Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv
Commits
939c8e8a
Commit
939c8e8a
authored
Jun 15, 2017
by
Rostislav Vasilikhin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
float constant replaced by int hex representations
parent
29593635
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
369 additions
and
366 deletions
+369
-366
softfloat.cpp
modules/core/src/softfloat.cpp
+369
-366
No files found.
modules/core/src/softfloat.cpp
View file @
939c8e8a
...
@@ -4147,77 +4147,78 @@ float64_t ui64_to_f64( uint64_t a )
...
@@ -4147,77 +4147,78 @@ float64_t ui64_to_f64( uint64_t a )
#define EXPTAB_SCALE 6
#define EXPTAB_SCALE 6
#define EXPTAB_MASK ((1 << EXPTAB_SCALE) - 1)
#define EXPTAB_MASK ((1 << EXPTAB_SCALE) - 1)
static
const
softdouble
EXPPOLY_32F_A0
(
.9670371139572337719125840413672004409288e-2
);
// .9670371139572337719125840413672004409288e-2
static
const
softdouble
EXPPOLY_32F_A0
=
float64_t
::
fromRaw
(
0x3f83ce0f3e46f431
);
static
const
double
expTab
[]
=
{
1.0
,
static
const
uint64_t
expTab
[]
=
{
1.0108892860517004600204097905619
,
0x3ff0000000000000
,
// 1.000000
1.0218971486541166782344801347833
,
0x3ff02c9a3e778061
,
// 1.010889
1.0330248790212284225001082839705
,
0x3ff059b0d3158574
,
// 1.021897
1.0442737824274138403219664787399
,
0x3ff0874518759bc8
,
// 1.033025
1.0556451783605571588083413251529
,
0x3ff0b5586cf9890f
,
// 1.044274
1.0671404006768236181695211209928
,
0x3ff0e3ec32d3d1a2
,
// 1.055645
1.0787607977571197937406800374385
,
0x3ff11301d0125b51
,
// 1.067140
1.0905077326652576592070106557607
,
0x3ff1429aaea92de0
,
// 1.078761
1.1023825833078409435564142094256
,
0x3ff172b83c7d517b
,
// 1.090508
1.1143867425958925363088129569196
,
0x3ff1a35beb6fcb75
,
// 1.102383
1.126521618608241899794798643787
,
0x3ff1d4873168b9aa
,
// 1.114387
1.1387886347566916537038302838415
,
0x3ff2063b88628cd6
,
// 1.126522
1.151189229952982705817759635202
,
0x3ff2387a6e756238
,
// 1.138789
1.1637248587775775138135735990922
,
0x3ff26b4565e27cdd
,
// 1.151189
1.1763969916502812762846457284838
,
0x3ff29e9df51fdee1
,
// 1.163725
1.1892071150027210667174999705605
,
0x3ff2d285a6e4030b
,
// 1.176397
1.2021567314527031420963969574978
,
0x3ff306fe0a31b715
,
// 1.189207
1.2152473599804688781165202513388
,
0x3ff33c08b26416ff
,
// 1.202157
1.2284805361068700056940089577928
,
0x3ff371a7373aa9cb
,
// 1.215247
1.2418578120734840485936774687266
,
0x3ff3a7db34e59ff7
,
// 1.228481
1.2553807570246910895793906574423
,
0x3ff3dea64c123422
,
// 1.241858
1.2690509571917332225544190810323
,
0x3ff4160a21f72e2a
,
// 1.255381
1.2828700160787782807266697810215
,
0x3ff44e086061892d
,
// 1.269051
1.2968395546510096659337541177925
,
0x3ff486a2b5c13cd0
,
// 1.282870
1.3109612115247643419229917863308
,
0x3ff4bfdad5362a27
,
// 1.296840
1.3252366431597412946295370954987
,
0x3ff4f9b2769d2ca7
,
// 1.310961
1.3396675240533030053600306697244
,
0x3ff5342b569d4f82
,
// 1.325237
1.3542555469368927282980147401407
,
0x3ff56f4736b527da
,
// 1.339668
1.3690024229745906119296011329822
,
0x3ff5ab07dd485429
,
// 1.354256
1.3839098819638319548726595272652
,
0x3ff5e76f15ad2148
,
// 1.369002
1.3989796725383111402095281367152
,
0x3ff6247eb03a5585
,
// 1.383910
1.4142135623730950488016887242097
,
0x3ff6623882552225
,
// 1.398980
1.4296133383919700112350657782751
,
0x3ff6a09e667f3bcd
,
// 1.414214
1.4451808069770466200370062414717
,
0x3ff6dfb23c651a2f
,
// 1.429613
1.4609177941806469886513028903106
,
0x3ff71f75e8ec5f74
,
// 1.445181
1.476826145939499311386907480374
,
0x3ff75feb564267c9
,
// 1.460918
1.4929077282912648492006435314867
,
0x3ff7a11473eb0187
,
// 1.476826
1.5091644275934227397660195510332
,
0x3ff7e2f336cf4e62
,
// 1.492908
1.5255981507445383068512536895169
,
0x3ff82589994cce13
,
// 1.509164
1.5422108254079408236122918620907
,
0x3ff868d99b4492ed
,
// 1.525598
1.5590044002378369670337280894749
,
0x3ff8ace5422aa0db
,
// 1.542211
1.5759808451078864864552701601819
,
0x3ff8f1ae99157736
,
// 1.559004
1.5931421513422668979372486431191
,
0x3ff93737b0cdc5e5
,
// 1.575981
1.6104903319492543081795206673574
,
0x3ff97d829fde4e50
,
// 1.593142
1.628027421857347766848218522014
,
0x3ff9c49182a3f090
,
// 1.610490
1.6457554781539648445187567247258
,
0x3ffa0c667b5de565
,
// 1.628027
1.6636765803267364350463364569764
,
0x3ffa5503b23e255d
,
// 1.645755
1.6817928305074290860622509524664
,
0x3ffa9e6b5579fdbf
,
// 1.663677
1.7001063537185234695013625734975
,
0x3ffae89f995ad3ad
,
// 1.681793
1.7186192981224779156293443764563
,
0x3ffb33a2b84f15fb
,
// 1.700106
1.7373338352737062489942020818722
,
0x3ffb7f76f2fb5e47
,
// 1.718619
1.7562521603732994831121606193753
,
0x3ffbcc1e904bc1d2
,
// 1.737334
1.7753764925265212525505592001993
,
0x3ffc199bdd85529c
,
// 1.756252
1.7947090750031071864277032421278
,
0x3ffc67f12e57d14b
,
// 1.775376
1.8142521755003987562498346003623
,
0x3ffcb720dcef9069
,
// 1.794709
1.8340080864093424634870831895883
,
0x3ffd072d4a07897c
,
// 1.814252
1.8539791250833855683924530703377
,
0x3ffd5818dcfba487
,
// 1.834008
1.8741676341102999013299989499544
,
0x3ffda9e603db3285
,
// 1.853979
1.8945759815869656413402186534269
,
0x3ffdfc97337b9b5f
,
// 1.874168
1.9152065613971472938726112702958
,
0x3ffe502ee78b3ff6
,
// 1.894576
1.9360617934922944505980559045667
,
0x3ffea4afa2a490da
,
// 1.915207
1.9571441241754002690183222516269
,
0x3ffefa1bee615a27
,
// 1.936062
1.9784560263879509682582499181312
,
0x3fff50765b6e4540
,
// 1.957144
0x3fffa7c1819e90d8
,
// 1.978456
};
};
// 1 / ln(2)
== 1.4426950408889634073599246810019
// 1 / ln(2)
* (1 << EXPTAB_SCALE) == 1.4426950408889634073599246810019 * (1 << EXPTAB_SCALE)
static
const
float64_t
exp_prescale
=
float64_t
(
1.4426950408889634073599246810019
)
*
float64_t
(
1
<<
EXPTAB_SCALE
);
static
const
float64_t
exp_prescale
=
float64_t
::
fromRaw
(
0x3ff71547652b82fe
)
*
float64_t
(
1
<<
EXPTAB_SCALE
);
static
const
float64_t
exp_postscale
=
float64_t
::
one
()
/
float64_t
(
1
<<
EXPTAB_SCALE
);
static
const
float64_t
exp_postscale
=
float64_t
::
one
()
/
float64_t
(
1
<<
EXPTAB_SCALE
);
static
const
float64_t
exp_max_val
(
3000
*
(
1
<<
EXPTAB_SCALE
));
// log10(DBL_MAX) < 3000
static
const
float64_t
exp_max_val
(
3000
*
(
1
<<
EXPTAB_SCALE
));
// log10(DBL_MAX) < 3000
...
@@ -4228,10 +4229,10 @@ float32_t f32_exp( float32_t x)
...
@@ -4228,10 +4229,10 @@ float32_t f32_exp( float32_t x)
if
(
x
.
isInf
())
return
(
x
==
float32_t
::
inf
())
?
x
:
float32_t
::
zero
();
if
(
x
.
isInf
())
return
(
x
==
float32_t
::
inf
())
?
x
:
float32_t
::
zero
();
static
const
float64_t
static
const
float64_t
A4
=
float64_t
(
1.000000000000002438532970795181890933776
)
/
EXPPOLY_32F_A0
,
A4
=
float64_t
::
one
(
)
/
EXPPOLY_32F_A0
,
A3
=
float64_t
(
.6931471805521448196800669615864773144641
)
/
EXPPOLY_32F_A0
,
A3
=
float64_t
::
fromRaw
(
0x3fe62e42fef9277b
)
/
EXPPOLY_32F_A0
,
// .6931471805521448196800669615864773144641
/ EXPPOLY_32F_A0,
A2
=
float64_t
(
.2402265109513301490103372422686535526573
)
/
EXPPOLY_32F_A0
,
A2
=
float64_t
::
fromRaw
(
0x3fcebfbe081585e7
)
/
EXPPOLY_32F_A0
,
// .2402265109513301490103372422686535526573
/ EXPPOLY_32F_A0,
A1
=
float64_t
(
.5550339366753125211915322047004666939128e-1
)
/
EXPPOLY_32F_A0
;
A1
=
float64_t
::
fromRaw
(
0x3fac6af0d93cf576
)
/
EXPPOLY_32F_A0
;
// .5550339366753125211915322047004666939128e-1
/ EXPPOLY_32F_A0;
float64_t
x0
;
float64_t
x0
;
if
(
expF32UI
(
x
.
v
)
>
127
+
10
)
if
(
expF32UI
(
x
.
v
)
>
127
+
10
)
...
@@ -4246,7 +4247,7 @@ float32_t f32_exp( float32_t x)
...
@@ -4246,7 +4247,7 @@ float32_t f32_exp( float32_t x)
x0
=
(
x0
-
f64_roundToInt
(
x0
,
round_near_even
,
false
))
*
exp_postscale
;
x0
=
(
x0
-
f64_roundToInt
(
x0
,
round_near_even
,
false
))
*
exp_postscale
;
return
(
buf
*
EXPPOLY_32F_A0
*
float64_t
(
expTab
[
val0
&
EXPTAB_MASK
])
*
((((
x0
+
A1
)
*
x0
+
A2
)
*
x0
+
A3
)
*
x0
+
A4
));
return
(
buf
*
EXPPOLY_32F_A0
*
float64_t
::
fromRaw
(
expTab
[
val0
&
EXPTAB_MASK
])
*
((((
x0
+
A1
)
*
x0
+
A2
)
*
x0
+
A3
)
*
x0
+
A4
));
}
}
float64_t
f64_exp
(
float64_t
x
)
float64_t
f64_exp
(
float64_t
x
)
...
@@ -4256,12 +4257,12 @@ float64_t f64_exp(float64_t x)
...
@@ -4256,12 +4257,12 @@ float64_t f64_exp(float64_t x)
if
(
x
.
isInf
())
return
(
x
==
float64_t
::
inf
())
?
x
:
float64_t
::
zero
();
if
(
x
.
isInf
())
return
(
x
==
float64_t
::
inf
())
?
x
:
float64_t
::
zero
();
static
const
float64_t
static
const
float64_t
A5
=
float64_t
(
.99999999999999999998285227504999
)
/
EXPPOLY_32F_A0
,
A5
=
float64_t
::
one
(
)
/
EXPPOLY_32F_A0
,
A4
=
float64_t
(
.69314718055994546743029643825322
)
/
EXPPOLY_32F_A0
,
A4
=
float64_t
::
fromRaw
(
0x3fe62e42fefa39f1
)
/
EXPPOLY_32F_A0
,
// .69314718055994546743029643825322 / EXPPOLY_32F_A0
A3
=
float64_t
(
.24022650695886477918181338054308
)
/
EXPPOLY_32F_A0
,
A3
=
float64_t
::
fromRaw
(
0x3fcebfbdff82a45a
)
/
EXPPOLY_32F_A0
,
// .24022650695886477918181338054308 / EXPPOLY_32F_A0
A2
=
float64_t
(
.55504108793649567998466049042729e-1
)
/
EXPPOLY_32F_A0
,
A2
=
float64_t
::
fromRaw
(
0x3fac6b08d81fec75
)
/
EXPPOLY_32F_A0
,
// .55504108793649567998466049042729e-1 / EXPPOLY_32F_A0
A1
=
float64_t
(
.96180973140732918010002372686186e-2
)
/
EXPPOLY_32F_A0
,
A1
=
float64_t
::
fromRaw
(
0x3f83b2a72b4f3cd3
)
/
EXPPOLY_32F_A0
,
// .96180973140732918010002372686186e-2 / EXPPOLY_32F_A0
A0
=
float64_t
(
.13369713757180123244806654839424e-2
)
/
EXPPOLY_32F_A0
;
A0
=
float64_t
::
fromRaw
(
0x3f55e7aa1566c2a4
)
/
EXPPOLY_32F_A0
;
// .13369713757180123244806654839424e-2 / EXPPOLY_32F_A0
float64_t
x0
;
float64_t
x0
;
if
(
expF64UI
(
x
.
v
)
>
1023
+
10
)
if
(
expF64UI
(
x
.
v
)
>
1023
+
10
)
...
@@ -4276,7 +4277,7 @@ float64_t f64_exp(float64_t x)
...
@@ -4276,7 +4277,7 @@ float64_t f64_exp(float64_t x)
x0
=
(
x0
-
f64_roundToInt
(
x0
,
round_near_even
,
false
))
*
exp_postscale
;
x0
=
(
x0
-
f64_roundToInt
(
x0
,
round_near_even
,
false
))
*
exp_postscale
;
return
buf
*
EXPPOLY_32F_A0
*
float64_t
(
expTab
[
val0
&
EXPTAB_MASK
])
*
(((((
A0
*
x0
+
A1
)
*
x0
+
A2
)
*
x0
+
A3
)
*
x0
+
A4
)
*
x0
+
A5
);
return
buf
*
EXPPOLY_32F_A0
*
float64_t
::
fromRaw
(
expTab
[
val0
&
EXPTAB_MASK
])
*
(((((
A0
*
x0
+
A1
)
*
x0
+
A2
)
*
x0
+
A3
)
*
x0
+
A4
)
*
x0
+
A5
);
}
}
#undef EXPTAB_SCALE
#undef EXPTAB_SCALE
...
@@ -4287,266 +4288,267 @@ float64_t f64_exp(float64_t x)
...
@@ -4287,266 +4288,267 @@ float64_t f64_exp(float64_t x)
#define LOGTAB_SCALE 8
#define LOGTAB_SCALE 8
static
const
double
CV_DECL_ALIGNED
(
16
)
icvLogTab
[]
=
{
static
const
uint64_t
CV_DECL_ALIGNED
(
16
)
icvLogTab
[]
=
{
0
.0000000000000000000000000000000000000000
,
1.000000000000000000000000000000000000000
,
0
,
0x3ff0000000000000
,
// 0.000000, 1.000000
.00389864041565732288852075271279318258166
,
.9961089494163424124513618677042801556420
,
0x3f6ff00aa2b10bc0
,
0x3fefe01fe01fe020
,
// 0.003899, 0.996109
.00778214044205494809292034119607706088573
,
.9922480620155038759689922480620155038760
,
0x3f7fe02a6b106788
,
0x3fefc07f01fc07f0
,
// 0.007782, 0.992248
.01165061721997527263705585198749759001657
,
.9884169884169884169884169884169884169884
,
0x3f87dc475f810a76
,
0x3fefa11caa01fa12
,
// 0.011651, 0.988417
.01550418653596525274396267235488267033361
,
.9846153846153846153846153846153846153846
,
0x3f8fc0a8b0fc03e3
,
0x3fef81f81f81f820
,
// 0.015504, 0.984615
.01934296284313093139406447562578250654042
,
.9808429118773946360153256704980842911877
,
0x3f93cea44346a574
,
0x3fef6310aca0dbb5
,
// 0.019343, 0.980843
.02316705928153437593630670221500622574241
,
.9770992366412213740458015267175572519084
,
0x3f97b91b07d5b11a
,
0x3fef44659e4a4271
,
// 0.023167, 0.977099
.02697658769820207233514075539915211265906
,
.9733840304182509505703422053231939163498
,
0x3f9b9fc027af9197
,
0x3fef25f644230ab5
,
// 0.026977, 0.973384
.03077165866675368732785500469617545604706
,
.9696969696969696969696969696969696969697
,
0x3f9f829b0e783300
,
0x3fef07c1f07c1f08
,
// 0.030772, 0.969697
.03455238150665972812758397481047722976656
,
.9660377358490566037735849056603773584906
,
0x3fa1b0d98923d97f
,
0x3feee9c7f8458e02
,
// 0.034552, 0.966038
.03831886430213659461285757856785494368522
,
.9624060150375939849624060150375939849624
,
0x3fa39e87b9febd5f
,
0x3feecc07b301ecc0
,
// 0.038319, 0.962406
.04207121392068705056921373852674150839447
,
.9588014981273408239700374531835205992509
,
0x3fa58a5bafc8e4d4
,
0x3feeae807aba01eb
,
// 0.042071, 0.958801
.04580953603129420126371940114040626212953
,
.9552238805970149253731343283582089552239
,
0x3fa77458f632dcfc
,
0x3fee9131abf0b767
,
// 0.045810, 0.955224
.04953393512227662748292900118940451648088
,
.9516728624535315985130111524163568773234
,
0x3fa95c830ec8e3eb
,
0x3fee741aa59750e4
,
// 0.049534, 0.951673
.05324451451881227759255210685296333394944
,
.9481481481481481481481481481481481481481
,
0x3fab42dd711971be
,
0x3fee573ac901e574
,
// 0.053245, 0.948148
.05694137640013842427411105973078520037234
,
.9446494464944649446494464944649446494465
,
0x3fad276b8adb0b52
,
0x3fee3a9179dc1a73
,
// 0.056941, 0.944649
.06062462181643483993820353816772694699466
,
.9411764705882352941176470588235294117647
,
0x3faf0a30c01162a6
,
0x3fee1e1e1e1e1e1e
,
// 0.060625, 0.941176
.06429435070539725460836422143984236754475
,
.9377289377289377289377289377289377289377
,
0x3fb075983598e471
,
0x3fee01e01e01e01e
,
// 0.064294, 0.937729
.06795066190850773679699159401934593915938
,
.9343065693430656934306569343065693430657
,
0x3fb16536eea37ae0
,
0x3fede5d6e3f8868a
,
// 0.067951, 0.934307
.07159365318700880442825962290953611955044
,
.9309090909090909090909090909090909090909
,
0x3fb253f62f0a1416
,
0x3fedca01dca01dca
,
// 0.071594, 0.930909
.07522342123758751775142172846244648098944
,
.9275362318840579710144927536231884057971
,
0x3fb341d7961bd1d0
,
0x3fedae6076b981db
,
// 0.075223, 0.927536
.07884006170777602129362549021607264876369
,
.9241877256317689530685920577617328519856
,
0x3fb42edcbea646f0
,
0x3fed92f2231e7f8a
,
// 0.078840, 0.924188
.08244366921107458556772229485432035289706
,
.9208633093525179856115107913669064748201
,
0x3fb51b073f06183f
,
0x3fed77b654b82c34
,
// 0.082444, 0.920863
.08603433734180314373940490213499288074675
,
.9175627240143369175627240143369175627240
,
0x3fb60658a93750c3
,
0x3fed5cac807572b2
,
// 0.086034, 0.917563
.08961215868968712416897659522874164395031
,
.9142857142857142857142857142857142857143
,
0x3fb6f0d28ae56b4b
,
0x3fed41d41d41d41d
,
// 0.089612, 0.914286
.09317722485418328259854092721070628613231
,
.9110320284697508896797153024911032028470
,
0x3fb7da766d7b12cc
,
0x3fed272ca3fc5b1a
,
// 0.093177, 0.911032
.09672962645855109897752299730200320482256
,
.9078014184397163120567375886524822695035
,
0x3fb8c345d6319b20
,
0x3fed0cb58f6ec074
,
// 0.096730, 0.907801
.10026945316367513738597949668474029749630
,
.9045936395759717314487632508833922261484
,
0x3fb9ab42462033ac
,
0x3fecf26e5c44bfc6
,
// 0.100269, 0.904594
.10379679368164355934833764649738441221420
,
.9014084507042253521126760563380281690141
,
0x3fba926d3a4ad563
,
0x3fecd85689039b0b
,
// 0.103797, 0.901408
.10731173578908805021914218968959175981580
,
.8982456140350877192982456140350877192982
,
0x3fbb78c82bb0eda1
,
0x3fecbe6d9601cbe7
,
// 0.107312, 0.898246
.11081436634029011301105782649756292812530
,
.8951048951048951048951048951048951048951
,
0x3fbc5e548f5bc743
,
0x3feca4b3055ee191
,
// 0.110814, 0.895105
.11430477128005862852422325204315711744130
,
.8919860627177700348432055749128919860627
,
0x3fbd4313d66cb35d
,
0x3fec8b265afb8a42
,
// 0.114305, 0.891986
.11778303565638344185817487641543266363440
,
.8888888888888888888888888888888888888889
,
0x3fbe27076e2af2e5
,
0x3fec71c71c71c71c
,
// 0.117783, 0.888889
.12124924363286967987640707633545389398930
,
.8858131487889273356401384083044982698962
,
0x3fbf0a30c01162a6
,
0x3fec5894d10d4986
,
// 0.121249, 0.885813
.12470347850095722663787967121606925502420
,
.8827586206896551724137931034482758620690
,
0x3fbfec9131dbeaba
,
0x3fec3f8f01c3f8f0
,
// 0.124703, 0.882759
.12814582269193003360996385708858724683530
,
.8797250859106529209621993127147766323024
,
0x3fc0671512ca596e
,
0x3fec26b5392ea01c
,
// 0.128146, 0.879725
.13157635778871926146571524895989568904040
,
.8767123287671232876712328767123287671233
,
0x3fc0d77e7cd08e59
,
0x3fec0e070381c0e0
,
// 0.131576, 0.876712
.13499516453750481925766280255629681050780
,
.8737201365187713310580204778156996587031
,
0x3fc14785846742ac
,
0x3febf583ee868d8b
,
// 0.134995, 0.873720
.13840232285911913123754857224412262439730
,
.8707482993197278911564625850340136054422
,
0x3fc1b72ad52f67a0
,
0x3febdd2b899406f7
,
// 0.138402, 0.870748
.14179791186025733629172407290752744302150
,
.8677966101694915254237288135593220338983
,
0x3fc2266f190a5acb
,
0x3febc4fd65883e7b
,
// 0.141798, 0.867797
.14518200984449788903951628071808954700830
,
.8648648648648648648648648648648648648649
,
0x3fc29552f81ff523
,
0x3febacf914c1bad0
,
// 0.145182, 0.864865
.14855469432313711530824207329715136438610
,
.8619528619528619528619528619528619528620
,
0x3fc303d718e47fd2
,
0x3feb951e2b18ff23
,
// 0.148555, 0.861953
.15191604202584196858794030049466527998450
,
.8590604026845637583892617449664429530201
,
0x3fc371fc201e8f74
,
0x3feb7d6c3dda338b
,
// 0.151916, 0.859060
.15526612891112392955683674244937719777230
,
.8561872909698996655518394648829431438127
,
0x3fc3dfc2b0ecc629
,
0x3feb65e2e3beee05
,
// 0.155266, 0.856187
.15860503017663857283636730244325008243330
,
.8533333333333333333333333333333333333333
,
0x3fc44d2b6ccb7d1e
,
0x3feb4e81b4e81b4f
,
// 0.158605, 0.853333
.16193282026931324346641360989451641216880
,
.8504983388704318936877076411960132890365
,
0x3fc4ba36f39a55e5
,
0x3feb37484ad806ce
,
// 0.161933, 0.850498
.16524957289530714521497145597095368430010
,
.8476821192052980132450331125827814569536
,
0x3fc526e5e3a1b437
,
0x3feb2036406c80d9
,
// 0.165250, 0.847682
.16855536102980664403538924034364754334090
,
.8448844884488448844884488448844884488449
,
0x3fc59338d9982085
,
0x3feb094b31d922a4
,
// 0.168555, 0.844884
.17185025692665920060697715143760433420540
,
.8421052631578947368421052631578947368421
,
0x3fc5ff3070a793d3
,
0x3feaf286bca1af28
,
// 0.171850, 0.842105
.17513433212784912385018287750426679849630
,
.8393442622950819672131147540983606557377
,
0x3fc66acd4272ad50
,
0x3feadbe87f94905e
,
// 0.175134, 0.839344
.17840765747281828179637841458315961062910
,
.8366013071895424836601307189542483660131
,
0x3fc6d60fe719d21c
,
0x3feac5701ac5701b
,
// 0.178408, 0.836601
.18167030310763465639212199675966985523700
,
.8338762214983713355048859934853420195440
,
0x3fc740f8f54037a4
,
0x3feaaf1d2f87ebfd
,
// 0.181670, 0.833876
.18492233849401198964024217730184318497780
,
.8311688311688311688311688311688311688312
,
0x3fc7ab890210d909
,
0x3fea98ef606a63be
,
// 0.184922, 0.831169
.18816383241818296356839823602058459073300
,
.8284789644012944983818770226537216828479
,
0x3fc815c0a14357ea
,
0x3fea82e65130e159
,
// 0.188164, 0.828479
.19139485299962943898322009772527962923050
,
.8258064516129032258064516129032258064516
,
0x3fc87fa06520c910
,
0x3fea6d01a6d01a6d
,
// 0.191395, 0.825806
.19461546769967164038916962454095482826240
,
.8231511254019292604501607717041800643087
,
0x3fc8e928de886d40
,
0x3fea574107688a4a
,
// 0.194615, 0.823151
.19782574332991986754137769821682013571260
,
.8205128205128205128205128205128205128205
,
0x3fc9525a9cf456b4
,
0x3fea41a41a41a41a
,
// 0.197826, 0.820513
.20102574606059073203390141770796617493040
,
.8178913738019169329073482428115015974441
,
0x3fc9bb362e7dfb83
,
0x3fea2c2a87c51ca0
,
// 0.201026, 0.817891
.20421554142869088876999228432396193966280
,
.8152866242038216560509554140127388535032
,
0x3fca23bc1fe2b563
,
0x3fea16d3f97a4b02
,
// 0.204216, 0.815287
.20739519434607056602715147164417430758480
,
.8126984126984126984126984126984126984127
,
0x3fca8becfc882f18
,
0x3fea01a01a01a01a
,
// 0.207395, 0.812698
.21056476910734961416338251183333341032260
,
.8101265822784810126582278481012658227848
,
0x3fcaf3c94e80bff2
,
0x3fe9ec8e951033d9
,
// 0.210565, 0.810127
.21372432939771812687723695489694364368910
,
.8075709779179810725552050473186119873817
,
0x3fcb5b519e8fb5a4
,
0x3fe9d79f176b682d
,
// 0.213724, 0.807571
.21687393830061435506806333251006435602900
,
.8050314465408805031446540880503144654088
,
0x3fcbc286742d8cd6
,
0x3fe9c2d14ee4a102
,
// 0.216874, 0.805031
.22001365830528207823135744547471404075630
,
.8025078369905956112852664576802507836991
,
0x3fcc2968558c18c0
,
0x3fe9ae24ea5510da
,
// 0.220014, 0.802508
.22314355131420973710199007200571941211830
,
.8000000000000000000000000000000000000000
,
0x3fcc8ff7c79a9a21
,
0x3fe999999999999a
,
// 0.223144, 0.800000
.22626367865045338145790765338460914790630
,
.7975077881619937694704049844236760124611
,
0x3fccf6354e09c5dc
,
0x3fe9852f0d8ec0ff
,
// 0.226264, 0.797508
.22937410106484582006380890106811420992010
,
.7950310559006211180124223602484472049689
,
0x3fcd5c216b4fbb91
,
0x3fe970e4f80cb872
,
// 0.229374, 0.795031
.23247487874309405442296849741978803649550
,
.7925696594427244582043343653250773993808
,
0x3fcdc1bca0abec7d
,
0x3fe95cbb0be377ae
,
// 0.232475, 0.792570
.23556607131276688371634975283086532726890
,
.7901234567901234567901234567901234567901
,
0x3fce27076e2af2e5
,
0x3fe948b0fcd6e9e0
,
// 0.235566, 0.790123
.23864773785017498464178231643018079921600
,
.7876923076923076923076923076923076923077
,
0x3fce8c0252aa5a5f
,
0x3fe934c67f9b2ce6
,
// 0.238648, 0.787692
.24171993688714515924331749374687206000090
,
.7852760736196319018404907975460122699387
,
0x3fcef0adcbdc5936
,
0x3fe920fb49d0e229
,
// 0.241720, 0.785276
.24478272641769091566565919038112042471760
,
.7828746177370030581039755351681957186544
,
0x3fcf550a564b7b37
,
0x3fe90d4f120190d5
,
// 0.244783, 0.782875
.24783616390458124145723672882013488560910
,
.7804878048780487804878048780487804878049
,
0x3fcfb9186d5e3e2a
,
0x3fe8f9c18f9c18fa
,
// 0.247836, 0.780488
.25088030628580937353433455427875742316250
,
.7781155015197568389057750759878419452888
,
0x3fd00e6c45ad501c
,
0x3fe8e6527af1373f
,
// 0.250880, 0.778116
.25391520998096339667426946107298135757450
,
.7757575757575757575757575757575757575758
,
0x3fd0402594b4d040
,
0x3fe8d3018d3018d3
,
// 0.253915, 0.775758
.25694093089750041913887912414793390780680
,
.7734138972809667673716012084592145015106
,
0x3fd071b85fcd590d
,
0x3fe8bfce8062ff3a
,
// 0.256941, 0.773414
.25995752443692604627401010475296061486000
,
.7710843373493975903614457831325301204819
,
0x3fd0a324e27390e3
,
0x3fe8acb90f6bf3aa
,
// 0.259958, 0.771084
.26296504550088134477547896494797896593800
,
.7687687687687687687687687687687687687688
,
0x3fd0d46b579ab74b
,
0x3fe899c0f601899c
,
// 0.262965, 0.768769
.26596354849713793599974565040611196309330
,
.7664670658682634730538922155688622754491
,
0x3fd1058bf9ae4ad5
,
0x3fe886e5f0abb04a
,
// 0.265964, 0.766467
.26895308734550393836570947314612567424780
,
.7641791044776119402985074626865671641791
,
0x3fd136870293a8b0
,
0x3fe87427bcc092b9
,
// 0.268953, 0.764179
.27193371548364175804834985683555714786050
,
.7619047619047619047619047619047619047619
,
0x3fd1675cababa60e
,
0x3fe8618618618618
,
// 0.271934, 0.761905
.27490548587279922676529508862586226314300
,
.7596439169139465875370919881305637982196
,
0x3fd1980d2dd4236f
,
0x3fe84f00c2780614
,
// 0.274905, 0.759644
.27786845100345625159121709657483734190480
,
.7573964497041420118343195266272189349112
,
0x3fd1c898c16999fa
,
0x3fe83c977ab2bedd
,
// 0.277868, 0.757396
.28082266290088775395616949026589281857030
,
.7551622418879056047197640117994100294985
,
0x3fd1f8ff9e48a2f2
,
0x3fe82a4a0182a4a0
,
// 0.280823, 0.755162
.28376817313064456316240580235898960381750
,
.7529411764705882352941176470588235294118
,
0x3fd22941fbcf7965
,
0x3fe8181818181818
,
// 0.283768, 0.752941
.28670503280395426282112225635501090437180
,
.7507331378299120234604105571847507331378
,
0x3fd2596010df7639
,
0x3fe8060180601806
,
// 0.286705, 0.750733
.28963329258304265634293983566749375313530
,
.7485380116959064327485380116959064327485
,
0x3fd2895a13de86a3
,
0x3fe7f405fd017f40
,
// 0.289633, 0.748538
.29255300268637740579436012922087684273730
,
.7463556851311953352769679300291545189504
,
0x3fd2b9303ab89d24
,
0x3fe7e225515a4f1d
,
// 0.292553, 0.746356
.29546421289383584252163927885703742504130
,
.7441860465116279069767441860465116279070
,
0x3fd2e8e2bae11d30
,
0x3fe7d05f417d05f4
,
// 0.295464, 0.744186
.29836697255179722709783618483925238251680
,
.7420289855072463768115942028985507246377
,
0x3fd31871c9544184
,
0x3fe7beb3922e017c
,
// 0.298367, 0.742029
.30126133057816173455023545102449133992200
,
.7398843930635838150289017341040462427746
,
0x3fd347dd9a987d54
,
0x3fe7ad2208e0ecc3
,
// 0.301261, 0.739884
.30414733546729666446850615102448500692850
,
.7377521613832853025936599423631123919308
,
0x3fd3772662bfd85a
,
0x3fe79baa6bb6398b
,
// 0.304147, 0.737752
.30702503529491181888388950937951449304830
,
.7356321839080459770114942528735632183908
,
0x3fd3a64c556945e9
,
0x3fe78a4c8178a4c8
,
// 0.307025, 0.735632
.30989447772286465854207904158101882785550
,
.7335243553008595988538681948424068767908
,
0x3fd3d54fa5c1f70f
,
0x3fe77908119ac60d
,
// 0.309894, 0.733524
.31275571000389684739317885942000430077330
,
.7314285714285714285714285714285714285714
,
0x3fd404308686a7e3
,
0x3fe767dce434a9b1
,
// 0.312756, 0.731429
.31560877898630329552176476681779604405180
,
.7293447293447293447293447293447293447293
,
0x3fd432ef2a04e813
,
0x3fe756cac201756d
,
// 0.315609, 0.729345
.31845373111853458869546784626436419785030
,
.7272727272727272727272727272727272727273
,
0x3fd4618bc21c5ec2
,
0x3fe745d1745d1746
,
// 0.318454, 0.727273
.32129061245373424782201254856772720813750
,
.7252124645892351274787535410764872521246
,
0x3fd49006804009d0
,
0x3fe734f0c541fe8d
,
// 0.321291, 0.725212
.32411946865421192853773391107097268104550
,
.7231638418079096045197740112994350282486
,
0x3fd4be5f957778a0
,
0x3fe724287f46debc
,
// 0.324119, 0.723164
.32694034499585328257253991068864706903700
,
.7211267605633802816901408450704225352113
,
0x3fd4ec9732600269
,
0x3fe713786d9c7c09
,
// 0.326940, 0.721127
.32975328637246797969240219572384376078850
,
.7191011235955056179775280898876404494382
,
0x3fd51aad872df82d
,
0x3fe702e05c0b8170
,
// 0.329753, 0.719101
.33255833730007655635318997155991382896900
,
.7170868347338935574229691876750700280112
,
0x3fd548a2c3add262
,
0x3fe6f26016f26017
,
// 0.332558, 0.717087
.33535554192113781191153520921943709254280
,
.7150837988826815642458100558659217877095
,
0x3fd5767717455a6c
,
0x3fe6e1f76b4337c7
,
// 0.335356, 0.715084
.33814494400871636381467055798566434532400
,
.7130919220055710306406685236768802228412
,
0x3fd5a42ab0f4cfe1
,
0x3fe6d1a62681c861
,
// 0.338145, 0.713092
.34092658697059319283795275623560883104800
,
.7111111111111111111111111111111111111111
,
0x3fd5d1bdbf5809ca
,
0x3fe6c16c16c16c17
,
// 0.340927, 0.711111
.34370051385331840121395430287520866841080
,
.7091412742382271468144044321329639889197
,
0x3fd5ff3070a793d3
,
0x3fe6b1490aa31a3d
,
// 0.343701, 0.709141
.34646676734620857063262633346312213689100
,
.7071823204419889502762430939226519337017
,
0x3fd62c82f2b9c795
,
0x3fe6a13cd1537290
,
// 0.346467, 0.707182
.34922538978528827602332285096053965389730
,
.7052341597796143250688705234159779614325
,
0x3fd659b57303e1f2
,
0x3fe691473a88d0c0
,
// 0.349225, 0.705234
.35197642315717814209818925519357435405250
,
.7032967032967032967032967032967032967033
,
0x3fd686c81e9b14ae
,
0x3fe6816816816817
,
// 0.351976, 0.703297
.35471990910292899856770532096561510115850
,
.7013698630136986301369863013698630136986
,
0x3fd6b3bb2235943d
,
0x3fe6719f3601671a
,
// 0.354720, 0.701370
.35745588892180374385176833129662554711100
,
.6994535519125683060109289617486338797814
,
0x3fd6e08eaa2ba1e3
,
0x3fe661ec6a5122f9
,
// 0.357456, 0.699454
.36018440357500774995358483465679455548530
,
.6975476839237057220708446866485013623978
,
0x3fd70d42e2789235
,
0x3fe6524f853b4aa3
,
// 0.360184, 0.697548
.36290549368936841911903457003063522279280
,
.6956521739130434782608695652173913043478
,
0x3fd739d7f6bbd006
,
0x3fe642c8590b2164
,
// 0.362905, 0.695652
.36561919956096466943762379742111079394830
,
.6937669376693766937669376693766937669377
,
0x3fd7664e1239dbce
,
0x3fe63356b88ac0de
,
// 0.365619, 0.693767
.36832556115870762614150635272380895912650
,
.6918918918918918918918918918918918918919
,
0x3fd792a55fdd47a2
,
0x3fe623fa77016240
,
// 0.368326, 0.691892
.37102461812787262962487488948681857436900
,
.6900269541778975741239892183288409703504
,
0x3fd7bede0a37afbf
,
0x3fe614b36831ae94
,
// 0.371025, 0.690027
.37371640979358405898480555151763837784530
,
.6881720430107526881720430107526881720430
,
0x3fd7eaf83b82afc3
,
0x3fe6058160581606
,
// 0.373716, 0.688172
.37640097516425302659470730759494472295050
,
.6863270777479892761394101876675603217158
,
0x3fd816f41da0d495
,
0x3fe5f66434292dfc
,
// 0.376401, 0.686327
.37907835293496944251145919224654790014030
,
.6844919786096256684491978609625668449198
,
0x3fd842d1da1e8b17
,
0x3fe5e75bb8d015e7
,
// 0.379078, 0.684492
.38174858149084833769393299007788300514230
,
.6826666666666666666666666666666666666667
,
0x3fd86e919a330ba0
,
0x3fe5d867c3ece2a5
,
// 0.381749, 0.682667
.38441169891033200034513583887019194662580
,
.6808510638297872340425531914893617021277
,
0x3fd89a3386c1425a
,
0x3fe5c9882b931057
,
// 0.384412, 0.680851
.38706774296844825844488013899535872042180
,
.6790450928381962864721485411140583554377
,
0x3fd8c5b7c858b48a
,
0x3fe5babcc647fa91
,
// 0.387068, 0.679045
.38971675114002518602873692543653305619950
,
.6772486772486772486772486772486772486772
,
0x3fd8f11e873662c7
,
0x3fe5ac056b015ac0
,
// 0.389717, 0.677249
.39235876060286384303665840889152605086580
,
.6754617414248021108179419525065963060686
,
0x3fd91c67eb45a83d
,
0x3fe59d61f123ccaa
,
// 0.392359, 0.675462
.39499380824086893770896722344332374632350
,
.6736842105263157894736842105263157894737
,
0x3fd947941c2116fa
,
0x3fe58ed2308158ed
,
// 0.394994, 0.673684
.39762193064713846624158577469643205404280
,
.6719160104986876640419947506561679790026
,
0x3fd972a341135158
,
0x3fe5805601580560
,
// 0.397622, 0.671916
.40024316412701266276741307592601515352730
,
.6701570680628272251308900523560209424084
,
0x3fd99d958117e08a
,
0x3fe571ed3c506b3a
,
// 0.400243, 0.670157
.40285754470108348090917615991202183067800
,
.6684073107049608355091383812010443864230
,
0x3fd9c86b02dc0862
,
0x3fe56397ba7c52e2
,
// 0.402858, 0.668407
.40546510810816432934799991016916465014230
,
.6666666666666666666666666666666666666667
,
0x3fd9f323ecbf984b
,
0x3fe5555555555555
,
// 0.405465, 0.666667
.40806588980822172674223224930756259709600
,
.6649350649350649350649350649350649350649
,
0x3fda1dc064d5b995
,
0x3fe54725e6bb82fe
,
// 0.408066, 0.664935
.41065992498526837639616360320360399782650
,
.6632124352331606217616580310880829015544
,
0x3fda484090e5bb0a
,
0x3fe5390948f40feb
,
// 0.410660, 0.663212
.41324724855021932601317757871584035456180
,
.6614987080103359173126614987080103359173
,
0x3fda72a4966bd9ea
,
0x3fe52aff56a8054b
,
// 0.413247, 0.661499
.41582789514371093497757669865677598863850
,
.6597938144329896907216494845360824742268
,
0x3fda9cec9a9a0849
,
0x3fe51d07eae2f815
,
// 0.415828, 0.659794
.41840189913888381489925905043492093682300
,
.6580976863753213367609254498714652956298
,
0x3fdac718c258b0e4
,
0x3fe50f22e111c4c5
,
// 0.418402, 0.658098
.42096929464412963239894338585145305842150
,
.6564102564102564102564102564102564102564
,
0x3fdaf1293247786b
,
0x3fe5015015015015
,
// 0.420969, 0.656410
.42353011550580327293502591601281892508280
,
.6547314578005115089514066496163682864450
,
0x3fdb1b1e0ebdfc5b
,
0x3fe4f38f62dd4c9b
,
// 0.423530, 0.654731
.42608439531090003260516141381231136620050
,
.6530612244897959183673469387755102040816
,
0x3fdb44f77bcc8f62
,
0x3fe4e5e0a72f0539
,
// 0.426084, 0.653061
.42863216738969872610098832410585600882780
,
.6513994910941475826972010178117048346056
,
0x3fdb6eb59d3cf35d
,
0x3fe4d843bedc2c4c
,
// 0.428632, 0.651399
.43117346481837132143866142541810404509300
,
.6497461928934010152284263959390862944162
,
0x3fdb9858969310fb
,
0x3fe4cab88725af6e
,
// 0.431173, 0.649746
.43370832042155937902094819946796633303180
,
.6481012658227848101265822784810126582278
,
0x3fdbc1e08b0dad0a
,
0x3fe4bd3edda68fe1
,
// 0.433708, 0.648101
.43623676677491801667585491486534010618930
,
.6464646464646464646464646464646464646465
,
0x3fdbeb4d9da71b7b
,
0x3fe4afd6a052bf5b
,
// 0.436237, 0.646465
.43875883620762790027214350629947148263450
,
.6448362720403022670025188916876574307305
,
0x3fdc149ff115f026
,
0x3fe4a27fad76014a
,
// 0.438759, 0.644836
.44127456080487520440058801796112675219780
,
.6432160804020100502512562814070351758794
,
0x3fdc3dd7a7cdad4d
,
0x3fe49539e3b2d067
,
// 0.441275, 0.643216
.44378397241030093089975139264424797147500
,
.6416040100250626566416040100250626566416
,
0x3fdc66f4e3ff6ff7
,
0x3fe4880522014880
,
// 0.443784, 0.641604
.44628710262841947420398014401143882423650
,
.6400000000000000000000000000000000000000
,
0x3fdc8ff7c79a9a21
,
0x3fe47ae147ae147b
,
// 0.446287, 0.640000
.44878398282700665555822183705458883196130
,
.6384039900249376558603491271820448877805
,
0x3fdcb8e0744d7ac9
,
0x3fe46dce34596066
,
// 0.448784, 0.638404
.45127464413945855836729492693848442286250
,
.6368159203980099502487562189054726368159
,
0x3fdce1af0b85f3eb
,
0x3fe460cbc7f5cf9a
,
// 0.451275, 0.636816
.45375911746712049854579618113348260521900
,
.6352357320099255583126550868486352357320
,
0x3fdd0a63ae721e64
,
0x3fe453d9e2c776ca
,
// 0.453759, 0.635236
.45623743348158757315857769754074979573500
,
.6336633663366336633663366336633663366337
,
0x3fdd32fe7e00ebd5
,
0x3fe446f86562d9fb
,
// 0.456237, 0.633663
.45870962262697662081833982483658473938700
,
.6320987654320987654320987654320987654321
,
0x3fdd5b7f9ae2c683
,
0x3fe43a2730abee4d
,
// 0.458710, 0.632099
.46117571512217014895185229761409573256980
,
.6305418719211822660098522167487684729064
,
0x3fdd83e7258a2f3e
,
0x3fe42d6625d51f87
,
// 0.461176, 0.630542
.46363574096303250549055974261136725544930
,
.6289926289926289926289926289926289926290
,
0x3fddac353e2c5954
,
0x3fe420b5265e5951
,
// 0.463636, 0.628993
.46608972992459918316399125615134835243230
,
.6274509803921568627450980392156862745098
,
0x3fddd46a04c1c4a0
,
0x3fe4141414141414
,
// 0.466090, 0.627451
.46853771156323925639597405279346276074650
,
.6259168704156479217603911980440097799511
,
0x3fddfc859906d5b5
,
0x3fe40782d10e6566
,
// 0.468538, 0.625917
.47097971521879100631480241645476780831830
,
.6243902439024390243902439024390243902439
,
0x3fde24881a7c6c26
,
0x3fe3fb013fb013fb
,
// 0.470980, 0.624390
.47341577001667212165614273544633761048330
,
.6228710462287104622871046228710462287105
,
0x3fde4c71a8687704
,
0x3fe3ee8f42a5af07
,
// 0.473416, 0.622871
.47584590486996386493601107758877333253630
,
.6213592233009708737864077669902912621359
,
0x3fde744261d68787
,
0x3fe3e22cbce4a902
,
// 0.475846, 0.621359
.47827014848147025860569669930555392056700
,
.6198547215496368038740920096852300242131
,
0x3fde9bfa659861f5
,
0x3fe3d5d991aa75c6
,
// 0.478270, 0.619855
.48068852934575190261057286988943815231330
,
.6183574879227053140096618357487922705314
,
0x3fdec399d2468cc0
,
0x3fe3c995a47babe7
,
// 0.480689, 0.618357
.48310107575113581113157579238759353756900
,
.6168674698795180722891566265060240963855
,
0x3fdeeb20c640ddf4
,
0x3fe3bd60d9232955
,
// 0.483101, 0.616867
.48550781578170076890899053978500887751580
,
.6153846153846153846153846153846153846154
,
0x3fdf128f5faf06ec
,
0x3fe3b13b13b13b14
,
// 0.485508, 0.615385
.48790877731923892879351001283794175833480
,
.6139088729016786570743405275779376498801
,
0x3fdf39e5bc811e5b
,
0x3fe3a524387ac822
,
// 0.487909, 0.613909
.49030398804519381705802061333088204264650
,
.6124401913875598086124401913875598086124
,
0x3fdf6123fa7028ac
,
0x3fe3991c2c187f63
,
// 0.490304, 0.612440
.49269347544257524607047571407747454941280
,
.6109785202863961813842482100238663484487
,
0x3fdf884a36fe9ec2
,
0x3fe38d22d366088e
,
// 0.492693, 0.610979
.49507726679785146739476431321236304938800
,
.6095238095238095238095238095238095238095
,
0x3fdfaf588f78f31e
,
0x3fe3813813813814
,
// 0.495077, 0.609524
.49745538920281889838648226032091770321130
,
.6080760095011876484560570071258907363420
,
0x3fdfd64f20f61571
,
0x3fe3755bd1c945ee
,
// 0.497455, 0.608076
.49982786955644931126130359189119189977650
,
.6066350710900473933649289099526066350711
,
0x3fdffd2e0857f498
,
0x3fe3698df3de0748
,
// 0.499828, 0.606635
.50219473456671548383667413872899487614650
,
.6052009456264775413711583924349881796690
,
0x3fe011fab125ff8a
,
0x3fe35dce5f9f2af8
,
// 0.502195, 0.605201
.50455601075239520092452494282042607665050
,
.6037735849056603773584905660377358490566
,
0x3fe02552a5a5d0fe
,
0x3fe3521cfb2b78c1
,
// 0.504556, 0.603774
.50691172444485432801997148999362252652650
,
.6023529411764705882352941176470588235294
,
0x3fe0389eefce633b
,
0x3fe34679ace01346
,
// 0.506912, 0.602353
.50926190178980790257412536448100581765150
,
.6009389671361502347417840375586854460094
,
0x3fe04bdf9da926d2
,
0x3fe33ae45b57bcb2
,
// 0.509262, 0.600939
.51160656874906207391973111953120678663250
,
.5995316159250585480093676814988290398126
,
0x3fe05f14bd26459c
,
0x3fe32f5ced6a1dfa
,
// 0.511607, 0.599532
.51394575110223428282552049495279788970950
,
.5981308411214953271028037383177570093458
,
0x3fe0723e5c1cdf40
,
0x3fe323e34a2b10bf
,
// 0.513946, 0.598131
.51627947444845445623684554448118433356300
,
.5967365967365967365967365967365967365967
,
0x3fe0855c884b450e
,
0x3fe3187758e9ebb6
,
// 0.516279, 0.596737
.51860776420804555186805373523384332656850
,
.5953488372093023255813953488372093023256
,
0x3fe0986f4f573520
,
0x3fe30d190130d190
,
// 0.518608, 0.595349
.52093064562418522900344441950437612831600
,
.5939675174013921113689095127610208816705
,
0x3fe0ab76bece14d1
,
0x3fe301c82ac40260
,
// 0.520931, 0.593968
.52324814376454775732838697877014055848100
,
.5925925925925925925925925925925925925926
,
0x3fe0be72e4252a82
,
0x3fe2f684bda12f68
,
// 0.523248, 0.592593
.52556028352292727401362526507000438869000
,
.5912240184757505773672055427251732101617
,
0x3fe0d163ccb9d6b7
,
0x3fe2eb4ea1fed14b
,
// 0.525560, 0.591224
.52786708962084227803046587723656557500350
,
.5898617511520737327188940092165898617512
,
0x3fe0e44985d1cc8b
,
0x3fe2e025c04b8097
,
// 0.527867, 0.589862
.53016858660912158374145519701414741575700
,
.5885057471264367816091954022988505747126
,
0x3fe0f7241c9b497d
,
0x3fe2d50a012d50a0
,
// 0.530169, 0.588506
.53246479886947173376654518506256863474850
,
.5871559633027522935779816513761467889908
,
0x3fe109f39e2d4c96
,
0x3fe2c9fb4d812ca0
,
// 0.532465, 0.587156
.53475575061602764748158733709715306758900
,
.5858123569794050343249427917620137299771
,
0x3fe11cb81787ccf8
,
0x3fe2bef98e5a3711
,
// 0.534756, 0.585812
.53704146589688361856929077475797384977350
,
.5844748858447488584474885844748858447489
,
0x3fe12f719593efbc
,
0x3fe2b404ad012b40
,
// 0.537041, 0.584475
.53932196859560876944783558428753167390800
,
.5831435079726651480637813211845102505695
,
0x3fe1422025243d44
,
0x3fe2a91c92f3c105
,
// 0.539322, 0.583144
.54159728243274429804188230264117009937750
,
.5818181818181818181818181818181818181818
,
0x3fe154c3d2f4d5e9
,
0x3fe29e4129e4129e
,
// 0.541597, 0.581818
.54386743096728351609669971367111429572100
,
.5804988662131519274376417233560090702948
,
0x3fe1675cababa60e
,
0x3fe293725bb804a5
,
// 0.543867, 0.580499
.54613243759813556721383065450936555862450
,
.5791855203619909502262443438914027149321
,
0x3fe179eabbd899a0
,
0x3fe288b01288b013
,
// 0.546132, 0.579186
.54839232556557315767520321969641372561450
,
.5778781038374717832957110609480812641084
,
0x3fe18c6e0ff5cf06
,
0x3fe27dfa38a1ce4d
,
// 0.548392, 0.577878
.55064711795266219063194057525834068655950
,
.5765765765765765765765765765765765765766
,
0x3fe19ee6b467c96e
,
0x3fe27350b8812735
,
// 0.550647, 0.576577
.55289683768667763352766542084282264113450
,
.5752808988764044943820224719101123595506
,
0x3fe1b154b57da29e
,
0x3fe268b37cd60127
,
// 0.552897, 0.575281
.55514150754050151093110798683483153581600
,
.5739910313901345291479820627802690582960
,
0x3fe1c3b81f713c24
,
0x3fe25e22708092f1
,
// 0.555142, 0.573991
.55738115013400635344709144192165695130850
,
.5727069351230425055928411633109619686801
,
0x3fe1d610fe677003
,
0x3fe2539d7e9177b2
,
// 0.557381, 0.572707
.55961578793542265941596269840374588966350
,
.5714285714285714285714285714285714285714
,
0x3fe1e85f5e7040d0
,
0x3fe2492492492492
,
// 0.559616, 0.571429
.56184544326269181269140062795486301183700
,
.5701559020044543429844097995545657015590
,
0x3fe1faa34b87094c
,
0x3fe23eb79717605b
,
// 0.561845, 0.570156
.56407013828480290218436721261241473257550
,
.5688888888888888888888888888888888888889
,
0x3fe20cdcd192ab6d
,
0x3fe23456789abcdf
,
// 0.564070, 0.568889
.56628989502311577464155334382667206227800
,
.5676274944567627494456762749445676274945
,
0x3fe21f0bfc65beeb
,
0x3fe22a0122a0122a
,
// 0.566290, 0.567627
.56850473535266865532378233183408156037350
,
.5663716814159292035398230088495575221239
,
0x3fe23130d7bebf42
,
0x3fe21fb78121fb78
,
// 0.568505, 0.566372
.57071468100347144680739575051120482385150
,
.5651214128035320088300220750551876379691
,
0x3fe2434b6f483933
,
0x3fe21579804855e6
,
// 0.570715, 0.565121
.57291975356178548306473885531886480748650
,
.5638766519823788546255506607929515418502
,
0x3fe2555bce98f7cb
,
0x3fe20b470c67c0d9
,
// 0.572920, 0.563877
.57511997447138785144460371157038025558000
,
.5626373626373626373626373626373626373626
,
0x3fe26762013430df
,
0x3fe2012012012012
,
// 0.575120, 0.562637
.57731536503482350219940144597785547375700
,
.5614035087719298245614035087719298245614
,
0x3fe2795e1289b11a
,
0x3fe1f7047dc11f70
,
// 0.577315, 0.561404
.57950594641464214795689713355386629700650
,
.5601750547045951859956236323851203501094
,
0x3fe28b500df60782
,
0x3fe1ecf43c7fb84c
,
// 0.579506, 0.560175
.58169173963462239562716149521293118596100
,
.5589519650655021834061135371179039301310
,
0x3fe29d37fec2b08a
,
0x3fe1e2ef3b3fb874
,
// 0.581692, 0.558952
.58387276558098266665552955601015128195300
,
.5577342047930283224400871459694989106754
,
0x3fe2af15f02640ad
,
0x3fe1d8f5672e4abd
,
// 0.583873, 0.557734
.58604904500357812846544902640744112432000
,
.5565217391304347826086956521739130434783
,
0x3fe2c0e9ed448e8b
,
0x3fe1cf06ada2811d
,
// 0.586049, 0.556522
.58822059851708596855957011939608491957200
,
.5553145336225596529284164859002169197397
,
0x3fe2d2b4012edc9d
,
0x3fe1c522fc1ce059
,
// 0.588221, 0.555315
.59038744660217634674381770309992134571100
,
.5541125541125541125541125541125541125541
,
0x3fe2e47436e40268
,
0x3fe1bb4a4046ed29
,
// 0.590387, 0.554113
.59254960960667157898740242671919986605650
,
.5529157667386609071274298056155507559395
,
0x3fe2f62a99509546
,
0x3fe1b17c67f2bae3
,
// 0.592550, 0.552916
.59470710774669277576265358220553025603300
,
.5517241379310344827586206896551724137931
,
0x3fe307d7334f10be
,
0x3fe1a7b9611a7b96
,
// 0.594707, 0.551724
.59685996110779382384237123915227130055450
,
.5505376344086021505376344086021505376344
,
0x3fe3197a0fa7fe6a
,
0x3fe19e0119e0119e
,
// 0.596860, 0.550538
.59900818964608337768851242799428291618800
,
.5493562231759656652360515021459227467811
,
0x3fe32b1339121d71
,
0x3fe19453808ca29c
,
// 0.599008, 0.549356
.60115181318933474940990890900138765573500
,
.5481798715203426124197002141327623126338
,
0x3fe33ca2ba328994
,
0x3fe18ab083902bdb
,
// 0.601152, 0.548180
.60329085143808425240052883964381180703650
,
.5470085470085470085470085470085470085470
,
0x3fe34e289d9ce1d3
,
0x3fe1811811811812
,
// 0.603291, 0.547009
.60542532396671688843525771517306566238400
,
.5458422174840085287846481876332622601279
,
0x3fe35fa4edd36ea0
,
0x3fe1778a191bd684
,
// 0.605425, 0.545842
.60755525022454170969155029524699784815300
,
.5446808510638297872340425531914893617021
,
0x3fe37117b54747b5
,
0x3fe16e0689427379
,
// 0.607555, 0.544681
.60968064953685519036241657886421307921400
,
.5435244161358811040339702760084925690021
,
0x3fe38280fe58797e
,
0x3fe1648d50fc3201
,
// 0.609681, 0.543524
.61180154110599282990534675263916142284850
,
.5423728813559322033898305084745762711864
,
0x3fe393e0d3562a19
,
0x3fe15b1e5f75270d
,
// 0.611802, 0.542373
.61391794401237043121710712512140162289150
,
.5412262156448202959830866807610993657505
,
0x3fe3a5373e7ebdf9
,
0x3fe151b9a3fdd5c9
,
// 0.613918, 0.541226
.61602987721551394351138242200249806046500
,
.5400843881856540084388185654008438818565
,
0x3fe3b68449fffc22
,
0x3fe1485f0e0acd3b
,
// 0.616030, 0.540084
.61813735955507864705538167982012964785100
,
.5389473684210526315789473684210526315789
,
0x3fe3c7c7fff73205
,
0x3fe13f0e8d344724
,
// 0.618137, 0.538947
.62024040975185745772080281312810257077200
,
.5378151260504201680672268907563025210084
,
0x3fe3d9026a7156fa
,
0x3fe135c81135c811
,
// 0.620240, 0.537815
.62233904640877868441606324267922900617100
,
.5366876310272536687631027253668763102725
,
0x3fe3ea33936b2f5b
,
0x3fe12c8b89edc0ac
,
// 0.622339, 0.536688
.62443328801189346144440150965237990021700
,
.5355648535564853556485355648535564853556
,
0x3fe3fb5b84d16f42
,
0x3fe12358e75d3033
,
// 0.624433, 0.535565
.62652315293135274476554741340805776417250
,
.5344467640918580375782881002087682672234
,
0x3fe40c7a4880dce9
,
0x3fe11a3019a74826
,
// 0.626523, 0.534447
.62860865942237409420556559780379757285100
,
.5333333333333333333333333333333333333333
,
0x3fe41d8fe84672ae
,
0x3fe1111111111111
,
// 0.628609, 0.533333
.63068982562619868570408243613201193511500
,
.5322245322245322245322245322245322245322
,
0x3fe42e9c6ddf80bf
,
0x3fe107fbbe011080
,
// 0.630690, 0.532225
.63276666957103777644277897707070223987100
,
.5311203319502074688796680497925311203320
,
0x3fe43f9fe2f9ce67
,
0x3fe0fef010fef011
,
// 0.632767, 0.531120
.63483920917301017716738442686619237065300
,
.5300207039337474120082815734989648033126
,
0x3fe4509a5133bb0a
,
0x3fe0f5edfab325a2
,
// 0.634839, 0.530021
.63690746223706917739093569252872839570050
,
.5289256198347107438016528925619834710744
,
0x3fe4618bc21c5ec2
,
0x3fe0ecf56be69c90
,
// 0.636907, 0.528926
.63897144645792069983514238629140891134750
,
.5278350515463917525773195876288659793814
,
0x3fe472743f33aaad
,
0x3fe0e40655826011
,
// 0.638971, 0.527835
.64103117942093124081992527862894348800200
,
.5267489711934156378600823045267489711934
,
0x3fe48353d1ea88df
,
0x3fe0db20a88f4696
,
// 0.641031, 0.526749
.64308667860302726193566513757104985415950
,
.5256673511293634496919917864476386036961
,
0x3fe4942a83a2fc07
,
0x3fe0d24456359e3a
,
// 0.643087, 0.525667
.64513796137358470073053240412264131009600
,
.5245901639344262295081967213114754098361
,
0x3fe4a4f85db03ebb
,
0x3fe0c9714fbcda3b
,
// 0.645138, 0.524590
.64718504499530948859131740391603671014300
,
.5235173824130879345603271983640081799591
,
0x3fe4b5bd6956e273
,
0x3fe0c0a7868b4171
,
// 0.647185, 0.523517
.64922794662510974195157587018911726772800
,
.5224489795918367346938775510204081632653
,
0x3fe4c679afccee39
,
0x3fe0b7e6ec259dc8
,
// 0.649228, 0.522449
.65126668331495807251485530287027359008800
,
.5213849287169042769857433808553971486762
,
0x3fe4d72d3a39fd00
,
0x3fe0af2f722eecb5
,
// 0.651267, 0.521385
.65330127201274557080523663898929953575150
,
.5203252032520325203252032520325203252033
,
0x3fe4e7d811b75bb0
,
0x3fe0a6810a6810a7
,
// 0.653301, 0.520325
.65533172956312757406749369692988693714150
,
.5192697768762677484787018255578093306288
,
0x3fe4f87a3f5026e8
,
0x3fe09ddba6af8360
,
// 0.655332, 0.519270
.65735807270835999727154330685152672231200
,
.5182186234817813765182186234817813765182
,
0x3fe50913cc01686b
,
0x3fe0953f39010954
,
// 0.657358, 0.518219
.65938031808912778153342060249997302889800
,
.5171717171717171717171717171717171717172
,
0x3fe519a4c0ba3446
,
0x3fe08cabb37565e2
,
// 0.659380, 0.517172
.66139848224536490484126716182800009846700
,
.5161290322580645161290322580645161290323
,
0x3fe52a2d265bc5aa
,
0x3fe0842108421084
,
// 0.661398, 0.516129
.66341258161706617713093692145776003599150
,
.5150905432595573440643863179074446680080
,
0x3fe53aad05b99b7c
,
0x3fe07b9f29b8eae2
,
// 0.663413, 0.515091
.66542263254509037562201001492212526500250
,
.5140562248995983935742971887550200803213
,
0x3fe54b2467999497
,
0x3fe073260a47f7c6
,
// 0.665423, 0.514056
.66742865127195616370414654738851822912700
,
.5130260521042084168336673346693386773547
,
0x3fe55b9354b40bcd
,
0x3fe06ab59c7912fb
,
// 0.667429, 0.513026
.66943065394262923906154583164607174694550
,
.5120000000000000000000000000000000000000
,
0x3fe56bf9d5b3f399
,
0x3fe0624dd2f1a9fc
,
// 0.669431, 0.512000
.67142865660530226534774556057527661323550
,
.5109780439121756487025948103792415169661
,
0x3fe57c57f336f190
,
0x3fe059eea0727586
,
// 0.671429, 0.510978
.67342267521216669923234121597488410770900
,
.5099601593625498007968127490039840637450
,
0x3fe58cadb5cd7989
,
0x3fe05197f7d73404
,
// 0.673423, 0.509960
.67541272562017662384192817626171745359900
,
.5089463220675944333996023856858846918489
,
0x3fe59cfb25fae87d
,
0x3fe04949cc1664c5
,
// 0.675413, 0.508946
.67739882359180603188519853574689477682100
,
.5079365079365079365079365079365079365079
,
0x3fe5ad404c359f2c
,
0x3fe0410410410410
,
// 0.677399, 0.507937
.67938098479579733801614338517538271844400
,
.5069306930693069306930693069306930693069
,
0x3fe5bd7d30e71c73
,
0x3fe038c6b78247fc
,
// 0.679381, 0.506931
.68135922480790300781450241629499942064300
,
.5059288537549407114624505928853754940711
,
0x3fe5cdb1dc6c1764
,
0x3fe03091b51f5e1a
,
// 0.681359, 0.505929
.68333355911162063645036823800182901322850
,
.5049309664694280078895463510848126232742
,
0x3fe5ddde57149923
,
0x3fe02864fc7729e9
,
// 0.683334, 0.504931
.68530400309891936760919861626462079584600
,
.5039370078740157480314960629921259842520
,
0x3fe5ee02a9241675
,
0x3fe0204081020408
,
// 0.685304, 0.503937
.68727057207096020619019327568821609020250
,
.5029469548133595284872298624754420432220
,
0x3fe5fe1edad18918
,
0x3fe0182436517a37
,
// 0.687271, 0.502947
.68923328123880889251040571252815425395950
,
.5019607843137254901960784313725490196078
,
0x3fe60e32f44788d8
,
0x3fe0101010101010
,
// 0.689233, 0.501961
.69314718055994530941723212145818
,
5.0e-01
,
0x3fe62e42fefa39ef
,
0x3fe0000000000000
,
// 0.693147, 0.500000
};
};
static
const
float64_t
ln_2
(
0.69314718055994530941723212145818
);
// 0.69314718055994530941723212145818
static
const
float64_t
ln_2
=
float64_t
::
fromRaw
(
0x3fe62e42fefa39ef
);
float32_t
f32_log
(
float32_t
x
)
float32_t
f32_log
(
float32_t
x
)
{
{
...
@@ -4560,12 +4562,12 @@ float32_t f32_log(float32_t x)
...
@@ -4560,12 +4562,12 @@ float32_t f32_log(float32_t x)
float64_t
buf
;
buf
.
v
=
packToF64UI
(
0
,
1023
,
((
uint64_t
)
x
.
v
<<
29
)
&
((
1LL
<<
(
52
-
LOGTAB_SCALE
))
-
1
));
float64_t
buf
;
buf
.
v
=
packToF64UI
(
0
,
1023
,
((
uint64_t
)
x
.
v
<<
29
)
&
((
1LL
<<
(
52
-
LOGTAB_SCALE
))
-
1
));
buf
-=
float64_t
::
one
();
buf
-=
float64_t
::
one
();
float64_t
tab0
(
icvLogTab
[
2
*
h0
]);
float64_t
tab0
=
float64_t
::
fromRaw
(
icvLogTab
[
2
*
h0
]);
float64_t
tab1
(
icvLogTab
[
2
*
h0
+
1
]);
float64_t
tab1
=
float64_t
::
fromRaw
(
icvLogTab
[
2
*
h0
+
1
]);
float64_t
x0
=
buf
*
tab1
;
float64_t
x0
=
buf
*
tab1
;
//if last elements of icvLogTab
//if last elements of icvLogTab
if
(
h0
==
255
)
x0
+=
float64_t
(
-
1.
/
512
);
if
(
h0
==
255
)
x0
+=
float64_t
(
-
float64_t
::
one
()
/
float64_t
(
512
)
);
float64_t
y0
=
ln_2
*
float64_t
(
expF32UI
(
x
.
v
)
-
127
)
+
tab0
+
x0
*
x0
*
x0
/
float64_t
(
3
)
-
x0
*
x0
/
float64_t
(
2
)
+
x0
;
float64_t
y0
=
ln_2
*
float64_t
(
expF32UI
(
x
.
v
)
-
127
)
+
tab0
+
x0
*
x0
*
x0
/
float64_t
(
3
)
-
x0
*
x0
/
float64_t
(
2
)
+
x0
;
...
@@ -4579,14 +4581,14 @@ float64_t f64_log(float64_t x)
...
@@ -4579,14 +4581,14 @@ float64_t f64_log(float64_t x)
if
(
x
==
float64_t
::
zero
())
return
-
float64_t
::
inf
();
if
(
x
==
float64_t
::
zero
())
return
-
float64_t
::
inf
();
static
const
float64_t
static
const
float64_t
A7
(
1
.0
),
A7
(
1
),
A6
(
-
0.5
),
A6
(
-
float64_t
::
one
()
/
float64_t
(
2
)
),
A5
(
0.333333333333333314829616256247390992939472198486328125
),
A5
(
float64_t
::
one
()
/
float64_t
(
3
)
),
A4
(
-
0.25
),
A4
(
-
float64_t
::
one
()
/
float64_t
(
4
)
),
A3
(
0.2
),
A3
(
float64_t
::
one
()
/
float64_t
(
5
)
),
A2
(
-
0.1666666666666666574148081281236954964697360992431640625
),
A2
(
-
float64_t
::
one
()
/
float64_t
(
6
)
),
A1
(
0.1428571428571428769682682968777953647077083587646484375
),
A1
(
float64_t
::
one
()
/
float64_t
(
7
)
),
A0
(
-
0.125
);
A0
(
-
float64_t
::
one
()
/
float64_t
(
8
)
);
//first 8 bits of mantissa
//first 8 bits of mantissa
int
h0
=
(
x
.
v
>>
(
52
-
LOGTAB_SCALE
))
&
((
1
<<
LOGTAB_SCALE
)
-
1
);
int
h0
=
(
x
.
v
>>
(
52
-
LOGTAB_SCALE
))
&
((
1
<<
LOGTAB_SCALE
)
-
1
);
...
@@ -4594,12 +4596,12 @@ float64_t f64_log(float64_t x)
...
@@ -4594,12 +4596,12 @@ float64_t f64_log(float64_t x)
float64_t
buf
;
buf
.
v
=
packToF64UI
(
0
,
1023
,
x
.
v
&
((
1LL
<<
(
52
-
LOGTAB_SCALE
))
-
1
));
float64_t
buf
;
buf
.
v
=
packToF64UI
(
0
,
1023
,
x
.
v
&
((
1LL
<<
(
52
-
LOGTAB_SCALE
))
-
1
));
buf
-=
float64_t
::
one
();
buf
-=
float64_t
::
one
();
float64_t
tab0
(
icvLogTab
[
2
*
h0
]);
float64_t
tab0
=
float64_t
::
fromRaw
(
icvLogTab
[
2
*
h0
]);
float64_t
tab1
(
icvLogTab
[
2
*
h0
+
1
]);
float64_t
tab1
=
float64_t
::
fromRaw
(
icvLogTab
[
2
*
h0
+
1
]);
float64_t
x0
=
buf
*
tab1
;
float64_t
x0
=
buf
*
tab1
;
//if last elements of icvLogTab
//if last elements of icvLogTab
if
(
h0
==
255
)
x0
+=
float64_t
(
-
1.
/
512
);
if
(
h0
==
255
)
x0
+=
float64_t
(
-
float64_t
::
one
()
/
float64_t
(
512
)
);
float64_t
xq
=
x0
*
x0
;
float64_t
xq
=
x0
*
x0
;
return
ln_2
*
float64_t
(
expF64UI
(
x
.
v
)
-
1023
)
+
tab0
+
(((
A0
*
xq
+
A2
)
*
xq
+
A4
)
*
xq
+
A6
)
*
xq
+
return
ln_2
*
float64_t
(
expF64UI
(
x
.
v
)
-
1023
)
+
tab0
+
(((
A0
*
xq
+
A2
)
*
xq
+
A4
)
*
xq
+
A6
)
*
xq
+
...
@@ -4613,8 +4615,8 @@ float64_t f64_log(float64_t x)
...
@@ -4613,8 +4615,8 @@ float64_t f64_log(float64_t x)
float32_t
f32_cbrt
(
float32_t
x
)
float32_t
f32_cbrt
(
float32_t
x
)
{
{
//special cases
//special cases
if
(
x
.
isNaN
())
return
float32_t
::
nan
();
if
(
x
.
isNaN
())
return
float32_t
::
nan
();
if
(
x
.
isInf
())
return
x
;
if
(
x
.
isInf
())
return
x
;
int
s
=
signF32UI
(
x
.
v
);
int
s
=
signF32UI
(
x
.
v
);
int
ex
=
expF32UI
(
x
.
v
)
-
127
;
int
ex
=
expF32UI
(
x
.
v
)
-
127
;
...
@@ -4625,22 +4627,23 @@ float32_t f32_cbrt(float32_t x)
...
@@ -4625,22 +4627,23 @@ float32_t f32_cbrt(float32_t x)
/* 0.125 <= fr < 1.0 */
/* 0.125 <= fr < 1.0 */
/* Use quartic rational polynomial with error < 2^(-24) */
/* Use quartic rational polynomial with error < 2^(-24) */
const
float64_t
A1
(
45.2548339756803022511987494
);
const
float64_t
A1
=
float64_t
::
fromRaw
(
0x4046a09e6653ba70
);
// 45.2548339756803022511987494
const
float64_t
A2
(
192.2798368355061050458134625
);
const
float64_t
A2
=
float64_t
::
fromRaw
(
0x406808f46c6116e0
);
// 192.2798368355061050458134625
const
float64_t
A3
(
119.1654824285581628956914143
);
const
float64_t
A3
=
float64_t
::
fromRaw
(
0x405dca97439cae14
);
// 119.1654824285581628956914143
const
float64_t
A4
(
13.43250139086239872172837314
);
const
float64_t
A4
=
float64_t
::
fromRaw
(
0x402add70d2827500
);
// 13.43250139086239872172837314
const
float64_t
A5
(
0.1636161226585754240958355063
);
const
float64_t
A5
=
float64_t
::
fromRaw
(
0x3fc4f15f83f55d2d
);
// 0.1636161226585754240958355063
const
float64_t
A6
(
14.80884093219134573786480845
);
const
float64_t
A6
=
float64_t
::
fromRaw
(
0x402d9e20660edb21
);
// 14.80884093219134573786480845
const
float64_t
A7
(
151.9714051044435648658557668
);
const
float64_t
A7
=
float64_t
::
fromRaw
(
0x4062ff15c0285815
);
// 151.9714051044435648658557668
const
float64_t
A8
(
168.5254414101568283957668343
);
const
float64_t
A8
=
float64_t
::
fromRaw
(
0x406510d06a8112ce
);
// 168.5254414101568283957668343
const
float64_t
A9
(
33.9905941350215598754191872
);
const
float64_t
A9
=
float64_t
::
fromRaw
(
0x4040fecbc9e2c375
);
// 33.9905941350215598754191872
const
float64_t
A10
(
1.0
);
const
float64_t
A10
=
float64_t
::
one
();
fr
=
((((
A1
*
fr
+
A2
)
*
fr
+
A3
)
*
fr
+
A4
)
*
fr
+
A5
)
/
fr
=
((((
A1
*
fr
+
A2
)
*
fr
+
A3
)
*
fr
+
A4
)
*
fr
+
A5
)
/
((((
A6
*
fr
+
A7
)
*
fr
+
A8
)
*
fr
+
A9
)
*
fr
+
A10
);
((((
A6
*
fr
+
A7
)
*
fr
+
A8
)
*
fr
+
A9
)
*
fr
+
A10
);
/* fr *= 2^ex * sign */
/* fr *= 2^ex * sign */
// checks for "+0" and "-0", reset sign bit
// checks for "+0" and "-0", reset sign bit
float32_t
y
;
y
.
v
=
((
x
.
v
&
((
1u
<<
31
)
-
1
))
!=
0
)
?
packToF32UI
(
s
,
ex
+
127
,
(
uint32_t
)(
fracF64UI
(
fr
.
v
)
>>
29
))
:
0
;
float32_t
y
;
y
.
v
=
((
x
.
v
&
((
1u
<<
31
)
-
1
))
!=
0
)
?
packToF32UI
(
s
,
ex
+
127
,
(
uint32_t
)(
fracF64UI
(
fr
.
v
)
>>
29
))
:
0
;
return
y
;
return
y
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment