1 /* ----------------------------------------------------------------------
2  * Project:      CMSIS DSP Library
3  * Title:        arm_mve_tables_f16.h
4  * Description:  common tables like fft twiddle factors, Bitreverse, reciprocal etc
5  *               used for MVE implementation only
6  *
7  * @version  V1.9.0
8  * @date     23 April 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_F16_H
31  #define _ARM_MVE_TABLES_F16_H
32 
33 #include "arm_math_types_f16.h"
34 
35 #ifdef   __cplusplus
36 extern "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_F16_16) || defined(ARM_TABLE_TWIDDLECOEF_F16_32)
48 
49 extern uint32_t rearranged_twiddle_tab_stride1_arr_16_f16[2];
50 extern uint32_t rearranged_twiddle_tab_stride2_arr_16_f16[2];
51 extern uint32_t rearranged_twiddle_tab_stride3_arr_16_f16[2];
52 extern float16_t rearranged_twiddle_stride1_16_f16[8];
53 extern float16_t rearranged_twiddle_stride2_16_f16[8];
54 extern float16_t rearranged_twiddle_stride3_16_f16[8];
55 #endif
56 
57 #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F16_64) || defined(ARM_TABLE_TWIDDLECOEF_F16_128)
58 
59 extern uint32_t rearranged_twiddle_tab_stride1_arr_64_f16[3];
60 extern uint32_t rearranged_twiddle_tab_stride2_arr_64_f16[3];
61 extern uint32_t rearranged_twiddle_tab_stride3_arr_64_f16[3];
62 extern float16_t rearranged_twiddle_stride1_64_f16[40];
63 extern float16_t rearranged_twiddle_stride2_64_f16[40];
64 extern float16_t rearranged_twiddle_stride3_64_f16[40];
65 #endif
66 
67 #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F16_256) || defined(ARM_TABLE_TWIDDLECOEF_F16_512)
68 
69 extern uint32_t rearranged_twiddle_tab_stride1_arr_256_f16[4];
70 extern uint32_t rearranged_twiddle_tab_stride2_arr_256_f16[4];
71 extern uint32_t rearranged_twiddle_tab_stride3_arr_256_f16[4];
72 extern float16_t rearranged_twiddle_stride1_256_f16[168];
73 extern float16_t rearranged_twiddle_stride2_256_f16[168];
74 extern float16_t rearranged_twiddle_stride3_256_f16[168];
75 #endif
76 
77 #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F16_1024) || defined(ARM_TABLE_TWIDDLECOEF_F16_2048)
78 
79 extern uint32_t rearranged_twiddle_tab_stride1_arr_1024_f16[5];
80 extern uint32_t rearranged_twiddle_tab_stride2_arr_1024_f16[5];
81 extern uint32_t rearranged_twiddle_tab_stride3_arr_1024_f16[5];
82 extern float16_t rearranged_twiddle_stride1_1024_f16[680];
83 extern float16_t rearranged_twiddle_stride2_1024_f16[680];
84 extern float16_t rearranged_twiddle_stride3_1024_f16[680];
85 #endif
86 
87 #if !defined(ARM_DSP_CONFIG_TABLES) || defined(ARM_ALL_FFT_TABLES) || defined(ARM_TABLE_TWIDDLECOEF_F16_4096) || defined(ARM_TABLE_TWIDDLECOEF_F16_8192)
88 
89 extern uint32_t rearranged_twiddle_tab_stride1_arr_4096_f16[6];
90 extern uint32_t rearranged_twiddle_tab_stride2_arr_4096_f16[6];
91 extern uint32_t rearranged_twiddle_tab_stride3_arr_4096_f16[6];
92 extern float16_t rearranged_twiddle_stride1_4096_f16[2728];
93 extern float16_t rearranged_twiddle_stride2_4096_f16[2728];
94 extern float16_t rearranged_twiddle_stride3_4096_f16[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 #ifdef   __cplusplus
105 }
106 #endif
107 
108 #endif /*_ARM_MVE_TABLES_F16_H*/
109 
110