Files
kunlun/dtest/bee_ai_test/nonlinear_look_up_table.h
2024-09-28 14:24:04 +08:00

1570 lines
8.9 KiB
C
Executable File

#ifndef NONLINEAR_LOOK_UP_TABLE_H
#define NONLINEAR_LOOK_UP_TABLE_H
#include "os_types.h"
int8_t sigmoid_look_up[] = {
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
2,
2,
2,
2,
2,
2,
2,
3,
3,
3,
3,
3,
4,
4,
4,
4,
4,
5,
5,
5,
6,
6,
6,
7,
7,
8,
8,
9,
9,
10,
10,
11,
12,
12,
13,
14,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
25,
26,
27,
29,
30,
31,
33,
34,
36,
38,
39,
41,
43,
45,
46,
48,
50,
52,
54,
56,
58,
60,
62,
64,
66,
68,
70,
72,
74,
76,
78,
80,
82,
83,
85,
87,
89,
90,
92,
94,
95,
97,
98,
99,
101,
102,
103,
105,
106,
107,
108,
109,
110,
111,
112,
113,
114,
114,
115,
116,
116,
117,
118,
118,
119,
119,
120,
120,
121,
121,
122,
122,
122,
123,
123,
123,
124,
124,
124,
124,
124,
125,
125,
125,
125,
125,
126,
126,
126,
126,
126,
126,
126,
126,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127
};
int16_t sigmoid_look_up_16[] = {
11,
12,
12,
13,
14,
15,
16,
17,
18,
19,
21,
22,
23,
25,
26,
28,
30,
32,
34,
36,
38,
41,
43,
46,
49,
52,
56,
59,
63,
67,
72,
76,
81,
86,
92,
98,
104,
111,
118,
125,
133,
142,
151,
161,
171,
182,
194,
206,
219,
233,
248,
264,
281,
299,
318,
338,
360,
383,
407,
433,
461,
490,
521,
554,
589,
627,
666,
708,
753,
800,
851,
904,
961,
1021,
1084,
1152,
1223,
1299,
1379,
1464,
1554,
1649,
1750,
1856,
1969,
2088,
2213,
2346,
2486,
2633,
2789,
2952,
3124,
3306,
3496,
3696,
3906,
4126,
4357,
4599,
4851,
5115,
5391,
5678,
5978,
6289,
6613,
6949,
7297,
7658,
8031,
8416,
8813,
9221,
9641,
10072,
10513,
10964,
11424,
11894,
12371,
12856,
13348,
13845,
14347,
14852,
15361,
15872,
16384,
16896,
17407,
17916,
18421,
18923,
19420,
19912,
20397,
20874,
21344,
21804,
22255,
22696,
23127,
23547,
23955,
24352,
24737,
25110,
25471,
25819,
26155,
26479,
26790,
27090,
27377,
27653,
27917,
28169,
28411,
28642,
28862,
29072,
29272,
29462,
29644,
29816,
29979,
30135,
30282,
30422,
30555,
30680,
30799,
30912,
31018,
31119,
31214,
31304,
31389,
31469,
31545,
31616,
31684,
31747,
31807,
31864,
31917,
31968,
32015,
32060,
32102,
32141,
32179,
32214,
32247,
32278,
32307,
32335,
32361,
32385,
32408,
32430,
32450,
32469,
32487,
32504,
32520,
32535,
32549,
32562,
32574,
32586,
32597,
32607,
32617,
32626,
32635,
32643,
32650,
32657,
32664,
32670,
32676,
32682,
32687,
32692,
32696,
32701,
32705,
32709,
32712,
32716,
32719,
32722,
32725,
32727,
32730,
32732,
32734,
32736,
32738,
32740,
32742,
32743,
32745,
32746,
32747,
32749,
32750,
32751,
32752,
32753,
32754,
32755,
32756,
32756,
32757,
32757
};
int16_t tanh_look_up_16[] = {
-32746,
-32745,
-32743,
-32741,
-32740,
-32738,
-32736,
-32734,
-32732,
-32729,
-32727,
-32724,
-32721,
-32718,
-32715,
-32712,
-32708,
-32704,
-32700,
-32696,
-32691,
-32686,
-32681,
-32676,
-32670,
-32663,
-32657,
-32649,
-32642,
-32634,
-32625,
-32616,
-32606,
-32596,
-32584,
-32573,
-32560,
-32547,
-32532,
-32517,
-32501,
-32484,
-32466,
-32447,
-32426,
-32404,
-32381,
-32356,
-32329,
-32301,
-32271,
-32240,
-32206,
-32170,
-32132,
-32091,
-32048,
-32002,
-31953,
-31901,
-31846,
-31788,
-31726,
-31659,
-31589,
-31515,
-31435,
-31351,
-31262,
-31167,
-31067,
-30960,
-30847,
-30727,
-30600,
-30465,
-30322,
-30170,
-30010,
-29840,
-29660,
-29470,
-29268,
-29055,
-28830,
-28592,
-28341,
-28076,
-27797,
-27502,
-27191,
-26864,
-26519,
-26157,
-25776,
-25376,
-24956,
-24516,
-24054,
-23571,
-23066,
-22538,
-21986,
-21411,
-20813,
-20189,
-19542,
-18870,
-18173,
-17452,
-16706,
-15936,
-15143,
-14326,
-13486,
-12625,
-11743,
-10840,
-9919,
-8980,
-8025,
-7056,
-6073,
-5079,
-4075,
-3063,
-2045,
-1024,
0,
1024,
2045,
3063,
4075,
5079,
6073,
7056,
8025,
8980,
9919,
10840,
11743,
12625,
13486,
14326,
15143,
15936,
16706,
17452,
18173,
18870,
19542,
20189,
20813,
21411,
21986,
22538,
23066,
23571,
24054,
24516,
24956,
25376,
25776,
26157,
26519,
26864,
27191,
27502,
27797,
28076,
28341,
28592,
28830,
29055,
29268,
29470,
29660,
29840,
30010,
30170,
30322,
30465,
30600,
30727,
30847,
30960,
31067,
31167,
31262,
31351,
31435,
31515,
31589,
31659,
31726,
31788,
31846,
31901,
31953,
32002,
32048,
32091,
32132,
32170,
32206,
32240,
32271,
32301,
32329,
32356,
32381,
32404,
32426,
32447,
32466,
32484,
32501,
32517,
32532,
32547,
32560,
32573,
32584,
32596,
32606,
32616,
32625,
32634,
32642,
32649,
32657,
32663,
32670,
32676,
32681,
32686,
32691,
32696,
32700,
32704,
32708,
32712,
32715,
32718,
32721,
32724,
32727,
32729,
32732,
32734,
32736,
32738,
32740,
32741,
32743,
32745,
32746,
32746
};
int8_t tanh_look_up[] = {
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-128,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-127,
-126,
-126,
-126,
-126,
-126,
-126,
-126,
-126,
-126,
-125,
-125,
-125,
-125,
-125,
-124,
-124,
-124,
-124,
-123,
-123,
-123,
-122,
-122,
-122,
-121,
-121,
-120,
-120,
-120,
-119,
-118,
-118,
-117,
-117,
-116,
-115,
-114,
-113,
-113,
-112,
-111,
-110,
-109,
-107,
-106,
-105,
-104,
-102,
-101,
-99,
-97,
-96,
-94,
-92,
-90,
-88,
-86,
-84,
-81,
-79,
-76,
-74,
-71,
-68,
-65,
-62,
-59,
-56,
-53,
-49,
-46,
-42,
-39,
-35,
-31,
-28,
-24,
-20,
-16,
-12,
-8,
-4,
0,
4,
8,
12,
16,
20,
24,
28,
31,
35,
39,
42,
46,
49,
53,
56,
59,
62,
65,
68,
71,
74,
76,
79,
81,
84,
86,
88,
90,
92,
94,
96,
97,
99,
101,
102,
104,
105,
106,
107,
109,
110,
111,
112,
113,
113,
114,
115,
116,
117,
117,
118,
118,
119,
120,
120,
120,
121,
121,
122,
122,
122,
123,
123,
123,
124,
124,
124,
124,
125,
125,
125,
125,
125,
126,
126,
126,
126,
126,
126,
126,
126,
126,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127
};
uint16_t exp_minus_x_look_up[] = {
65535,
61565,
57835,
54331,
51039,
47947,
45042,
42313,
39750,
37341,
35079,
32954,
30957,
29081,
27319,
25664,
24109,
22649,
21276,
19987,
18776,
17639,
16570,
15566,
14623,
13737,
12905,
12123,
11388,
10698,
10050,
9441,
8869,
8332,
7827,
7353,
6907,
6489,
6096,
5726,
5380,
5054,
4747,
4460,
4190,
3936,
3697,
3473,
3263,
3065,
2879,
2705,
2541,
2387,
2243,
2107,
1979,
1859,
1746,
1641,
1541,
1448,
1360,
1278,
1200,
1128,
1059,
995,
935,
878,
825,
775,
728,
684,
642,
604,
567,
533,
500,
470,
442,
415,
390,
366,
344,
323,
303,
285,
268,
252,
236,
222,
209,
196,
184,
173,
162,
153,
143,
135,
127,
119,
112,
105,
99,
93,
87,
82,
77,
72,
68,
64,
60,
56,
53,
50,
47,
44,
41,
39,
36,
34,
32,
30,
28,
27,
25,
23,
22
};
int8_t log_exp8[] = {
22,
22,
21,
21,
20,
20,
19,
19,
18,
18,
18,
17,
17,
16,
16,
16,
15,
15,
14,
14,
14,
13,
13,
13,
12,
12,
12,
11,
11,
11,
11,
10,
10,
10,
9,
9,
9,
9,
9,
8,
8,
8,
8,
7,
7,
7,
7,
7,
6,
6,
6,
6,
6,
6,
5,
5,
5,
5,
5,
5,
5,
4,
4,
4,
4,
4,
4,
4,
4,
4,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
3,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1
};
int16_t log_exp16[] = {
2839,
2713,
2591,
2473,
2359,
2249,
2143,
2040,
1942,
1847,
1756,
1669,
1585,
1504,
1427,
1354,
1283,
1216,
1152,
1090,
1032,
976,
923,
873,
825,
779,
736,
695,
656,
619,
584,
551,
520,
490,
462,
436,
410,
387,
364,
343,
323,
304,
286,
270,
254,
239,
225,
212,
199,
187,
176,
166,
156,
147,
138,
130,
122,
115,
108,
101,
95,
90,
84,
79,
74,
70,
66,
62,
58,
55,
51,
48,
45,
43,
40,
38,
35,
33,
31,
29,
28,
26,
24,
23,
21,
20,
19,
18,
17,
16,
15,
14,
13,
12,
11,
11,
10,
10,
9,
8,
8,
7,
7,
7,
6,
6,
5,
5,
5,
5,
4,
4,
4,
4,
3,
3,
3,
3,
3,
2,
2,
2,
2,
2,
2,
2,
2,
1,
1
};
int32_t log_exp32[] = {
186065279,
177807722,
169812011,
162077380,
154602561,
147385792,
140424832,
133716974,
127259071,
121047555,
115078462,
109347464,
103849895,
98580782,
93534880,
88706700,
84090544,
79680539,
75470665,
71454790,
67626698,
63980117,
60508748,
57206290,
54066465,
51083037,
48249833,
45560766,
43009843,
40591187,
38299044,
36127799,
34071979,
32126265,
30285500,
28544686,
26898993,
25343763,
23874506,
22486902,
21176802,
19940225,
18773356,
17672544,
16634298,
15655285,
14732323,
13862380,
13042568,
12270138,
11542477,
10857102,
10211653,
9603893,
9031699,
8493059,
7986067,
7508918,
7059905,
6637410,
6239907,
5865950,
5514175,
5183292,
4872084,
4579403,
4304163,
4045342,
3801974,
3573150,
3358012,
3155752,
2965606,
2786859,
2618832,
2460890,
2312433,
2172895,
2041745,
1918483,
1802638,
1693765,
1591449,
1495296,
1404937,
1320025,
1240233,
1165254,
1094799,
1028595,
966388,
907936,
853014,
801410,
752923,
707366,
664562,
624345,
586559,
551058,
517703,
486365,
456923,
429261,
403273,
378857,
355919,
334368,
314122,
295101,
277231,
260442,
244670,
229852,
215932,
202854,
190568,
179026,
168183,
157996,
148426,
139436,
130990,
123056,
115602,
108599,
102021,
95841,
90035
};
#endif