Daniel Konegen / MNIST_example

Dependencies:   mbed-os

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers arm_common_tables.h Source File

arm_common_tables.h

00001 /* ----------------------------------------------------------------------
00002  * Project:      CMSIS DSP Library
00003  * Title:        arm_common_tables.h
00004  * Description:  Extern declaration for common tables
00005  *
00006  * $Date:        27. January 2017
00007  * $Revision:    V.1.5.1
00008  *
00009  * Target Processor: Cortex-M cores
00010  * -------------------------------------------------------------------- */
00011 /*
00012  * Copyright (C) 2010-2017 ARM Limited or its affiliates. All rights reserved.
00013  *
00014  * SPDX-License-Identifier: Apache-2.0
00015  *
00016  * Licensed under the Apache License, Version 2.0 (the License); you may
00017  * not use this file except in compliance with the License.
00018  * You may obtain a copy of the License at
00019  *
00020  * www.apache.org/licenses/LICENSE-2.0
00021  *
00022  * Unless required by applicable law or agreed to in writing, software
00023  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
00024  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00025  * See the License for the specific language governing permissions and
00026  * limitations under the License.
00027  */
00028 
00029 #ifndef _ARM_COMMON_TABLES_H
00030 #define _ARM_COMMON_TABLES_H
00031 
00032 #include "arm_math.h"
00033 
00034 extern const uint16_t armBitRevTable [1024];
00035 extern const q15_t armRecipTableQ15[64];
00036 extern const q31_t armRecipTableQ31[64];
00037 extern const float32_t twiddleCoef_16 [32];
00038 extern const float32_t twiddleCoef_32 [64];
00039 extern const float32_t twiddleCoef_64 [128];
00040 extern const float32_t twiddleCoef_128 [256];
00041 extern const float32_t twiddleCoef_256 [512];
00042 extern const float32_t twiddleCoef_512 [1024];
00043 extern const float32_t twiddleCoef_1024 [2048];
00044 extern const float32_t twiddleCoef_2048 [4096];
00045 extern const float32_t twiddleCoef_4096 [8192];
00046 #define twiddleCoef twiddleCoef_4096
00047 extern const q31_t twiddleCoef_16_q31 [24];
00048 extern const q31_t twiddleCoef_32_q31 [48];
00049 extern const q31_t twiddleCoef_64_q31 [96];
00050 extern const q31_t twiddleCoef_128_q31 [192];
00051 extern const q31_t twiddleCoef_256_q31 [384];
00052 extern const q31_t twiddleCoef_512_q31 [768];
00053 extern const q31_t twiddleCoef_1024_q31 [1536];
00054 extern const q31_t twiddleCoef_2048_q31 [3072];
00055 extern const q31_t twiddleCoef_4096_q31 [6144];
00056 extern const q15_t twiddleCoef_16_q15 [24];
00057 extern const q15_t twiddleCoef_32_q15 [48];
00058 extern const q15_t twiddleCoef_64_q15 [96];
00059 extern const q15_t twiddleCoef_128_q15 [192];
00060 extern const q15_t twiddleCoef_256_q15 [384];
00061 extern const q15_t twiddleCoef_512_q15 [768];
00062 extern const q15_t twiddleCoef_1024_q15 [1536];
00063 extern const q15_t twiddleCoef_2048_q15 [3072];
00064 extern const q15_t twiddleCoef_4096_q15 [6144];
00065 extern const float32_t twiddleCoef_rfft_32[32];
00066 extern const float32_t twiddleCoef_rfft_64[64];
00067 extern const float32_t twiddleCoef_rfft_128[128];
00068 extern const float32_t twiddleCoef_rfft_256[256];
00069 extern const float32_t twiddleCoef_rfft_512[512];
00070 extern const float32_t twiddleCoef_rfft_1024[1024];
00071 extern const float32_t twiddleCoef_rfft_2048[2048];
00072 extern const float32_t twiddleCoef_rfft_4096[4096];
00073 
00074 /* floating-point bit reversal tables */
00075 #define ARMBITREVINDEXTABLE_16_TABLE_LENGTH ((uint16_t)20)
00076 #define ARMBITREVINDEXTABLE_32_TABLE_LENGTH ((uint16_t)48)
00077 #define ARMBITREVINDEXTABLE_64_TABLE_LENGTH ((uint16_t)56)
00078 #define ARMBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208)
00079 #define ARMBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440)
00080 #define ARMBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448)
00081 #define ARMBITREVINDEXTABLE_1024_TABLE_LENGTH ((uint16_t)1800)
00082 #define ARMBITREVINDEXTABLE_2048_TABLE_LENGTH ((uint16_t)3808)
00083 #define ARMBITREVINDEXTABLE_4096_TABLE_LENGTH ((uint16_t)4032)
00084 
00085 extern const uint16_t armBitRevIndexTable16[ARMBITREVINDEXTABLE_16_TABLE_LENGTH];
00086 extern const uint16_t armBitRevIndexTable32[ARMBITREVINDEXTABLE_32_TABLE_LENGTH];
00087 extern const uint16_t armBitRevIndexTable64[ARMBITREVINDEXTABLE_64_TABLE_LENGTH];
00088 extern const uint16_t armBitRevIndexTable128[ARMBITREVINDEXTABLE_128_TABLE_LENGTH];
00089 extern const uint16_t armBitRevIndexTable256[ARMBITREVINDEXTABLE_256_TABLE_LENGTH];
00090 extern const uint16_t armBitRevIndexTable512[ARMBITREVINDEXTABLE_512_TABLE_LENGTH];
00091 extern const uint16_t armBitRevIndexTable1024[ARMBITREVINDEXTABLE_1024_TABLE_LENGTH];
00092 extern const uint16_t armBitRevIndexTable2048[ARMBITREVINDEXTABLE_2048_TABLE_LENGTH];
00093 extern const uint16_t armBitRevIndexTable4096[ARMBITREVINDEXTABLE_4096_TABLE_LENGTH];
00094 
00095 /* fixed-point bit reversal tables */
00096 #define ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH ((uint16_t)12)
00097 #define ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH ((uint16_t)24)
00098 #define ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH ((uint16_t)56)
00099 #define ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH ((uint16_t)112)
00100 #define ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH ((uint16_t)240)
00101 #define ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH ((uint16_t)480)
00102 #define ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH ((uint16_t)992)
00103 #define ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH ((uint16_t)1984)
00104 #define ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH ((uint16_t)4032)
00105 
00106 extern const uint16_t armBitRevIndexTable_fixed_16[ARMBITREVINDEXTABLE_FIXED_16_TABLE_LENGTH];
00107 extern const uint16_t armBitRevIndexTable_fixed_32[ARMBITREVINDEXTABLE_FIXED_32_TABLE_LENGTH];
00108 extern const uint16_t armBitRevIndexTable_fixed_64[ARMBITREVINDEXTABLE_FIXED_64_TABLE_LENGTH];
00109 extern const uint16_t armBitRevIndexTable_fixed_128[ARMBITREVINDEXTABLE_FIXED_128_TABLE_LENGTH];
00110 extern const uint16_t armBitRevIndexTable_fixed_256[ARMBITREVINDEXTABLE_FIXED_256_TABLE_LENGTH];
00111 extern const uint16_t armBitRevIndexTable_fixed_512[ARMBITREVINDEXTABLE_FIXED_512_TABLE_LENGTH];
00112 extern const uint16_t armBitRevIndexTable_fixed_1024[ARMBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH];
00113 extern const uint16_t armBitRevIndexTable_fixed_2048[ARMBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH];
00114 extern const uint16_t armBitRevIndexTable_fixed_4096[ARMBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH];
00115 
00116 /* Tables for Fast Math Sine and Cosine */
00117 extern const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1];
00118 extern const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1];
00119 extern const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1];
00120 
00121 #endif /*  ARM_COMMON_TABLES_H */