Add wasm tacle-bench targets
This commit is contained in:
@ -0,0 +1,610 @@
|
||||
|
||||
char susan_input[7292] = {
|
||||
80, 53, 10, 35, 32, 67, 82, 69, 65, 84, 79, 82,
|
||||
58, 32, 88, 86, 32, 86, 101, 114, 115, 105, 111, 110,
|
||||
32, 51, 46, 49, 48, 97, 32, 32, 82, 101, 118, 58,
|
||||
32, 49, 50, 47, 50, 57, 47, 57, 52, 32, 40, 80,
|
||||
78, 71, 32, 112, 97, 116, 99, 104, 32, 49, 46, 50,
|
||||
41, 10, 55, 54, 32, 57, 53, 10, 50, 53, 53, 10,
|
||||
35, 36, 36, 36, 36, 38, 38, 36, 37, 37, 37, 38,
|
||||
38, 36, 34, 38, 40, 41, 42, 40, 38, 36, 36, 35,
|
||||
36, 35, 32, 35, 38, 42, 42, 38, 36, 36, 36, 37,
|
||||
36, 35, 33, 33, 33, 32, 31, 33, 36, 39, 40, 36,
|
||||
36, 34, 34, 36, 38, 39, 37, 36, 36, 35, 36, 39,
|
||||
39, 37, 37, 39, 37, 38, 39, 40, 38, 37, 37, 33,
|
||||
33, 32, 33, 34, 35, 35, 36, 36, 36, 37, 38, 37,
|
||||
38, 38, 39, 41, 41, 40, 40, 43, 42, 41, 40, 39,
|
||||
38, 35, 33, 35, 35, 37, 39, 38, 37, 36, 38, 36,
|
||||
36, 34, 34, 38, 39, 39, 37, 36, 36, 34, 33, 34,
|
||||
33, 35, 33, 36, 35, 35, 36, 36, 37, 33, 32, 36,
|
||||
38, 38, 38, 39, 39, 38, 39, 37, 35, 36, 34, 35,
|
||||
36, 37, 39, 38, 37, 34, 31, 34, 35, 35, 35, 35,
|
||||
36, 38, 39, 39, 37, 38, 38, 40, 39, 40, 41, 43,
|
||||
44, 42, 40, 39, 38, 42, 42, 39, 39, 36, 33, 33,
|
||||
34, 36, 36, 35, 33, 33, 35, 37, 36, 34, 34, 31,
|
||||
30, 32, 36, 42, 43, 43, 40, 36, 36, 36, 35, 34,
|
||||
35, 33, 33, 30, 32, 34, 35, 35, 35, 36, 35, 37,
|
||||
34, 34, 35, 36, 37, 37, 35, 36, 37, 39, 39, 38,
|
||||
35, 35, 35, 35, 35, 36, 38, 37, 38, 38, 36, 35,
|
||||
35, 36, 35, 35, 35, 35, 34, 34, 36, 36, 38, 40,
|
||||
38, 37, 36, 34, 34, 35, 35, 36, 37, 37, 38, 38,
|
||||
39, 39, 36, 35, 36, 35, 37, 36, 38, 39, 37, 38,
|
||||
34, 33, 32, 33, 32, 28, 34, 40, 45, 44, 40, 38,
|
||||
34, 30, 30, 33, 40, 45, 43, 41, 37, 37, 37, 36,
|
||||
33, 31, 32, 31, 35, 35, 35, 35, 35, 38, 39, 39,
|
||||
40, 39, 37, 37, 37, 35, 35, 37, 37, 36, 37, 37,
|
||||
37, 38, 37, 38, 37, 37, 35, 35, 34, 35, 35, 35,
|
||||
36, 39, 45, 43, 38, 39, 38, 36, 36, 36, 35, 37,
|
||||
39, 38, 37, 37, 37, 39, 38, 37, 37, 35, 34, 34,
|
||||
37, 39, 36, 37, 38, 39, 40, 41, 39, 36, 38, 39,
|
||||
39, 39, 36, 33, 32, 30, 30, 31, 35, 35, 35, 35,
|
||||
35, 39, 40, 38, 37, 40, 39, 38, 39, 39, 39, 38,
|
||||
39, 39, 40, 40, 39, 41, 39, 41, 39, 38, 39, 38,
|
||||
38, 36, 35, 36, 35, 37, 38, 38, 38, 40, 38, 39,
|
||||
39, 36, 36, 33, 34, 36, 35, 37, 38, 39, 39, 38,
|
||||
36, 32, 32, 35, 38, 38, 39, 38, 35, 35, 34, 37,
|
||||
39, 38, 36, 35, 35, 33, 31, 30, 32, 36, 37, 38,
|
||||
35, 35, 35, 35, 35, 39, 41, 42, 38, 33, 31, 33,
|
||||
37, 36, 37, 38, 37, 37, 38, 39, 38, 38, 38, 38,
|
||||
37, 38, 38, 39, 41, 41, 37, 39, 40, 42, 44, 43,
|
||||
39, 42, 48, 45, 41, 39, 38, 38, 38, 38, 36, 37,
|
||||
38, 39, 39, 39, 43, 41, 38, 37, 37, 38, 36, 34,
|
||||
34, 34, 38, 41, 41, 38, 35, 35, 34, 35, 32, 30,
|
||||
31, 33, 34, 35, 35, 35, 35, 35, 35, 39, 36, 35,
|
||||
38, 41, 38, 32, 34, 38, 34, 38, 40, 39, 39, 36,
|
||||
36, 39, 38, 39, 37, 38, 38, 36, 36, 35, 37, 38,
|
||||
39, 38, 36, 38, 37, 35, 31, 35, 37, 40, 39, 35,
|
||||
35, 36, 34, 36, 36, 38, 37, 38, 37, 37, 36, 37,
|
||||
38, 37, 36, 35, 34, 34, 34, 37, 36, 37, 36, 34,
|
||||
36, 36, 34, 31, 30, 33, 32, 33, 35, 35, 35, 35,
|
||||
34, 27, 33, 39, 42, 41, 42, 44, 45, 42, 39, 41,
|
||||
41, 42, 43, 42, 41, 40, 38, 37, 35, 37, 36, 36,
|
||||
36, 37, 36, 36, 37, 37, 39, 43, 43, 43, 42, 39,
|
||||
39, 39, 39, 40, 39, 38, 35, 34, 36, 37, 36, 37,
|
||||
38, 38, 37, 36, 35, 35, 33, 35, 38, 38, 39, 41,
|
||||
39, 38, 37, 38, 38, 36, 37, 36, 37, 37, 36, 36,
|
||||
35, 35, 35, 35, 36, 42, 40, 41, 43, 42, 39, 37,
|
||||
37, 37, 37, 39, 39, 38, 37, 35, 37, 36, 35, 36,
|
||||
36, 39, 39, 36, 36, 34, 37, 40, 40, 40, 39, 41,
|
||||
40, 39, 39, 39, 40, 38, 36, 34, 35, 37, 34, 36,
|
||||
35, 35, 34, 33, 36, 36, 38, 39, 38, 37, 34, 34,
|
||||
33, 34, 35, 36, 36, 35, 36, 35, 38, 39, 39, 40,
|
||||
38, 37, 36, 36, 35, 35, 35, 35, 36, 36, 42, 45,
|
||||
44, 43, 40, 38, 37, 36, 37, 37, 38, 38, 38, 38,
|
||||
36, 35, 35, 34, 34, 36, 38, 36, 35, 38, 37, 37,
|
||||
38, 38, 37, 38, 36, 33, 35, 37, 37, 38, 38, 41,
|
||||
41, 41, 38, 35, 33, 30, 29, 32, 37, 39, 39, 38,
|
||||
39, 38, 35, 34, 35, 35, 35, 35, 34, 35, 36, 36,
|
||||
37, 38, 38, 38, 36, 35, 33, 34, 35, 35, 35, 35,
|
||||
36, 36, 32, 33, 36, 38, 40, 42, 42, 39, 40, 41,
|
||||
43, 42, 36, 33, 32, 33, 32, 35, 37, 41, 41, 39,
|
||||
40, 37, 36, 38, 39, 41, 40, 40, 41, 39, 37, 37,
|
||||
36, 37, 37, 36, 35, 37, 37, 39, 41, 41, 43, 41,
|
||||
40, 40, 37, 37, 38, 38, 38, 38, 38, 36, 38, 37,
|
||||
36, 39, 41, 41, 42, 41, 39, 38, 38, 36, 37, 37,
|
||||
35, 35, 35, 36, 36, 33, 35, 37, 34, 35, 35, 35,
|
||||
39, 38, 39, 41, 43, 43, 43, 42, 39, 38, 39, 37,
|
||||
37, 38, 37, 36, 38, 38, 40, 38, 39, 39, 36, 35,
|
||||
34, 33, 34, 36, 37, 38, 37, 37, 37, 36, 34, 34,
|
||||
33, 34, 35, 38, 41, 38, 36, 37, 37, 37, 37, 39,
|
||||
41, 40, 41, 42, 41, 40, 41, 41, 39, 40, 40, 39,
|
||||
37, 37, 36, 38, 35, 35, 35, 36, 37, 45, 42, 40,
|
||||
44, 45, 42, 43, 42, 42, 45, 47, 49, 51, 50, 51,
|
||||
50, 49, 45, 45, 45, 43, 42, 42, 43, 41, 39, 40,
|
||||
40, 40, 39, 38, 40, 40, 39, 39, 39, 38, 35, 33,
|
||||
37, 41, 42, 39, 37, 37, 37, 38, 38, 36, 37, 35,
|
||||
33, 32, 33, 34, 35, 35, 38, 39, 37, 38, 36, 35,
|
||||
37, 38, 39, 42, 41, 38, 36, 34, 35, 35, 35, 35,
|
||||
36, 39, 38, 36, 37, 37, 37, 36, 40, 42, 43, 47,
|
||||
49, 48, 47, 44, 43, 47, 52, 55, 52, 47, 44, 42,
|
||||
42, 42, 40, 40, 39, 38, 37, 37, 39, 38, 38, 38,
|
||||
36, 33, 31, 34, 35, 38, 39, 38, 37, 38, 38, 37,
|
||||
38, 37, 42, 46, 45, 42, 39, 39, 38, 34, 36, 39,
|
||||
39, 37, 35, 36, 34, 37, 37, 36, 36, 39, 41, 42,
|
||||
35, 35, 35, 35, 36, 40, 40, 38, 39, 39, 36, 36,
|
||||
38, 39, 42, 46, 49, 50, 52, 52, 51, 51, 52, 54,
|
||||
51, 50, 51, 52, 51, 47, 47, 46, 47, 45, 43, 43,
|
||||
43, 43, 43, 42, 41, 41, 40, 40, 42, 46, 44, 41,
|
||||
37, 36, 37, 39, 39, 38, 38, 39, 38, 38, 39, 37,
|
||||
35, 35, 38, 38, 38, 36, 35, 35, 37, 35, 36, 38,
|
||||
36, 38, 38, 39, 35, 35, 35, 36, 36, 39, 39, 40,
|
||||
40, 39, 37, 38, 41, 39, 43, 46, 47, 49, 49, 49,
|
||||
48, 48, 51, 52, 52, 53, 53, 52, 51, 52, 50, 48,
|
||||
49, 48, 46, 47, 47, 44, 42, 43, 44, 43, 45, 48,
|
||||
46, 45, 44, 42, 43, 46, 45, 44, 42, 41, 38, 39,
|
||||
38, 37, 36, 35, 37, 35, 37, 36, 33, 31, 32, 38,
|
||||
43, 42, 41, 39, 37, 38, 37, 37, 35, 35, 36, 36,
|
||||
36, 38, 38, 36, 37, 39, 38, 39, 38, 39, 42, 47,
|
||||
49, 46, 46, 47, 47, 46, 47, 49, 48, 48, 49, 51,
|
||||
50, 49, 50, 51, 48, 46, 46, 47, 48, 47, 45, 43,
|
||||
42, 44, 45, 47, 49, 51, 51, 51, 49, 47, 48, 47,
|
||||
49, 46, 44, 40, 39, 40, 40, 39, 38, 40, 38, 39,
|
||||
40, 39, 37, 36, 35, 33, 35, 34, 32, 33, 34, 38,
|
||||
35, 36, 36, 36, 36, 35, 36, 38, 36, 37, 37, 37,
|
||||
38, 38, 39, 43, 46, 51, 52, 50, 50, 48, 50, 49,
|
||||
49, 50, 48, 50, 50, 49, 49, 51, 54, 54, 51, 51,
|
||||
49, 47, 48, 52, 53, 51, 49, 46, 46, 43, 46, 45,
|
||||
47, 50, 49, 47, 47, 46, 45, 48, 48, 45, 43, 44,
|
||||
43, 43, 42, 41, 39, 39, 39, 37, 37, 34, 34, 32,
|
||||
33, 35, 36, 39, 35, 36, 36, 36, 36, 40, 39, 36,
|
||||
36, 35, 34, 33, 32, 37, 43, 51, 56, 54, 55, 56,
|
||||
55, 52, 50, 49, 46, 46, 45, 47, 49, 51, 54, 54,
|
||||
51, 49, 50, 50, 48, 47, 45, 46, 47, 50, 50, 48,
|
||||
43, 42, 42, 43, 45, 47, 47, 48, 50, 49, 47, 47,
|
||||
48, 49, 47, 48, 48, 47, 47, 45, 44, 42, 39, 38,
|
||||
38, 38, 42, 41, 41, 39, 36, 35, 35, 35, 36, 36,
|
||||
36, 34, 37, 37, 35, 36, 36, 35, 36, 37, 38, 41,
|
||||
50, 67, 82, 84, 80, 80, 76, 75, 74, 71, 64, 61,
|
||||
58, 54, 53, 54, 56, 56, 53, 51, 51, 49, 47, 49,
|
||||
49, 48, 48, 47, 47, 48, 48, 47, 45, 46, 47, 46,
|
||||
46, 45, 41, 42, 44, 44, 45, 45, 48, 47, 44, 42,
|
||||
37, 35, 34, 32, 33, 37, 40, 37, 37, 36, 36, 37,
|
||||
35, 35, 36, 36, 36, 37, 35, 37, 37, 37, 35, 35,
|
||||
35, 37, 40, 41, 46, 58, 85, 119, -119, -123, 123, 115,
|
||||
109, 110, 109, 107, 102, 95, 93, 88, 86, 86, 86, 86,
|
||||
83, 77, 68, 64, 59, 58, 61, 61, 61, 58, 56, 51,
|
||||
49, 51, 51, 50, 50, 45, 37, 41, 47, 50, 50, 53,
|
||||
52, 49, 48, 45, 43, 42, 39, 38, 36, 38, 39, 39,
|
||||
39, 38, 37, 36, 35, 35, 35, 36, 36, 34, 36, 36,
|
||||
38, 39, 38, 37, 39, 41, 43, 47, 56, 79, 121, -106,
|
||||
-110, -108, -99, -102, -100, -99, -101, -103, -102, -106, -108, -110,
|
||||
-111, -111, -115, -117, -120, -123, -123, -125, -128, 127, 124, 118,
|
||||
114, 119, 113, 104, 99, 100, 100, 97, 89, 83, 79, 76,
|
||||
73, 69, 60, 52, 48, 47, 45, 46, 40, 37, 38, 38,
|
||||
42, 45, 43, 42, 42, 39, 38, 39, 35, 35, 36, 36,
|
||||
36, 37, 37, 40, 42, 42, 40, 39, 38, 40, 43, 49,
|
||||
60, 83, 126, -105, -98, -93, -97, -94, -93, -90, -88, -91,
|
||||
-94, -91, -90, -93, -94, -94, -96, -94, -94, -96, -95, -93,
|
||||
-96, -100, -104, -104, -105, -108, -110, -115, -119, -120, -122, -125,
|
||||
127, 122, 118, 115, 118, 113, 97, 78, 59, 45, 48, 46,
|
||||
40, 38, 38, 37, 38, 38, 35, 37, 37, 34, 32, 32,
|
||||
35, 36, 36, 36, 36, 38, 39, 38, 37, 38, 35, 34,
|
||||
36, 35, 37, 41, 51, 77, 120, -100, -91, -96, -95, -93,
|
||||
-92, -89, -90, -92, -92, -93, -93, -91, -90, -91, -94, -94,
|
||||
-94, -93, -92, -93, -95, -95, -93, -94, -94, -91, -92, -94,
|
||||
-93, -91, -92, -91, -92, -96, -97, -99, -105, -112, 126, 95,
|
||||
63, 43, 47, 42, 38, 38, 36, 36, 36, 38, 37, 37,
|
||||
37, 36, 37, 38, 35, 36, 36, 36, 36, 39, 39, 39,
|
||||
41, 38, 33, 35, 37, 39, 45, 51, 58, 80, 121, -104,
|
||||
-94, -93, -92, -94, -94, -91, -89, -89, -88, -86, -86, -88,
|
||||
-87, -88, -90, -90, -91, -91, -89, -87, -90, -92, -92, -90,
|
||||
-91, -91, -89, -89, -90, -92, -93, -91, -90, -91, -90, -91,
|
||||
-91, -100, -128, 88, 54, 44, 47, 48, 46, 43, 41, 36,
|
||||
37, 40, 38, 40, 38, 38, 37, 39, 35, 36, 36, 36,
|
||||
36, 38, 41, 39, 37, 35, 32, 34, 36, 38, 42, 47,
|
||||
57, 82, 118, -105, -88, -86, -84, -88, -91, -91, -91, -92,
|
||||
-91, -89, -90, -89, -87, -88, -88, -89, -89, -91, -91, -91,
|
||||
-92, -93, -92, -93, -97, -93, -93, -93, -92, -92, -94, -94,
|
||||
-92, -94, -94, -91, -91, -98, -122, 96, 63, 53, 49, 44,
|
||||
42, 42, 41, 38, 36, 37, 36, 37, 38, 39, 38, 40,
|
||||
35, 36, 36, 36, 36, 34, 36, 35, 37, 39, 40, 43,
|
||||
41, 41, 44, 48, 56, 83, -127, -99, -89, -88, -87, -88,
|
||||
-89, -87, -89, -90, -90, -89, -91, -91, -89, -87, -88, -87,
|
||||
-89, -88, -89, -88, -90, -89, -87, -88, -92, -91, -88, -89,
|
||||
-88, -87, -89, -91, -93, -95, -97, -94, -93, -99, -125, 91,
|
||||
59, 45, 45, 47, 43, 42, 39, 36, 36, 36, 40, 38,
|
||||
39, 39, 37, 36, 36, 36, 36, 36, 36, 34, 37, 38,
|
||||
39, 40, 43, 43, 43, 43, 40, 43, 56, 87, -127, -100,
|
||||
-94, -95, -91, -88, -90, -89, -90, -92, -88, -88, -90, -88,
|
||||
-90, -90, -89, -89, -91, -91, -92, -92, -91, -90, -89, -89,
|
||||
-92, -90, -90, -92, -91, -89, -90, -91, -91, -95, -94, -92,
|
||||
-93, -99, -124, 92, 61, 48, 47, 49, 45, 44, 41, 38,
|
||||
37, 37, 38, 34, 35, 35, 35, 35, 36, 36, 36, 36,
|
||||
36, 40, 39, 36, 34, 35, 35, 37, 37, 40, 49, 56,
|
||||
62, 89, -124, -99, -93, -88, -88, -92, -90, -87, -88, -89,
|
||||
-87, -88, -89, -88, -87, -88, -89, -89, -87, -88, -88, -87,
|
||||
-89, -92, -91, -92, -92, -91, -91, -90, -89, -89, -89, -90,
|
||||
-92, -93, -91, -87, -86, -96, -127, 90, 60, 45, 44, 43,
|
||||
36, 36, 37, 39, 38, 40, 40, 37, 36, 36, 33, 35,
|
||||
36, 36, 36, 36, 36, 34, 34, 34, 33, 34, 34, 35,
|
||||
37, 40, 42, 41, 50, 80, -127, -96, -92, -89, -85, -88,
|
||||
-91, -88, -88, -89, -87, -90, -90, -89, -89, -90, -91, -90,
|
||||
-89, -87, -86, -87, -89, -90, -91, -93, -93, -93, -91, -91,
|
||||
-90, -90, -91, -92, -91, -92, -89, -87, -88, -96, -123, 96,
|
||||
65, 48, 47, 45, 38, 37, 37, 37, 37, 39, 39, 37,
|
||||
38, 36, 35, 35, 36, 36, 36, 36, 36, 40, 41, 40,
|
||||
41, 42, 42, 41, 39, 39, 45, 53, 66, 100, -111, -86,
|
||||
-86, -87, -80, -86, -92, -88, -86, -87, -84, -83, -86, -86,
|
||||
-85, -85, -86, -84, -84, -88, -90, -87, -88, -88, -88, -88,
|
||||
-90, -89, -89, -89, -89, -89, -88, -87, -88, -90, -87, -88,
|
||||
-90, -98, -127, 93, 69, 50, 50, 51, 43, 44, 43, 41,
|
||||
37, 37, 40, 38, 38, 37, 36, 38, 36, 36, 36, 36,
|
||||
36, 36, 38, 39, 40, 39, 40, 39, 42, 46, 49, 52,
|
||||
62, 90, -123, -101, -100, -98, -94, -90, -88, -87, -89, -90,
|
||||
-89, -88, -88, -87, -86, -87, -86, -86, -87, -85, -85, -88,
|
||||
-89, -88, -89, -88, -89, -90, -89, -90, -90, -91, -90, -89,
|
||||
-91, -91, -91, -90, -92, -99, -126, 93, 61, 45, 49, 48,
|
||||
43, 41, 38, 37, 36, 38, 38, 37, 36, 35, 35, 39,
|
||||
36, 36, 36, 36, 37, 41, 42, 40, 41, 41, 38, 40,
|
||||
42, 42, 45, 50, 61, 91, -121, -94, -93, -96, -94, -94,
|
||||
-93, -91, -91, -93, -90, -88, -92, -90, -87, -87, -89, -88,
|
||||
-87, -89, -89, -90, -93, -96, -94, -91, -89, -88, -88, -90,
|
||||
-90, -89, -91, -92, -93, -91, -91, -92, -91, -101, 122, 84,
|
||||
60, 48, 52, 46, 34, 36, 36, 37, 34, 34, 37, 34,
|
||||
32, 33, 34, 37, 36, 36, 36, 37, 37, 36, 39, 39,
|
||||
41, 40, 41, 40, 39, 42, 44, 49, 62, 92, -124, -96,
|
||||
-84, -81, -86, -87, -89, -90, -91, -92, -90, -88, -89, -91,
|
||||
-90, -89, -89, -89, -90, -89, -86, -88, -89, -89, -90, -88,
|
||||
-90, -91, -91, -92, -92, -92, -91, -91, -93, -95, -94, -93,
|
||||
-93, -101, 125, 86, 61, 47, 47, 49, 45, 44, 44, 43,
|
||||
44, 45, 44, 42, 41, 38, 35, 38, 37, 37, 37, 37,
|
||||
37, 39, 40, 40, 42, 44, 42, 43, 47, 45, 44, 50,
|
||||
66, 99, -111, -93, -97, -96, -92, -89, -89, -89, -87, -88,
|
||||
-86, -87, -90, -88, -88, -88, -87, -87, -88, -91, -93, -91,
|
||||
-92, -89, -86, -84, -83, -83, -87, -90, -91, -90, -91, -92,
|
||||
-93, -94, -97, -96, -97, -107, 119, 79, 53, 39, 39, 38,
|
||||
37, 40, 38, 38, 37, 38, 40, 41, 39, 38, 36, 36,
|
||||
37, 37, 37, 37, 37, 40, 39, 40, 40, 40, 40, 38,
|
||||
39, 43, 44, 48, 59, 95, -121, -103, -96, -95, -97, -94,
|
||||
-92, -90, -90, -90, -88, -85, -88, -89, -88, -89, -91, -92,
|
||||
-92, -91, -90, -88, -88, -88, -90, -91, -92, -91, -89, -93,
|
||||
-93, -92, -92, -91, -93, -94, -94, -94, -93, -105, 118, 79,
|
||||
52, 38, 36, 40, 41, 41, 42, 39, 38, 40, 40, 39,
|
||||
39, 39, 37, 38, 37, 37, 37, 37, 37, 41, 42, 40,
|
||||
41, 43, 43, 45, 43, 42, 43, 47, 62, 95, -120, -93,
|
||||
-92, -96, -92, -94, -92, -91, -88, -88, -89, -90, -91, -88,
|
||||
-88, -89, -88, -91, -93, -92, -91, -90, -89, -90, -89, -91,
|
||||
-90, -90, -94, -95, -95, -94, -91, -87, -83, -87, -88, -89,
|
||||
-94, -106, 117, 79, 60, 51, 45, 40, 37, 38, 38, 36,
|
||||
34, 33, 34, 34, 33, 35, 37, 36, 37, 37, 37, 37,
|
||||
37, 36, 40, 38, 39, 40, 41, 38, 40, 43, 48, 52,
|
||||
62, 96, -120, -103, -99, -94, -95, -93, -92, -90, -89, -90,
|
||||
-91, -90, -92, -95, -95, -94, -94, -92, -92, -93, -93, -92,
|
||||
-91, -90, -92, -94, -93, -92, -89, -91, -89, -87, -88, -91,
|
||||
-97, -98, -95, -94, -94, -104, 123, 86, 61, 48, 46, 47,
|
||||
40, 38, 37, 34, 36, 35, 39, 41, 40, 39, 37, 37,
|
||||
37, 37, 37, 37, 37, 39, 39, 40, 39, 40, 42, 41,
|
||||
40, 43, 42, 43, 52, 85, 125, -106, -92, -98, -96, -84,
|
||||
-82, -87, -86, -85, -86, -86, -90, -88, -88, -87, -87, -92,
|
||||
-93, -93, -93, -90, -91, -92, -89, -89, -89, -89, -91, -91,
|
||||
-93, -93, -94, -93, -92, -94, -94, -91, -92, -100, 123, 79,
|
||||
57, 47, 45, 47, 40, 37, 36, 35, 38, 37, 39, 40,
|
||||
38, 39, 36, 35, 37, 37, 37, 37, 37, 41, 38, 33,
|
||||
31, 37, 44, 44, 44, 46, 48, 52, 64, 96, -117, -98,
|
||||
-103, -99, -97, -96, -97, -97, -94, -89, -85, -90, -91, -89,
|
||||
-89, -89, -88, -87, -86, -90, -92, -91, -93, -91, -92, -92,
|
||||
-91, -93, -92, -92, -92, -91, -94, -94, -94, -95, -93, -98,
|
||||
-102, -110, 117, 83, 55, 40, 46, 48, 44, 42, 39, 40,
|
||||
37, 39, 40, 38, 38, 38, 39, 42, 37, 37, 37, 37,
|
||||
38, 39, 40, 41, 41, 41, 41, 40, 42, 46, 47, 52,
|
||||
65, 102, -114, -102, -97, -100, -95, -83, -88, -91, -89, -91,
|
||||
-91, -89, -89, -88, -90, -89, -88, -88, -88, -89, -92, -90,
|
||||
-90, -90, -90, -92, -94, -95, -94, -93, -92, -90, -90, -92,
|
||||
-92, -94, -92, -92, -96, -108, 116, 76, 57, 50, 47, 42,
|
||||
38, 41, 42, 41, 37, 36, 37, 36, 36, 37, 35, 35,
|
||||
37, 37, 37, 37, 38, 39, 40, 41, 39, 41, 40, 36,
|
||||
34, 37, 39, 42, 61, 100, -113, -90, -97, -96, -90, -87,
|
||||
-88, -90, -91, -93, -89, -91, -91, -90, -90, -91, -91, -89,
|
||||
-87, -90, -91, -89, -90, -89, -90, -90, -92, -92, -92, -91,
|
||||
-91, -89, -90, -92, -90, -92, -93, -93, -96, -107, 119, 81,
|
||||
48, 37, 40, 44, 45, 41, 40, 38, 36, 37, 38, 37,
|
||||
37, 37, 36, 35, 37, 37, 37, 37, 39, 47, 50, 45,
|
||||
40, 41, 40, 41, 42, 44, 48, 53, 64, 98, -116, -95,
|
||||
-96, -97, -87, -83, -87, -87, -88, -87, -86, -86, -87, -91,
|
||||
-95, -94, -92, -88, -89, -90, -90, -88, -87, -88, -90, -94,
|
||||
-92, -93, -91, -89, -89, -87, -86, -87, -90, -92, -92, -91,
|
||||
-92, -100, 125, 79, 52, 51, 54, 50, 47, 47, 47, 46,
|
||||
45, 46, 44, 40, 36, 34, 34, 34, 37, 37, 37, 37,
|
||||
38, 41, 42, 42, 39, 39, 37, 35, 39, 46, 52, 53,
|
||||
68, 101, -119, -101, -101, -101, -93, -90, -89, -88, -88, -88,
|
||||
-85, -89, -90, -89, -91, -93, -92, -90, -90, -90, -91, -91,
|
||||
-90, -91, -93, -91, -92, -92, -89, -90, -91, -92, -95, -95,
|
||||
-94, -95, -95, -96, -97, -110, 116, 81, 54, 48, 52, 51,
|
||||
49, 45, 47, 46, 43, 44, 43, 38, 35, 35, 34, 36,
|
||||
37, 37, 37, 37, 39, 43, 43, 41, 40, 42, 41, 41,
|
||||
40, 40, 44, 50, 68, 106, -112, -93, -93, -95, -92, -94,
|
||||
-93, -90, -89, -90, -88, -90, -89, -88, -89, -89, -89, -86,
|
||||
-88, -91, -92, -92, -91, -92, -91, -91, -92, -91, -92, -90,
|
||||
-90, -91, -88, -87, -90, -92, -91, -91, -92, -104, 121, 80,
|
||||
54, 43, 45, 46, 41, 41, 40, 38, 38, 38, 37, 37,
|
||||
37, 37, 39, 40, 37, 37, 37, 37, 37, 39, 39, 40,
|
||||
38, 40, 41, 40, 41, 43, 46, 52, 69, 105, -112, -92,
|
||||
-95, -94, -90, -94, -94, -92, -91, -90, -91, -90, -90, -90,
|
||||
-90, -89, -88, -89, -90, -90, -93, -94, -93, -92, -91, -91,
|
||||
-92, -94, -91, -91, -89, -89, -93, -95, -96, -97, -96, -96,
|
||||
-96, -106, 121, 86, 54, 47, 53, 50, 48, 43, 40, 39,
|
||||
37, 40, 40, 38, 38, 36, 37, 37, 37, 37, 37, 37,
|
||||
37, 39, 38, 38, 38, 38, 37, 37, 39, 41, 42, 45,
|
||||
62, 104, -112, -93, -87, -91, -92, -92, -91, -89, -91, -89,
|
||||
-90, -88, -86, -88, -90, -91, -91, -90, -91, -91, -91, -90,
|
||||
-89, -90, -89, -90, -93, -91, -92, -92, -91, -92, -91, -91,
|
||||
-94, -94, -92, -93, -92, -103, 124, 92, 65, 49, 47, 45,
|
||||
39, 40, 40, 40, 37, 37, 37, 37, 41, 41, 38, 38,
|
||||
37, 37, 37, 37, 38, 46, 42, 42, 40, 41, 41, 37,
|
||||
39, 43, 49, 59, 78, 112, -105, -88, -94, -93, -96, -95,
|
||||
-92, -90, -88, -90, -91, -90, -88, -89, -90, -89, -90, -91,
|
||||
-90, -91, -93, -93, -92, -92, -91, -91, -90, -92, -92, -92,
|
||||
-93, -92, -92, -92, -94, -94, -94, -94, -93, -107, 116, 77,
|
||||
48, 43, 47, 43, 41, 40, 39, 38, 38, 42, 40, 38,
|
||||
37, 34, 34, 34, 36, 37, 37, 37, 37, 41, 41, 38,
|
||||
38, 39, 40, 39, 39, 40, 40, 45, 63, 102, -117, -98,
|
||||
-92, -88, -87, -91, -90, -89, -90, -91, -93, -90, -83, -85,
|
||||
-87, -88, -90, -91, -93, -92, -93, -91, -89, -89, -89, -91,
|
||||
-94, -92, -91, -90, -92, -92, -92, -93, -91, -89, -90, -89,
|
||||
-87, -99, 126, 86, 54, 43, 45, 46, 42, 40, 38, 36,
|
||||
34, 34, 36, 34, 35, 34, 35, 36, 36, 37, 37, 37,
|
||||
38, 43, 40, 38, 38, 40, 41, 40, 41, 41, 42, 50,
|
||||
74, 113, -113, -98, -95, -88, -88, -90, -91, -90, -90, -92,
|
||||
-91, -88, -86, -87, -86, -86, -89, -91, -92, -92, -91, -88,
|
||||
-90, -93, -95, -97, -97, -95, -94, -93, -92, -92, -92, -93,
|
||||
-94, -94, -96, -95, -96, -111, 111, 73, 42, 39, 50, 45,
|
||||
41, 40, 38, 38, 39, 41, 38, 35, 35, 33, 30, 28,
|
||||
36, 37, 37, 37, 37, 37, 40, 38, 40, 41, 41, 43,
|
||||
42, 40, 42, 49, 74, 119, -100, -88, -94, -93, -90, -94,
|
||||
-94, -91, -89, -89, -90, -89, -88, -93, -94, -91, -89, -87,
|
||||
-90, -96, -98, -96, -94, -94, -92, -92, -92, -89, -88, -89,
|
||||
-91, -90, -89, -88, -86, -87, -90, -93, -95, -110, 113, 79,
|
||||
59, 52, 43, 38, 38, 38, 41, 41, 39, 41, 42, 41,
|
||||
40, 40, 40, 39, 37, 37, 37, 37, 37, 39, 38, 40,
|
||||
40, 42, 40, 41, 43, 47, 50, 53, 74, 112, -114, -99,
|
||||
-95, -92, -94, -95, -95, -92, -90, -91, -88, -85, -89, -88,
|
||||
-87, -88, -89, -89, -91, -91, -90, -88, -91, -94, -93, -93,
|
||||
-93, -94, -93, -91, -90, -90, -92, -93, -94, -92, -94, -94,
|
||||
-95, -110, 113, 78, 52, 46, 49, 45, 43, 42, 43, 41,
|
||||
39, 41, 40, 38, 38, 35, 37, 39, 37, 37, 37, 37,
|
||||
37, 35, 38, 38, 41, 42, 39, 42, 43, 44, 46, 55,
|
||||
80, 119, -108, -99, -95, -91, -90, -95, -95, -92, -90, -94,
|
||||
-94, -89, -88, -92, -91, -91, -93, -93, -93, -93, -91, -89,
|
||||
-90, -93, -91, -89, -88, -89, -88, -89, -92, -93, -93, -93,
|
||||
-92, -92, -95, -95, -97, -113, 108, 67, 48, 46, 41, 41,
|
||||
42, 39, 39, 37, 36, 38, 38, 36, 37, 39, 38, 39,
|
||||
37, 37, 37, 37, 36, 32, 34, 36, 38, 38, 38, 38,
|
||||
41, 42, 44, 50, 67, 115, -98, -89, -94, -93, -87, -86,
|
||||
-91, -90, -92, -93, -92, -89, -91, -92, -90, -92, -92, -91,
|
||||
-90, -90, -89, -87, -90, -93, -92, -92, -95, -94, -94, -93,
|
||||
-91, -92, -94, -95, -96, -93, -93, -92, -95, -112, 107, 73,
|
||||
56, 45, 45, 44, 41, 41, 39, 38, 37, 39, 39, 37,
|
||||
38, 37, 39, 41, 37, 37, 37, 37, 37, 40, 39, 41,
|
||||
42, 42, 39, 39, 43, 47, 49, 56, 76, 112, -112, -102,
|
||||
-90, -78, -88, -93, -92, -92, -90, -89, -91, -88, -86, -90,
|
||||
-88, -87, -89, -91, -90, -90, -89, -90, -90, -88, -90, -89,
|
||||
-89, -89, -87, -90, -91, -90, -90, -88, -90, -92, -93, -93,
|
||||
-97, -112, 108, 71, 52, 48, 51, 48, 45, 40, 40, 41,
|
||||
42, 42, 41, 39, 41, 42, 39, 37, 37, 37, 37, 37,
|
||||
37, 38, 39, 40, 40, 40, 40, 42, 45, 46, 45, 51,
|
||||
72, 121, -98, -99, -100, -95, -93, -96, -95, -93, -90, -90,
|
||||
-87, -89, -89, -90, -89, -90, -90, -89, -92, -94, -90, -91,
|
||||
-91, -91, -90, -89, -90, -88, -90, -92, -91, -92, -93, -94,
|
||||
-96, -94, -94, -95, -97, -113, 106, 71, 52, 48, 46, 45,
|
||||
45, 41, 37, 33, 33, 35, 35, 37, 38, 37, 36, 35,
|
||||
37, 37, 37, 37, 37, 37, 37, 38, 39, 39, 39, 40,
|
||||
42, 40, 42, 50, 73, 114, -107, -96, -100, -97, -100, -103,
|
||||
-101, -97, -92, -89, -89, -87, -85, -88, -89, -87, -87, -88,
|
||||
-88, -89, -91, -92, -89, -86, -86, -84, -86, -86, -90, -94,
|
||||
-94, -93, -93, -94, -94, -93, -92, -94, -99, -115, 106, 72,
|
||||
60, 59, 57, 55, 48, 42, 39, 37, 37, 39, 37, 37,
|
||||
38, 37, 35, 33, 37, 37, 37, 37, 38, 45, 43, 42,
|
||||
39, 36, 35, 34, 38, 40, 42, 50, 76, 115, -110, -97,
|
||||
-89, -88, -92, -95, -94, -91, -90, -88, -86, -87, -88, -87,
|
||||
-86, -88, -88, -88, -91, -90, -89, -90, -89, -89, -91, -90,
|
||||
-91, -90, -91, -93, -93, -93, -95, -97, -96, -92, -94, -97,
|
||||
-100, -118, 106, 72, 54, 50, 48, 47, 46, 44, 40, 36,
|
||||
38, 40, 42, 41, 40, 38, 36, 38, 37, 37, 37, 37,
|
||||
37, 39, 41, 41, 41, 40, 41, 45, 47, 47, 46, 53,
|
||||
77, 119, -102, -90, -94, -89, -88, -94, -90, -87, -86, -85,
|
||||
-87, -87, -85, -86, -86, -87, -88, -90, -90, -91, -91, -91,
|
||||
-93, -91, -91, -92, -93, -93, -92, -94, -93, -90, -91, -92,
|
||||
-92, -91, -94, -96, -95, -105, 114, 74, 57, 51, 50, 53,
|
||||
47, 42, 39, 37, 41, 46, 46, 43, 40, 35, 31, 29,
|
||||
37, 37, 37, 37, 38, 39, 37, 38, 39, 40, 41, 40,
|
||||
43, 46, 48, 57, 89, -126, -102, -97, -96, -93, -96, -92,
|
||||
-89, -89, -91, -94, -90, -91, -90, -88, -88, -90, -90, -90,
|
||||
-92, -93, -93, -92, -90, -89, -90, -89, -91, -93, -91, -92,
|
||||
-93, -92, -94, -95, -92, -92, -95, -99, -100, -116, 103, 70,
|
||||
54, 52, 54, 49, 46, 43, 40, 36, 35, 39, 41, 37,
|
||||
38, 38, 38, 37, 37, 37, 37, 38, 38, 42, 43, 41,
|
||||
41, 41, 45, 45, 44, 44, 46, 56, 86, 119, -113, -96,
|
||||
-91, -78, -83, -90, -90, -90, -89, -91, -92, -92, -90, -88,
|
||||
-89, -91, -91, -90, -89, -89, -88, -88, -90, -90, -92, -92,
|
||||
-92, -90, -90, -94, -93, -91, -91, -92, -94, -91, -90, -95,
|
||||
-100, -121, 91, 58, 49, 49, 47, 45, 44, 44, 43, 41,
|
||||
40, 40, 37, 35, 35, 36, 35, 34, 37, 37, 38, 38,
|
||||
38, 42, 38, 37, 38, 37, 37, 40, 45, 45, 44, 54,
|
||||
84, 123, -106, -96, -95, -96, -99, -97, -96, -92, -91, -92,
|
||||
-91, -92, -95, -94, -93, -92, -91, -89, -91, -92, -91, -91,
|
||||
-92, -94, -92, -88, -89, -91, -91, -93, -94, -92, -93, -92,
|
||||
-93, -92, -94, -95, -97, -118, 95, 55, 33, 34, 37, 37,
|
||||
34, 33, 33, 31, 34, 36, 36, 34, 35, 36, 37, 38,
|
||||
37, 37, 38, 38, 38, 40, 40, 42, 43, 43, 41, 41,
|
||||
40, 43, 43, 50, 77, 116, -110, -84, -81, -87, -91, -94,
|
||||
-91, -88, -88, -89, -88, -88, -88, -85, -88, -89, -88, -88,
|
||||
-89, -92, -91, -93, -92, -92, -94, -94, -93, -93, -94, -96,
|
||||
-95, -91, -89, -88, -91, -92, -94, -98, -100, -122, 91, 57,
|
||||
43, 46, 41, 33, 36, 36, 38, 39, 39, 38, 33, 33,
|
||||
34, 34, 34, 35, 37, 38, 38, 38, 39, 44, 43, 44,
|
||||
45, 44, 40, 40, 42, 40, 46, 60, 93, -127, -103, -88,
|
||||
-87, -94, -93, -96, -97, -94, -89, -90, -89, -88, -90, -90,
|
||||
-91, -92, -90, -90, -91, -93, -94, -94, -94, -94, -93, -91,
|
||||
-94, -96, -95, -98, -97, -94, -94, -95, -99, -98, -95, -95,
|
||||
-101, -121, 95, 58, 42, 39, 44, 44, 39, 37, 41, 42,
|
||||
41, 41, 37, 33, 33, 32, 33, 33, 37, 38, 38, 38,
|
||||
38, 39, 41, 44, 44, 47, 46, 44, 41, 39, 40, 52,
|
||||
85, 127, -102, -88, -82, -87, -92, -94, -91, -90, -91, -92,
|
||||
-91, -89, -91, -92, -91, -89, -87, -86, -89, -91, -92, -93,
|
||||
-93, -92, -95, -98, -95, -90, -87, -90, -92, -93, -94, -98,
|
||||
-99, -97, -97, -96, -98, -114, 106, 65, 40, 42, 41, 39,
|
||||
41, 41, 43, 46, 45, 43, 40, 38, 39, 40, 40, 39,
|
||||
37, 38, 38, 38, 38, 34, 37, 39, 42, 42, 41, 42,
|
||||
41, 42, 44, 58, 88, 124, -109, -98, -95, -96, -97, -95,
|
||||
-95, -95, -96, -94, -91, -90, -92, -91, -90, -90, -89, -87,
|
||||
-89, -92, -94, -95, -96, -95, -94, -94, -97, -98, -97, -97,
|
||||
-96, -95, -96, -95, -98, -99, -98, -97, -100, -121, 90, 52,
|
||||
37, 36, 39, 41, 39, 39, 40, 38, 35, 33, 34, 35,
|
||||
34, 36, 36, 35, 37, 38, 38, 38, 38, 40, 39, 40,
|
||||
39, 40, 44, 46, 49, 53, 53, 53, 73, 108, -114, -96,
|
||||
-96, -99, -100, -99, -96, -94, -95, -93, -89, -84, -88, -91,
|
||||
-91, -93, -97, -97, -98, -97, -93, -92, -92, -92, -95, -95,
|
||||
-94, -92, -91, -94, -96, -96, -94, -94, -94, -92, -93, -94,
|
||||
-96, -115, 103, 64, 36, 38, 45, 42, 44, 41, 41, 41,
|
||||
37, 38, 42, 45, 46, 43, 39, 33, 37, 38, 38, 38,
|
||||
38, 42, 42, 38, 36, 35, 34, 36, 40, 39, 39, 49,
|
||||
82, -123, -95, -91, -87, -89, -93, -94, -95, -94, -95, -94,
|
||||
-91, -92, -93, -92, -92, -94, -95, -95, -96, -94, -94, -94,
|
||||
-93, -94, -92, -90, -92, -90, -91, -93, -92, -92, -91, -91,
|
||||
-93, -93, -93, -93, -98, -122, 90, 54, 40, 40, 41, 40,
|
||||
38, 36, 36, 36, 39, 42, 43, 41, 38, 38, 36, 36,
|
||||
37, 38, 38, 38, 38, 41, 40, 37, 36, 38, 42, 42,
|
||||
41, 44, 41, 48, 73, 116, -103, -88, -87, -92, -96, -95,
|
||||
-93, -91, -87, -85, -88, -85, -89, -93, -91, -88, -87, -85,
|
||||
-87, -89, -91, -93, -92, -92, -92, -91, -94, -90, -91, -93,
|
||||
-93, -94, -92, -92, -95, -93, -92, -93, -96, -116, 104, 66,
|
||||
40, 39, 37, 39, 42, 43, 43, 40, 38, 37, 36, 36,
|
||||
34, 34, 35, 35, 37, 38, 38, 38, 38, 41, 41, 38,
|
||||
37, 36, 35, 37, 42, 44, 46, 58, 91, -120, -98, -99,
|
||||
-94, -89, -93, -92, -92, -93, -93, -93, -91, -89, -88, -85,
|
||||
-86, -88, -89, -87, -89, -88, -90, -94, -93, -94, -94, -91,
|
||||
-90, -86, -90, -94, -94, -96, -95, -95, -94, -93, -92, -91,
|
||||
-97, -123, 91, 58, 48, 52, 48, 44, 43, 43, 41, 36,
|
||||
38, 42, 43, 39, 37, 34, 31, 32, 37, 38, 38, 38,
|
||||
38, 41, 40, 37, 41, 42, 41, 43, 41, 39, 45, 60,
|
||||
92, -123, -102, -102, -99, -99, -97, -92, -93, -93, -94, -94,
|
||||
-96, -93, -89, -92, -91, -90, -89, -90, -88, -90, -90, -91,
|
||||
-92, -92, -92, -92, -94, -90, -90, -90, -91, -91, -91, -93,
|
||||
-94, -91, -92, -95, -103, -127, 92, 59, 49, 56, 53, 55,
|
||||
51, 50, 48, 43, 39, 36, 35, 35, 34, 33, 34, 37,
|
||||
37, 38, 38, 38, 38, 38, 39, 38, 40, 41, 40, 42,
|
||||
45, 45, 47, 64, 100, -118, -104, -102, -93, -95, -92, -96,
|
||||
-97, -96, -96, -94, -92, -89, -90, -93, -93, -96, -97, -94,
|
||||
-96, -96, -97, -98, -97, -96, -94, -94, -95, -92, -95, -94,
|
||||
-94, -95, -94, -95, -96, -95, -94, -94, -97, -118, 102, 70,
|
||||
53, 53, 55, 52, 54, 52, 47, 41, 38, 39, 40, 36,
|
||||
37, 37, 35, 36, 37, 38, 38, 38, 38, 40, 39, 40,
|
||||
41, 39, 33, 33, 36, 40, 51, 64, 84, 125, -102, -87,
|
||||
-81, -92, -98, -101, -98, -97, -95, -95, -95, -94, -94, -98,
|
||||
-97, -94, -93, -93, -93, -92, -91, -92, -93, -93, -93, -93,
|
||||
-95, -94, -94, -96, -94, -91, -91, -95, -94, -95, -98, -98,
|
||||
-102, -119, 101, 71, 55, 47, 47, 48, 51, 52, 45, 38,
|
||||
34, 30, 34, 34, 32, 34, 34, 37, 37, 37, 38, 38,
|
||||
38, 41, 42, 41, 39, 41, 39, 37, 37, 37, 44, 66,
|
||||
105, -118, -105, -107, -106, -102, -101, -102, -100, -101, -101, -99,
|
||||
-98, -96, -96, -98, -94, -94, -95, -94, -96, -97, -97, -96,
|
||||
-96, -95, -96, -94, -96, -99, -95, -96, -98, -100, -98, -97,
|
||||
-97, -94, -93, -97, -107, 123, 83, 54, 41, 45, 48, 45,
|
||||
46, 44, 43, 40, 36, 39, 36, 37, 38, 40, 41, 40,
|
||||
37, 37, 38, 38, 38, 40, 40, 43, 43, 41, 40, 42,
|
||||
42, 40, 44, 61, 90, 121, -122, -121, -117, -113, -111, -108,
|
||||
-104, -104, -105, -106, -106, -102, -103, -106, -106, -107, -106, -106,
|
||||
-104, -103, -101, -100, -99, -98, -99, -100, -101, -98, -95, -94,
|
||||
-94, -93, -95, -95, -97, -97, -98, -97, -97, -115, 98, 58,
|
||||
40, 42, 46, 46, 47, 48, 45, 43, 42, 40, 39, 36,
|
||||
34, 35, 36, 38, 37, 37, 37, 38, 38, 37, 41, 41,
|
||||
42, 43, 40, 41, 40, 40, 42, 51, 68, 78, 81, 81,
|
||||
81, 85, 85, 87, 88, 89, 93, 96, 97, 100, 98, 101,
|
||||
105, 109, 110, 113, 116, 116, 117, 118, 119, 120, 121, 126,
|
||||
-126, -126, -123, -120, -118, -117, -115, -114, -113, -110, -106, -108,
|
||||
-115, 117, 81, 52, 40, 42, 47, 48, 48, 45, 42, 38,
|
||||
34, 37, 34, 36, 37, 39, 39, 38, 37, 37, 37, 38,
|
||||
38, 38, 37, 39, 41, 39, 42, 42, 40, 41, 43, 53,
|
||||
69, 71, 66, 65, 61, 57, 57, 58, 60, 62, 65, 64,
|
||||
68, 76, 71, 67, 68, 69, 75, 82, 87, 85, 85, 86,
|
||||
87, 92, 94, 94, 96, 90, 91, 95, 101, 109, 109, 114,
|
||||
115, 119, 123, 121, 117, 104, 77, 50, 37, 32, 30, 24,
|
||||
27, 35, 39, 39, 36, 38, 36, 37, 36, 34, 33, 32,
|
||||
37, 37, 37, 37, 38, 37, 41, 40, 41, 43, 41, 39,
|
||||
38, 40, 43, 49, 53, 52, 50, 50, 51, 51, 52, 54,
|
||||
49, 46, 50, 48, 47, 51, 51, 50, 48, 50, 50, 50,
|
||||
50, 50, 51, 51, 52, 52, 56, 57, 58, 59, 57, 56,
|
||||
56, 55, 52, 53, 56, 59, 60, 61, 62, 59, 54, 54,
|
||||
51, 47, 50, 47, 45, 44, 43, 40, 37, 37, 37, 39,
|
||||
43, 45, 43, 39, 36, 37, 37, 37, 39, 46, 41, 38,
|
||||
40, 40, 39, 40, 40, 38, 43, 49, 54, 54, 52, 52,
|
||||
49, 47, 47, 50, 48, 49, 52, 49, 50, 51, 48, 48,
|
||||
49, 49, 49, 51, 50, 46, 46, 50, 49, 52, 52, 47,
|
||||
48, 51, 52, 48, 50, 52, 47, 45, 46, 45, 48, 49,
|
||||
50, 48, 44, 45, 48, 50, 47, 43, 44, 44, 44, 43,
|
||||
43, 43, 41, 41, 41, 38, 36, 36, 36, 37, 37, 37,
|
||||
37, 41, 41, 39, 38, 38, 36, 36, 37, 39, 44, 48,
|
||||
50, 50, 50, 52, 52, 52, 52, 53, 50, 46, 46, 46,
|
||||
42, 43, 46, 45, 44, 46, 46, 45, 43, 45, 46, 50,
|
||||
51, 50, 51, 50, 49, 51, 51, 50, 51, 50, 49, 47,
|
||||
49, 49, 50, 52, 50, 48, 45, 46, 47, 47, 48, 47,
|
||||
45, 44, 45, 42, 38, 37, 35, 31, 29, 31, 33, 35,
|
||||
36, 36, 37, 37, 37, 39, 39, 40, 41, 42, 39, 37,
|
||||
37, 36, 40, 44, 48, 47, 45, 46, 49, 49, 49, 50,
|
||||
47, 48, 49, 48, 45, 47, 47, 49, 51, 53, 51, 49,
|
||||
48, 46, 44, 44, 43, 44, 46, 48, 49, 51, 51, 50,
|
||||
49, 49, 48, 50, 54, 56, 49, 44, 43, 44, 44, 45,
|
||||
45, 44, 45, 42, 40, 41, 42, 41, 38, 36, 37, 41,
|
||||
46, 43, 40, 37, 36, 36, 37, 37, 37, 40, 41, 40,
|
||||
39, 39, 36, 35, 37, 38, 41, 43, 45, 46, 46, 46,
|
||||
47, 45, 41, 45, 46, 47, 48, 47, 45, 44, 45, 47,
|
||||
46, 46, 46, 45, 46, 45, 43, 44, 44, 46, 51, 51,
|
||||
47, 49, 46, 44, 43, 39, 39, 42, 46, 46, 46, 44,
|
||||
43, 42, 42, 44, 44, 46, 46, 47, 45, 40, 37, 33,
|
||||
35, 40, 45, 42, 42, 42, 38, 36, 36, 36, 36, 37,
|
||||
38, 42, 42, 40, 39, 38, 38, 39, 40, 39, 38, 40,
|
||||
40, 38, 37, 38, 40, 40, 38, 39, 39, 40, 39, 36,
|
||||
34, 37, 40, 40, 41, 40, 38, 35, 36, 40, 39, 38,
|
||||
36, 36, 37, 39, 40, 40, 40, 41, 42, 42, 42, 42,
|
||||
40, 41, 41, 42, 45, 45, 42, 42, 40, 42, 46, 46,
|
||||
44, 43, 41, 39, 37, 40, 41, 37, 35, 32, 30, 31,
|
||||
36, 36, 36, 36, 37, 40, 40, 40, 39, 39, 38, 39,
|
||||
41, 42, 40, 42, 42, 41, 38, 38, 42, 39, 37, 39,
|
||||
37, 34, 35, 36, 39, 39, 41, 41, 39, 39, 36, 35,
|
||||
35, 37, 41, 45, 48, 47, 48, 45, 42, 44, 41, 41,
|
||||
42, 43, 42, 41, 40, 39, 37, 37, 37, 38, 38, 40,
|
||||
41, 42, 40, 41, 40, 39, 40, 38, 37, 39, 41, 40,
|
||||
37, 35, 32, 33, 36, 36, 36, 36, 36, 38, 39, 38,
|
||||
37, 38, 37, 37, 40, 39, 43, 48, 48, 44, 39, 38,
|
||||
40, 41, 41, 41, 42, 42, 39, 36, 35, 35, 34, 35,
|
||||
36, 38, 38, 37, 39, 38, 36, 36, 37, 39, 40, 40,
|
||||
38, 38, 37, 35, 36, 33, 34, 37, 36, 39, 39, 38,
|
||||
37, 33, 30, 32, 33, 33, 35, 36, 36, 36, 37, 35,
|
||||
37, 39, 40, 36, 35, 37, 36, 35, 36, 36, 36, 36,
|
||||
35, 31, 34, 35, 37, 38, 37, 36, 39, 42, 41, 41,
|
||||
40, 38, 36, 37, 38, 39, 40, 40, 37, 34, 34, 35,
|
||||
37, 37, 39, 39, 38, 40, 39, 41, 43, 43, 43, 40,
|
||||
39, 41, 41, 39, 35, 33, 34, 33, 36, 38, 40, 40,
|
||||
39, 40, 37, 39, 37, 34, 33, 34, 35, 35, 35, 35,
|
||||
33, 35, 34, 33, 34, 36, 37, 36, 35, 35, 34, 35,
|
||||
36, 36, 36, 36, 36, 38, 39, 40, 40, 42, 41, 40,
|
||||
43, 42, 39, 38, 35, 35, 34, 35, 37, 37, 37, 37,
|
||||
38, 37, 35, 34, 36, 39, 40, 39, 40, 41, 40, 36,
|
||||
37, 38, 34, 35, 36, 37, 39, 40, 37, 37, 37, 34,
|
||||
34, 35, 35, 37, 37, 38, 39, 42, 44, 42, 40, 41,
|
||||
40, 38, 35, 34, 34, 36, 36, 37, 39, 38, 40, 40,
|
||||
38, 36, 33, 31, 36, 36, 36, 36, 36, 36, 36, 39,
|
||||
41, 42, 41, 40, 38, 38, 37, 37, 41, 40, 39, 39,
|
||||
37, 39, 38, 39, 37, 35, 35, 35, 36, 39, 38, 38,
|
||||
38, 38, 39, 39, 39, 38, 38, 39, 40, 41, 41, 41,
|
||||
38, 38, 37, 37, 36, 38, 40, 39, 37, 35, 37, 35,
|
||||
33, 34, 35, 38, 36, 36, 38, 34, 33, 35, 36, 35,
|
||||
37, 39, 38, 38, 38, 37, 34, 31, 36, 36, 36, 36,
|
||||
36, 37, 41, 41, 39, 40, 39, 40, 41, 42, 40, 35,
|
||||
35, 36, 34, 36, 38, 38, 39, 39, 39, 39, 38, 37,
|
||||
38, 38, 36, 34, 35, 40, 44, 43, 46, 47, 40, 35,
|
||||
36, 36, 37, 37, 35, 36, 37, 35, 36, 38, 38, 39,
|
||||
39, 39, 40, 40, 38, 33, 32, 35, 36, 35, 32, 31,
|
||||
32, 34, 34, 35, 38, 39, 38, 37, 35, 36, 36, 33,
|
||||
36, 36, 36, 36, 36, 35, 31, 33, 36, 36, 37, 37,
|
||||
37, 38, 38, 39, 41, 39, 36, 36, 36, 35, 37, 34,
|
||||
34, 32, 32, 34, 35, 39, 38, 38, 39, 38, 38, 38,
|
||||
38, 36, 33, 34, 33, 34, 34, 37, 40, 40, 40, 37,
|
||||
35, 37, 38, 37, 35, 35, 36, 37, 38, 41, 43, 42,
|
||||
37, 36, 40, 39, 41, 43, 41, 36, 32, 33, 36, 37,
|
||||
40, 39, 36, 33, 36, 36, 36, 36, 37, 42, 42, 39,
|
||||
35, 35, 35, 37, 37, 38, 39, 38, 40, 40, 39, 44,
|
||||
44, 39, 40, 40, 42, 44, 42, 38, 38, 36, 35, 35,
|
||||
35, 38, 38, 35, 33, 36, 35, 35, 37, 38, 39, 38,
|
||||
38, 38, 37, 36, 33, 33, 33, 34, 37, 38, 39, 40,
|
||||
36, 31, 33, 36, 34, 37, 35, 34, 36, 37, 38, 38,
|
||||
37, 37, 35, 33, 35, 39, 36, 34, 36, 36, 36, 36,
|
||||
36, 36, 35, 36, 36, 37, 35, 37, 38, 38, 40, 41,
|
||||
42, 40, 41, 44, 42, 42, 40, 38, 39, 37, 36, 35,
|
||||
35, 34, 33, 34, 35, 36, 36, 38, 37, 37, 36, 34,
|
||||
36, 39, 40, 39, 38, 39, 37, 37, 36, 39, 40, 39,
|
||||
39, 35, 37, 37, 36, 40, 41, 40, 37, 35, 36, 36,
|
||||
37, 35, 35, 34, 32, 36, 34, 32, 31, 30, 31, 33,
|
||||
36, 36, 36, 36, 37, 37, 37, 36, 35, 38, 39, 41,
|
||||
40, 35, 36, 35, 35, 34, 34, 38, 38, 39, 40, 36,
|
||||
35, 36, 35, 36, 36, 38, 36, 39, 41, 42, 41, 41,
|
||||
40, 41, 41, 39, 38, 36, 37, 37, 35, 37, 40, 39,
|
||||
37, 37, 37, 38, 39, 43, 44, 41, 39, 39, 42, 40,
|
||||
36, 38, 34, 33, 36, 37, 41, 41, 41, 41, 41, 40,
|
||||
40, 44, 41, 38, 36, 36, 36, 37, 37, 38, 39, 39,
|
||||
38, 38, 37, 40, 40, 37, 38, 38, 37, 36, 36, 36,
|
||||
35, 39, 39, 38, 41, 38, 37, 38, 39, 41, 40, 40,
|
||||
41, 41, 41, 40, 37, 39, 40, 40, 39, 39, 36, 35,
|
||||
35, 35, 35, 35, 34, 36, 35, 37, 40, 40, 40, 38,
|
||||
36, 36, 35, 37, 36, 37, 38, 38, 38, 37, 37, 34,
|
||||
31, 33, 32, 33, 33, 33, 35, 36};
|
||||
@ -0,0 +1,173 @@
|
||||
/*
|
||||
====================================================
|
||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software is freely granted, provided that this notice
|
||||
is preserved.
|
||||
====================================================
|
||||
*/
|
||||
|
||||
/*
|
||||
from: @(#)fdlibm.h 5.1 93/09/24
|
||||
*/
|
||||
|
||||
#ifndef _MATH_PRIVATE_H_
|
||||
#define _MATH_PRIVATE_H_
|
||||
|
||||
#include "wcclibm.h"
|
||||
|
||||
// #include <endian.h>
|
||||
// #include <sys/types.h>
|
||||
|
||||
/* A representation of a double as a union. */
|
||||
union ieee754_double {
|
||||
double d;
|
||||
|
||||
/* This is the IEEE 754 double-precision format. */
|
||||
struct {
|
||||
/* Together these comprise the mantissa. */
|
||||
unsigned int mantissa1 : 32;
|
||||
unsigned int mantissa0 : 20;
|
||||
unsigned int exponent : 11;
|
||||
unsigned int negative : 1;
|
||||
} ieee;
|
||||
|
||||
/* This format makes it easier to see if a NaN is a signalling NaN. */
|
||||
struct {
|
||||
/* Together these comprise the mantissa. */
|
||||
unsigned int mantissa1 : 32;
|
||||
unsigned int mantissa0 : 19;
|
||||
unsigned int quiet_nan : 1;
|
||||
unsigned int exponent : 11;
|
||||
unsigned int negative : 1;
|
||||
} ieee_nan;
|
||||
};
|
||||
|
||||
/* The original fdlibm code used statements like:
|
||||
n0 = ((*(int*)&one)>>29)^1; * index of high word *
|
||||
ix0 = *(n0+(int*)&x); * high word of x *
|
||||
ix1 = *((1-n0)+(int*)&x); * low word of x *
|
||||
to dig two 32 bit words out of the 64 bit IEEE floating point
|
||||
value. That is non-ANSI, and, moreover, the gcc instruction
|
||||
scheduler gets it wrong. We instead use the following macros.
|
||||
Unlike the original code, we determine the endianness at compile
|
||||
time, not at run time; I don't see much benefit to selecting
|
||||
endianness at run time. */
|
||||
|
||||
/* A union which permits us to convert between a double and two 32 bit
|
||||
ints. */
|
||||
|
||||
/* #if __FLOAT_WORD_ORDER == BIG_ENDIAN */
|
||||
/* #warning USING Big Endian float word order */
|
||||
/* typedef union */
|
||||
/* { */
|
||||
/* double value; */
|
||||
/* struct */
|
||||
/* { */
|
||||
/* u_int16_t msw; */
|
||||
/* u_int16_t lsw; */
|
||||
/* } parts; */
|
||||
/* } ieeeDoubleShapeType; */
|
||||
|
||||
/* #endif */
|
||||
|
||||
/* #if __FLOAT_WORD_ORDER == LITTLE_ENDIAN */
|
||||
/* #warning USING Little Endian float word order */
|
||||
|
||||
typedef union {
|
||||
double value;
|
||||
struct {
|
||||
u_int16_t lsw;
|
||||
u_int16_t msw;
|
||||
} parts;
|
||||
} ieeeDoubleShapeType;
|
||||
|
||||
/* #endif */
|
||||
|
||||
/* Get two 32 bit ints from a double. */
|
||||
|
||||
#define EXTRACT_WORDS(ix0, ix1, d) \
|
||||
{ \
|
||||
ieeeDoubleShapeType ew_u; \
|
||||
ew_u.value = (d); \
|
||||
(ix0) = ew_u.parts.msw; \
|
||||
(ix1) = ew_u.parts.lsw; \
|
||||
}
|
||||
|
||||
/* Get the more significant 32 bit int from a double. */
|
||||
|
||||
#define GET_HIGH_WORD(i, d) \
|
||||
{ \
|
||||
ieeeDoubleShapeType gh_u; \
|
||||
gh_u.value = (d); \
|
||||
(i) = gh_u.parts.msw; \
|
||||
}
|
||||
|
||||
/* Get the less significant 32 bit int from a double. */
|
||||
|
||||
#define GET_LOW_WORD(i, d) \
|
||||
{ \
|
||||
ieeeDoubleShapeType gl_u; \
|
||||
gl_u.value = (d); \
|
||||
(i) = gl_u.parts.lsw; \
|
||||
}
|
||||
|
||||
/* Set a double from two 32 bit ints. */
|
||||
|
||||
#define INSERT_WORDS(d, ix0, ix1) \
|
||||
{ \
|
||||
ieeeDoubleShapeType iw_u; \
|
||||
iw_u.parts.msw = (ix0); \
|
||||
iw_u.parts.lsw = (ix1); \
|
||||
(d) = iw_u.value; \
|
||||
}
|
||||
|
||||
/* Set the more significant 32 bits of a double from an int. */
|
||||
|
||||
#define SET_HIGH_WORD(d, v) \
|
||||
{ \
|
||||
ieeeDoubleShapeType sh_u; \
|
||||
sh_u.value = (d); \
|
||||
sh_u.parts.msw = (v); \
|
||||
(d) = sh_u.value; \
|
||||
}
|
||||
|
||||
/* Set the less significant 32 bits of a double from an int. */
|
||||
|
||||
#define SET_LOW_WORD(d, v) \
|
||||
{ \
|
||||
ieeeDoubleShapeType sl_u; \
|
||||
sl_u.value = (d); \
|
||||
sl_u.parts.lsw = (v); \
|
||||
(d) = sl_u.value; \
|
||||
}
|
||||
|
||||
/* A union which permits us to convert between a float and a 32 bit
|
||||
int. */
|
||||
|
||||
typedef union {
|
||||
float value;
|
||||
u_int32_t word;
|
||||
} ieee_float_shape_type;
|
||||
|
||||
/* Get a 32 bit int from a float. */
|
||||
|
||||
#define GET_FLOAT_WORD(i, d) \
|
||||
{ \
|
||||
ieee_float_shape_type gf_u; \
|
||||
gf_u.value = (d); \
|
||||
(i) = gf_u.word; \
|
||||
}
|
||||
|
||||
/* Set a float from a 32 bit int. */
|
||||
|
||||
#define SET_FLOAT_WORD(d, i) \
|
||||
{ \
|
||||
ieee_float_shape_type sf_u; \
|
||||
sf_u.word = (i); \
|
||||
(d) = sf_u.value; \
|
||||
}
|
||||
|
||||
#endif /* _MATH_PRIVATE_H_ */
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,80 @@
|
||||
#include "wccfile.h"
|
||||
|
||||
// Wasm loop bounds
|
||||
|
||||
__attribute__((import_module("__pragma"), import_name("loopbound"))) extern void
|
||||
__pragma_loopbound(unsigned int min_bound, unsigned int max_bound);
|
||||
|
||||
#define EOF -1
|
||||
|
||||
size_t
|
||||
susan_wccfread(void *ptr, size_t size, size_t count, struct wccFILE *stream) {
|
||||
if (susan_wccfeof(stream))
|
||||
return EOF;
|
||||
|
||||
unsigned i = stream->cur_pos, i2 = 0;
|
||||
size_t number_of_chars_to_read =
|
||||
stream->size - stream->cur_pos >= size * count
|
||||
? size * count
|
||||
: stream->size - stream->cur_pos;
|
||||
__pragma_loopbound(7220, 7220);
|
||||
while (i < stream->cur_pos + number_of_chars_to_read)
|
||||
((unsigned char *) ptr)[i2++] = stream->data[i++];
|
||||
stream->cur_pos += number_of_chars_to_read;
|
||||
return number_of_chars_to_read;
|
||||
}
|
||||
|
||||
int
|
||||
susan_wccfgetc(struct wccFILE *stream) {
|
||||
if (susan_wccfeof(stream))
|
||||
return EOF;
|
||||
|
||||
else
|
||||
return stream->data[stream->cur_pos++];
|
||||
}
|
||||
|
||||
char *
|
||||
susan_wccfgets(char *str, int num, struct wccFILE *stream) {
|
||||
if (!stream || susan_wccfeof(stream) || !str || num <= 0)
|
||||
return 0;
|
||||
|
||||
int pos = 0;
|
||||
__pragma_loopbound(57, 57);
|
||||
while (pos < num - 1 && !susan_wccfeof(stream)) {
|
||||
str[pos] = stream->data[stream->cur_pos];
|
||||
if (str[pos] == '\n')
|
||||
break;
|
||||
|
||||
stream->cur_pos++;
|
||||
pos++;
|
||||
}
|
||||
str[pos++] = '\0';
|
||||
|
||||
return str;
|
||||
}
|
||||
|
||||
int
|
||||
susan_wccfseek(struct wccFILE *stream, long int offset, enum _Origin_ origin) {
|
||||
if (origin == WCCSEEK_SET) {
|
||||
stream->cur_pos = offset;
|
||||
return 0;
|
||||
} else if (origin == WCCSEEK_CUR) {
|
||||
stream->cur_pos += offset;
|
||||
return 0;
|
||||
} else if (origin == WCCSEEK_END) {
|
||||
stream->cur_pos = stream->size + offset;
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
int
|
||||
susan_wccfgetpos(struct wccFILE *stream, unsigned *position) {
|
||||
*position = stream->cur_pos;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
susan_wccfeof(struct wccFILE *stream) {
|
||||
return stream->cur_pos == stream->size ? 1 : 0;
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
|
||||
#ifndef WCC_FILE_H
|
||||
#define WCC_FILE_H
|
||||
|
||||
enum _Origin_ { WCCSEEK_SET, WCCSEEK_CUR, WCCSEEK_END };
|
||||
typedef enum _Origin_ Origin;
|
||||
typedef unsigned int size_t;
|
||||
|
||||
#define EOF -1
|
||||
|
||||
struct wccFILE {
|
||||
char *data;
|
||||
size_t size;
|
||||
unsigned cur_pos;
|
||||
};
|
||||
|
||||
size_t susan_wccfread(void *ptr, size_t size, size_t count,
|
||||
struct wccFILE *stream);
|
||||
int susan_wccfseek(struct wccFILE *stream, long int offset, Origin origin);
|
||||
int susan_wccfgetpos(struct wccFILE *stream, unsigned *position);
|
||||
int susan_wccfeof(struct wccFILE *stream);
|
||||
int susan_wccfgetc(struct wccFILE *stream);
|
||||
char *susan_wccfgets(char *str, int num, struct wccFILE *stream);
|
||||
|
||||
#endif
|
||||
@ -0,0 +1,483 @@
|
||||
#include "wcclibm.h"
|
||||
#include "math_private.h"
|
||||
|
||||
/* e_rem_pio2f.c -- float version of e_rem_pio2.c
|
||||
Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
|
||||
*/
|
||||
|
||||
/*
|
||||
====================================================
|
||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software is freely granted, provided that this notice
|
||||
is preserved.
|
||||
====================================================
|
||||
*/
|
||||
|
||||
#if defined(LIBM_SCCS) && !defined(lint)
|
||||
static char rcsid[] =
|
||||
"$NetBSD: e_rem_pio2f.c,v 1.5 1995/05/10 20:46:03 jtc Exp $";
|
||||
#endif
|
||||
|
||||
/* __ieee754_rem_pio2f(x,y)
|
||||
|
||||
return the remainder of x rem pi/2 in y[ 0 ]+y[ 1 ]
|
||||
use __kernel_rem_pio2f()
|
||||
*/
|
||||
|
||||
/* This array is like the one in e_rem_pio2.c, but the numbers are
|
||||
single precision and the last 8 bits are forced to 0. */
|
||||
static const int32_t susan_npio2_hw[] = {
|
||||
0x3fc90f00, 0x40490f00, 0x4096cb00, 0x40c90f00, 0x40fb5300, 0x4116cb00,
|
||||
0x412fed00, 0x41490f00, 0x41623100, 0x417b5300, 0x418a3a00, 0x4196cb00,
|
||||
0x41a35c00, 0x41afed00, 0x41bc7e00, 0x41c90f00, 0x41d5a000, 0x41e23100,
|
||||
0x41eec200, 0x41fb5300, 0x4203f200, 0x420a3a00, 0x42108300, 0x4216cb00,
|
||||
0x421d1400, 0x42235c00, 0x4229a500, 0x422fed00, 0x42363600, 0x423c7e00,
|
||||
0x4242c700, 0x42490f00};
|
||||
|
||||
/*
|
||||
invpio2: 24 bits of 2/pi
|
||||
pio2_1: first 17 bit of pi/2
|
||||
pio2_1t: pi/2 - pio2_1
|
||||
pio2_2: second 17 bit of pi/2
|
||||
pio2_2t: pi/2 - (pio2_1+pio2_2)
|
||||
pio2_3: third 17 bit of pi/2
|
||||
pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3)
|
||||
*/
|
||||
|
||||
static const float
|
||||
/* zero = 0.0000000000e+00f, /\* 0x00000000 *\/ */
|
||||
/* half = 5.0000000000e-01f, /\* 0x3f000000 *\/ */
|
||||
/* two8 = 2.5600000000e+02f, /\* 0x43800000 *\/ */
|
||||
susan_invpio2 = 6.3661980629e-01f, /* 0x3f22f984 */
|
||||
susan_pio2_1 = 1.5707855225e+00f, /* 0x3fc90f80 */
|
||||
susan_pio2_1t = 1.0804334124e-05f, /* 0x37354443 */
|
||||
susan_pio2_2 = 1.0804273188e-05f, /* 0x37354400 */
|
||||
susan_pio2_2t = 6.0770999344e-11f, /* 0x2e85a308 */
|
||||
susan_pio2_3 = 6.0770943833e-11f, /* 0x2e85a300 */
|
||||
susan_pio2_3t = 6.1232342629e-17f; /* 0x248d3132 */
|
||||
|
||||
int32_t
|
||||
susan___ieee754_rem_pio2f(float x, float *y) {
|
||||
float z, w, t, r, fn;
|
||||
int32_t i, j, n, ix, hx;
|
||||
|
||||
GET_FLOAT_WORD(hx, x);
|
||||
ix = hx & 0x7fffffff;
|
||||
if (ix <= 0x3f490fd8) { /* |x| ~<= pi/4 , no need for reduction */
|
||||
y[0] = x;
|
||||
y[1] = 0;
|
||||
return 0;
|
||||
}
|
||||
if (ix < 0x4016cbe4) { /* |x| < 3pi/4, special case with n=+-1 */
|
||||
if (hx > 0) {
|
||||
z = x - susan_pio2_1;
|
||||
if ((ix & 0xfffffff0) != 0x3fc90fd0) { /* 24+24 bit pi OK */
|
||||
y[0] = z - susan_pio2_1t;
|
||||
y[1] = (z - y[0]) - susan_pio2_1t;
|
||||
} else { /* near pi/2, use 24+24+24 bit pi */
|
||||
z -= susan_pio2_2;
|
||||
y[0] = z - susan_pio2_2t;
|
||||
y[1] = (z - y[0]) - susan_pio2_2t;
|
||||
}
|
||||
return 1;
|
||||
} else { /* negative x */
|
||||
z = x + susan_pio2_1;
|
||||
if ((ix & 0xfffffff0) != 0x3fc90fd0) { /* 24+24 bit pi OK */
|
||||
y[0] = z + susan_pio2_1t;
|
||||
y[1] = (z - y[0]) + susan_pio2_1t;
|
||||
} else { /* near pi/2, use 24+24+24 bit pi */
|
||||
z += susan_pio2_2;
|
||||
y[0] = z + susan_pio2_2t;
|
||||
y[1] = (z - y[0]) + susan_pio2_2t;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (ix <= 0x43490f80) { /* |x| ~<= 2^7*(pi/2), medium size */
|
||||
t = fabsf(x);
|
||||
n = (int32_t) (t * susan_invpio2 + susan_half);
|
||||
fn = (float) n;
|
||||
r = t - fn * susan_pio2_1;
|
||||
w = fn * susan_pio2_1t; /* 1st round good to 40 bit */
|
||||
if (n < 32 && (int32_t) (ix & 0xffffff00) != susan_npio2_hw[n - 1]) {
|
||||
y[0] = r - w; /* quick check no cancellation */
|
||||
} else {
|
||||
u_int32_t high;
|
||||
j = ix >> 23;
|
||||
y[0] = r - w;
|
||||
GET_FLOAT_WORD(high, y[0]);
|
||||
i = j - ((high >> 23) & 0xff);
|
||||
if (i > 8) { /* 2nd iteration needed, good to 57 */
|
||||
t = r;
|
||||
w = fn * susan_pio2_2;
|
||||
r = t - w;
|
||||
w = fn * susan_pio2_2t - ((t - r) - w);
|
||||
y[0] = r - w;
|
||||
GET_FLOAT_WORD(high, y[0]);
|
||||
i = j - ((high >> 23) & 0xff);
|
||||
if (i > 25) { /* 3rd iteration need, 74 bits acc */
|
||||
t = r; /* will cover all possible cases */
|
||||
w = fn * susan_pio2_3;
|
||||
r = t - w;
|
||||
w = fn * susan_pio2_3t - ((t - r) - w);
|
||||
y[0] = r - w;
|
||||
}
|
||||
}
|
||||
}
|
||||
y[1] = (r - y[0]) - w;
|
||||
if (hx < 0) {
|
||||
y[0] = -y[0];
|
||||
y[1] = -y[1];
|
||||
return -n;
|
||||
} else
|
||||
return n;
|
||||
}
|
||||
/*
|
||||
all other (large) arguments
|
||||
*/
|
||||
if (ix >= 0x7f800000) { /* x is inf or NaN */
|
||||
y[0] = y[1] = x - x;
|
||||
return 0;
|
||||
}
|
||||
|
||||
y[0] = y[1] = x - x;
|
||||
return 0; /* dummy initialisation */
|
||||
return 0; /* doesn't happen for our input */
|
||||
}
|
||||
|
||||
/* k_cosf.c -- float version of k_cos.c
|
||||
Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
|
||||
*/
|
||||
|
||||
/*
|
||||
====================================================
|
||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software is freely granted, provided that this notice
|
||||
is preserved.
|
||||
====================================================
|
||||
*/
|
||||
|
||||
#if defined(LIBM_SCCS) && !defined(lint)
|
||||
static char rcsid[] = "$NetBSD: k_cosf.c,v 1.4 1995/05/10 20:46:23 jtc Exp $";
|
||||
#endif
|
||||
|
||||
static const float
|
||||
/* one = 1.0000000000e+00, /\* 0x3f800000 *\/ */
|
||||
susan_C1 = 4.1666667908e-02f, /* 0x3d2aaaab */
|
||||
susan_C2 = -1.3888889225e-03f, /* 0xbab60b61 */
|
||||
susan_C3 = 2.4801587642e-05f, /* 0x37d00d01 */
|
||||
susan_C4 = -2.7557314297e-07f, /* 0xb493f27c */
|
||||
susan_C5 = 2.0875723372e-09f, /* 0x310f74f6 */
|
||||
susan_C6 = -1.1359647598e-11f; /* 0xad47d74e */
|
||||
|
||||
float
|
||||
susan___kernel_cosf(float x, float y) {
|
||||
float a, hz, z, r, qx;
|
||||
int32_t ix;
|
||||
GET_FLOAT_WORD(ix, x);
|
||||
ix &= 0x7fffffff; /* ix = |x|'s high word*/
|
||||
if (ix < 0x32000000) { /* if x < 2**27 */
|
||||
if (((int) x) == 0)
|
||||
return susan_one; /* generate inexact */
|
||||
}
|
||||
z = x * x;
|
||||
r = z *
|
||||
(susan_C1 +
|
||||
z * (susan_C2 +
|
||||
z * (susan_C3 + z * (susan_C4 + z * (susan_C5 + z * susan_C6)))));
|
||||
if (ix < 0x3e99999a) /* if |x| < 0.3 */
|
||||
return susan_one - ((float) 0.5f * z - (z * r - x * y));
|
||||
else {
|
||||
if (ix > 0x3f480000) /* x > 0.78125 */
|
||||
qx = (float) 0.28125f;
|
||||
|
||||
else {
|
||||
SET_FLOAT_WORD(qx, ix - 0x01000000); /* x/4 */
|
||||
}
|
||||
hz = (float) 0.5f * z - qx;
|
||||
a = susan_one - qx;
|
||||
return a - (hz - (z * r - x * y));
|
||||
}
|
||||
}
|
||||
|
||||
/* k_sinf.c -- float version of k_sin.c
|
||||
Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
|
||||
*/
|
||||
|
||||
/*
|
||||
====================================================
|
||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software is freely granted, provided that this notice
|
||||
is preserved.
|
||||
====================================================
|
||||
*/
|
||||
|
||||
#if defined(LIBM_SCCS) && !defined(lint)
|
||||
static char rcsid[] = "$NetBSD: k_sinf.c,v 1.4 1995/05/10 20:46:33 jtc Exp $";
|
||||
#endif
|
||||
|
||||
static const float
|
||||
/* half = 5.0000000000e-01f,/\* 0x3f000000 *\/ */
|
||||
susan_S1 = -1.6666667163e-01f, /* 0xbe2aaaab */
|
||||
susan_S2 = 8.3333337680e-03f, /* 0x3c088889 */
|
||||
susan_S3 = -1.9841270114e-04f, /* 0xb9500d01 */
|
||||
susan_S4 = 2.7557314297e-06f, /* 0x3638ef1b */
|
||||
susan_S5 = -2.5050759689e-08f, /* 0xb2d72f34 */
|
||||
susan_S6 = 1.5896910177e-10f; /* 0x2f2ec9d3 */
|
||||
|
||||
float
|
||||
susan___kernel_sinf(float x, float y, int iy) {
|
||||
float z, r, v;
|
||||
int32_t ix;
|
||||
GET_FLOAT_WORD(ix, x);
|
||||
ix &= 0x7fffffff; /* high word of x */
|
||||
if (ix < 0x32000000) { /* |x| < 2**-27 */
|
||||
if ((int) x == 0)
|
||||
return x; /* generate inexact */
|
||||
}
|
||||
z = x * x;
|
||||
v = z * x;
|
||||
r = susan_S2 +
|
||||
z * (susan_S3 + z * (susan_S4 + z * (susan_S5 + z * susan_S6)));
|
||||
if (iy == 0)
|
||||
return x + v * (susan_S1 + z * r);
|
||||
else
|
||||
return x - ((z * (susan_half * y - v * r) - y) - v * susan_S1);
|
||||
}
|
||||
/* s_atanf.c -- float version of s_atan.c.
|
||||
Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
|
||||
*/
|
||||
|
||||
/*
|
||||
====================================================
|
||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software is freely granted, provided that this notice
|
||||
is preserved.
|
||||
====================================================
|
||||
*/
|
||||
|
||||
#if defined(LIBM_SCCS) && !defined(lint)
|
||||
static char rcsid[] = "$NetBSD: s_atanf.c,v 1.4 1995/05/10 20:46:47 jtc Exp $";
|
||||
#endif
|
||||
|
||||
static const float susan_atanhi[] = {
|
||||
4.6364760399e-01f, /* atan(0.5)hi 0x3eed6338 */
|
||||
7.8539812565e-01f, /* atan(1.0)hi 0x3f490fda */
|
||||
9.8279368877e-01f, /* atan(1.5)hi 0x3f7b985e */
|
||||
1.5707962513e+00f, /* atan(inf)hi 0x3fc90fda */
|
||||
};
|
||||
|
||||
static const float susan_atanlo[] = {
|
||||
5.0121582440e-09f, /* atan(0.5)lo 0x31ac3769 */
|
||||
3.7748947079e-08f, /* atan(1.0)lo 0x33222168 */
|
||||
3.4473217170e-08f, /* atan(1.5)lo 0x33140fb4 */
|
||||
7.5497894159e-08f, /* atan(inf)lo 0x33a22168 */
|
||||
};
|
||||
|
||||
static const float susan_aT[] = {
|
||||
3.3333334327e-01f, /* 0x3eaaaaaa */
|
||||
-2.0000000298e-01f, /* 0xbe4ccccd */
|
||||
1.4285714924e-01f, /* 0x3e124925 */
|
||||
-1.1111110449e-01f, /* 0xbde38e38 */
|
||||
9.0908870101e-02f, /* 0x3dba2e6e */
|
||||
-7.6918758452e-02f, /* 0xbd9d8795 */
|
||||
6.6610731184e-02f, /* 0x3d886b35 */
|
||||
-5.8335702866e-02f, /* 0xbd6ef16b */
|
||||
4.9768779427e-02f, /* 0x3d4bda59 */
|
||||
-3.6531571299e-02f, /* 0xbd15a221 */
|
||||
1.6285819933e-02f, /* 0x3c8569d7 */
|
||||
};
|
||||
|
||||
float
|
||||
susan___atanf(float x) {
|
||||
float w, s1, s2, z;
|
||||
int32_t ix, hx, id;
|
||||
|
||||
GET_FLOAT_WORD(hx, x);
|
||||
ix = hx & 0x7fffffff;
|
||||
if (ix >= 0x50800000) { /* if |x| >= 2^34 */
|
||||
if (ix > 0x7f800000)
|
||||
return x + x; /* NaN */
|
||||
if (hx > 0)
|
||||
return susan_atanhi[3] + susan_atanlo[3];
|
||||
else
|
||||
return -susan_atanhi[3] - susan_atanlo[3];
|
||||
}
|
||||
if (ix < 0x3ee00000) { /* |x| < 0.4375 */
|
||||
if (ix < 0x31000000) { /* |x| < 2^-29 */
|
||||
if (susan_huge + x > susan_one)
|
||||
return x; /* raise inexact */
|
||||
}
|
||||
id = -1;
|
||||
} else {
|
||||
x = fabsf(x);
|
||||
if (ix < 0x3f980000) { /* |x| < 1.1875 */
|
||||
if (ix < 0x3f300000) { /* 7/16 <=|x|<11/16 */
|
||||
id = 0;
|
||||
x = ((float) 2.0f * x - susan_one) / ((float) 2.0f + x);
|
||||
} else { /* 11/16<=|x|< 19/16 */
|
||||
id = 1;
|
||||
x = (x - susan_one) / (x + susan_one);
|
||||
}
|
||||
} else {
|
||||
if (ix < 0x401c0000) { /* |x| < 2.4375 */
|
||||
id = 2;
|
||||
x = (x - (float) 1.5f) / (susan_one + (float) 1.5f * x);
|
||||
} else { /* 2.4375 <= |x| < 2^66 */
|
||||
id = 3;
|
||||
x = -(float) 1.0f / x;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* end of argument reduction */
|
||||
z = x * x;
|
||||
w = z * z;
|
||||
/* break sum from i=0 to 10 aT[ i ]z**(i+1) into odd and even poly */
|
||||
s1 = z *
|
||||
(susan_aT[0] +
|
||||
w * (susan_aT[2] +
|
||||
w * (susan_aT[4] +
|
||||
w * (susan_aT[6] + w * (susan_aT[8] + w * susan_aT[10])))));
|
||||
s2 = w * (susan_aT[1] +
|
||||
w * (susan_aT[3] +
|
||||
w * (susan_aT[5] + w * (susan_aT[7] + w * susan_aT[9]))));
|
||||
if (id < 0)
|
||||
return x - x * (s1 + s2);
|
||||
else {
|
||||
z = susan_atanhi[id] - ((x * (s1 + s2) - susan_atanlo[id]) - x);
|
||||
return (hx < 0) ? -z : z;
|
||||
}
|
||||
}
|
||||
|
||||
/* s_cosf.c -- float version of s_cos.c.
|
||||
Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
|
||||
*/
|
||||
|
||||
/*
|
||||
====================================================
|
||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software is freely granted, provided that this notice
|
||||
is preserved.
|
||||
====================================================
|
||||
*/
|
||||
|
||||
float
|
||||
susan___cosf(float x) {
|
||||
float y[2], z = 0.0f;
|
||||
int32_t n, ix;
|
||||
|
||||
GET_FLOAT_WORD(ix, x);
|
||||
|
||||
/* |x| ~< pi/4 */
|
||||
ix &= 0x7fffffff;
|
||||
if (ix <= 0x3f490fd8)
|
||||
return susan___kernel_cosf(x, z);
|
||||
|
||||
/* cos(Inf or NaN) is NaN */
|
||||
else if (ix >= 0x7f800000)
|
||||
return x - x;
|
||||
|
||||
/* argument reduction needed */
|
||||
else {
|
||||
n = susan___ieee754_rem_pio2f(x, y);
|
||||
switch (n & 3) {
|
||||
case 0:
|
||||
return susan___kernel_cosf(y[0], y[1]);
|
||||
case 1:
|
||||
return -susan___kernel_sinf(y[0], y[1], 1);
|
||||
case 2:
|
||||
return -susan___kernel_cosf(y[0], y[1]);
|
||||
default:
|
||||
return susan___kernel_sinf(y[0], y[1], 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* s_sinf.c -- float version of s_sin.c.
|
||||
Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
|
||||
*/
|
||||
|
||||
/*
|
||||
====================================================
|
||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software is freely granted, provided that this notice
|
||||
is preserved.
|
||||
====================================================
|
||||
*/
|
||||
|
||||
float
|
||||
susan___sinf(float x) {
|
||||
float y[2], z = 0.0;
|
||||
int32_t n, ix;
|
||||
|
||||
GET_FLOAT_WORD(ix, x);
|
||||
|
||||
/* |x| ~< pi/4 */
|
||||
ix &= 0x7fffffff;
|
||||
if (ix <= 0x3f490fd8)
|
||||
return susan___kernel_sinf(x, z, 0);
|
||||
|
||||
/* sin(Inf or NaN) is NaN */
|
||||
else if (ix >= 0x7f800000)
|
||||
return x - x;
|
||||
|
||||
/* argument reduction needed */
|
||||
else {
|
||||
n = susan___ieee754_rem_pio2f(x, y);
|
||||
switch (n & 3) {
|
||||
case 0:
|
||||
return susan___kernel_sinf(y[0], y[1], 1);
|
||||
case 1:
|
||||
return susan___kernel_cosf(y[0], y[1]);
|
||||
case 2:
|
||||
return -susan___kernel_sinf(y[0], y[1], 1);
|
||||
default:
|
||||
return -susan___kernel_cosf(y[0], y[1]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* s_fabsf.c -- float version of s_fabs.c.
|
||||
Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
|
||||
*/
|
||||
|
||||
/*
|
||||
====================================================
|
||||
Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
|
||||
Developed at SunPro, a Sun Microsystems, Inc. business.
|
||||
Permission to use, copy, modify, and distribute this
|
||||
software is freely granted, provided that this notice
|
||||
is preserved.
|
||||
====================================================
|
||||
*/
|
||||
|
||||
/*
|
||||
fabsf(x) returns the absolute value of x.
|
||||
*/
|
||||
|
||||
float
|
||||
susan___fabsf(float x) {
|
||||
u_int32_t ix;
|
||||
GET_FLOAT_WORD(ix, x);
|
||||
SET_FLOAT_WORD(x, ix & 0x7fffffff);
|
||||
return x;
|
||||
}
|
||||
@ -0,0 +1,54 @@
|
||||
|
||||
#ifndef _WCCLIBM
|
||||
#define _WCCLIBM
|
||||
|
||||
#define int32_t int
|
||||
#define uint32_t unsigned int
|
||||
#define u_int16_t unsigned short
|
||||
#define u_int32_t unsigned int
|
||||
|
||||
// Often used variables/consts
|
||||
#ifdef __STDC__
|
||||
static const float
|
||||
#else
|
||||
static float
|
||||
#endif
|
||||
susan_one = 1.0f,
|
||||
susan_half = 5.0000000000e-01f, /* 0x3f000000 */
|
||||
susan_zero = 0.0f, susan_huge = 1.0e30,
|
||||
susan_two8 = 2.5600000000e+02f, /* 0x43800000 */
|
||||
susan_twon8 = 3.9062500000e-03f; /* 0x3b800000 */
|
||||
|
||||
// The following defines map the math functions to specialized calls
|
||||
#define acos susan___ieee754_acosf
|
||||
#define atan susan___atanf
|
||||
#define cos susan___cosf
|
||||
#define fabs susan___fabsf
|
||||
#define fabsf susan___fabsf
|
||||
#define isinf susan___isinff
|
||||
#define pow susan___ieee754_powf
|
||||
#define sqrt susan___ieee754_sqrtf
|
||||
#define log10 susan___ieee754_log10f
|
||||
#define log susan___ieee754_logf
|
||||
#define sin susan___sinf
|
||||
|
||||
float susan___atanf(float x);
|
||||
float susan___copysignf(float x, float y);
|
||||
float susan___cosf(float x);
|
||||
float susan___fabsf(float x);
|
||||
float susan___floorf(float x);
|
||||
float susan___ieee754_acosf(float x);
|
||||
float susan___ieee754_powf(float x, float y);
|
||||
int32_t susan___ieee754_rem_pio2f(float x, float *y);
|
||||
float susan___ieee754_sqrtf(float x);
|
||||
int susan___isinff(float x);
|
||||
float susan___kernel_cosf(float x, float y);
|
||||
float susan___kernel_sinf(float x, float y, int iy);
|
||||
int susan___kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec,
|
||||
const int32_t *ipio2);
|
||||
float susan___scalbnf(float x, int n);
|
||||
float susan___ieee754_logf(float x);
|
||||
float susan___ieee754_log10f(float x);
|
||||
float susan___sinf(float x);
|
||||
|
||||
#endif // _WCCLIBM
|
||||
@ -0,0 +1,56 @@
|
||||
#include "wccmalloc.h"
|
||||
|
||||
// This must be redefined for each new benchmark
|
||||
|
||||
// Wasm loop bounds
|
||||
|
||||
__attribute__((import_module("__pragma"), import_name("loopbound"))) extern void
|
||||
__pragma_loopbound(unsigned int min_bound, unsigned int max_bound);
|
||||
|
||||
#define HEAP_SIZE 30000
|
||||
|
||||
char susan_simulated_heap[HEAP_SIZE];
|
||||
unsigned int susan_freeHeapPos;
|
||||
|
||||
void *
|
||||
susan_wccmalloc(unsigned int numberOfBytes) {
|
||||
// Get a 4-byte adress for alignment purposes
|
||||
unsigned int offset =
|
||||
((unsigned long) susan_simulated_heap + susan_freeHeapPos) % 4;
|
||||
if (offset)
|
||||
susan_freeHeapPos += 4 - offset;
|
||||
void *currentPos = (void *) &susan_simulated_heap[susan_freeHeapPos];
|
||||
susan_freeHeapPos += numberOfBytes;
|
||||
return currentPos;
|
||||
}
|
||||
void
|
||||
susan_wccfreeall(void) {
|
||||
susan_freeHeapPos = 0;
|
||||
}
|
||||
|
||||
void *
|
||||
susan_wccmemcpy(void *dstpp, const void *srcpp, unsigned int len) {
|
||||
unsigned long int dstp = (long int) dstpp;
|
||||
unsigned long int srcp = (long int) srcpp;
|
||||
|
||||
__pragma_loopbound(76, 76);
|
||||
while (len > 0) {
|
||||
char __x = ((char *) srcp)[0];
|
||||
srcp += 1;
|
||||
len -= 1;
|
||||
((char *) dstp)[0] = __x;
|
||||
dstp += 1;
|
||||
}
|
||||
|
||||
return dstpp;
|
||||
}
|
||||
|
||||
void
|
||||
susan_wccmemset(void *p, int value, unsigned int num) {
|
||||
unsigned long i;
|
||||
char *char_ptr = (char *) p;
|
||||
|
||||
__pragma_loopbound(7220, 7220);
|
||||
for (i = 0; i < num; ++i)
|
||||
*char_ptr++ = (unsigned char) value;
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
|
||||
#ifndef _WCCMALLOC_H
|
||||
#define _WCCMALLOC_H
|
||||
|
||||
void *susan_wccmalloc(unsigned int numberOfBytes);
|
||||
//! Frees ALL allocated memory space
|
||||
void susan_wccfreeall(void);
|
||||
void *susan_wccmemcpy(void *dstpp, const void *srcpp, unsigned int len);
|
||||
void susan_wccmemset(void *p, int value, unsigned int num);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user