1 /****************************************************************************** 2 * @file csky_vdsp2_const_structs.h 3 * @brief This file has constant structs that are initialized for 4 * user convenience. For example, some can be given as 5 * arguments to the csky_vdsp2_cfft_f32() function. 6 * @version V1.0 7 * @date 20. Dec 2016 8 ******************************************************************************/ 9 /* --------------------------------------------------------------------------- 10 * Copyright (C) 2016 CSKY Limited. All rights reserved. 11 * 12 * Redistribution and use of this software in source and binary forms, 13 * with or without modification, are permitted provided that the following 14 * conditions are met: 15 * * Redistributions of source code must retain the above copyright notice, 16 * this list of conditions and the following disclaimer. 17 * * Redistributions in binary form must reproduce the above copyright notice, 18 * this list of conditions and the following disclaimer in the documentation 19 * and/or other materials provided with the distribution. 20 * * Neither the name of CSKY Ltd. nor the names of CSKY's contributors may 21 * be used to endorse or promote products derived from this software without 22 * specific prior written permission of CSKY Ltd. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 26 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 27 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 28 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 29 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 34 * THE POSSIBILITY OF SUCH DAMAGE. 35 * -------------------------------------------------------------------------- */ 36 37 #ifndef _CSKY_CONST_STRUCTS_H 38 #define _CSKY_CONST_STRUCTS_H 39 40 #include "csky_vdsp2_math.h" 41 #include "csky_common_tables.h" 42 43 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_sR_f32_len16; 44 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_sR_f32_len32; 45 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_sR_f32_len64; 46 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_sR_f32_len128; 47 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_sR_f32_len256; 48 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_sR_f32_len512; 49 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_sR_f32_len1024; 50 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_sR_f32_len2048; 51 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_sR_f32_len4096; 52 53 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_sR_f32_len16; 54 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_sR_f32_len32; 55 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_sR_f32_len64; 56 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_sR_f32_len128; 57 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_sR_f32_len256; 58 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_sR_f32_len512; 59 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_sR_f32_len1024; 60 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_sR_f32_len2048; 61 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_sR_f32_len4096; 62 63 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_fast_sR_f32_len16; 64 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_fast_sR_f32_len32; 65 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_fast_sR_f32_len64; 66 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_fast_sR_f32_len128; 67 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_fast_sR_f32_len256; 68 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_fast_sR_f32_len512; 69 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_fast_sR_f32_len1024; 70 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_fast_sR_f32_len2048; 71 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix4_fast_sR_f32_len4096; 72 73 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix2_sR_f32_len16; 74 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix2_sR_f32_len32; 75 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix2_sR_f32_len64; 76 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix2_sR_f32_len128; 77 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix2_sR_f32_len256; 78 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix2_sR_f32_len512; 79 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix2_sR_f32_len1024; 80 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix2_sR_f32_len2048; 81 extern const csky_vdsp2_cfft_instance_f32 csky_vdsp2_cfft_radix2_sR_f32_len4096; 82 83 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_sR_q31_len16; 84 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_sR_q31_len32; 85 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_sR_q31_len64; 86 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_sR_q31_len128; 87 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_sR_q31_len256; 88 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_sR_q31_len512; 89 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_sR_q31_len1024; 90 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_sR_q31_len2048; 91 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_sR_q31_len4096; 92 93 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_sR_q15_len16; 94 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_sR_q15_len32; 95 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_sR_q15_len64; 96 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_sR_q15_len128; 97 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_sR_q15_len256; 98 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_sR_q15_len512; 99 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_sR_q15_len1024; 100 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_sR_q15_len2048; 101 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_sR_q15_len4096; 102 103 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_fast_sR_q15_len16; 104 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_fast_sR_q15_len32; 105 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_fast_sR_q15_len64; 106 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_fast_sR_q15_len128; 107 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_fast_sR_q15_len256; 108 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_fast_sR_q15_len512; 109 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_fast_sR_q15_len1024; 110 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_fast_sR_q15_len2048; 111 extern const csky_vdsp2_cfft_instance_q15 csky_vdsp2_cfft_fast_sR_q15_len4096; 112 113 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_fast_sR_q31_len16; 114 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_fast_sR_q31_len32; 115 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_fast_sR_q31_len64; 116 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_fast_sR_q31_len128; 117 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_fast_sR_q31_len256; 118 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_fast_sR_q31_len512; 119 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_fast_sR_q31_len1024; 120 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_fast_sR_q31_len2048; 121 extern const csky_vdsp2_cfft_instance_q31 csky_vdsp2_cfft_fast_sR_q31_len4096; 122 123 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_rfft_sR_q15_len32; 124 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_rfft_sR_q15_len64; 125 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_rfft_sR_q15_len128; 126 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_rfft_sR_q15_len256; 127 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_rfft_sR_q15_len512; 128 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_rfft_sR_q15_len1024; 129 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_rfft_sR_q15_len2048; 130 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_rfft_sR_q15_len4096; 131 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_rfft_sR_q15_len8192; 132 133 134 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_inv_rfft_sR_q15_len32; 135 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_inv_rfft_sR_q15_len64; 136 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_inv_rfft_sR_q15_len128; 137 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_inv_rfft_sR_q15_len256; 138 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_inv_rfft_sR_q15_len512; 139 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_inv_rfft_sR_q15_len1024; 140 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_inv_rfft_sR_q15_len2048; 141 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_inv_rfft_sR_q15_len4096; 142 extern csky_vdsp2_rfft_instance_q15 csky_vdsp2_inv_rfft_sR_q15_len8192; 143 144 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_rfft_fast_sR_q15_len32; 145 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_rfft_fast_sR_q15_len64; 146 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_rfft_fast_sR_q15_len128; 147 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_rfft_fast_sR_q15_len256; 148 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_rfft_fast_sR_q15_len512; 149 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_rfft_fast_sR_q15_len1024; 150 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_rfft_fast_sR_q15_len2048; 151 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_rfft_fast_sR_q15_len4096; 152 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_rfft_fast_sR_q15_len8192; 153 154 155 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_inv_rfft_fast_sR_q15_len32; 156 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_inv_rfft_fast_sR_q15_len64; 157 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_inv_rfft_fast_sR_q15_len128; 158 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_inv_rfft_fast_sR_q15_len256; 159 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_inv_rfft_fast_sR_q15_len512; 160 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_inv_rfft_fast_sR_q15_len1024; 161 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_inv_rfft_fast_sR_q15_len2048; 162 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_inv_rfft_fast_sR_q15_len4096; 163 extern csky_vdsp2_rfft_fast_instance_q15 csky_vdsp2_inv_rfft_fast_sR_q15_len8192; 164 165 166 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_rfft_sR_q31_len32; 167 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_rfft_sR_q31_len64; 168 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_rfft_sR_q31_len128; 169 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_rfft_sR_q31_len256; 170 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_rfft_sR_q31_len512; 171 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_rfft_sR_q31_len1024; 172 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_rfft_sR_q31_len2048; 173 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_rfft_sR_q31_len4096; 174 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_rfft_sR_q31_len8192; 175 176 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_inv_rfft_sR_q31_len32; 177 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_inv_rfft_sR_q31_len64; 178 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_inv_rfft_sR_q31_len128; 179 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_inv_rfft_sR_q31_len256; 180 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_inv_rfft_sR_q31_len512; 181 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_inv_rfft_sR_q31_len1024; 182 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_inv_rfft_sR_q31_len2048; 183 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_inv_rfft_sR_q31_len4096; 184 extern csky_vdsp2_rfft_instance_q31 csky_vdsp2_inv_rfft_sR_q31_len8192; 185 186 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_rfft_fast_sR_q31_len32; 187 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_rfft_fast_sR_q31_len64; 188 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_rfft_fast_sR_q31_len128; 189 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_rfft_fast_sR_q31_len256; 190 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_rfft_fast_sR_q31_len512; 191 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_rfft_fast_sR_q31_len1024; 192 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_rfft_fast_sR_q31_len2048; 193 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_rfft_fast_sR_q31_len4096; 194 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_rfft_fast_sR_q31_len8192; 195 196 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_inv_rfft_fast_sR_q31_len32; 197 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_inv_rfft_fast_sR_q31_len64; 198 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_inv_rfft_fast_sR_q31_len128; 199 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_inv_rfft_fast_sR_q31_len256; 200 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_inv_rfft_fast_sR_q31_len512; 201 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_inv_rfft_fast_sR_q31_len1024; 202 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_inv_rfft_fast_sR_q31_len2048; 203 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_inv_rfft_fast_sR_q31_len4096; 204 extern csky_vdsp2_rfft_fast_instance_q31 csky_vdsp2_inv_rfft_fast_sR_q31_len8192; 205 206 207 extern csky_vdsp2_rfft_fast_instance_f32 csky_vdsp2_rfft_sR_f32_len32; 208 extern csky_vdsp2_rfft_fast_instance_f32 csky_vdsp2_rfft_sR_f32_len64; 209 extern csky_vdsp2_rfft_fast_instance_f32 csky_vdsp2_rfft_sR_f32_len128; 210 extern csky_vdsp2_rfft_fast_instance_f32 csky_vdsp2_rfft_sR_f32_len256; 211 extern csky_vdsp2_rfft_fast_instance_f32 csky_vdsp2_rfft_sR_f32_len512; 212 extern csky_vdsp2_rfft_fast_instance_f32 csky_vdsp2_rfft_sR_f32_len1024; 213 extern csky_vdsp2_rfft_fast_instance_f32 csky_vdsp2_rfft_sR_f32_len2048; 214 extern csky_vdsp2_rfft_fast_instance_f32 csky_vdsp2_rfft_sR_f32_len4096; 215 extern csky_vdsp2_rfft_fast_instance_f32 csky_vdsp2_rfft_sR_f32_len8192; 216 217 extern csky_vdsp2_dct4_instance_q15 csky_vdsp2_dct4_sR_q15_len128; 218 extern csky_vdsp2_dct4_instance_q15 csky_vdsp2_dct4_sR_q15_len512; 219 extern csky_vdsp2_dct4_instance_q15 csky_vdsp2_dct4_sR_q15_len2048; 220 extern csky_vdsp2_dct4_instance_q15 csky_vdsp2_dct4_sR_q15_len8192; 221 222 extern csky_vdsp2_dct4_instance_q31 csky_vdsp2_dct4_sR_q31_len128; 223 extern csky_vdsp2_dct4_instance_q31 csky_vdsp2_dct4_sR_q31_len512; 224 extern csky_vdsp2_dct4_instance_q31 csky_vdsp2_dct4_sR_q31_len2048; 225 extern csky_vdsp2_dct4_instance_q31 csky_vdsp2_dct4_sR_q31_len8192; 226 227 extern csky_vdsp2_dct4_fast_instance_q15 csky_vdsp2_dct4_fast_sR_q15_len128; 228 extern csky_vdsp2_dct4_fast_instance_q15 csky_vdsp2_dct4_fast_sR_q15_len512; 229 extern csky_vdsp2_dct4_fast_instance_q15 csky_vdsp2_dct4_fast_sR_q15_len2048; 230 extern csky_vdsp2_dct4_fast_instance_q15 csky_vdsp2_dct4_fast_sR_q15_len8192; 231 232 extern csky_vdsp2_dct4_fast_instance_q31 csky_vdsp2_dct4_fast_sR_q31_len128; 233 extern csky_vdsp2_dct4_fast_instance_q31 csky_vdsp2_dct4_fast_sR_q31_len512; 234 extern csky_vdsp2_dct4_fast_instance_q31 csky_vdsp2_dct4_fast_sR_q31_len2048; 235 extern csky_vdsp2_dct4_fast_instance_q31 csky_vdsp2_dct4_fast_sR_q31_len8192; 236 237 extern csky_vdsp2_dct4_instance_f32 csky_vdsp2_dct4_sR_f32_len128; 238 extern csky_vdsp2_dct4_instance_f32 csky_vdsp2_dct4_sR_f32_len512; 239 extern csky_vdsp2_dct4_instance_f32 csky_vdsp2_dct4_sR_f32_len2048; 240 extern csky_vdsp2_dct4_instance_f32 csky_vdsp2_dct4_sR_f32_len8192; 241 #endif 242