source: trunk/firmware_v4/Drivers/CMSIS/DSP/Include/arm_mve_tables.h

Last change on this file was 42, checked in by f.jahn, 5 days ago
File size: 9.6 KB
Line 
1/* ----------------------------------------------------------------------
2 * Project: CMSIS DSP Library
3 * Title: arm_mve_tables.h
4 * Description: common tables like fft twiddle factors, Bitreverse, reciprocal etc
5 * used for MVE implementation only
6 *
7 * @version V1.10.0
8 * @date 04 October 2021
9 *
10 * Target Processor: Cortex-M and Cortex-A cores
11 * -------------------------------------------------------------------- */
12/*
13 * Copyright (C) 2010-2021 ARM Limited or its affiliates. All rights reserved.
14 *
15 * SPDX-License-Identifier: Apache-2.0
16 *
17 * Licensed under the Apache License, Version 2.0 (the License); you may
18 * not use this file except in compliance with the License.
19 * You may obtain a copy of the License at
20 *
21 * www.apache.org/licenses/LICENSE-2.0
22 *
23 * Unless required by applicable law or agreed to in writing, software
24 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
25 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26 * See the License for the specific language governing permissions and
27 * limitations under the License.
28 */
29
30 #ifndef _ARM_MVE_TABLES_H
31 #define _ARM_MVE_TABLES_H
32
33#include "arm_math_types.h"
34
35#ifdef __cplusplus
36extern "C"
37{
38#endif
39
40
41
42
43#if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE)
44
45#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES)
46
47#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_16) || defined(ARM_TABLE_TWIDDLECOEF_F32_32)
48
49extern uint32_t rearranged_twiddle_tab_stride1_arr_16_f32[2];
50extern uint32_t rearranged_twiddle_tab_stride2_arr_16_f32[2];
51extern uint32_t rearranged_twiddle_tab_stride3_arr_16_f32[2];
52extern float32_t rearranged_twiddle_stride1_16_f32[8];
53extern float32_t rearranged_twiddle_stride2_16_f32[8];
54extern float32_t rearranged_twiddle_stride3_16_f32[8];
55#endif
56
57#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_64) || defined(ARM_TABLE_TWIDDLECOEF_F32_128)
58
59extern uint32_t rearranged_twiddle_tab_stride1_arr_64_f32[3];
60extern uint32_t rearranged_twiddle_tab_stride2_arr_64_f32[3];
61extern uint32_t rearranged_twiddle_tab_stride3_arr_64_f32[3];
62extern float32_t rearranged_twiddle_stride1_64_f32[40];
63extern float32_t rearranged_twiddle_stride2_64_f32[40];
64extern float32_t rearranged_twiddle_stride3_64_f32[40];
65#endif
66
67#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_256) || defined(ARM_TABLE_TWIDDLECOEF_F32_512)
68
69extern uint32_t rearranged_twiddle_tab_stride1_arr_256_f32[4];
70extern uint32_t rearranged_twiddle_tab_stride2_arr_256_f32[4];
71extern uint32_t rearranged_twiddle_tab_stride3_arr_256_f32[4];
72extern float32_t rearranged_twiddle_stride1_256_f32[168];
73extern float32_t rearranged_twiddle_stride2_256_f32[168];
74extern float32_t rearranged_twiddle_stride3_256_f32[168];
75#endif
76
77#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_1024) || defined(ARM_TABLE_TWIDDLECOEF_F32_2048)
78
79extern uint32_t rearranged_twiddle_tab_stride1_arr_1024_f32[5];
80extern uint32_t rearranged_twiddle_tab_stride2_arr_1024_f32[5];
81extern uint32_t rearranged_twiddle_tab_stride3_arr_1024_f32[5];
82extern float32_t rearranged_twiddle_stride1_1024_f32[680];
83extern float32_t rearranged_twiddle_stride2_1024_f32[680];
84extern float32_t rearranged_twiddle_stride3_1024_f32[680];
85#endif
86
87#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F32_4096) || defined(ARM_TABLE_TWIDDLECOEF_F32_8192)
88
89extern uint32_t rearranged_twiddle_tab_stride1_arr_4096_f32[6];
90extern uint32_t rearranged_twiddle_tab_stride2_arr_4096_f32[6];
91extern uint32_t rearranged_twiddle_tab_stride3_arr_4096_f32[6];
92extern float32_t rearranged_twiddle_stride1_4096_f32[2728];
93extern float32_t rearranged_twiddle_stride2_4096_f32[2728];
94extern float32_t rearranged_twiddle_stride3_4096_f32[2728];
95#endif
96
97
98#endif /* !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES) */
99
100#endif /* defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) */
101
102
103
104#if defined(ARM_MATH_MVEI) && !defined(ARM_MATH_AUTOVECTORIZE)
105
106#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES)
107
108#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q31_16) || defined(ARM_TABLE_TWIDDLECOEF_Q31_32)
109
110extern uint32_t rearranged_twiddle_tab_stride1_arr_16_q31[2];
111extern uint32_t rearranged_twiddle_tab_stride2_arr_16_q31[2];
112extern uint32_t rearranged_twiddle_tab_stride3_arr_16_q31[2];
113extern q31_t rearranged_twiddle_stride1_16_q31[8];
114extern q31_t rearranged_twiddle_stride2_16_q31[8];
115extern q31_t rearranged_twiddle_stride3_16_q31[8];
116#endif
117
118#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q31_64) || defined(ARM_TABLE_TWIDDLECOEF_Q31_128)
119
120extern uint32_t rearranged_twiddle_tab_stride1_arr_64_q31[3];
121extern uint32_t rearranged_twiddle_tab_stride2_arr_64_q31[3];
122extern uint32_t rearranged_twiddle_tab_stride3_arr_64_q31[3];
123extern q31_t rearranged_twiddle_stride1_64_q31[40];
124extern q31_t rearranged_twiddle_stride2_64_q31[40];
125extern q31_t rearranged_twiddle_stride3_64_q31[40];
126#endif
127
128#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q31_256) || defined(ARM_TABLE_TWIDDLECOEF_Q31_512)
129
130extern uint32_t rearranged_twiddle_tab_stride1_arr_256_q31[4];
131extern uint32_t rearranged_twiddle_tab_stride2_arr_256_q31[4];
132extern uint32_t rearranged_twiddle_tab_stride3_arr_256_q31[4];
133extern q31_t rearranged_twiddle_stride1_256_q31[168];
134extern q31_t rearranged_twiddle_stride2_256_q31[168];
135extern q31_t rearranged_twiddle_stride3_256_q31[168];
136#endif
137
138#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q31_1024) || defined(ARM_TABLE_TWIDDLECOEF_Q31_2048)
139
140extern uint32_t rearranged_twiddle_tab_stride1_arr_1024_q31[5];
141extern uint32_t rearranged_twiddle_tab_stride2_arr_1024_q31[5];
142extern uint32_t rearranged_twiddle_tab_stride3_arr_1024_q31[5];
143extern q31_t rearranged_twiddle_stride1_1024_q31[680];
144extern q31_t rearranged_twiddle_stride2_1024_q31[680];
145extern q31_t rearranged_twiddle_stride3_1024_q31[680];
146#endif
147
148#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q31_4096) || defined(ARM_TABLE_TWIDDLECOEF_Q31_8192)
149
150extern uint32_t rearranged_twiddle_tab_stride1_arr_4096_q31[6];
151extern uint32_t rearranged_twiddle_tab_stride2_arr_4096_q31[6];
152extern uint32_t rearranged_twiddle_tab_stride3_arr_4096_q31[6];
153extern q31_t rearranged_twiddle_stride1_4096_q31[2728];
154extern q31_t rearranged_twiddle_stride2_4096_q31[2728];
155extern q31_t rearranged_twiddle_stride3_4096_q31[2728];
156#endif
157
158
159#endif /* !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES) */
160
161#endif /* defined(ARM_MATH_MVEI) */
162
163
164
165#if defined(ARM_MATH_MVEI) && !defined(ARM_MATH_AUTOVECTORIZE)
166
167#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES)
168
169#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q15_16) || defined(ARM_TABLE_TWIDDLECOEF_Q15_32)
170
171extern uint32_t rearranged_twiddle_tab_stride1_arr_16_q15[2];
172extern uint32_t rearranged_twiddle_tab_stride2_arr_16_q15[2];
173extern uint32_t rearranged_twiddle_tab_stride3_arr_16_q15[2];
174extern q15_t rearranged_twiddle_stride1_16_q15[8];
175extern q15_t rearranged_twiddle_stride2_16_q15[8];
176extern q15_t rearranged_twiddle_stride3_16_q15[8];
177#endif
178
179#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q15_64) || defined(ARM_TABLE_TWIDDLECOEF_Q15_128)
180
181extern uint32_t rearranged_twiddle_tab_stride1_arr_64_q15[3];
182extern uint32_t rearranged_twiddle_tab_stride2_arr_64_q15[3];
183extern uint32_t rearranged_twiddle_tab_stride3_arr_64_q15[3];
184extern q15_t rearranged_twiddle_stride1_64_q15[40];
185extern q15_t rearranged_twiddle_stride2_64_q15[40];
186extern q15_t rearranged_twiddle_stride3_64_q15[40];
187#endif
188
189#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q15_256) || defined(ARM_TABLE_TWIDDLECOEF_Q15_512)
190
191extern uint32_t rearranged_twiddle_tab_stride1_arr_256_q15[4];
192extern uint32_t rearranged_twiddle_tab_stride2_arr_256_q15[4];
193extern uint32_t rearranged_twiddle_tab_stride3_arr_256_q15[4];
194extern q15_t rearranged_twiddle_stride1_256_q15[168];
195extern q15_t rearranged_twiddle_stride2_256_q15[168];
196extern q15_t rearranged_twiddle_stride3_256_q15[168];
197#endif
198
199#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q15_1024) || defined(ARM_TABLE_TWIDDLECOEF_Q15_2048)
200
201extern uint32_t rearranged_twiddle_tab_stride1_arr_1024_q15[5];
202extern uint32_t rearranged_twiddle_tab_stride2_arr_1024_q15[5];
203extern uint32_t rearranged_twiddle_tab_stride3_arr_1024_q15[5];
204extern q15_t rearranged_twiddle_stride1_1024_q15[680];
205extern q15_t rearranged_twiddle_stride2_1024_q15[680];
206extern q15_t rearranged_twiddle_stride3_1024_q15[680];
207#endif
208
209#if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_Q15_4096) || defined(ARM_TABLE_TWIDDLECOEF_Q15_8192)
210
211extern uint32_t rearranged_twiddle_tab_stride1_arr_4096_q15[6];
212extern uint32_t rearranged_twiddle_tab_stride2_arr_4096_q15[6];
213extern uint32_t rearranged_twiddle_tab_stride3_arr_4096_q15[6];
214extern q15_t rearranged_twiddle_stride1_4096_q15[2728];
215extern q15_t rearranged_twiddle_stride2_4096_q15[2728];
216extern q15_t rearranged_twiddle_stride3_4096_q15[2728];
217#endif
218
219
220#endif /* !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_FFT_ALLOW_TABLES) */
221
222#endif /* defined(ARM_MATH_MVEI) */
223
224
225
226#ifdef __cplusplus
227}
228#endif
229
230#endif /*_ARM_MVE_TABLES_H*/
231
Note: See TracBrowser for help on using the repository browser.