blob: 6e4a00adac81a1dd860641e90194620ea449b543 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
|
/* ----------------------------------------------------------------------
* Project: CMSIS DSP Library
* Title: arm_neon_tables_f16.h
* Description: common tables like fft twiddle factors, Bitreverse, reciprocal etc
* used for NEON implementation only
*
* @date 02 October 2024
*
* Target Processor: Cortex-A cores
* -------------------------------------------------------------------- */
/*
* Copyright (C) 2024 ARM Limited or its affiliates. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an AS IS BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef ARM_NEON_TABLES_F16_H
#define ARM_NEON_TABLES_F16_H
#include "arm_math_types_f16.h"
#ifdef __cplusplus
extern "C"
{
#endif
#if defined(ARM_MATH_NEON_FLOAT16) && defined(ARM_FLOAT16_SUPPORTED)
#define ARM_NEON_TWIDDLES_16_F16_LEN 24
extern const float16_t arm_neon_twiddles_16_f16[ARM_NEON_TWIDDLES_16_F16_LEN];
#define ARM_NEON_FACTORS_16_F16_LEN 4
extern const uint32_t arm_neon_factors_16_f16[ARM_NEON_FACTORS_16_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_16_F16 12
#define ARM_NEON_TWIDDLES_32_F16_LEN 48
extern const float16_t arm_neon_twiddles_32_f16[ARM_NEON_TWIDDLES_32_F16_LEN];
#define ARM_NEON_FACTORS_32_F16_LEN 4
extern const uint32_t arm_neon_factors_32_f16[ARM_NEON_FACTORS_32_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_32_F16 24
#define ARM_NEON_TWIDDLES_64_F16_LEN 120
extern const float16_t arm_neon_twiddles_64_f16[ARM_NEON_TWIDDLES_64_F16_LEN];
#define ARM_NEON_FACTORS_64_F16_LEN 4
extern const uint32_t arm_neon_factors_64_f16[ARM_NEON_FACTORS_64_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_64_F16 60
#define ARM_NEON_TWIDDLES_128_F16_LEN 240
extern const float16_t arm_neon_twiddles_128_f16[ARM_NEON_TWIDDLES_128_F16_LEN];
#define ARM_NEON_FACTORS_128_F16_LEN 4
extern const uint32_t arm_neon_factors_128_f16[ARM_NEON_FACTORS_128_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_128_F16 120
#define ARM_NEON_TWIDDLES_256_F16_LEN 504
extern const float16_t arm_neon_twiddles_256_f16[ARM_NEON_TWIDDLES_256_F16_LEN];
#define ARM_NEON_FACTORS_256_F16_LEN 4
extern const uint32_t arm_neon_factors_256_f16[ARM_NEON_FACTORS_256_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_256_F16 252
#define ARM_NEON_TWIDDLES_512_F16_LEN 1008
extern const float16_t arm_neon_twiddles_512_f16[ARM_NEON_TWIDDLES_512_F16_LEN];
#define ARM_NEON_FACTORS_512_F16_LEN 4
extern const uint32_t arm_neon_factors_512_f16[ARM_NEON_FACTORS_512_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_512_F16 504
#define ARM_NEON_TWIDDLES_1024_F16_LEN 2040
extern const float16_t arm_neon_twiddles_1024_f16[ARM_NEON_TWIDDLES_1024_F16_LEN];
#define ARM_NEON_FACTORS_1024_F16_LEN 4
extern const uint32_t arm_neon_factors_1024_f16[ARM_NEON_FACTORS_1024_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_1024_F16 1020
#define ARM_NEON_TWIDDLES_2048_F16_LEN 4080
extern const float16_t arm_neon_twiddles_2048_f16[ARM_NEON_TWIDDLES_2048_F16_LEN];
#define ARM_NEON_FACTORS_2048_F16_LEN 4
extern const uint32_t arm_neon_factors_2048_f16[ARM_NEON_FACTORS_2048_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_2048_F16 2040
#define ARM_NEON_TWIDDLES_4096_F16_LEN 8184
extern const float16_t arm_neon_twiddles_4096_f16[ARM_NEON_TWIDDLES_4096_F16_LEN];
#define ARM_NEON_FACTORS_4096_F16_LEN 4
extern const uint32_t arm_neon_factors_4096_f16[ARM_NEON_FACTORS_4096_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_4096_F16 4092
#define ARM_NEON_RFFT_TWIDDLES_16_F16_LEN 24
extern const float16_t arm_neon_rfft_twiddles_16_f16[ARM_NEON_RFFT_TWIDDLES_16_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_16_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_16_f16[ARM_NEON_RFFT_FACTORS_16_F16_LEN];
#define ARM_NEON_RFFT_TWIDDLES_NEON_16_F16_LEN 0
extern const float16_t *arm_neon_rfft_twiddles_neon_16_f16;
#define ARM_NEON_RFFT_FACTORS_NEON_16_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_neon_16_f16[ARM_NEON_RFFT_FACTORS_NEON_16_F16_LEN];
#define ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_16_F16_LEN 24
extern const float16_t arm_neon_rfft_super_twiddles_neon_16_f16[ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_16_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_RFFT_16_F16 12
#define ARM_NE10_OFFSET_BACKWARD_TWID_NEON_16_F16 0
#define ARM_NEON_RFFT_TWIDDLES_32_F16_LEN 48
extern const float16_t arm_neon_rfft_twiddles_32_f16[ARM_NEON_RFFT_TWIDDLES_32_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_32_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_32_f16[ARM_NEON_RFFT_FACTORS_32_F16_LEN];
#define ARM_NEON_RFFT_TWIDDLES_NEON_32_F16_LEN 0
extern const float16_t *arm_neon_rfft_twiddles_neon_32_f16;
#define ARM_NEON_RFFT_FACTORS_NEON_32_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_neon_32_f16[ARM_NEON_RFFT_FACTORS_NEON_32_F16_LEN];
#define ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_32_F16_LEN 24
extern const float16_t arm_neon_rfft_super_twiddles_neon_32_f16[ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_32_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_RFFT_32_F16 24
#define ARM_NE10_OFFSET_BACKWARD_TWID_NEON_32_F16 0
#define ARM_NEON_RFFT_TWIDDLES_64_F16_LEN 120
extern const float16_t arm_neon_rfft_twiddles_64_f16[ARM_NEON_RFFT_TWIDDLES_64_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_64_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_64_f16[ARM_NEON_RFFT_FACTORS_64_F16_LEN];
#define ARM_NEON_RFFT_TWIDDLES_NEON_64_F16_LEN 24
extern const float16_t arm_neon_rfft_twiddles_neon_64_f16[ARM_NEON_RFFT_TWIDDLES_NEON_64_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_NEON_64_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_neon_64_f16[ARM_NEON_RFFT_FACTORS_NEON_64_F16_LEN];
#define ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_64_F16_LEN 48
extern const float16_t arm_neon_rfft_super_twiddles_neon_64_f16[ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_64_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_RFFT_64_F16 60
#define ARM_NE10_OFFSET_BACKWARD_TWID_NEON_64_F16 12
#define ARM_NEON_RFFT_TWIDDLES_128_F16_LEN 240
extern const float16_t arm_neon_rfft_twiddles_128_f16[ARM_NEON_RFFT_TWIDDLES_128_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_128_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_128_f16[ARM_NEON_RFFT_FACTORS_128_F16_LEN];
#define ARM_NEON_RFFT_TWIDDLES_NEON_128_F16_LEN 48
extern const float16_t arm_neon_rfft_twiddles_neon_128_f16[ARM_NEON_RFFT_TWIDDLES_NEON_128_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_NEON_128_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_neon_128_f16[ARM_NEON_RFFT_FACTORS_NEON_128_F16_LEN];
#define ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_128_F16_LEN 96
extern const float16_t arm_neon_rfft_super_twiddles_neon_128_f16[ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_128_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_RFFT_128_F16 120
#define ARM_NE10_OFFSET_BACKWARD_TWID_NEON_128_F16 24
#define ARM_NEON_RFFT_TWIDDLES_256_F16_LEN 504
extern const float16_t arm_neon_rfft_twiddles_256_f16[ARM_NEON_RFFT_TWIDDLES_256_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_256_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_256_f16[ARM_NEON_RFFT_FACTORS_256_F16_LEN];
#define ARM_NEON_RFFT_TWIDDLES_NEON_256_F16_LEN 120
extern const float16_t arm_neon_rfft_twiddles_neon_256_f16[ARM_NEON_RFFT_TWIDDLES_NEON_256_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_NEON_256_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_neon_256_f16[ARM_NEON_RFFT_FACTORS_NEON_256_F16_LEN];
#define ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_256_F16_LEN 192
extern const float16_t arm_neon_rfft_super_twiddles_neon_256_f16[ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_256_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_RFFT_256_F16 252
#define ARM_NE10_OFFSET_BACKWARD_TWID_NEON_256_F16 60
#define ARM_NEON_RFFT_TWIDDLES_512_F16_LEN 1008
extern const float16_t arm_neon_rfft_twiddles_512_f16[ARM_NEON_RFFT_TWIDDLES_512_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_512_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_512_f16[ARM_NEON_RFFT_FACTORS_512_F16_LEN];
#define ARM_NEON_RFFT_TWIDDLES_NEON_512_F16_LEN 240
extern const float16_t arm_neon_rfft_twiddles_neon_512_f16[ARM_NEON_RFFT_TWIDDLES_NEON_512_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_NEON_512_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_neon_512_f16[ARM_NEON_RFFT_FACTORS_NEON_512_F16_LEN];
#define ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_512_F16_LEN 384
extern const float16_t arm_neon_rfft_super_twiddles_neon_512_f16[ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_512_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_RFFT_512_F16 504
#define ARM_NE10_OFFSET_BACKWARD_TWID_NEON_512_F16 120
#define ARM_NEON_RFFT_TWIDDLES_1024_F16_LEN 2040
extern const float16_t arm_neon_rfft_twiddles_1024_f16[ARM_NEON_RFFT_TWIDDLES_1024_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_1024_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_1024_f16[ARM_NEON_RFFT_FACTORS_1024_F16_LEN];
#define ARM_NEON_RFFT_TWIDDLES_NEON_1024_F16_LEN 504
extern const float16_t arm_neon_rfft_twiddles_neon_1024_f16[ARM_NEON_RFFT_TWIDDLES_NEON_1024_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_NEON_1024_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_neon_1024_f16[ARM_NEON_RFFT_FACTORS_NEON_1024_F16_LEN];
#define ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_1024_F16_LEN 768
extern const float16_t arm_neon_rfft_super_twiddles_neon_1024_f16[ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_1024_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_RFFT_1024_F16 1020
#define ARM_NE10_OFFSET_BACKWARD_TWID_NEON_1024_F16 252
#define ARM_NEON_RFFT_TWIDDLES_2048_F16_LEN 4080
extern const float16_t arm_neon_rfft_twiddles_2048_f16[ARM_NEON_RFFT_TWIDDLES_2048_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_2048_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_2048_f16[ARM_NEON_RFFT_FACTORS_2048_F16_LEN];
#define ARM_NEON_RFFT_TWIDDLES_NEON_2048_F16_LEN 1008
extern const float16_t arm_neon_rfft_twiddles_neon_2048_f16[ARM_NEON_RFFT_TWIDDLES_NEON_2048_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_NEON_2048_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_neon_2048_f16[ARM_NEON_RFFT_FACTORS_NEON_2048_F16_LEN];
#define ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_2048_F16_LEN 1536
extern const float16_t arm_neon_rfft_super_twiddles_neon_2048_f16[ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_2048_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_RFFT_2048_F16 2040
#define ARM_NE10_OFFSET_BACKWARD_TWID_NEON_2048_F16 504
#define ARM_NEON_RFFT_TWIDDLES_4096_F16_LEN 8184
extern const float16_t arm_neon_rfft_twiddles_4096_f16[ARM_NEON_RFFT_TWIDDLES_4096_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_4096_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_4096_f16[ARM_NEON_RFFT_FACTORS_4096_F16_LEN];
#define ARM_NEON_RFFT_TWIDDLES_NEON_4096_F16_LEN 2040
extern const float16_t arm_neon_rfft_twiddles_neon_4096_f16[ARM_NEON_RFFT_TWIDDLES_NEON_4096_F16_LEN];
#define ARM_NEON_RFFT_FACTORS_NEON_4096_F16_LEN 4
extern const uint32_t arm_neon_rfft_factors_neon_4096_f16[ARM_NEON_RFFT_FACTORS_NEON_4096_F16_LEN];
#define ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_4096_F16_LEN 3072
extern const float16_t arm_neon_rfft_super_twiddles_neon_4096_f16[ARM_NEON_RFFT_SUPER_TWIDDLES_NEON_4096_F16_LEN];
#define ARM_NE10_OFFSET_BACKWARD_TWID_RFFT_4096_F16 4092
#define ARM_NE10_OFFSET_BACKWARD_TWID_NEON_4096_F16 1020
#endif /* defined(ARM_MATH_NEON_FLOAT16) && defined(ARM_FLOAT16_SUPPORTED) */
#ifdef __cplusplus
}
#endif
#endif /*ARM_NEON_TABLES_F16_H*/
|