2023-07-01 04:09:54 +00:00

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];
}