269 lines
5.8 KiB
C++
269 lines
5.8 KiB
C++
static constexpr fp16_16 _cos[256] = {
|
|
1.0,
|
|
0.9996988186962042,
|
|
0.9987954562051724,
|
|
0.9972904566786902,
|
|
0.9951847266721969,
|
|
0.99247953459871,
|
|
0.989176509964781,
|
|
0.9852776423889412,
|
|
0.9807852804032304,
|
|
0.9757021300385286,
|
|
0.970031253194544,
|
|
0.9637760657954398,
|
|
0.9569403357322088,
|
|
0.9495281805930367,
|
|
0.9415440651830208,
|
|
0.932992798834739,
|
|
0.9238795325112867,
|
|
0.9142097557035307,
|
|
0.9039892931234433,
|
|
0.8932243011955153,
|
|
0.881921264348355,
|
|
0.8700869911087115,
|
|
0.8577286100002721,
|
|
0.8448535652497071,
|
|
0.8314696123025452,
|
|
0.8175848131515837,
|
|
0.8032075314806449,
|
|
0.7883464276266063,
|
|
0.773010453362737,
|
|
0.7572088465064846,
|
|
0.7409511253549591,
|
|
0.724247082951467,
|
|
0.7071067811865476,
|
|
0.6895405447370669,
|
|
0.6715589548470183,
|
|
0.6531728429537768,
|
|
0.6343932841636455,
|
|
0.6152315905806268,
|
|
0.5956993044924335,
|
|
0.5758081914178453,
|
|
0.5555702330196023,
|
|
0.5349976198870973,
|
|
0.5141027441932217,
|
|
0.4928981922297841,
|
|
0.4713967368259978,
|
|
0.4496113296546066,
|
|
0.4275550934302822,
|
|
0.40524131400498986,
|
|
0.38268343236508984,
|
|
0.3598950365349883,
|
|
0.33688985339222005,
|
|
0.3136817403988916,
|
|
0.29028467725446233,
|
|
0.2667127574748984,
|
|
0.24298017990326398,
|
|
0.21910124015686977,
|
|
0.19509032201612833,
|
|
0.17096188876030136,
|
|
0.14673047445536175,
|
|
0.12241067519921628,
|
|
0.09801714032956077,
|
|
0.07356456359966745,
|
|
0.049067674327418126,
|
|
0.024541228522912264,
|
|
6.123233995736766e-17,
|
|
-0.024541228522912142,
|
|
-0.04906767432741801,
|
|
-0.07356456359966733,
|
|
-0.09801714032956065,
|
|
-0.12241067519921615,
|
|
-0.14673047445536164,
|
|
-0.17096188876030124,
|
|
-0.1950903220161282,
|
|
-0.21910124015686966,
|
|
-0.24298017990326387,
|
|
-0.2667127574748983,
|
|
-0.29028467725446216,
|
|
-0.3136817403988914,
|
|
-0.33688985339221994,
|
|
-0.35989503653498817,
|
|
-0.3826834323650897,
|
|
-0.40524131400498975,
|
|
-0.42755509343028186,
|
|
-0.4496113296546067,
|
|
-0.4713967368259977,
|
|
-0.492898192229784,
|
|
-0.5141027441932217,
|
|
-0.534997619887097,
|
|
-0.555570233019602,
|
|
-0.5758081914178453,
|
|
-0.5956993044924334,
|
|
-0.6152315905806267,
|
|
-0.6343932841636454,
|
|
-0.6531728429537765,
|
|
-0.6715589548470184,
|
|
-0.6895405447370669,
|
|
-0.7071067811865475,
|
|
-0.7242470829514668,
|
|
-0.7409511253549589,
|
|
-0.7572088465064846,
|
|
-0.773010453362737,
|
|
-0.7883464276266062,
|
|
-0.8032075314806448,
|
|
-0.8175848131515836,
|
|
-0.8314696123025453,
|
|
-0.8448535652497071,
|
|
-0.857728610000272,
|
|
-0.8700869911087113,
|
|
-0.8819212643483549,
|
|
-0.8932243011955152,
|
|
-0.9039892931234433,
|
|
-0.9142097557035307,
|
|
-0.9238795325112867,
|
|
-0.9329927988347388,
|
|
-0.9415440651830207,
|
|
-0.9495281805930367,
|
|
-0.9569403357322088,
|
|
-0.9637760657954398,
|
|
-0.970031253194544,
|
|
-0.9757021300385285,
|
|
-0.9807852804032304,
|
|
-0.9852776423889412,
|
|
-0.989176509964781,
|
|
-0.99247953459871,
|
|
-0.9951847266721968,
|
|
-0.9972904566786902,
|
|
-0.9987954562051724,
|
|
-0.9996988186962042,
|
|
-1.0,
|
|
-0.9996988186962042,
|
|
-0.9987954562051724,
|
|
-0.9972904566786902,
|
|
-0.9951847266721969,
|
|
-0.99247953459871,
|
|
-0.989176509964781,
|
|
-0.9852776423889413,
|
|
-0.9807852804032304,
|
|
-0.9757021300385286,
|
|
-0.970031253194544,
|
|
-0.96377606579544,
|
|
-0.9569403357322089,
|
|
-0.9495281805930368,
|
|
-0.9415440651830208,
|
|
-0.932992798834739,
|
|
-0.9238795325112868,
|
|
-0.9142097557035307,
|
|
-0.9039892931234434,
|
|
-0.8932243011955153,
|
|
-0.881921264348355,
|
|
-0.8700869911087115,
|
|
-0.8577286100002721,
|
|
-0.8448535652497072,
|
|
-0.8314696123025455,
|
|
-0.8175848131515837,
|
|
-0.8032075314806449,
|
|
-0.7883464276266063,
|
|
-0.7730104533627371,
|
|
-0.7572088465064848,
|
|
-0.7409511253549591,
|
|
-0.724247082951467,
|
|
-0.7071067811865477,
|
|
-0.689540544737067,
|
|
-0.6715589548470187,
|
|
-0.6531728429537771,
|
|
-0.6343932841636459,
|
|
-0.6152315905806273,
|
|
-0.5956993044924331,
|
|
-0.5758081914178452,
|
|
-0.5555702330196022,
|
|
-0.5349976198870973,
|
|
-0.5141027441932218,
|
|
-0.4928981922297842,
|
|
-0.47139673682599786,
|
|
-0.44961132965460693,
|
|
-0.4275550934302825,
|
|
-0.40524131400499036,
|
|
-0.38268343236509034,
|
|
-0.35989503653498794,
|
|
-0.33688985339221994,
|
|
-0.31368174039889146,
|
|
-0.29028467725446244,
|
|
-0.26671275747489853,
|
|
-0.24298017990326412,
|
|
-0.2191012401568701,
|
|
-0.19509032201612866,
|
|
-0.1709618887603017,
|
|
-0.1467304744553623,
|
|
-0.12241067519921596,
|
|
-0.09801714032956045,
|
|
-0.07356456359966736,
|
|
-0.04906767432741803,
|
|
-0.02454122852291239,
|
|
-1.8369701987210297e-16,
|
|
0.02454122852291202,
|
|
0.04906767432741766,
|
|
0.07356456359966698,
|
|
0.09801714032956009,
|
|
0.1224106751992156,
|
|
0.14673047445536194,
|
|
0.17096188876030133,
|
|
0.1950903220161283,
|
|
0.21910124015686974,
|
|
0.24298017990326376,
|
|
0.2667127574748982,
|
|
0.29028467725446205,
|
|
0.31368174039889113,
|
|
0.3368898533922196,
|
|
0.3598950365349876,
|
|
0.38268343236509,
|
|
0.40524131400499,
|
|
0.42755509343028214,
|
|
0.4496113296546066,
|
|
0.4713967368259976,
|
|
0.49289819222978387,
|
|
0.5141027441932216,
|
|
0.5349976198870969,
|
|
0.5555702330196018,
|
|
0.5758081914178449,
|
|
0.5956993044924329,
|
|
0.615231590580627,
|
|
0.6343932841636456,
|
|
0.6531728429537768,
|
|
0.6715589548470183,
|
|
0.6895405447370668,
|
|
0.7071067811865474,
|
|
0.7242470829514667,
|
|
0.7409511253549589,
|
|
0.7572088465064842,
|
|
0.7730104533627367,
|
|
0.7883464276266059,
|
|
0.803207531480645,
|
|
0.8175848131515837,
|
|
0.8314696123025452,
|
|
0.844853565249707,
|
|
0.857728610000272,
|
|
0.8700869911087113,
|
|
0.8819212643483548,
|
|
0.8932243011955151,
|
|
0.9039892931234431,
|
|
0.9142097557035305,
|
|
0.9238795325112865,
|
|
0.932992798834739,
|
|
0.9415440651830208,
|
|
0.9495281805930367,
|
|
0.9569403357322088,
|
|
0.9637760657954398,
|
|
0.970031253194544,
|
|
0.9757021300385285,
|
|
0.9807852804032303,
|
|
0.9852776423889411,
|
|
0.9891765099647809,
|
|
0.99247953459871,
|
|
0.9951847266721969,
|
|
0.9972904566786902,
|
|
0.9987954562051724,
|
|
0.9996988186962042,
|
|
};
|
|
|
|
constexpr fp16_16 cos(int x)
|
|
{
|
|
return _cos[x & 255];
|
|
}
|
|
|
|
constexpr fp16_16 sin(int x)
|
|
{
|
|
return _cos[(x + 64) & 255];
|
|
}
|