ARM GAS /tmp/ccRzkJVN.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 23, 1 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 2 9 .eabi_attribute 34, 1 10 .eabi_attribute 18, 4 11 .file "DistanceFunctions.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.arm_boolean_distance_TT_TF_FT,"ax",%progbits 16 .align 1 17 .p2align 2,,3 18 .global arm_boolean_distance_TT_TF_FT 19 .syntax unified 20 .thumb 21 .thumb_func 22 .fpu fpv4-sp-d16 24 arm_boolean_distance_TT_TF_FT: 25 .LFB148: 26 .file 1 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Title: arm_boolean_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Description: Templates for boolean distances 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** /** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @defgroup DISTANCEF Distance Functions ARM GAS /tmp/ccRzkJVN.s page 2 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Computes Distances between vectors. 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Distance functions are useful in a lot of algorithms. 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** */ 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** /** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @addtogroup DISTANCEF 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @{ 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** */ 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** /** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @brief Elements of boolean distances 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * Different values which are used to compute boolean distances 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @param[in] pA First vector of packed booleans 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @param[in] pB Second vector of packed booleans 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @param[in] numberOfBools Number of booleans 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @param[out] cTT cTT value 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @param[out] cTF cTF value 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @param[out] cFT cFT value 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * @return None 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** * 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** */ 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #define _FUNC(A,B) A##B 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #define FUNC(EXT) _FUNC(arm_boolean_distance, EXT) 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #if defined(ARM_MATH_MVEI) 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #include "arm_common_tables.h" 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** void FUNC(EXT)(const uint32_t *pA 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , const uint32_t *pB 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t numberOfBools 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cTT 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cFF 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cTF 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cFT 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ) 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _ctt=0; ARM GAS /tmp/ccRzkJVN.s page 3 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _cff=0; 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _ctf=0; 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _cft=0; 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t a, b, ba, bb; 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** int shift; 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** const uint8_t *pA8 = (const uint8_t *) pA; 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** const uint8_t *pB8 = (const uint8_t *) pB; 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** /* handle vector blocks */ 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t blkCnt = numberOfBools / 128; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while (blkCnt > 0U) { 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint8x16_t vecA = vld1q((const uint8_t *) pA8); 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint8x16_t vecB = vld1q((const uint8_t *) pB8); 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint8x16_t vecTT = vecA & vecB; 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** vecTT = vldrbq_gather_offset_u8(hwLUT, vecTT); 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctt += vaddvq(vecTT); 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint8x16_t vecFF = vmvnq(vecA) & vmvnq(vecB); 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** vecFF = vldrbq_gather_offset_u8(hwLUT, vecFF); 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cff += vaddvq(vecFF); 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint8x16_t vecTF = vecA & vmvnq(vecB); 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** vecTF = vldrbq_gather_offset_u8(hwLUT, vecTF); 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctf += vaddvq(vecTF); 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint8x16_t vecFT = vmvnq(vecA) & vecB; 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** vecFT = vldrbq_gather_offset_u8(hwLUT, vecFT); 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cft += vaddvq(vecFT); 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** pA8 += 16; 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** pB8 += 16; 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** blkCnt--; 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** pA = (const uint32_t *)pA8; 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** pB = (const uint32_t *)pB8; 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** blkCnt = numberOfBools & 0x7F; 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(blkCnt >= 32) 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { ARM GAS /tmp/ccRzkJVN.s page 4 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = *pA++; 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift = 0; 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(shift < 32) 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ba = a & 1; 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctt += (ba && bb); 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cff += ((1 ^ ba) && (1 ^ bb)); 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctf += (ba && (1 ^ bb)); 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cft += ((1 ^ ba) && bb); 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift ++; 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** blkCnt -= 32; 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = *pA++; 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> (32 - blkCnt); 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> (32 - blkCnt); 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(blkCnt > 0) 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ba = a & 1; 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctt += (ba && bb); 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cff += ((1 ^ ba) && (1 ^ bb)); 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctf += (ba && (1 ^ bb)); 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cft += ((1 ^ ba) && bb); 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** blkCnt --; 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT ARM GAS /tmp/ccRzkJVN.s page 5 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cTT = _ctt; 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cFF = _cff; 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cTF = _ctf; 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cFT = _cft; 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #else 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #if defined(ARM_MATH_NEON) 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** void FUNC(EXT)(const uint32_t *pA 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , const uint32_t *pB 223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t numberOfBools 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cTT 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cFF 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cTF 232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cFT 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ) 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _ctt=0; 240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _cff=0; 243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _ctf=0; 246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _cft=0; 249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t nbBoolBlock; 251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t a,b,ba,bb; 252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** int shift; 253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32x4_t aV, bV; 254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32x4_t cttV; 256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32x4_t cffV; 259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF ARM GAS /tmp/ccRzkJVN.s page 6 261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32x4_t ctfV; 262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32x4_t cftV; 265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint8x16_t tmp; 267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint16x8_t tmp2; 268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32x4_t tmp3; 269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint64x2_t tmp4; 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint64x2_t tmp4tt; 272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint64x2_t tmp4ff; 275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint64x2_t tmp4tf; 278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint64x2_t tmp4ft; 281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4tt = vdupq_n_u64(0); 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4ff = vdupq_n_u64(0); 288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4tf = vdupq_n_u64(0); 291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4ft = vdupq_n_u64(0); 294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** nbBoolBlock = numberOfBools >> 7; 297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(nbBoolBlock > 0) 298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** aV = vld1q_u32(pA); 300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bV = vld1q_u32(pB); 301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** pA += 4; 302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** pB += 4; 303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** cttV = vandq_u32(aV,bV); 306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** cffV = vandq_u32(vmvnq_u32(aV),vmvnq_u32(bV)); 309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ctfV = vandq_u32(aV,vmvnq_u32(bV)); 312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** cftV = vandq_u32(vmvnq_u32(aV),bV); 315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT ARM GAS /tmp/ccRzkJVN.s page 7 318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp = vcntq_u8(vreinterpretq_u8_u32(cttV)); 319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp2 = vpaddlq_u8(tmp); 320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp3 = vpaddlq_u16(tmp2); 321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4 = vpaddlq_u32(tmp3); 322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4tt = vaddq_u64(tmp4tt, tmp4); 323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp = vcntq_u8(vreinterpretq_u8_u32(cffV)); 327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp2 = vpaddlq_u8(tmp); 328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp3 = vpaddlq_u16(tmp2); 329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4 = vpaddlq_u32(tmp3); 330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4ff = vaddq_u64(tmp4ff, tmp4); 331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp = vcntq_u8(vreinterpretq_u8_u32(ctfV)); 335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp2 = vpaddlq_u8(tmp); 336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp3 = vpaddlq_u16(tmp2); 337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4 = vpaddlq_u32(tmp3); 338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4tf = vaddq_u64(tmp4tf, tmp4); 339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp = vcntq_u8(vreinterpretq_u8_u32(cftV)); 343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp2 = vpaddlq_u8(tmp); 344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp3 = vpaddlq_u16(tmp2); 345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4 = vpaddlq_u32(tmp3); 346:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** tmp4ft = vaddq_u64(tmp4ft, tmp4); 347:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 348:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 349:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 350:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** nbBoolBlock --; 351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 352:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 353:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 354:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctt += vgetq_lane_u64(tmp4tt, 0) + vgetq_lane_u64(tmp4tt, 1); 355:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 356:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 357:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cff +=vgetq_lane_u64(tmp4ff, 0) + vgetq_lane_u64(tmp4ff, 1); 358:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 359:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 360:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctf += vgetq_lane_u64(tmp4tf, 0) + vgetq_lane_u64(tmp4tf, 1); 361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 362:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 363:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cft += vgetq_lane_u64(tmp4ft, 0) + vgetq_lane_u64(tmp4ft, 1); 364:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 365:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 366:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** nbBoolBlock = numberOfBools & 0x7F; 367:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(nbBoolBlock >= 32) 368:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 369:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = *pA++; 370:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 371:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift = 0; 372:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(shift < 32) 373:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 374:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ba = a & 1; ARM GAS /tmp/ccRzkJVN.s page 8 375:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 376:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 377:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 379:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 380:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctt += (ba && bb); 381:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 382:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 383:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cff += ((1 ^ ba) && (1 ^ bb)); 384:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 386:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctf += (ba && (1 ^ bb)); 387:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 388:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 389:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cft += ((1 ^ ba) && bb); 390:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 391:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift ++; 392:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 393:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 394:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** nbBoolBlock -= 32; 395:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 396:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 397:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = *pA++; 398:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 400:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> (32 - nbBoolBlock); 401:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> (32 - nbBoolBlock); 402:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 403:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(nbBoolBlock > 0) 404:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 405:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ba = a & 1; 406:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 407:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 408:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 409:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 410:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 411:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctt += (ba && bb); 412:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 413:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 414:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cff += ((1 ^ ba) && (1 ^ bb)); 415:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 416:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 417:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctf += (ba && (1 ^ bb)); 418:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 419:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 420:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cft += ((1 ^ ba) && bb); 421:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 422:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** nbBoolBlock --; 423:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 424:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 425:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 426:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cTT = _ctt; 427:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 428:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 429:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cFF = _cff; 430:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 431:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF ARM GAS /tmp/ccRzkJVN.s page 9 432:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cTF = _ctf; 433:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 434:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 435:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cFT = _cft; 436:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 437:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 438:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 439:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #else 440:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 441:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** void FUNC(EXT)(const uint32_t *pA 442:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , const uint32_t *pB 443:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t numberOfBools 444:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 445:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cTT 446:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 447:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 448:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cFF 449:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 450:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 451:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cTF 452:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 453:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 454:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** , uint32_t *cFT 455:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 456:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ) 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 27 .loc 1 457 0 28 .cfi_startproc 29 @ args = 8, pretend = 0, frame = 8 30 @ frame_needed = 0, uses_anonymous_args = 0 31 .LVL0: 32 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 33 .LCFI0: 34 .cfi_def_cfa_offset 36 35 .cfi_offset 4, -36 36 .cfi_offset 5, -32 37 .cfi_offset 6, -28 38 .cfi_offset 7, -24 39 .cfi_offset 8, -20 40 .cfi_offset 9, -16 41 .cfi_offset 10, -12 42 .cfi_offset 11, -8 43 .cfi_offset 14, -4 44 0004 83B0 sub sp, sp, #12 45 .LCFI1: 46 .cfi_def_cfa_offset 48 458:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 459:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _ctt=0; 461:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 462:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _cff=0; 464:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 465:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _ctf=0; 467:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 468:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT ARM GAS /tmp/ccRzkJVN.s page 10 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t _cft=0; 470:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 471:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** uint32_t a,b,ba,bb; 472:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** int shift; 473:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(numberOfBools >= 32) 47 .loc 1 474 0 48 0006 1F2A cmp r2, #31 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 49 .loc 1 457 0 50 0008 0193 str r3, [sp, #4] 51 .loc 1 474 0 52 000a 5BD9 bls .L16 53 000c A2F1200A sub r10, r2, #32 54 0010 4FEA5A1A lsr r10, r10, #5 55 0014 0AF1010A add r10, r10, #1 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 56 .loc 1 469 0 57 0018 4FF0000C mov ip, #0 58 001c 4FEA8A0A lsl r10, r10, #2 59 0020 00EB0A0B add fp, r0, r10 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 60 .loc 1 466 0 61 0024 E646 mov lr, ip 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 62 .loc 1 460 0 63 0026 E046 mov r8, ip 64 .loc 1 474 0 65 0028 8946 mov r9, r1 66 .LVL1: 67 .L8: 475:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = *pA++; 68 .loc 1 476 0 69 002a 50F8045B ldr r5, [r0], #4 70 .LVL2: 477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 71 .loc 1 477 0 72 002e 59F8044B ldr r4, [r9], #4 73 .LVL3: 74 0032 2023 movs r3, #32 75 0034 05E0 b .L7 76 .LVL4: 77 .L3: 478:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift = 0; 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(shift < 32) 480:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ba = a & 1; 482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 485:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctt += (ba && bb); 78 .loc 1 486 0 79 0036 002F cmp r7, #0 80 0038 3ED1 bne .L6 487:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif ARM GAS /tmp/ccRzkJVN.s page 11 488:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cff += ((1 ^ ba) && (1 ^ bb)); 490:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 491:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctf += (ba && (1 ^ bb)); 81 .loc 1 492 0 82 003a 0EF1010E add lr, lr, #1 83 .LVL5: 84 .L5: 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 85 .loc 1 479 0 86 003e 013B subs r3, r3, #1 87 0040 0DD0 beq .L27 88 .LVL6: 89 .L7: 481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 90 .loc 1 481 0 91 0042 05F00106 and r6, r5, #1 92 .LVL7: 482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 93 .loc 1 482 0 94 0046 04F00107 and r7, r4, #1 95 .LVL8: 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 96 .loc 1 483 0 97 004a 6D08 lsrs r5, r5, #1 98 .LVL9: 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 99 .loc 1 484 0 100 004c 6408 lsrs r4, r4, #1 101 .LVL10: 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 102 .loc 1 486 0 103 004e 002E cmp r6, #0 104 0050 F1D1 bne .L3 493:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 494:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cft += ((1 ^ ba) && bb); 105 .loc 1 495 0 106 0052 002F cmp r7, #0 107 0054 F3D0 beq .L5 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 108 .loc 1 479 0 109 0056 013B subs r3, r3, #1 110 0058 0CF1010C add ip, ip, #1 111 .LVL11: 112 005c F1D1 bne .L7 113 .L27: 114 .LVL12: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 115 .loc 1 474 0 116 005e 5845 cmp r0, fp 117 0060 E3D1 bne .L8 118 0062 5144 add r1, r1, r10 119 0064 02F01F02 and r2, r2, #31 120 .LVL13: 121 .L2: ARM GAS /tmp/ccRzkJVN.s page 12 496:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 497:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift ++; 498:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 499:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 500:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** numberOfBools -= 32; 501:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 502:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = *pA++; 504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 122 .loc 1 504 0 123 0068 0B68 ldr r3, [r1] 503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 124 .loc 1 503 0 125 006a 0068 ldr r0, [r0] 126 .LVL14: 505:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> (32 - numberOfBools); 127 .loc 1 506 0 128 006c C2F12004 rsb r4, r2, #32 129 0070 20FA04F1 lsr r1, r0, r4 130 .LVL15: 507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> (32 - numberOfBools); 131 .loc 1 507 0 132 0074 E340 lsrs r3, r3, r4 133 .LVL16: 508:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** while(numberOfBools > 0) 134 .loc 1 509 0 135 0076 2AB9 cbnz r2, .L13 136 0078 12E0 b .L9 137 .LVL17: 138 .L28: 510:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** ba = a & 1; 512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 515:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 516:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctt += (ba && bb); 139 .loc 1 517 0 140 007a 00B3 cbz r0, .L11 141 007c 08F10108 add r8, r8, #1 142 .LVL18: 143 .L12: 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 144 .loc 1 509 0 145 0080 013A subs r2, r2, #1 146 .LVL19: 147 0082 0DD0 beq .L9 148 .LVL20: 149 .L13: 511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 150 .loc 1 511 0 151 0084 01F00104 and r4, r1, #1 152 .LVL21: 512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; ARM GAS /tmp/ccRzkJVN.s page 13 153 .loc 1 512 0 154 0088 03F00100 and r0, r3, #1 155 .LVL22: 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 156 .loc 1 513 0 157 008c 4908 lsrs r1, r1, #1 158 .LVL23: 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 159 .loc 1 514 0 160 008e 5B08 lsrs r3, r3, #1 161 .LVL24: 162 .loc 1 517 0 163 0090 002C cmp r4, #0 164 0092 F2D1 bne .L28 518:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 519:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cff += ((1 ^ ba) && (1 ^ bb)); 521:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 522:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _ctf += (ba && (1 ^ bb)); 524:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 525:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** _cft += ((1 ^ ba) && bb); 165 .loc 1 526 0 166 0094 0028 cmp r0, #0 167 0096 F3D0 beq .L12 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 168 .loc 1 509 0 169 0098 013A subs r2, r2, #1 170 .LVL25: 171 009a 0CF1010C add ip, ip, #1 172 .LVL26: 173 009e F1D1 bne .L13 174 .LVL27: 175 .L9: 527:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 528:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** numberOfBools --; 529:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 530:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 531:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cTT = _ctt; 176 .loc 1 532 0 177 00a0 019B ldr r3, [sp, #4] 178 .LVL28: 179 00a2 C3F80080 str r8, [r3] 533:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 534:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FF 535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cFF = _cff; 536:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 537:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TF 538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cTF = _ctf; 180 .loc 1 538 0 181 00a6 0C9B ldr r3, [sp, #48] 182 00a8 C3F800E0 str lr, [r3] 539:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 540:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef FT 541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** *cFT = _cft; ARM GAS /tmp/ccRzkJVN.s page 14 183 .loc 1 541 0 184 00ac 0D9B ldr r3, [sp, #52] 185 00ae C3F800C0 str ip, [r3] 542:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 543:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** } 186 .loc 1 543 0 187 00b2 03B0 add sp, sp, #12 188 .LCFI2: 189 .cfi_remember_state 190 .cfi_def_cfa_offset 36 191 @ sp needed 192 00b4 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 193 .LVL29: 194 .L6: 195 .LCFI3: 196 .cfi_restore_state 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 197 .loc 1 486 0 198 00b8 08F10108 add r8, r8, #1 199 .LVL30: 200 00bc BFE7 b .L5 201 .LVL31: 202 .L11: 523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 203 .loc 1 523 0 204 00be 0EF1010E add lr, lr, #1 205 .LVL32: 206 00c2 DDE7 b .L12 207 .LVL33: 208 .L16: 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 209 .loc 1 469 0 210 00c4 4FF0000C mov ip, #0 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 211 .loc 1 466 0 212 00c8 E646 mov lr, ip 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 213 .loc 1 460 0 214 00ca E046 mov r8, ip 215 00cc CCE7 b .L2 216 .cfi_endproc 217 .LFE148: 219 00ce 00BF .section .text.arm_boolean_distance_TF_FT,"ax",%progbits 220 .align 1 221 .p2align 2,,3 222 .global arm_boolean_distance_TF_FT 223 .syntax unified 224 .thumb 225 .thumb_func 226 .fpu fpv4-sp-d16 228 arm_boolean_distance_TF_FT: 229 .LFB149: 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 230 .loc 1 457 0 231 .cfi_startproc 232 @ args = 4, pretend = 0, frame = 0 233 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccRzkJVN.s page 15 234 .LVL34: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 235 .loc 1 474 0 236 0000 1F2A cmp r2, #31 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 237 .loc 1 457 0 238 0002 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 239 .LCFI4: 240 .cfi_def_cfa_offset 36 241 .cfi_offset 4, -36 242 .cfi_offset 5, -32 243 .cfi_offset 6, -28 244 .cfi_offset 7, -24 245 .cfi_offset 8, -20 246 .cfi_offset 9, -16 247 .cfi_offset 10, -12 248 .cfi_offset 11, -8 249 .cfi_offset 14, -4 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 250 .loc 1 457 0 251 0006 9B46 mov fp, r3 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 252 .loc 1 474 0 253 0008 49D9 bls .L39 254 000a A2F12009 sub r9, r2, #32 255 000e 4FEA5919 lsr r9, r9, #5 256 0012 09F10109 add r9, r9, #1 257 0016 4FEA8909 lsl r9, r9, #2 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 258 .loc 1 469 0 259 001a 4FF0000C mov ip, #0 260 001e 00EB090A add r10, r0, r9 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 261 .loc 1 466 0 262 0022 E646 mov lr, ip 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 263 .loc 1 474 0 264 0024 8846 mov r8, r1 265 .LVL35: 266 .L34: 476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 267 .loc 1 476 0 268 0026 50F8045B ldr r5, [r0], #4 269 .LVL36: 477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift = 0; 270 .loc 1 477 0 271 002a 58F8044B ldr r4, [r8], #4 272 .LVL37: 273 002e 2023 movs r3, #32 274 0030 02E0 b .L33 275 .LVL38: 276 .L48: 277 0032 BC44 add ip, ip, r7 278 .LVL39: 279 .L32: 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 280 .loc 1 479 0 ARM GAS /tmp/ccRzkJVN.s page 16 281 0034 013B subs r3, r3, #1 282 0036 0DD0 beq .L47 283 .LVL40: 284 .L33: 481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 285 .loc 1 481 0 286 0038 05F00106 and r6, r5, #1 287 .LVL41: 482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 288 .loc 1 482 0 289 003c 04F00107 and r7, r4, #1 290 .LVL42: 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 291 .loc 1 483 0 292 0040 6D08 lsrs r5, r5, #1 293 .LVL43: 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 294 .loc 1 484 0 295 0042 6408 lsrs r4, r4, #1 296 .LVL44: 492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 297 .loc 1 492 0 298 0044 002E cmp r6, #0 299 0046 F4D0 beq .L48 300 0048 002F cmp r7, #0 301 004a F3D1 bne .L32 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 302 .loc 1 479 0 303 004c 013B subs r3, r3, #1 492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 304 .loc 1 492 0 305 004e 0EF1010E add lr, lr, #1 306 .LVL45: 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 307 .loc 1 479 0 308 0052 F1D1 bne .L33 309 .L47: 310 .LVL46: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 311 .loc 1 474 0 312 0054 5045 cmp r0, r10 313 0056 E6D1 bne .L34 314 0058 4944 add r1, r1, r9 315 005a 02F01F02 and r2, r2, #31 316 .LVL47: 317 .L30: 504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 318 .loc 1 504 0 319 005e 0B68 ldr r3, [r1] 503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 320 .loc 1 503 0 321 0060 0068 ldr r0, [r0] 322 .LVL48: 506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> (32 - numberOfBools); 323 .loc 1 506 0 324 0062 C2F12004 rsb r4, r2, #32 325 0066 20FA04F1 lsr r1, r0, r4 ARM GAS /tmp/ccRzkJVN.s page 17 326 .LVL49: 507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 327 .loc 1 507 0 328 006a E340 lsrs r3, r3, r4 329 .LVL50: 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 330 .loc 1 509 0 331 006c 2AB9 cbnz r2, .L38 332 006e 0FE0 b .L35 333 .LVL51: 334 .L49: 523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 335 .loc 1 523 0 336 0070 08B9 cbnz r0, .L37 337 0072 0EF1010E add lr, lr, #1 338 .LVL52: 339 .L37: 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 340 .loc 1 509 0 341 0076 013A subs r2, r2, #1 342 .LVL53: 343 0078 0AD0 beq .L35 344 .LVL54: 345 .L38: 511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 346 .loc 1 511 0 347 007a 01F00104 and r4, r1, #1 348 .LVL55: 512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 349 .loc 1 512 0 350 007e 03F00100 and r0, r3, #1 351 .LVL56: 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 352 .loc 1 513 0 353 0082 4908 lsrs r1, r1, #1 354 .LVL57: 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 355 .loc 1 514 0 356 0084 5B08 lsrs r3, r3, #1 357 .LVL58: 523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 358 .loc 1 523 0 359 0086 002C cmp r4, #0 360 0088 F2D1 bne .L49 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 361 .loc 1 509 0 362 008a 013A subs r2, r2, #1 363 .LVL59: 364 008c 8444 add ip, ip, r0 365 .LVL60: 366 008e F4D1 bne .L38 367 .LVL61: 368 .L35: 541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 369 .loc 1 541 0 370 0090 099B ldr r3, [sp, #36] 371 .LVL62: ARM GAS /tmp/ccRzkJVN.s page 18 538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 372 .loc 1 538 0 373 0092 CBF800E0 str lr, [fp] 541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 374 .loc 1 541 0 375 0096 C3F800C0 str ip, [r3] 376 .loc 1 543 0 377 009a BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 378 .LVL63: 379 .L39: 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 380 .loc 1 469 0 381 009e 4FF0000C mov ip, #0 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 382 .loc 1 466 0 383 00a2 E646 mov lr, ip 384 00a4 DBE7 b .L30 385 .cfi_endproc 386 .LFE149: 388 00a6 00BF .section .text.arm_boolean_distance_TT_FF_TF_FT,"ax",%progbits 389 .align 1 390 .p2align 2,,3 391 .global arm_boolean_distance_TT_FF_TF_FT 392 .syntax unified 393 .thumb 394 .thumb_func 395 .fpu fpv4-sp-d16 397 arm_boolean_distance_TT_FF_TF_FT: 398 .LFB150: 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 399 .loc 1 457 0 400 .cfi_startproc 401 @ args = 12, pretend = 0, frame = 16 402 @ frame_needed = 0, uses_anonymous_args = 0 403 .LVL64: 404 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 405 .LCFI5: 406 .cfi_def_cfa_offset 36 407 .cfi_offset 4, -36 408 .cfi_offset 5, -32 409 .cfi_offset 6, -28 410 .cfi_offset 7, -24 411 .cfi_offset 8, -20 412 .cfi_offset 9, -16 413 .cfi_offset 10, -12 414 .cfi_offset 11, -8 415 .cfi_offset 14, -4 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 416 .loc 1 474 0 417 0004 1F2A cmp r2, #31 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 418 .loc 1 457 0 419 0006 85B0 sub sp, sp, #20 420 .LCFI6: 421 .cfi_def_cfa_offset 56 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 422 .loc 1 457 0 ARM GAS /tmp/ccRzkJVN.s page 19 423 0008 9146 mov r9, r2 424 000a CDE90013 strd r1, r3, [sp] 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 425 .loc 1 474 0 426 000e 40F28A80 bls .L70 427 0012 A2F12003 sub r3, r2, #32 428 .LVL65: 429 0016 5B09 lsrs r3, r3, #5 430 0018 0133 adds r3, r3, #1 431 001a 9B00 lsls r3, r3, #2 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 432 .loc 1 469 0 433 001c 4FF0000C mov ip, #0 434 0020 0293 str r3, [sp, #8] 435 0022 C318 adds r3, r0, r3 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 436 .loc 1 466 0 437 0024 E646 mov lr, ip 463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 438 .loc 1 463 0 439 0026 E046 mov r8, ip 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 440 .loc 1 460 0 441 0028 E246 mov r10, ip 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 442 .loc 1 474 0 443 002a 8B46 mov fp, r1 444 002c 0392 str r2, [sp, #12] 445 002e 9946 mov r9, r3 446 .LVL66: 447 .L59: 476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 448 .loc 1 476 0 449 0030 50F8042B ldr r2, [r0], #4 450 .LVL67: 477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift = 0; 451 .loc 1 477 0 452 0034 5BF8043B ldr r3, [fp], #4 453 .LVL68: 454 0038 2021 movs r1, #32 455 003a 07E0 b .L58 456 .LVL69: 457 .L52: 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 458 .loc 1 486 0 459 003c 002E cmp r6, #0 460 003e 61D0 beq .L57 461 0040 0AF1010A add r10, r10, #1 462 .LVL70: 463 .L56: 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 464 .loc 1 479 0 465 0044 0139 subs r1, r1, #1 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 466 .loc 1 483 0 467 0046 2246 mov r2, r4 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT ARM GAS /tmp/ccRzkJVN.s page 20 468 .loc 1 484 0 469 0048 2B46 mov r3, r5 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 470 .loc 1 479 0 471 004a 17D0 beq .L105 472 .LVL71: 473 .L58: 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 474 .loc 1 486 0 475 004c 12F00107 ands r7, r2, #1 476 .LVL72: 482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 477 .loc 1 482 0 478 0050 03F00106 and r6, r3, #1 479 .LVL73: 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 480 .loc 1 483 0 481 0054 4FEA5204 lsr r4, r2, #1 482 .LVL74: 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 483 .loc 1 484 0 484 0058 4FEA5305 lsr r5, r3, #1 485 .LVL75: 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 486 .loc 1 486 0 487 005c EED1 bne .L52 489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 488 .loc 1 489 0 489 005e 1A43 orrs r2, r2, r3 490 0060 D307 lsls r3, r2, #31 491 0062 03D4 bmi .L54 492 .LVL76: 493 .L68: 494 0064 08F10108 add r8, r8, #1 495 .LVL77: 495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 496 .loc 1 495 0 497 0068 002F cmp r7, #0 498 006a EBD1 bne .L56 499 .L54: 500 006c 002E cmp r6, #0 501 006e E9D0 beq .L56 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 502 .loc 1 479 0 503 0070 0139 subs r1, r1, #1 504 0072 0CF1010C add ip, ip, #1 505 .LVL78: 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 506 .loc 1 483 0 507 0076 2246 mov r2, r4 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 508 .loc 1 484 0 509 0078 2B46 mov r3, r5 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 510 .loc 1 479 0 511 007a E7D1 bne .L58 512 .LVL79: ARM GAS /tmp/ccRzkJVN.s page 21 513 .L105: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 514 .loc 1 474 0 515 007c 4845 cmp r0, r9 516 007e D7D1 bne .L59 517 0080 009B ldr r3, [sp] 518 .LVL80: 519 0082 029A ldr r2, [sp, #8] 520 .LVL81: 521 0084 DDF80C90 ldr r9, [sp, #12] 522 0088 1344 add r3, r3, r2 523 008a 0093 str r3, [sp] 524 008c 09F01F09 and r9, r9, #31 525 0090 1A46 mov r2, r3 526 .LVL82: 527 .L51: 504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 528 .loc 1 504 0 529 0092 1168 ldr r1, [r2] 503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 530 .loc 1 503 0 531 0094 0368 ldr r3, [r0] 532 .LVL83: 506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> (32 - numberOfBools); 533 .loc 1 506 0 534 0096 C9F12002 rsb r2, r9, #32 535 009a D340 lsrs r3, r3, r2 536 .LVL84: 507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 537 .loc 1 507 0 538 009c 21FA02F2 lsr r2, r1, r2 539 .LVL85: 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 540 .loc 1 509 0 541 00a0 B9F1000F cmp r9, #0 542 00a4 09D1 bne .L67 543 00a6 1EE0 b .L60 544 .LVL86: 545 .L106: 517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 546 .loc 1 517 0 547 00a8 002C cmp r4, #0 548 00aa 37D0 beq .L62 549 00ac 0AF1010A add r10, r10, #1 550 .LVL87: 551 .L65: 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 552 .loc 1 509 0 553 00b0 B9F10109 subs r9, r9, #1 554 .LVL88: 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 555 .loc 1 513 0 556 00b4 0346 mov r3, r0 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 557 .loc 1 514 0 558 00b6 0A46 mov r2, r1 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { ARM GAS /tmp/ccRzkJVN.s page 22 559 .loc 1 509 0 560 00b8 15D0 beq .L60 561 .LVL89: 562 .L67: 517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 563 .loc 1 517 0 564 00ba 13F00106 ands r6, r3, #1 565 .LVL90: 520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 566 .loc 1 520 0 567 00be 43EA0205 orr r5, r3, r2 512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** a = a >> 1; 568 .loc 1 512 0 569 00c2 02F00104 and r4, r2, #1 570 .LVL91: 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 571 .loc 1 513 0 572 00c6 4FEA5300 lsr r0, r3, #1 573 .LVL92: 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 574 .loc 1 514 0 575 00ca 4FEA5201 lsr r1, r2, #1 576 .LVL93: 517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 577 .loc 1 517 0 578 00ce EBD1 bne .L106 520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 579 .loc 1 520 0 580 00d0 ED07 lsls r5, r5, #31 581 00d2 1ED5 bpl .L64 582 .L66: 526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 583 .loc 1 526 0 584 00d4 002C cmp r4, #0 585 00d6 EBD0 beq .L65 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 586 .loc 1 509 0 587 00d8 B9F10109 subs r9, r9, #1 588 .LVL94: 589 00dc 0CF1010C add ip, ip, #1 590 .LVL95: 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 591 .loc 1 513 0 592 00e0 0346 mov r3, r0 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 593 .loc 1 514 0 594 00e2 0A46 mov r2, r1 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 595 .loc 1 509 0 596 00e4 E9D1 bne .L67 597 .LVL96: 598 .L60: 532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 599 .loc 1 532 0 600 00e6 019B ldr r3, [sp, #4] 601 .LVL97: 602 00e8 C3F800A0 str r10, [r3] ARM GAS /tmp/ccRzkJVN.s page 23 535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 603 .loc 1 535 0 604 00ec 0E9B ldr r3, [sp, #56] 605 00ee C3F80080 str r8, [r3] 538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 606 .loc 1 538 0 607 00f2 0F9B ldr r3, [sp, #60] 608 00f4 C3F800E0 str lr, [r3] 541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 609 .loc 1 541 0 610 00f8 109B ldr r3, [sp, #64] 611 00fa C3F800C0 str ip, [r3] 612 .loc 1 543 0 613 00fe 05B0 add sp, sp, #20 614 .LCFI7: 615 .cfi_remember_state 616 .cfi_def_cfa_offset 36 617 .LVL98: 618 @ sp needed 619 0100 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 620 .LVL99: 621 .L57: 622 .LCFI8: 623 .cfi_restore_state 489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 624 .loc 1 489 0 625 0104 1A43 orrs r2, r2, r3 626 0106 D207 lsls r2, r2, #31 492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 627 .loc 1 492 0 628 0108 48BF it mi 629 010a 0EF1010E addmi lr, lr, #1 630 .LVL100: 489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 631 .loc 1 489 0 632 010e 99D4 bmi .L56 633 0110 A8E7 b .L68 634 .LVL101: 635 .L64: 520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 636 .loc 1 520 0 637 0112 08F10108 add r8, r8, #1 638 .LVL102: 526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 639 .loc 1 526 0 640 0116 002E cmp r6, #0 641 0118 DCD0 beq .L66 642 011a C9E7 b .L65 643 .L62: 520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 644 .loc 1 520 0 645 011c EF07 lsls r7, r5, #31 646 011e F8D5 bpl .L64 523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 647 .loc 1 523 0 648 0120 0EF1010E add lr, lr, #1 649 .LVL103: ARM GAS /tmp/ccRzkJVN.s page 24 650 0124 C4E7 b .L65 651 .LVL104: 652 .L70: 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 653 .loc 1 469 0 654 0126 4FF0000C mov ip, #0 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 655 .loc 1 466 0 656 012a E646 mov lr, ip 463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 657 .loc 1 463 0 658 012c E046 mov r8, ip 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 659 .loc 1 460 0 660 012e E246 mov r10, ip 661 0130 0A46 mov r2, r1 662 .LVL105: 663 0132 AEE7 b .L51 664 .cfi_endproc 665 .LFE150: 667 .section .text.arm_boolean_distance_TT,"ax",%progbits 668 .align 1 669 .p2align 2,,3 670 .global arm_boolean_distance_TT 671 .syntax unified 672 .thumb 673 .thumb_func 674 .fpu fpv4-sp-d16 676 arm_boolean_distance_TT: 677 .LFB151: 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 678 .loc 1 457 0 679 .cfi_startproc 680 @ args = 0, pretend = 0, frame = 0 681 @ frame_needed = 0, uses_anonymous_args = 0 682 .LVL106: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 683 .loc 1 474 0 684 0000 1F2A cmp r2, #31 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 685 .loc 1 457 0 686 0002 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 687 .LCFI9: 688 .cfi_def_cfa_offset 32 689 .cfi_offset 4, -32 690 .cfi_offset 5, -28 691 .cfi_offset 6, -24 692 .cfi_offset 7, -20 693 .cfi_offset 8, -16 694 .cfi_offset 9, -12 695 .cfi_offset 10, -8 696 .cfi_offset 14, -4 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 697 .loc 1 457 0 698 0006 9846 mov r8, r3 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 699 .loc 1 474 0 ARM GAS /tmp/ccRzkJVN.s page 25 700 0008 3BD9 bls .L115 701 000a A2F12009 sub r9, r2, #32 702 000e 4FEA5919 lsr r9, r9, #5 703 0012 09F10109 add r9, r9, #1 704 0016 4FEA8909 lsl r9, r9, #2 705 001a 00EB090A add r10, r0, r9 706 001e 8E46 mov lr, r1 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 707 .loc 1 460 0 708 0020 4FF0000C mov ip, #0 709 .LVL107: 710 .L111: 476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 711 .loc 1 476 0 712 0024 50F8045B ldr r5, [r0], #4 713 .LVL108: 477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift = 0; 714 .loc 1 477 0 715 0028 5EF8046B ldr r6, [lr], #4 716 .LVL109: 717 002c 2024 movs r4, #32 718 .LVL110: 719 .L110: 481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 720 .loc 1 481 0 721 002e 05F00103 and r3, r5, #1 722 .LVL111: 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 723 .loc 1 484 0 724 0032 7708 lsrs r7, r6, #1 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 725 .loc 1 483 0 726 0034 6D08 lsrs r5, r5, #1 727 .LVL112: 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 728 .loc 1 486 0 729 0036 1BB1 cbz r3, .L109 730 0038 F607 lsls r6, r6, #31 731 .LVL113: 732 003a 48BF it mi 733 003c 0CF1010C addmi ip, ip, #1 734 .LVL114: 735 .L109: 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 736 .loc 1 479 0 737 0040 013C subs r4, r4, #1 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 738 .loc 1 484 0 739 0042 3E46 mov r6, r7 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 740 .loc 1 479 0 741 0044 F3D1 bne .L110 742 .LVL115: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 743 .loc 1 474 0 744 0046 5045 cmp r0, r10 745 0048 ECD1 bne .L111 ARM GAS /tmp/ccRzkJVN.s page 26 746 004a 4944 add r1, r1, r9 747 004c 02F01F02 and r2, r2, #31 748 .LVL116: 749 .L108: 503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 750 .loc 1 503 0 751 0050 0068 ldr r0, [r0] 752 .LVL117: 504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 753 .loc 1 504 0 754 0052 0C68 ldr r4, [r1] 755 .LVL118: 506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> (32 - numberOfBools); 756 .loc 1 506 0 757 0054 C2F12003 rsb r3, r2, #32 758 0058 20FA03F1 lsr r1, r0, r3 759 .LVL119: 507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 760 .loc 1 507 0 761 005c 24FA03F0 lsr r0, r4, r3 762 .LVL120: 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 763 .loc 1 509 0 764 0060 5AB1 cbz r2, .L112 765 .LVL121: 766 .L114: 511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 767 .loc 1 511 0 768 0062 01F00104 and r4, r1, #1 769 .LVL122: 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 770 .loc 1 514 0 771 0066 4308 lsrs r3, r0, #1 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 772 .loc 1 513 0 773 0068 4908 lsrs r1, r1, #1 774 .LVL123: 517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 775 .loc 1 517 0 776 006a 1CB1 cbz r4, .L113 777 006c C007 lsls r0, r0, #31 778 .LVL124: 779 006e 48BF it mi 780 0070 0CF1010C addmi ip, ip, #1 781 .LVL125: 782 .L113: 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 783 .loc 1 509 0 784 0074 013A subs r2, r2, #1 785 .LVL126: 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 786 .loc 1 514 0 787 0076 1846 mov r0, r3 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 788 .loc 1 509 0 789 0078 F3D1 bne .L114 790 .LVL127: ARM GAS /tmp/ccRzkJVN.s page 27 791 .L112: 532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 792 .loc 1 532 0 793 007a C8F800C0 str ip, [r8] 794 .loc 1 543 0 795 007e BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 796 .LVL128: 797 .L115: 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 798 .loc 1 460 0 799 0082 4FF0000C mov ip, #0 800 0086 E3E7 b .L108 801 .cfi_endproc 802 .LFE151: 804 .section .text.arm_braycurtis_distance_f32,"ax",%progbits 805 .align 1 806 .p2align 2,,3 807 .global arm_braycurtis_distance_f32 808 .syntax unified 809 .thumb 810 .thumb_func 811 .fpu fpv4-sp-d16 813 arm_braycurtis_distance_f32: 814 .LFB152: 815 .file 2 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_dista 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * Title: arm_braycurtis_distance_f32.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * Description: Bray-Curtis distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** ARM GAS /tmp/ccRzkJVN.s page 28 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** /** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * @ingroup groupDistance 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * @{ 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** */ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** /** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * @defgroup FloatDist Float Distances 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * Distances between two vectors of float values. 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** */ 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** /** 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** @addtogroup FloatDist 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** @{ 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** */ 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** /** 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * @brief Bray-Curtis distance between two vectors 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * @param[in] pA First vector 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * @param[in] pB Second vector 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * @param[in] blockSize vector length 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * @return distance 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** * 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** */ 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** #include "arm_helium_utils.h" 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** float32_t arm_braycurtis_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** { 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** float32_t accumDiff = 0.0f, accumSum = 0.0f; 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** uint32_t blkCnt; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** f32x4_t a, b, c, accumDiffV, accumSumV; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiffV = vdupq_n_f32(0.0f); 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumSumV = vdupq_n_f32(0.0f); 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** blkCnt = blockSize >> 2; 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** while (blkCnt > 0) { 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** a = vld1q(pA); 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** b = vld1q(pB); 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** c = vabdq(a, b); 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiffV = vaddq(accumDiffV, c); 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** c = vaddq_f32(a, b); 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** c = vabsq_f32(c); 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumSumV = vaddq(accumSumV, c); 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** pA += 4; 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** pB += 4; 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** blkCnt--; 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** } 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** ARM GAS /tmp/ccRzkJVN.s page 29 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** blkCnt = blockSize & 3; 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** if (blkCnt > 0U) { 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** mve_pred16_t p0 = vctp32q(blkCnt); 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** a = vldrwq_z_f32(pA, p0); 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** b = vldrwq_z_f32(pB, p0); 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** c = vabdq(a, b); 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiffV = vaddq_m(accumDiffV, accumDiffV, c, p0); 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** c = vaddq_f32(a, b); 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** c = vabsq_f32(c); 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumSumV = vaddq_m(accumSumV, accumSumV, c, p0); 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** } 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiff = vecAddAcrossF32Mve(accumDiffV); 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumSum = vecAddAcrossF32Mve(accumSumV); 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** /* 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** It is assumed that accumSum is not zero. Since it is the sum of several absolute 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** values it would imply that all of them are zero. It is very unlikely for long vectors. 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** */ 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** return (accumDiff / accumSum); 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** } 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** #else 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** #if defined(ARM_MATH_NEON) 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** #include "NEMath.h" 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** float32_t arm_braycurtis_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** { 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** float32_t accumDiff=0.0f, accumSum=0.0f; 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** uint32_t blkCnt; 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** float32x4_t a,b,c,accumDiffV, accumSumV; 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** float32x2_t accumV2; 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiffV = vdupq_n_f32(0.0f); 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumSumV = vdupq_n_f32(0.0f); 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** blkCnt = blockSize >> 2; 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** while(blkCnt > 0) 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** { 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** a = vld1q_f32(pA); 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** b = vld1q_f32(pB); 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** c = vabdq_f32(a,b); 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiffV = vaddq_f32(accumDiffV,c); 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** c = vaddq_f32(a,b); 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** c = vabsq_f32(c); 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumSumV = vaddq_f32(accumSumV,c); 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** pA += 4; 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** pB += 4; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** blkCnt --; 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** } 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumV2 = vpadd_f32(vget_low_f32(accumDiffV),vget_high_f32(accumDiffV)); ARM GAS /tmp/ccRzkJVN.s page 30 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiff = vget_lane_f32(accumV2, 0) + vget_lane_f32(accumV2, 1); 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumV2 = vpadd_f32(vget_low_f32(accumSumV),vget_high_f32(accumSumV)); 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumSum = vget_lane_f32(accumV2, 0) + vget_lane_f32(accumV2, 1); 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** blkCnt = blockSize & 3; 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** while(blkCnt > 0) 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** { 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiff += fabsf(*pA - *pB); 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumSum += fabsf(*pA++ + *pB++); 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** blkCnt --; 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** } 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** /* 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** It is assumed that accumSum is not zero. Since it is the sum of several absolute 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** values it would imply that all of them are zero. It is very unlikely for long vectors. 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** */ 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** return(accumDiff / accumSum); 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** } 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** #else 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** float32_t arm_braycurtis_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** { 816 .loc 2 170 0 817 .cfi_startproc 818 @ args = 0, pretend = 0, frame = 0 819 @ frame_needed = 0, uses_anonymous_args = 0 820 @ link register save eliminated. 821 .LVL129: 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** float32_t accumDiff=0.0f, accumSum=0.0f, tmpA, tmpB; 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** while(blockSize > 0) 822 .loc 2 173 0 823 0000 C2B1 cbz r2, .L138 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** float32_t accumDiff=0.0f, accumSum=0.0f, tmpA, tmpB; 824 .loc 2 171 0 825 0002 9FED0E6A vldr.32 s12, .L140 826 0006 F0EE465A vmov.f32 s11, s12 827 .LVL130: 828 .L137: 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** { 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** tmpA = *pA++; 829 .loc 2 175 0 830 000a F0EC017A vldmia.32 r0!, {s15} 831 .LVL131: 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** tmpB = *pB++; 832 .loc 2 176 0 833 000e F1EC016A vldmia.32 r1!, {s13} 834 .LVL132: 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiff += fabsf(tmpA - tmpB); 835 .loc 2 177 0 836 0012 37EEE67A vsub.f32 s14, s15, s13 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumSum += fabsf(tmpA + tmpB); 837 .loc 2 178 0 838 0016 77EEA67A vadd.f32 s15, s15, s13 839 .LVL133: ARM GAS /tmp/ccRzkJVN.s page 31 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiff += fabsf(tmpA - tmpB); 840 .loc 2 177 0 841 001a B0EEC77A vabs.f32 s14, s14 842 .loc 2 178 0 843 001e F0EEE77A vabs.f32 s15, s15 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** { 844 .loc 2 173 0 845 0022 013A subs r2, r2, #1 846 .LVL134: 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** accumDiff += fabsf(tmpA - tmpB); 847 .loc 2 177 0 848 0024 75EE875A vadd.f32 s11, s11, s14 849 .LVL135: 850 .loc 2 178 0 851 0028 36EE276A vadd.f32 s12, s12, s15 852 .LVL136: 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** { 853 .loc 2 173 0 854 002c EDD1 bne .L137 855 002e 85EE860A vdiv.f32 s0, s11, s12 856 0032 7047 bx lr 857 .LVL137: 858 .L138: 859 0034 9FED020A vldr.32 s0, .L140+4 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** blockSize --; 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** } 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** /* 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** It is assumed that accumSum is not zero. Since it is the sum of several absolute 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** values it would imply that all of them are zero. It is very unlikely for long vectors. 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** */ 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** return(accumDiff / accumSum); 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_braycurtis_distance_f32.c **** } 860 .loc 2 188 0 861 0038 7047 bx lr 862 .L141: 863 003a 00BF .align 2 864 .L140: 865 003c 00000000 .word 0 866 0040 0000C07F .word 2143289344 867 .cfi_endproc 868 .LFE152: 870 .section .text.arm_canberra_distance_f32,"ax",%progbits 871 .align 1 872 .p2align 2,,3 873 .global arm_canberra_distance_f32 874 .syntax unified 875 .thumb 876 .thumb_func 877 .fpu fpv4-sp-d16 879 arm_canberra_distance_f32: 880 .LFB153: 881 .file 3 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distanc 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Project: CMSIS DSP Library ARM GAS /tmp/ccRzkJVN.s page 32 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Title: arm_canberra_distance_f32.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Description: Canberra distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** @addtogroup FloatDist 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** @{ 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** */ 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * @brief Canberra distance between two vectors 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * This function may divide by zero when samples pA[i] and pB[i] are both zero. 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * The result of the computation will be correct. So the division per zero may be 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * ignored. 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * @param[in] pA First vector 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * @param[in] pB Second vector 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * @param[in] blockSize vector length 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * @return distance 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** */ 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #include "arm_helium_utils.h" 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #include "arm_vec_math.h" 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** float32_t arm_canberra_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** { 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** float32_t accum = 0.0f; ARM GAS /tmp/ccRzkJVN.s page 33 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** uint32_t blkCnt; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** f32x4_t a, b, c, accumV; 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accumV = vdupq_n_f32(0.0f); 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** blkCnt = blockSize >> 2; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** while (blkCnt > 0) { 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vld1q(pA); 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** b = vld1q(pB); 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** c = vabdq(a, b); 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vabsq(a); 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** b = vabsq(b); 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vaddq(a, b); 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /* 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * May divide by zero when a and b have both the same lane at zero. 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** */ 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vrecip_medprec_f32(a); 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /* 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Force result of a division by 0 to 0. It the behavior of the 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * sklearn canberra function. 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** */ 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vdupq_m_n_f32(a, 0.0f, vcmpeqq(a, 0.0f)); 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** c = vmulq(c, a); 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accumV = vaddq(accumV, c); 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** pA += 4; 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** pB += 4; 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** blkCnt--; 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** blkCnt = blockSize & 3; 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** if (blkCnt > 0U) { 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** mve_pred16_t p0 = vctp32q(blkCnt); 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vldrwq_z_f32(pA, p0); 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** b = vldrwq_z_f32(pB, p0); 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** c = vabdq(a, b); 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vabsq(a); 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** b = vabsq(b); 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vaddq(a, b); 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /* 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * May divide by zero when a and b have both the same lane at zero. 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** */ 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vrecip_medprec_f32(a); 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /* 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Force result of a division by 0 to 0. It the behavior of the 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * sklearn canberra function. 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** */ 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vdupq_m_n_f32(a, 0.0f, vcmpeqq(a, 0.0f)); ARM GAS /tmp/ccRzkJVN.s page 34 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** c = vmulq(c, a); 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accumV = vaddq_m(accumV, accumV, c, p0); 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accum = vecAddAcrossF32Mve(accumV); 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** return (accum); 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #else 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #if defined(ARM_MATH_NEON) 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #include "NEMath.h" 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** float32_t arm_canberra_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** { 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** float32_t accum=0.0f, tmpA, tmpB,diff,sum; 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** uint32_t blkCnt; 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** float32x4_t a,b,c,accumV; 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** float32x2_t accumV2; 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** uint32x4_t isZeroV; 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** float32x4_t zeroV = vdupq_n_f32(0.0f); 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accumV = vdupq_n_f32(0.0f); 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** blkCnt = blockSize >> 2; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** while(blkCnt > 0) 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** { 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vld1q_f32(pA); 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** b = vld1q_f32(pB); 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** c = vabdq_f32(a,b); 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vabsq_f32(a); 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** b = vabsq_f32(b); 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vaddq_f32(a,b); 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** isZeroV = vceqq_f32(a,zeroV); 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /* 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * May divide by zero when a and b have both the same lane at zero. 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** */ 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vinvq_f32(a); 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** /* 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * Force result of a division by 0 to 0. It the behavior of the 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** * sklearn canberra function. 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** */ 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** a = vreinterpretq_f32_s32(vbicq_s32(vreinterpretq_s32_f32(a),vreinterpretq_s32_u32(isZeroV) 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** c = vmulq_f32(c,a); 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accumV = vaddq_f32(accumV,c); 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** pA += 4; 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** pB += 4; 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** blkCnt --; 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accum = vget_lane_f32(accumV2, 0) + vget_lane_f32(accumV2, 1); ARM GAS /tmp/ccRzkJVN.s page 35 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** blkCnt = blockSize & 3; 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** while(blkCnt > 0) 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** { 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** tmpA = *pA++; 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** tmpB = *pB++; 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** diff = fabsf(tmpA - tmpB); 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** sum = fabsf(tmpA) + fabsf(tmpB); 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** if ((tmpA != 0.0f) || (tmpB != 0.0f)) 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** { 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accum += (diff / sum); 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** blkCnt --; 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** return(accum); 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** #else 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** float32_t arm_canberra_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** { 882 .loc 3 196 0 883 .cfi_startproc 884 @ args = 0, pretend = 0, frame = 0 885 @ frame_needed = 0, uses_anonymous_args = 0 886 @ link register save eliminated. 887 .LVL138: 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** float32_t accum=0.0f, tmpA, tmpB,diff,sum; 888 .loc 3 197 0 889 0000 9FED110A vldr.32 s0, .L152 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** while(blockSize > 0) 890 .loc 3 199 0 891 0004 F2B1 cbz r2, .L147 892 .LVL139: 893 .L146: 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** { 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** tmpA = *pA++; 894 .loc 3 201 0 895 0006 F0EC017A vldmia.32 r0!, {s15} 896 .LVL140: 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** tmpB = *pB++; 897 .loc 3 202 0 898 000a B1EC016A vldmia.32 r1!, {s12} 899 .LVL141: 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** diff = fabsf(tmpA - tmpB); 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** sum = fabsf(tmpA) + fabsf(tmpB); 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** if ((tmpA != 0.0f) || (tmpB != 0.0f)) 900 .loc 3 206 0 901 000e F5EE407A vcmp.f32 s15, #0 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** sum = fabsf(tmpA) + fabsf(tmpB); 902 .loc 3 204 0 903 0012 77EEC66A vsub.f32 s13, s15, s12 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** if ((tmpA != 0.0f) || (tmpB != 0.0f)) 904 .loc 3 205 0 ARM GAS /tmp/ccRzkJVN.s page 36 905 0016 B0EEE77A vabs.f32 s14, s15 906 001a F0EEC65A vabs.f32 s11, s12 907 .loc 3 206 0 908 001e F1EE10FA vmrs APSR_nzcv, FPSCR 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** sum = fabsf(tmpA) + fabsf(tmpB); 909 .loc 3 204 0 910 0022 F0EEE66A vabs.f32 s13, s13 911 .LVL142: 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** if ((tmpA != 0.0f) || (tmpB != 0.0f)) 912 .loc 3 205 0 913 0026 37EE257A vadd.f32 s14, s14, s11 914 .LVL143: 915 .loc 3 206 0 916 002a 04D1 bne .L144 917 002c B5EE406A vcmp.f32 s12, #0 918 0030 F1EE10FA vmrs APSR_nzcv, FPSCR 919 0034 03D0 beq .L145 920 .L144: 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** { 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** accum += (diff / sum); 921 .loc 3 208 0 922 0036 C6EE877A vdiv.f32 s15, s13, s14 923 .LVL144: 924 003a 30EE270A vadd.f32 s0, s0, s15 925 .LVL145: 926 .L145: 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** { 927 .loc 3 199 0 928 003e 013A subs r2, r2, #1 929 .LVL146: 930 0040 E1D1 bne .L146 931 0042 7047 bx lr 932 .LVL147: 933 .L147: 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** blockSize --; 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** return(accum); 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_canberra_distance_f32.c **** } 934 .loc 3 213 0 935 0044 7047 bx lr 936 .L153: 937 0046 00BF .align 2 938 .L152: 939 0048 00000000 .word 0 940 .cfi_endproc 941 .LFE153: 943 .section .text.arm_chebyshev_distance_f32,"ax",%progbits 944 .align 1 945 .p2align 2,,3 946 .global arm_chebyshev_distance_f32 947 .syntax unified 948 .thumb 949 .thumb_func 950 .fpu fpv4-sp-d16 952 arm_chebyshev_distance_f32: 953 .LFB154: ARM GAS /tmp/ccRzkJVN.s page 37 954 .file 4 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distan 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Title: arm_chebyshev_distance_f32.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Description: Chebyshev distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** /** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** @addtogroup FloatDist 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** @{ 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** */ 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** /** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * @brief Chebyshev distance between two vectors 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * @param[in] pA First vector 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * @param[in] pB Second vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * @param[in] blockSize vector length 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * @return distance 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #include "arm_helium_utils.h" 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #include "arm_vec_math.h" 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** float32_t arm_chebyshev_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** uint32_t blkCnt; /* loop counters */ 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** f32x4_t vecA, vecB; ARM GAS /tmp/ccRzkJVN.s page 38 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** f32x4_t vecDiff = vdupq_n_f32(0.0); 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** float32_t maxValue = 0.0; 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blkCnt = blockSize >> 2; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** while (blkCnt > 0U) { 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** vecA = vld1q(pA); 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** pA += 4; 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** vecB = vld1q(pB); 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** pB += 4; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** /* 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * update per-lane max. 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** */ 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** vecDiff = vmaxnmaq(vsubq(vecA, vecB), vecDiff); 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** /* 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Decrement the blockSize loop counter 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** */ 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blkCnt--; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** /* 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * tail 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * (will be merged thru tail predication) 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** */ 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blkCnt = blockSize & 3; 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** if (blkCnt > 0U) { 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** mve_pred16_t p0 = vctp32q(blkCnt); 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** vecA = vldrwq_z_f32(pA, p0); 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** vecB = vldrwq_z_f32(pB, p0); 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** /* 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Get current max per lane and current index per lane 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * when a max is selected 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** */ 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** vecDiff = vmaxnmaq_m(vecDiff, vsubq(vecA, vecB), p0); 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** /* 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** * Get max value across the vector 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** */ 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** return vmaxnmavq(maxValue, vecDiff); 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #else 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #if defined(ARM_MATH_NEON) 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #include "NEMath.h" 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** float32_t arm_chebyshev_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** float32_t diff=0.0f, maxVal=0.0f, tmpA, tmpB; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** uint32_t blkCnt; 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** float32x4_t a,b,diffV, maxValV; 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** float32x2_t maxValV2; 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** if (blockSize <= 3) 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpA = *pA++; ARM GAS /tmp/ccRzkJVN.s page 39 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpB = *pB++; 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** diff = fabsf(tmpA - tmpB); 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxVal = diff; 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blockSize--; 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** while(blockSize > 0) 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpA = *pA++; 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpB = *pB++; 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** diff = fabsf(tmpA - tmpB); 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** if (diff > maxVal) 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxVal = diff; 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blockSize --; 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** else 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** a = vld1q_f32(pA); 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** b = vld1q_f32(pB); 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** pA += 4; 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** pB += 4; 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** diffV = vabdq_f32(a,b); 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blockSize -= 4; 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxValV = diffV; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blkCnt = blockSize >> 2; 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** while(blkCnt > 0) 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** a = vld1q_f32(pA); 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** b = vld1q_f32(pB); 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** diffV = vabdq_f32(a,b); 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxValV = vmaxq_f32(maxValV, diffV); 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** pA += 4; 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** pB += 4; 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blkCnt --; 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxValV2 = vpmax_f32(vget_low_f32(maxValV),vget_high_f32(maxValV)); 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxValV2 = vpmax_f32(maxValV2,maxValV2); 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxVal = vget_lane_f32(maxValV2,0); 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blkCnt = blockSize & 3; 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** while(blkCnt > 0) 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpA = *pA++; 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpB = *pB++; 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** diff = fabsf(tmpA - tmpB); 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** if (diff > maxVal) ARM GAS /tmp/ccRzkJVN.s page 40 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxVal = diff; 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blkCnt --; 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** return(maxVal); 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** #else 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** float32_t arm_chebyshev_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 955 .loc 4 182 0 956 .cfi_startproc 957 @ args = 0, pretend = 0, frame = 0 958 @ frame_needed = 0, uses_anonymous_args = 0 959 @ link register save eliminated. 960 .LVL148: 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** float32_t diff=0.0f, maxVal,tmpA, tmpB; 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpA = *pA++; 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpB = *pB++; 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** diff = fabsf(tmpA - tmpB); 961 .loc 4 187 0 962 0000 90ED000A vldr.32 s0, [r0] 963 0004 D1ED007A vldr.32 s15, [r1] 964 0008 30EE670A vsub.f32 s0, s0, s15 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxVal = diff; 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blockSize--; 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** while(blockSize > 0) 965 .loc 4 191 0 966 000c 013A subs r2, r2, #1 967 .LVL149: 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpB = *pB++; 968 .loc 4 185 0 969 000e 00F10400 add r0, r0, #4 970 .LVL150: 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxVal = diff; 971 .loc 4 187 0 972 0012 B0EEC00A vabs.f32 s0, s0 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** diff = fabsf(tmpA - tmpB); 973 .loc 4 186 0 974 0016 01F10401 add r1, r1, #4 975 .LVL151: 976 .loc 4 191 0 977 001a 10D0 beq .L154 978 .LVL152: 979 .L156: 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpA = *pA++; 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** tmpB = *pB++; 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** diff = fabsf(tmpA - tmpB); 980 .loc 4 195 0 981 001c F0EC017A vldmia.32 r0!, {s15} 982 .LVL153: 983 0020 B1EC017A vldmia.32 r1!, {s14} ARM GAS /tmp/ccRzkJVN.s page 41 984 .LVL154: 985 0024 77EEC77A vsub.f32 s15, s15, s14 986 0028 F0EEE77A vabs.f32 s15, s15 987 002c B4EEE70A vcmpe.f32 s0, s15 988 0030 F1EE10FA vmrs APSR_nzcv, FPSCR 989 0034 B8BF it lt 990 0036 B0EE670A vmovlt.f32 s0, s15 991 .LVL155: 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 992 .loc 4 191 0 993 003a 013A subs r2, r2, #1 994 .LVL156: 995 003c EED1 bne .L156 996 .LVL157: 997 .L154: 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** if (diff > maxVal) 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** { 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** maxVal = diff; 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** blockSize --; 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** return(maxVal); 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_chebyshev_distance_f32.c **** } 998 .loc 4 204 0 999 003e 7047 bx lr 1000 .cfi_endproc 1001 .LFE154: 1003 .section .text.arm_cityblock_distance_f32,"ax",%progbits 1004 .align 1 1005 .p2align 2,,3 1006 .global arm_cityblock_distance_f32 1007 .syntax unified 1008 .thumb 1009 .thumb_func 1010 .fpu fpv4-sp-d16 1012 arm_cityblock_distance_f32: 1013 .LFB155: 1014 .file 5 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distan 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * Title: arm_cityblock_distance_f32.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * Description: Cityblock (Manhattan) distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * ARM GAS /tmp/ccRzkJVN.s page 42 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** /** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** @addtogroup FloatDist 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** @{ 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** */ 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** /** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * @brief Cityblock (Manhattan) distance between two vectors 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * @param[in] pA First vector 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * @param[in] pB Second vector 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * @param[in] blockSize vector length 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * @return distance 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** */ 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #include "arm_helium_utils.h" 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #include "arm_vec_math.h" 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** float32_t arm_cityblock_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** { 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** uint32_t blkCnt; 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** f32x4_t a, b, accumV, tempV; 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accumV = vdupq_n_f32(0.0f); 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** blkCnt = blockSize >> 2; 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** while (blkCnt > 0U) { 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** a = vld1q(pA); 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** b = vld1q(pB); 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** tempV = vabdq(a, b); 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accumV = vaddq(accumV, tempV); 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** pA += 4; 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** pB += 4; 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** blkCnt--; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** } 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** /* 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * tail 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** * (will be merged thru tail predication) 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** */ 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** blkCnt = blockSize & 3; ARM GAS /tmp/ccRzkJVN.s page 43 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** if (blkCnt > 0U) { 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** mve_pred16_t p0 = vctp32q(blkCnt); 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** a = vldrwq_z_f32(pA, p0); 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** b = vldrwq_z_f32(pB, p0); 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** tempV = vabdq(a, b); 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accumV = vaddq_m(accumV, accumV, tempV, p0); 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** } 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** return vecAddAcrossF32Mve(accumV); 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** } 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #else 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #if defined(ARM_MATH_NEON) 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #include "NEMath.h" 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** float32_t arm_cityblock_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** { 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** float32_t accum=0.0f, tmpA, tmpB; 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** uint32_t blkCnt; 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** float32x4_t a,b,accumV, tempV; 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** float32x2_t accumV2; 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accumV = vdupq_n_f32(0.0f); 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** blkCnt = blockSize >> 2; 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** while(blkCnt > 0) 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** { 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** a = vld1q_f32(pA); 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** b = vld1q_f32(pB); 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** tempV = vabdq_f32(a,b); 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accumV = vaddq_f32(accumV, tempV); 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** pA += 4; 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** pB += 4; 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** blkCnt --; 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** } 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accumV2 = vpadd_f32(accumV2,accumV2); 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accum = vget_lane_f32(accumV2,0); 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** blkCnt = blockSize & 3; 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** while(blkCnt > 0) 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** { 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** tmpA = *pA++; 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** tmpB = *pB++; 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accum += fabsf(tmpA - tmpB); 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** blkCnt --; 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** } 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** return(accum); 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** } 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** ARM GAS /tmp/ccRzkJVN.s page 44 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** #else 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** float32_t arm_cityblock_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** { 1015 .loc 5 135 0 1016 .cfi_startproc 1017 @ args = 0, pretend = 0, frame = 0 1018 @ frame_needed = 0, uses_anonymous_args = 0 1019 @ link register save eliminated. 1020 .LVL158: 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** float32_t accum,tmpA, tmpB; 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accum = 0.0f; 1021 .loc 5 138 0 1022 0000 9FED080A vldr.32 s0, .L166 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** while(blockSize > 0) 1023 .loc 5 139 0 1024 0004 62B1 cbz r2, .L164 1025 .LVL159: 1026 .L163: 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** { 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** tmpA = *pA++; 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** tmpB = *pB++; 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** accum += fabsf(tmpA - tmpB); 1027 .loc 5 143 0 1028 0006 F0EC017A vldmia.32 r0!, {s15} 1029 .LVL160: 1030 000a B1EC017A vldmia.32 r1!, {s14} 1031 .LVL161: 1032 000e 77EEC77A vsub.f32 s15, s15, s14 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** while(blockSize > 0) 1033 .loc 5 139 0 1034 0012 013A subs r2, r2, #1 1035 .LVL162: 1036 .loc 5 143 0 1037 0014 F0EEE77A vabs.f32 s15, s15 1038 0018 30EE270A vadd.f32 s0, s0, s15 1039 .LVL163: 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** while(blockSize > 0) 1040 .loc 5 139 0 1041 001c F3D1 bne .L163 1042 001e 7047 bx lr 1043 .LVL164: 1044 .L164: 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** blockSize --; 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** } 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** return(accum); 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cityblock_distance_f32.c **** } 1045 .loc 5 149 0 1046 0020 7047 bx lr 1047 .L167: 1048 0022 00BF .align 2 1049 .L166: 1050 0024 00000000 .word 0 1051 .cfi_endproc 1052 .LFE155: ARM GAS /tmp/ccRzkJVN.s page 45 1054 .section .text.arm_correlation_distance_f32,"ax",%progbits 1055 .align 1 1056 .p2align 2,,3 1057 .global arm_correlation_distance_f32 1058 .syntax unified 1059 .thumb 1060 .thumb_func 1061 .fpu fpv4-sp-d16 1063 arm_correlation_distance_f32: 1064 .LFB156: 1065 .file 6 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_dist 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * Title: arm_correlation_distance_f32.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * Description: Correlation distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** /** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** @addtogroup FloatDist 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** @{ 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** */ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * @brief Correlation distance between two vectors 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * The input vectors are modified in place ! 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * @param[in] pA First vector 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * @param[in] pB Second vector ARM GAS /tmp/ccRzkJVN.s page 46 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * @param[in] blockSize vector length 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * @return distance 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** * 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** */ 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** float32_t arm_correlation_distance_f32(float32_t *pA,float32_t *pB, uint32_t blockSize) 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** { 1066 .loc 6 53 0 1067 .cfi_startproc 1068 @ args = 0, pretend = 0, frame = 24 1069 @ frame_needed = 0, uses_anonymous_args = 0 1070 .LVL165: 1071 0000 70B5 push {r4, r5, r6, lr} 1072 .LCFI10: 1073 .cfi_def_cfa_offset 16 1074 .cfi_offset 4, -16 1075 .cfi_offset 5, -12 1076 .cfi_offset 6, -8 1077 .cfi_offset 14, -4 1078 0002 1446 mov r4, r2 1079 0004 86B0 sub sp, sp, #24 1080 .LCFI11: 1081 .cfi_def_cfa_offset 40 1082 .loc 6 53 0 1083 0006 0D46 mov r5, r1 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** float32_t ma,mb,pwra,pwrb,dot,tmp; 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** arm_mean_f32(pA, blockSize, &ma); 1084 .loc 6 56 0 1085 0008 01AA add r2, sp, #4 1086 .LVL166: 1087 000a 2146 mov r1, r4 1088 .LVL167: 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** float32_t ma,mb,pwra,pwrb,dot,tmp; 1089 .loc 6 53 0 1090 000c 0646 mov r6, r0 1091 .loc 6 56 0 1092 000e FFF7FEFF bl arm_mean_f32 1093 .LVL168: 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** arm_mean_f32(pB, blockSize, &mb); 1094 .loc 6 57 0 1095 0012 2146 mov r1, r4 1096 0014 2846 mov r0, r5 1097 0016 02AA add r2, sp, #8 1098 0018 FFF7FEFF bl arm_mean_f32 1099 .LVL169: 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** arm_offset_f32(pA, -ma, pA, blockSize); 1100 .loc 6 59 0 1101 001c 9DED010A vldr.32 s0, [sp, #4] 1102 0020 2246 mov r2, r4 1103 0022 3146 mov r1, r6 1104 0024 3046 mov r0, r6 1105 0026 B1EE400A vneg.f32 s0, s0 1106 002a FFF7FEFF bl arm_offset_f32 1107 .LVL170: 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** arm_offset_f32(pB, -mb, pB, blockSize); ARM GAS /tmp/ccRzkJVN.s page 47 1108 .loc 6 60 0 1109 002e 9DED020A vldr.32 s0, [sp, #8] 1110 0032 2246 mov r2, r4 1111 0034 B1EE400A vneg.f32 s0, s0 1112 0038 2946 mov r1, r5 1113 003a 2846 mov r0, r5 1114 003c FFF7FEFF bl arm_offset_f32 1115 .LVL171: 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** arm_power_f32(pA, blockSize, &pwra); 1116 .loc 6 62 0 1117 0040 2146 mov r1, r4 1118 0042 3046 mov r0, r6 1119 0044 03AA add r2, sp, #12 1120 0046 FFF7FEFF bl arm_power_f32 1121 .LVL172: 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** arm_power_f32(pB, blockSize, &pwrb); 1122 .loc 6 63 0 1123 004a 2146 mov r1, r4 1124 004c 2846 mov r0, r5 1125 004e 04AA add r2, sp, #16 1126 0050 FFF7FEFF bl arm_power_f32 1127 .LVL173: 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** arm_dot_prod_f32(pA,pB,blockSize,&dot); 1128 .loc 6 65 0 1129 0054 2946 mov r1, r5 1130 0056 3046 mov r0, r6 1131 0058 2246 mov r2, r4 1132 005a 05AB add r3, sp, #20 1133 005c FFF7FEFF bl arm_dot_prod_f32 1134 .LVL174: 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** dot = dot / blockSize; 1135 .loc 6 67 0 1136 0060 07EE904A vmov s15, r4 @ int 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** pwra = pwra / blockSize; 1137 .loc 6 68 0 1138 0064 9DED036A vldr.32 s12, [sp, #12] 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** pwrb = pwrb / blockSize; 1139 .loc 6 69 0 1140 0068 DDED045A vldr.32 s11, [sp, #16] 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** pwra = pwra / blockSize; 1141 .loc 6 67 0 1142 006c DDED056A vldr.32 s13, [sp, #20] 1143 0070 F8EE677A vcvt.f32.u32 s15, s15 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** arm_sqrt_f32(pwra * pwrb,&tmp); 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** return(1.0f - dot / tmp); 1144 .loc 6 73 0 1145 0074 B7EE000A vmov.f32 s0, #1.0e+0 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** pwrb = pwrb / blockSize; 1146 .loc 6 68 0 1147 0078 86EE277A vdiv.f32 s14, s12, s15 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 1148 .loc 6 69 0 ARM GAS /tmp/ccRzkJVN.s page 48 1149 007c 85EEA76A vdiv.f32 s12, s11, s15 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 1150 .loc 6 71 0 1151 0080 27EE067A vmul.f32 s14, s14, s12 1152 .LVL175: 1153 .LBB16: 1154 .LBB17: 1155 .file 7 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /****************************************************************************** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @file arm_math.h 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Public header file for CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @version V1.7.0 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @date 18. March 2019 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ******************************************************************************/ 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Copyright (c) 2010-2019 Arm Limited or its affiliates. All rights reserved. 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * SPDX-License-Identifier: Apache-2.0 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Licensed under the Apache License, Version 2.0 (the License); you may 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * not use this file except in compliance with the License. 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * You may obtain a copy of the License at 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * www.apache.org/licenses/LICENSE-2.0 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Unless required by applicable law or agreed to in writing, software 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * See the License for the specific language governing permissions and 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * limitations under the License. 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** \mainpage CMSIS DSP Software Library 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Introduction 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This user manual describes the CMSIS DSP software library, 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * a suite of common signal processing functions for use on Cortex-M and Cortex-A processor 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * based devices. 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library is divided into a number of functions each covering a specific category: 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Basic math functions 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Fast math functions 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Complex math functions 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Filtering functions 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Matrix functions 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Transform functions 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Motor control functions 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Statistical functions 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Support functions 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Interpolation functions 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Support Vector Machine functions (SVM) 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Bayes classifier functions 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Distance functions 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM GAS /tmp/ccRzkJVN.s page 49 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library has generally separate functions for operating on 8-bit integers, 16-bit integers, 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 32-bit integer and 32-bit floating-point values. 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Using the Library 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library installer contains prebuilt versions of the libraries in the Lib fold 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Here is the list of pre-built libraries : 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7lfdp_math.lib (Cortex-M7, Little endian, Double Precision Floating Point Unit) 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7bfdp_math.lib (Cortex-M7, Big endian, Double Precision Floating Point Unit) 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7lfsp_math.lib (Cortex-M7, Little endian, Single Precision Floating Point Unit) 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7bfsp_math.lib (Cortex-M7, Big endian and Single Precision Floating Point Unit on 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7l_math.lib (Cortex-M7, Little endian) 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM7b_math.lib (Cortex-M7, Big endian) 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM4lf_math.lib (Cortex-M4, Little endian, Floating Point Unit) 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM4bf_math.lib (Cortex-M4, Big endian, Floating Point Unit) 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM4l_math.lib (Cortex-M4, Little endian) 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM4b_math.lib (Cortex-M4, Big endian) 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM3l_math.lib (Cortex-M3, Little endian) 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM3b_math.lib (Cortex-M3, Big endian) 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+, Little endian) 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+, Big endian) 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MBLl_math.lib (Armv8-M Baseline, Little endian) 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MMLl_math.lib (Armv8-M Mainline, Little endian) 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MMLlfsp_math.lib (Armv8-M Mainline, Little endian, Single Precision Floating Point 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MMLld_math.lib (Armv8-M Mainline, Little endian, DSP instructions) 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - arm_ARMv8MMLldfsp_math.lib (Armv8-M Mainline, Little endian, DSP instructions, Single Precis 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library functions are declared in the public file arm_math.h which is placed 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Simply include this file and link the appropriate library in the application and begin calling 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * public header file arm_math.h for Cortex-M cores with little endian and big endi 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Examples 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * -------- 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library ships with a number of examples which demonstrate how to use the library functions 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Toolchain Support 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library is now tested on Fast Models building with cmake. 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Core M0, M7, A5 are tested. 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Building the Library 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library installer contains a project file to rebuild libraries on MDK toolchain in the 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * CMSIS-DSP in ARM::CMSIS Pack 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ----------------------------- 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The following files relevant to CMSIS-DSP are present in the ARM::CMSIS Pack directorie 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |File/Folder |Content ARM GAS /tmp/ccRzkJVN.s page 51 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |---------------------------------|----------------------------------------------------------- 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\Documentation\\DSP | This documentation 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\DSP_Lib_TestSuite | DSP_Lib test suite 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Examples | Example projects demonstrating the usage of the library fu 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Include | DSP_Lib include files 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Lib | DSP_Lib binaries 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Projects | Projects to rebuild DSP_Lib binaries 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * |\b CMSIS\\DSP\\Source | DSP_Lib source files 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Revision History of CMSIS-DSP 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ------------ 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Please refer to \ref ChangeLog_pg. 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupMath Basic Math Functions 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupFastMath Fast Math Functions 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This set of functions provides a fast approximation to sine, cosine, and square root. 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * As compared to most of the other functions in the CMSIS math library, the fast math functions 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * operate on individual values and not arrays. 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There are separate functions for Q15, Q31, and floating-point data. 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupCmplxMath Complex Math Functions 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This set of functions operates on complex data vectors. 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The data in the complex arrays is stored in an interleaved fashion 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * (real, imag, real, imag, ...). 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * In the API functions, the number of samples in a complex array refers 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * to the number of complex values; the array contains twice this number of 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * real values. 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupFilters Filtering Functions 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupMatrix Matrix Functions 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This set of functions provides basic matrix math operations. 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The functions operate on matrix data structures. For example, 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * the type 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * definition for the floating-point matrix structure is shown 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * below: 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     typedef struct
 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     {
 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *       uint16_t numRows;     // number of rows of the matrix.
 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *       uint16_t numCols;     // number of columns of the matrix.
 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *       float32_t *pData;     // points to the data of the matrix.
ARM GAS  /tmp/ccRzkJVN.s 			page 52


 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     } arm_matrix_instance_f32;
 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There are similar definitions for Q15 and Q31 data types. 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The structure specifies the size of the matrix and then points to 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * an array of data. The array is of size numRows X numCols 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * and the values are arranged in row order. That is, the 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * matrix element (i, j) is stored at: 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     pData[i*numCols + j]
 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Init Functions 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There is an associated initialization function for each type of matrix 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * data structure. 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The initialization function sets the values of the internal structure fields. 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Refer to \ref arm_mat_init_f32(), \ref arm_mat_init_q31() and \ref arm_mat_init_q15() 238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * for floating-point, Q31 and Q15 types, respectively. 239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Use of the initialization function is optional. However, if initialization function is used 242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * then the instance structure cannot be placed into a const data section. 243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * To place the instance structure in a const data 244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * section, manually initialize the data structure. For example: 245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * arm_matrix_instance_f32 S = {nRows, nColumns, pData};
 247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * arm_matrix_instance_q31 S = {nRows, nColumns, pData};
 248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * arm_matrix_instance_q15 S = {nRows, nColumns, pData};
 249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * where nRows specifies the number of rows, nColumns 251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * specifies the number of columns, and pData points to the 252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * data array. 253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Size Checking 255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * By default all of the matrix functions perform size checking on the input and 256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * output matrices. For example, the matrix addition function verifies that the 257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * two input matrices and the output matrix all have the same number of rows and 258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * columns. If the size check fails the functions return: 259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     ARM_MATH_SIZE_MISMATCH
 261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Otherwise the functions return 263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     ARM_MATH_SUCCESS
 265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There is some overhead associated with this matrix size checking. 267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The matrix size checking is enabled via the \#define 268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
 269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  *     ARM_MATH_MATRIX_CHECK
 270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****  * 
271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * within the library project settings. By default this macro is defined 272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * and size checking is enabled. By changing the project settings and 273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * undefining this macro size checking is eliminated and the functions 274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * run a bit faster. With size checking disabled the functions always 275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * return ARM_MATH_SUCCESS. 276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 53 278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupTransforms Transform Functions 280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupController Controller Functions 284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupStats Statistics Functions 288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupSupport Support Functions 292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupInterpolation Interpolation Functions 296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * These functions perform 1- and 2-dimensional interpolation of data. 297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Linear interpolation is used for 1-dimensional data and 298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * bilinear interpolation is used for 2-dimensional data. 299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupExamples Examples 303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupSVM SVM Functions 307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This set of functions is implementing SVM classification on 2 classes. 308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The training must be done from scikit-learn. The parameters can be easily 309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * generated from the scikit-learn object. Some examples are given in 310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * DSP/Testing/PatternGeneration/SVM.py 311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * If more than 2 classes are needed, the functions in this folder 313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * will have to be used, as building blocks, to do multi-class classification. 314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * No multi-class classification is provided in this SVM folder. 316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupBayes Bayesian estimators 322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Implement the naive gaussian Bayes estimator. 324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The training must be done from scikit-learn. 325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The parameters can be easily 327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * generated from the scikit-learn object. Some examples are given in 328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * DSP/Testing/PatternGeneration/Bayes.py 329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup groupDistance Distance functions 333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Distance functions for use with clustering algorithms. ARM GAS /tmp/ccRzkJVN.s page 54 335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There are distance functions for float vectors and boolean vectors. 336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifndef _ARM_MATH_H 341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define _ARM_MATH_H 342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __cplusplus 344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** extern "C" 345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 346:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 347:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 348:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Compiler specific diagnostic adjustment */ 349:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined ( __CC_ARM ) 350:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 ) 352:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 353:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __GNUC__ ) 354:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic push 355:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wsign-conversion" 356:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wconversion" 357:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wunused-parameter" 358:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 359:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __ICCARM__ ) 360:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __TI_ARM__ ) 362:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 363:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __CSMC__ ) 364:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 365:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __TASKING__ ) 366:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 367:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( _MSC_VER ) 368:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 369:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 370:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #error Unknown compiler 371:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 372:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 373:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 374:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Included for instrinsics definitions */ 375:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined (_MSC_VER ) 376:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 377:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __STATIC_FORCEINLINE static __forceinline 378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __STATIC_INLINE static __inline 379:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __ALIGNED(x) __declspec(align(x)) 380:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 381:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined (__GNUC_PYTHON__) 382:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 383:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __ALIGNED(x) __attribute__((aligned(x))) 384:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __STATIC_FORCEINLINE static __attribute__((inline)) 385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __STATIC_INLINE static __attribute__((inline)) 386:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wunused-function" 387:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #pragma GCC diagnostic ignored "-Wattributes" 388:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 389:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 390:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include "cmsis_compiler.h" 391:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif ARM GAS /tmp/ccRzkJVN.s page 55 392:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 393:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 394:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 395:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 396:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 397:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 398:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 400:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 401:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F64_MAX ((float64_t)DBL_MAX) 402:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F32_MAX ((float32_t)FLT_MAX) 403:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 404:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 405:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F16_MAX ((float16_t)FLT_MAX) 406:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 407:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 408:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F64_MIN (-DBL_MAX) 409:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F32_MIN (-FLT_MAX) 410:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 411:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 412:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F16_MIN (-(float16_t)FLT_MAX) 413:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 414:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 415:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F64_ABSMAX ((float64_t)DBL_MAX) 416:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F32_ABSMAX ((float32_t)FLT_MAX) 417:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 418:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 419:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F16_ABSMAX ((float16_t)FLT_MAX) 420:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 421:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 422:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F64_ABSMIN ((float64_t)0.0) 423:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F32_ABSMIN ((float32_t)0.0) 424:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 425:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 426:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define F16_ABSMIN ((float16_t)0.0) 427:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 428:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 429:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q31_MAX ((q31_t)(0x7FFFFFFFL)) 430:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q15_MAX ((q15_t)(0x7FFF)) 431:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q7_MAX ((q7_t)(0x7F)) 432:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q31_MIN ((q31_t)(0x80000000L)) 433:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q15_MIN ((q15_t)(0x8000)) 434:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q7_MIN ((q7_t)(0x80)) 435:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 436:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q31_ABSMAX ((q31_t)(0x7FFFFFFFL)) 437:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q15_ABSMAX ((q15_t)(0x7FFF)) 438:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q7_ABSMAX ((q7_t)(0x7F)) 439:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q31_ABSMIN ((q31_t)0) 440:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q15_ABSMIN ((q15_t)0) 441:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define Q7_ABSMIN ((q7_t)0) 442:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 443:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* evaluate ARM DSP feature */ 444:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if (defined (__ARM_FEATURE_DSP) && (__ARM_FEATURE_DSP == 1)) 445:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_DSP 1 446:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 447:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 448:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_NEON) ARM GAS /tmp/ccRzkJVN.s page 56 449:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 450:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 451:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 452:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined (ARM_MATH_HELIUM) 453:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_MVEF 454:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_FLOAT16 455:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 456:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined (ARM_MATH_MVEF) 458:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_MVEI 459:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define ARM_MATH_FLOAT16 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 461:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 462:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined (ARM_MATH_HELIUM) || defined(ARM_MATH_MVEF) || defined(ARM_MATH_MVEI) 463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #include 464:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 465:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 467:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 468:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Macros required for reciprocal calculation in Normalized LMS 469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 470:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 471:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define DELTA_Q31 ((q31_t)(0x100)) 472:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define DELTA_Q15 ((q15_t)0x5) 473:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define INDEX_MASK 0x0000003F 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifndef PI 475:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define PI 3.14159265358979f 476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 478:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Macros required for SINE and COSINE Fast math approximations 480:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define FAST_MATH_TABLE_SIZE 512 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define FAST_MATH_Q31_SHIFT (32 - 10) 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define FAST_MATH_Q15_SHIFT (16 - 10) 485:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define CONTROLLER_Q31_SHIFT (32 - 9) 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define TABLE_SPACING_Q31 0x400000 487:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define TABLE_SPACING_Q15 0x80 488:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 490:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Macros required for SINE and COSINE Controller functions 491:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1.31(q31) Fixed value of 2/360 */ 493:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* -1 to +1 is divided into 360 values so total spacing is (2/360) */ 494:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define INPUT_SPACING 0xB60B61 495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 496:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 497:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Macros for complex numbers 498:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 499:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 500:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Dimension C vector space */ 501:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define CMPLX_DIM 2 502:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Error status returned by some functions in the library. 505:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ ARM GAS /tmp/ccRzkJVN.s page 57 506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef enum 508:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_SUCCESS = 0, /**< No error */ 510:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_ARGUMENT_ERROR = -1, /**< One or more arguments are incorrect */ 511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_LENGTH_ERROR = -2, /**< Length of data buffer is incorrect */ 512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_SIZE_MISMATCH = -3, /**< Size of matrices is not compatible with the operation 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_NANINF = -4, /**< Not-a-number (NaN) or infinity is generated */ 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_SINGULAR = -5, /**< Input matrix is singular and cannot be inverted */ 515:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_MATH_TEST_FAILURE = -6 /**< Test Failed */ 516:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_status; 517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 518:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 519:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional data type in 1.7 format. 520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 521:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8_t q7_t; 522:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 524:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional data type in 1.15 format. 525:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16_t q15_t; 527:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 528:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 529:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional data type in 1.31 format. 530:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 531:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32_t q31_t; 532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 533:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 534:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 64-bit fractional data type in 1.63 format. 535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 536:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int64_t q63_t; 537:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 539:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point type definition. 540:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float float32_t; 542:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 543:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 544:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 64-bit floating-point type definition. 545:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 546:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef double float64_t; 547:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 548:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 549:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief vector types 550:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 551:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_NEON) || defined (ARM_MATH_MVEI) 552:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 553:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 64-bit fractional 128-bit vector data type in 1.63 format 554:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 555:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int64x2_t q63x2_t; 556:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 557:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 558:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector data type in 1.31 format. 559:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 560:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4_t q31x4_t; 561:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 562:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** ARM GAS /tmp/ccRzkJVN.s page 58 563:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 128-bit vector data type with 16-bit alignement in 1.15 format. 564:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 565:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(2) int16x8_t q15x8_t; 566:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 567:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 568:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 128-bit vector data type with 8-bit alignement in 1.7 format. 569:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 570:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(1) int8x16_t q7x16_t; 571:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 572:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 573:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector pair data type in 1.31 format. 574:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 575:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4x2_t q31x4x2_t; 576:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 577:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 578:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector quadruplet data type in 1.31 format. 579:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 580:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4x4_t q31x4x4_t; 581:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 582:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 583:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 128-bit vector pair data type in 1.15 format. 584:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 585:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8x2_t q15x8x2_t; 586:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 587:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 588:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 128-bit vector quadruplet data type in 1.15 format. 589:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 590:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8x4_t q15x8x4_t; 591:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 592:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 593:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 128-bit vector pair data type in 1.7 format. 594:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 595:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16x2_t q7x16x2_t; 596:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 597:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 598:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 128-bit vector quadruplet data type in 1.7 format. 599:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 600:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16x4_t q7x16x4_t; 601:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 602:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 603:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional data type in 9.23 format. 604:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 605:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32_t q23_t; 606:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 607:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 608:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector data type in 9.23 format. 609:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 610:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4_t q23x4_t; 611:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 612:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 613:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 64-bit status 128-bit vector data type. 614:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 615:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int64x2_t status64x2_t; 616:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 617:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 618:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit status 128-bit vector data type. 619:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ ARM GAS /tmp/ccRzkJVN.s page 59 620:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4_t status32x4_t; 621:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 622:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 623:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit status 128-bit vector data type. 624:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 625:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8_t status16x8_t; 626:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 627:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 628:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit status 128-bit vector data type. 629:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 630:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16_t status8x16_t; 631:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 632:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 633:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 634:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 635:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_NEON) || defined(ARM_MATH_MVEF) /* floating point vector*/ 636:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 637:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 128-bit vector type 638:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 639:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x4_t f32x4_t; 640:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 641:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 642:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 643:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 128-bit vector data type 644:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 645:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(2) float16x8_t f16x8_t; 646:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 647:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 648:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 649:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 128-bit vector pair data type 650:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 651:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x4x2_t f32x4x2_t; 652:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 653:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 654:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 128-bit vector quadruplet data type 655:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 656:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x4x4_t f32x4x4_t; 657:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 658:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 659:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 660:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 128-bit vector pair data type 661:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 662:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x8x2_t f16x8x2_t; 663:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 664:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 665:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 128-bit vector quadruplet data type 666:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 667:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x8x4_t f16x8x4_t; 668:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 669:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 670:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 671:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit ubiquitous 128-bit vector data type 672:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 673:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef union _any32x4_t 674:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 675:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32x4_t f; 676:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32x4_t i; ARM GAS /tmp/ccRzkJVN.s page 60 677:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } any32x4_t; 678:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 679:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 680:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 681:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit ubiquitous 128-bit vector data type 682:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 683:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef union _any16x8_t 684:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 685:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float16x8_t f; 686:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int16x8_t i; 687:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } any16x8_t; 688:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 689:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 690:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 691:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 692:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_NEON) 693:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 694:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 64-bit vector data type in 1.31 format. 695:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 696:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x2_t q31x2_t; 697:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 698:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 699:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 64-bit vector data type in 1.15 format. 700:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 701:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(2) int16x4_t q15x4_t; 702:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 703:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 704:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 64-bit vector data type in 1.7 format. 705:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 706:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(1) int8x8_t q7x8_t; 707:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 708:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 709:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit float 64-bit vector data type. 710:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 711:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x2_t f32x2_t; 712:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 713:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 714:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 715:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit float 64-bit vector data type. 716:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 717:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef __ALIGNED(2) float16x4_t f16x4_t; 718:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 719:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 720:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 721:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 128-bit vector triplet data type 722:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 723:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x4x3_t f32x4x3_t; 724:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 725:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 726:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 727:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 128-bit vector triplet data type 728:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 729:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x8x3_t f16x8x3_t; 730:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 731:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 732:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 733:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 128-bit vector triplet data type in 1.31 format ARM GAS /tmp/ccRzkJVN.s page 61 734:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 735:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4x3_t q31x4x3_t; 736:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 737:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 738:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 128-bit vector triplet data type in 1.15 format 739:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 740:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8x3_t q15x8x3_t; 741:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 742:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 743:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 128-bit vector triplet data type in 1.7 format 744:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 745:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16x3_t q7x16x3_t; 746:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 747:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 748:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 64-bit vector pair data type 749:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 750:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x2x2_t f32x2x2_t; 751:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 752:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 753:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 64-bit vector triplet data type 754:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 755:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x2x3_t f32x2x3_t; 756:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 757:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 758:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit floating-point 64-bit vector quadruplet data type 759:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 760:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float32x2x4_t f32x2x4_t; 761:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 762:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 763:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 764:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 64-bit vector pair data type 765:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 766:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x4x2_t f16x4x2_t; 767:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 768:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 769:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 64-bit vector triplet data type 770:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 771:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x4x3_t f16x4x3_t; 772:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 773:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 774:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit floating-point 64-bit vector quadruplet data type 775:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 776:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef float16x4x4_t f16x4x4_t; 777:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 778:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 779:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 780:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 64-bit vector pair data type in 1.31 format 781:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 782:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x2x2_t q31x2x2_t; 783:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 784:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 785:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 64-bit vector triplet data type in 1.31 format 786:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 787:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x2x3_t q31x2x3_t; 788:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 789:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 790:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit fractional 64-bit vector quadruplet data type in 1.31 format ARM GAS /tmp/ccRzkJVN.s page 62 791:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 792:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4x3_t q31x2x4_t; 793:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 794:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 795:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 64-bit vector pair data type in 1.15 format 796:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 797:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x4x2_t q15x4x2_t; 798:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 799:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 800:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 64-bit vector triplet data type in 1.15 format 801:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 802:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x4x2_t q15x4x3_t; 803:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 804:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 805:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit fractional 64-bit vector quadruplet data type in 1.15 format 806:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 807:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x4x3_t q15x4x4_t; 808:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 809:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 810:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 64-bit vector pair data type in 1.7 format 811:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 812:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x8x2_t q7x8x2_t; 813:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 814:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 815:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 64-bit vector triplet data type in 1.7 format 816:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 817:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x8x3_t q7x8x3_t; 818:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 819:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 820:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit fractional 64-bit vector quadruplet data type in 1.7 format 821:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 822:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x8x4_t q7x8x4_t; 823:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 825:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit ubiquitous 64-bit vector data type 826:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 827:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef union _any32x2_t 828:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 829:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32x2_t f; 830:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32x2_t i; 831:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } any32x2_t; 832:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 833:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_FLOAT16) 834:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 835:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit ubiquitous 64-bit vector data type 836:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 837:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef union _any16x4_t 838:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 839:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float16x4_t f; 840:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int16x4_t i; 841:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } any16x4_t; 842:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 843:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 844:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 845:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 32-bit status 64-bit vector data type. 846:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 847:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int32x4_t status32x2_t; ARM GAS /tmp/ccRzkJVN.s page 63 848:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 849:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 850:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 16-bit status 64-bit vector data type. 851:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 852:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int16x8_t status16x4_t; 853:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 854:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 855:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 8-bit status 64-bit vector data type. 856:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 857:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef int8x16_t status8x8_t; 858:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 859:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 860:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 861:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 862:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 863:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 864:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief definition to read/write two 16 bit values. 865:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @deprecated 866:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 867:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined ( __CC_ARM ) 868:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t __packed 869:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __ARMCC_VERSION ) && ( __ARMCC_VERSION >= 6010050 ) 870:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 871:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __GNUC__ ) 872:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 873:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __ICCARM__ ) 874:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t __packed 875:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __TI_ARM__ ) 876:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 877:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __CSMC__ ) 878:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 879:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __TASKING__ ) 880:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE __un(aligned) int32_t 881:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined(_MSC_VER ) 882:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_TYPE int32_t 883:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 884:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #error Unknown compiler 885:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 886:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 887:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32(addr) (*(__SIMD32_TYPE **) & (addr)) 888:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD32_CONST(addr) ( (__SIMD32_TYPE * ) (addr)) 889:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define _SIMD32_OFFSET(addr) (*(__SIMD32_TYPE * ) (addr)) 890:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __SIMD64(addr) (*( int64_t **) & (addr)) 891:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 892:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define STEP(x) (x) <= 0 ? 0 : 1 893:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define SQ(x) ((x) * (x)) 894:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 895:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* SIMD replacement */ 896:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 897:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 898:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 899:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 2 Q15 from Q15 pointer. 900:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 901:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 902:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 903:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q15x2 ( 904:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pQ15) ARM GAS /tmp/ccRzkJVN.s page 64 905:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 906:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 907:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 908:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 909:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, pQ15, 4); 910:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 911:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val = (pQ15[1] << 16) | (pQ15[0] & 0x0FFFF) ; 912:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 913:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 914:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); 915:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 916:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 917:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 918:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 2 Q15 from Q15 pointer and increment pointer afterwards. 919:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 920:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 921:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 922:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q15x2_ia ( 923:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t ** pQ15) 924:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 925:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 926:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 927:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 928:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, *pQ15, 4); 929:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 930:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val = ((*pQ15)[1] << 16) | ((*pQ15)[0] & 0x0FFFF); 931:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 932:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 933:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ15 += 2; 934:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); 935:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 936:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 937:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 938:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 2 Q15 from Q15 pointer and decrement pointer afterwards. 939:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 940:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 941:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 942:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q15x2_da ( 943:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t ** pQ15) 944:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 945:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 946:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 947:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 948:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, *pQ15, 4); 949:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 950:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val = ((*pQ15)[1] << 16) | ((*pQ15)[0] & 0x0FFFF); 951:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 952:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 953:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ15 -= 2; 954:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); 955:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 956:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 957:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 958:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Write 2 Q15 to Q15 pointer and increment pointer afterwards. 959:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 960:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] value Q31 value 961:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none ARM GAS /tmp/ccRzkJVN.s page 65 962:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 963:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void write_q15x2_ia ( 964:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t ** pQ15, 965:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t value) 966:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 967:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val = value; 968:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 969:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (*pQ15, &val, 4); 970:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 971:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ15)[0] = (val & 0x0FFFF); 972:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ15)[1] = (val >> 16) & 0x0FFFF; 973:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 974:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 975:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ15 += 2; 976:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 977:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 978:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 979:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Write 2 Q15 to Q15 pointer. 980:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ15 points to input value 981:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] value Q31 value 982:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 983:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 984:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void write_q15x2 ( 985:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pQ15, 986:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t value) 987:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 988:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val = value; 989:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 990:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 991:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (pQ15, &val, 4); 992:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 993:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** pQ15[0] = val & 0x0FFFF; 994:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** pQ15[1] = val >> 16; 995:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 996:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 997:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 998:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 999:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1000:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 4 Q7 from Q7 pointer and increment pointer afterwards. 1001:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ7 points to input value 1002:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 1003:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1004:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q7x4_ia ( 1005:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t ** pQ7) 1006:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1007:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 1008:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1009:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1010:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 1011:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, *pQ7, 4); 1012:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 1013:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val =(((*pQ7)[3] & 0x0FF) << 24) | (((*pQ7)[2] & 0x0FF) << 16) | (((*pQ7)[1] & 0x0FF) << 8) | 1014:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1015:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1016:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ7 += 4; 1017:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1018:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); ARM GAS /tmp/ccRzkJVN.s page 66 1019:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1020:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1021:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1022:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Read 4 Q7 from Q7 pointer and decrement pointer afterwards. 1023:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ7 points to input value 1024:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return Q31 value 1025:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1026:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t read_q7x4_da ( 1027:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t ** pQ7) 1028:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1029:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val; 1030:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 1031:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (&val, *pQ7, 4); 1032:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 1033:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** val = ((((*pQ7)[3]) & 0x0FF) << 24) | ((((*pQ7)[2]) & 0x0FF) << 16) | ((((*pQ7)[1]) & 0x0FF) << 1034:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1035:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ7 -= 4; 1036:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1037:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (val); 1038:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1039:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1040:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1041:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Write 4 Q7 to Q7 pointer and increment pointer afterwards. 1042:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pQ7 points to input value 1043:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] value Q31 value 1044:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 1045:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1046:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void write_q7x4_ia ( 1047:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t ** pQ7, 1048:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t value) 1049:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1050:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t val = value; 1051:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifdef __ARM_FEATURE_UNALIGNED 1052:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** memcpy (*pQ7, &val, 4); 1053:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 1054:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ7)[0] = val & 0x0FF; 1055:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ7)[1] = (val >> 8) & 0x0FF; 1056:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ7)[2] = (val >> 16) & 0x0FF; 1057:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (*pQ7)[3] = (val >> 24) & 0x0FF; 1058:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1059:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1060:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pQ7 += 4; 1061:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1062:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1063:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1064:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1065:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** Normally those kind of definitions are in a compiler file 1066:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** in Core or Core_A. 1067:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1068:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** But for MSVC compiler it is a bit special. The goal is very specific 1069:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** to CMSIS-DSP and only to allow the use of this library from other 1070:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** systems like Python or Matlab. 1071:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1072:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** MSVC is not going to be used to cross-compile to ARM. So, having a MSVC 1073:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** compiler file in Core or Core_A would not make sense. 1074:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1075:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ ARM GAS /tmp/ccRzkJVN.s page 67 1076:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined ( _MSC_VER ) || defined(__GNUC_PYTHON__) 1077:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint8_t __CLZ(uint32_t data) 1078:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1079:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (data == 0U) { return 32U; } 1080:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1081:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t count = 0U; 1082:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t mask = 0x80000000U; 1083:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1084:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** while ((data & mask) == 0U) 1085:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1086:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** count += 1U; 1087:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** mask = mask >> 1U; 1088:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1089:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return count; 1090:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1091:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1092:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) 1093:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1094:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if ((sat >= 1U) && (sat <= 32U)) 1095:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1096:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const int32_t max = (int32_t)((1U << (sat - 1U)) - 1U); 1097:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const int32_t min = -1 - max ; 1098:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (val > max) 1099:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return max; 1101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else if (val < min) 1103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return min; 1105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return val; 1108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) 1111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (sat <= 31U) 1113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t max = ((1U << sat) - 1U); 1115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (val > (int32_t)max) 1116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return max; 1118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else if (val < 0) 1120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return 0U; 1122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (uint32_t)val; 1125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifndef ARM_MATH_DSP 1129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief definition to pack two 16 bit values. 1131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __PKHBT(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0x0000FFFF) | \ ARM GAS /tmp/ccRzkJVN.s page 68 1133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(ARG2) << ARG3) & (int32_t)0xFFFF0000) ) 1134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __PKHTB(ARG1, ARG2, ARG3) ( (((int32_t)(ARG1) << 0) & (int32_t)0xFFFF0000) | \ 1135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(ARG2) >> ARG3) & (int32_t)0x0000FFFF) ) 1136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief definition to pack four 8 bit values. 1140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #ifndef ARM_MATH_BIG_ENDIAN 1142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v0) << 0) & (int32_t)0x000000FF) | \ 1143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v1) << 8) & (int32_t)0x0000FF00) | \ 1144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v2) << 16) & (int32_t)0x00FF0000) | \ 1145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v3) << 24) & (int32_t)0xFF000000) ) 1146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 1147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #define __PACKq7(v0,v1,v2,v3) ( (((int32_t)(v3) << 0) & (int32_t)0x000000FF) | \ 1148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v2) << 8) & (int32_t)0x0000FF00) | \ 1149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v1) << 16) & (int32_t)0x00FF0000) | \ 1150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((int32_t)(v0) << 24) & (int32_t)0xFF000000) ) 1151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Clips Q63 to Q31 values. 1156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t clip_q63_to_q31( 1158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q63_t x) 1159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? 1161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((0x7FFFFFFF ^ ((q31_t) (x >> 63)))) : (q31_t) x; 1162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Clips Q63 to Q15 values. 1166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q15_t clip_q63_to_q15( 1168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q63_t x) 1169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((q31_t) (x >> 32) != ((q31_t) x >> 31)) ? 1171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((0x7FFF ^ ((q15_t) (x >> 63)))) : (q15_t) (x >> 15); 1172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Clips Q31 to Q7 values. 1176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q7_t clip_q31_to_q7( 1178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t x) 1179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((q31_t) (x >> 24) != ((q31_t) x >> 23)) ? 1181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((0x7F ^ ((q7_t) (x >> 31)))) : (q7_t) x; 1182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Clips Q31 to Q15 values. 1186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q15_t clip_q31_to_q15( 1188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t x) 1189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { ARM GAS /tmp/ccRzkJVN.s page 69 1190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((q31_t) (x >> 16) != ((q31_t) x >> 15)) ? 1191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((0x7FFF ^ ((q15_t) (x >> 31)))) : (q15_t) x; 1192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Multiplies 32 X 64 and returns 32 bit result in 2.30 format. 1196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q63_t mult32x64( 1198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q63_t x, 1199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t y) 1200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((((q63_t) (x & 0x00000000FFFFFFFF) * y) >> 32) + 1202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (((q63_t) (x >> 32) * y) ) ); 1203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Function to Calculates 1/in (reciprocal) value of Q31 Data type. 1207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t arm_recip_q31( 1209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t in, 1210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * dst, 1211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pRecipTable) 1212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t out; 1214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t tempVal; 1215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t index, i; 1216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t signBits; 1217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (in > 0) 1219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** signBits = ((uint32_t) (__CLZ( in) - 1)); 1221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else 1223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** signBits = ((uint32_t) (__CLZ(-in) - 1)); 1225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Convert input sample to 1.31 format */ 1228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** in = (in << signBits); 1229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* calculation of index for initial approximated Val */ 1231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** index = (uint32_t)(in >> 24); 1232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** index = (index & INDEX_MASK); 1233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1.31 with exp 1 */ 1235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** out = pRecipTable[index]; 1236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* calculation of reciprocal value */ 1238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* running approximation for two iterations */ 1239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** for (i = 0U; i < 2U; i++) 1240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** tempVal = (uint32_t) (((q63_t) in * out) >> 31); 1242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** tempVal = 0x7FFFFFFFu - tempVal; 1243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1.31 with exp 1 */ 1244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* out = (q31_t) (((q63_t) out * tempVal) >> 30); */ 1245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** out = clip_q63_to_q31(((q63_t) out * tempVal) >> 30); 1246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } ARM GAS /tmp/ccRzkJVN.s page 70 1247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* write output */ 1249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *dst = out; 1250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* return num of signbits of out = 1/in value */ 1252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (signBits + 1U); 1253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Function to Calculates 1/in (reciprocal) value of Q15 Data type. 1258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t arm_recip_q15( 1260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t in, 1261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * dst, 1262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pRecipTable) 1263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t out = 0; 1265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t tempVal = 0; 1266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t index = 0, i = 0; 1267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t signBits = 0; 1268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (in > 0) 1270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** signBits = ((uint32_t)(__CLZ( in) - 17)); 1272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else 1274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** signBits = ((uint32_t)(__CLZ(-in) - 17)); 1276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Convert input sample to 1.15 format */ 1279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** in = (in << signBits); 1280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* calculation of index for initial approximated Val */ 1282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** index = (uint32_t)(in >> 8); 1283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** index = (index & INDEX_MASK); 1284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1.15 with exp 1 */ 1286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** out = pRecipTable[index]; 1287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* calculation of reciprocal value */ 1289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* running approximation for two iterations */ 1290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** for (i = 0U; i < 2U; i++) 1291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** tempVal = (uint32_t) (((q31_t) in * out) >> 15); 1293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** tempVal = 0x7FFFu - tempVal; 1294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1.15 with exp 1 */ 1295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** out = (q15_t) (((q31_t) out * tempVal) >> 14); 1296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* out = clip_q31_to_q15(((q31_t) out * tempVal) >> 14); */ 1297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* write output */ 1300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *dst = out; 1301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* return num of signbits of out = 1/in value */ 1303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (signBits + 1); ARM GAS /tmp/ccRzkJVN.s page 71 1304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Integer exponentiation 1308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x value 1309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nb integer exponent >= 1 1310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return x^nb 1311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 1312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_INLINE float32_t arm_exponent_f32(float32_t x, int32_t nb) 1314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t r = x; 1316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** nb --; 1317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** while(nb > 0) 1318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = r * x; 1320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** nb--; 1321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return(r); 1323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief 64-bit to 32-bit unsigned normalization 1327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] in is input unsigned long long value 1328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] normalized is the 32-bit normalized value 1329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] norm is norm scale 1330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_INLINE void arm_norm_64_to_32u(uint64_t in, int32_t * normalized, int32_t *norm) 1332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t n1; 1334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t hi = (int32_t) (in >> 32); 1335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t lo = (int32_t) ((in << 32) >> 32); 1336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** n1 = __CLZ(hi) - 32; 1338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (!n1) 1339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * input fits in 32-bit 1342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** n1 = __CLZ(lo); 1344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (!n1) 1345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1346:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1347:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * MSB set, need to scale down by 1 1348:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1349:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *norm = -1; 1350:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *normalized = (((uint32_t) lo) >> 1); 1351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } else 1352:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1353:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (n1 == 32) 1354:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1355:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1356:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * input is zero 1357:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1358:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *norm = 0; 1359:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *normalized = 0; 1360:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } else ARM GAS /tmp/ccRzkJVN.s page 72 1361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1362:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1363:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 32-bit normalization 1364:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1365:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *norm = n1 - 1; 1366:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *normalized = lo << *norm; 1367:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1368:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1369:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } else 1370:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1371:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1372:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * input fits in 64-bit 1373:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1374:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** n1 = 1 - n1; 1375:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *norm = -n1; 1376:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1377:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 64 bit normalization 1378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1379:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *normalized = (((uint32_t) lo) >> n1) | (hi << (32 - n1)); 1380:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1381:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1382:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1383:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_INLINE q31_t arm_div_q63_to_q31(q63_t num, q31_t den) 1384:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t result; 1386:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint64_t absNum; 1387:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t normalized; 1388:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t norm; 1389:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1390:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1391:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * if sum fits in 32bits 1392:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * avoid costly 64-bit division 1393:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1394:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** absNum = num > 0 ? num : -num; 1395:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_norm_64_to_32u(absNum, &normalized, &norm); 1396:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (norm > 0) 1397:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1398:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 32-bit division 1399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1400:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** result = (q31_t) num / den; 1401:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else 1402:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1403:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 64-bit division 1404:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1405:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** result = (q31_t) (num / den); 1406:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1407:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return result; 1408:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1409:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1410:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1411:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1412:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined intrinsic functions 1413:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1414:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if !defined (ARM_MATH_DSP) 1415:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1416:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1417:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined QADD8 ARM GAS /tmp/ccRzkJVN.s page 73 1418:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1419:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __QADD8( 1420:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1421:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1422:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1423:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r, s, t, u; 1424:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1425:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = __SSAT(((((q31_t)x << 24) >> 24) + (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF; 1426:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = __SSAT(((((q31_t)x << 16) >> 24) + (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF; 1427:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** t = __SSAT(((((q31_t)x << 8) >> 24) + (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF; 1428:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** u = __SSAT(((((q31_t)x ) >> 24) + (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF; 1429:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1430:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r ))); 1431:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1432:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1433:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1434:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1435:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined QSUB8 1436:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1437:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __QSUB8( 1438:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1439:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1440:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1441:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r, s, t, u; 1442:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1443:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = __SSAT(((((q31_t)x << 24) >> 24) - (((q31_t)y << 24) >> 24)), 8) & (int32_t)0x000000FF; 1444:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = __SSAT(((((q31_t)x << 16) >> 24) - (((q31_t)y << 16) >> 24)), 8) & (int32_t)0x000000FF; 1445:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** t = __SSAT(((((q31_t)x << 8) >> 24) - (((q31_t)y << 8) >> 24)), 8) & (int32_t)0x000000FF; 1446:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** u = __SSAT(((((q31_t)x ) >> 24) - (((q31_t)y ) >> 24)), 8) & (int32_t)0x000000FF; 1447:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1448:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((u << 24) | (t << 16) | (s << 8) | (r ))); 1449:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1450:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1451:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1452:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1453:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined QADD16 1454:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1455:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __QADD16( 1456:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1458:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1459:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* q31_t r, s; without initialisation 'arm_offset_q15 test' fails but 'intrinsic' tests pass 1460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r = 0, s = 0; 1461:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1462:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF; 1463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF; 1464:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1465:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((s << 16) | (r ))); 1466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1467:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1468:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1470:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SHADD16 1471:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1472:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SHADD16( 1473:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) ARM GAS /tmp/ccRzkJVN.s page 74 1475:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r, s; 1477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1478:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = (((((q31_t)x << 16) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF; 1479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = (((((q31_t)x ) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF; 1480:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((s << 16) | (r ))); 1482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1485:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined QSUB16 1487:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1488:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __QSUB16( 1489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1490:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1491:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r, s; 1493:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1494:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF; 1495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF; 1496:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1497:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((s << 16) | (r ))); 1498:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1499:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1500:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1501:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1502:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SHSUB16 1503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SHSUB16( 1505:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1508:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r, s; 1509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1510:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = (((((q31_t)x << 16) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF; 1511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = (((((q31_t)x ) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF; 1512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((s << 16) | (r ))); 1514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1515:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1516:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1518:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined QASX 1519:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __QASX( 1521:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1522:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1524:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r, s; 1525:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = __SSAT(((((q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF; 1527:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = __SSAT(((((q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF; 1528:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1529:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((s << 16) | (r ))); 1530:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1531:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 75 1532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1533:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1534:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SHASX 1535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1536:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SHASX( 1537:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1539:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1540:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r, s; 1541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1542:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = (((((q31_t)x << 16) >> 16) - (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF; 1543:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = (((((q31_t)x ) >> 16) + (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF; 1544:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1545:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((s << 16) | (r ))); 1546:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1547:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1548:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1549:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1550:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined QSAX 1551:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1552:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __QSAX( 1553:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1554:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1555:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1556:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r, s; 1557:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1558:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = __SSAT(((((q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)), 16) & (int32_t)0x0000FFFF; 1559:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = __SSAT(((((q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)), 16) & (int32_t)0x0000FFFF; 1560:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1561:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((s << 16) | (r ))); 1562:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1563:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1564:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1565:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1566:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SHSAX 1567:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1568:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SHSAX( 1569:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1570:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1571:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1572:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t r, s; 1573:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1574:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** r = (((((q31_t)x << 16) >> 16) + (((q31_t)y ) >> 16)) >> 1) & (int32_t)0x0000FFFF; 1575:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** s = (((((q31_t)x ) >> 16) - (((q31_t)y << 16) >> 16)) >> 1) & (int32_t)0x0000FFFF; 1576:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1577:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)((s << 16) | (r ))); 1578:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1579:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1580:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1581:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1582:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMUSDX 1583:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1584:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SMUSDX( 1585:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1586:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1587:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1588:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) - ARM GAS /tmp/ccRzkJVN.s page 76 1589:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) )); 1590:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1591:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1592:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1593:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMUADX 1594:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1595:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SMUADX( 1596:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1597:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1598:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1599:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) + 1600:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) )); 1601:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1602:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1603:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1604:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1605:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined QADD 1606:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1607:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE int32_t __QADD( 1608:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t x, 1609:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t y) 1610:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1611:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((int32_t)(clip_q63_to_q31((q63_t)x + (q31_t)y))); 1612:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1613:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1614:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1615:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1616:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined QSUB 1617:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1618:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE int32_t __QSUB( 1619:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t x, 1620:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t y) 1621:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1622:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((int32_t)(clip_q63_to_q31((q63_t)x - (q31_t)y))); 1623:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1624:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1625:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1626:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1627:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMLAD 1628:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1629:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SMLAD( 1630:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1631:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y, 1632:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t sum) 1633:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1634:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) + 1635:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) + 1636:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ( ((q31_t)sum ) ) )); 1637:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1638:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1639:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1640:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1641:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMLADX 1642:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1643:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SMLADX( 1644:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1645:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y, ARM GAS /tmp/ccRzkJVN.s page 77 1646:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t sum) 1647:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1648:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) + 1649:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) + 1650:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ( ((q31_t)sum ) ) )); 1651:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1652:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1653:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1654:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1655:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMLSDX 1656:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1657:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SMLSDX( 1658:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1659:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y, 1660:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t sum) 1661:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1662:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) - 1663:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) + 1664:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ( ((q31_t)sum ) ) )); 1665:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1666:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1667:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1668:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1669:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMLALD 1670:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1671:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint64_t __SMLALD( 1672:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1673:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y, 1674:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint64_t sum) 1675:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1676:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* return (sum + ((q15_t) (x >> 16) * (q15_t) (y >> 16)) + ((q15_t) x * (q15_t) y)); */ 1677:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) + 1678:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) + 1679:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ( ((q63_t)sum ) ) )); 1680:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1681:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1682:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1683:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1684:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMLALDX 1685:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1686:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint64_t __SMLALDX( 1687:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1688:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y, 1689:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint64_t sum) 1690:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1691:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* return (sum + ((q15_t) (x >> 16) * (q15_t) y)) + ((q15_t) x * (q15_t) (y >> 16)); */ 1692:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint64_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y ) >> 16)) + 1693:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x ) >> 16) * (((q31_t)y << 16) >> 16)) + 1694:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ( ((q63_t)sum ) ) )); 1695:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1696:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1697:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1698:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1699:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMUAD 1700:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1701:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SMUAD( 1702:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, ARM GAS /tmp/ccRzkJVN.s page 78 1703:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1704:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1705:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) + 1706:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) )); 1707:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1708:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1709:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1710:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1711:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMUSD 1712:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1713:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SMUSD( 1714:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x, 1715:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t y) 1716:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1717:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)(((((q31_t)x << 16) >> 16) * (((q31_t)y << 16) >> 16)) - 1718:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x ) >> 16) * (((q31_t)y ) >> 16)) )); 1719:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1720:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1721:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1722:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1723:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SXTB16 1724:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1725:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE uint32_t __SXTB16( 1726:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t x) 1727:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1728:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return ((uint32_t)(((((q31_t)x << 24) >> 24) & (q31_t)0x0000FFFF) | 1729:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ((((q31_t)x << 8) >> 8) & (q31_t)0xFFFF0000) )); 1730:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1731:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1732:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 1733:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief C custom defined SMMLA 1734:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1735:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE int32_t __SMMLA( 1736:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t x, 1737:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t y, 1738:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t sum) 1739:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1740:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (sum + (int32_t) (((int64_t) x * y) >> 32)); 1741:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 1742:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1743:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif /* !defined (ARM_MATH_DSP) */ 1744:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1745:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1746:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1747:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q7 FIR filter. 1748:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1749:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 1750:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1751:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps; /**< number of filter coefficients in the filter. */ 1752:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t *pState; /**< points to the state variable array. The array is of length 1753:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t *pCoeffs; /**< points to the coefficient array. The array is of length num 1754:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_instance_q7; 1755:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1756:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1757:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 FIR filter. 1758:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1759:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct ARM GAS /tmp/ccRzkJVN.s page 79 1760:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1761:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps; /**< number of filter coefficients in the filter. */ 1762:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t *pState; /**< points to the state variable array. The array is of length 1763:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pCoeffs; /**< points to the coefficient array. The array is of length nu 1764:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_instance_q15; 1765:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1766:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1767:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 FIR filter. 1768:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1769:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 1770:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1771:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps; /**< number of filter coefficients in the filter. */ 1772:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t *pState; /**< points to the state variable array. The array is of length 1773:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pCoeffs; /**< points to the coefficient array. The array is of length nu 1774:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_instance_q31; 1775:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1776:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1777:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point FIR filter. 1778:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1779:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 1780:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1781:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps; /**< number of filter coefficients in the filter. */ 1782:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pState; /**< points to the state variable array. The array is of length num 1783:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pCoeffs; /**< points to the coefficient array. The array is of length numTap 1784:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_instance_f32; 1785:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1786:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1787:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q7 FIR filter. 1788:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q7 FIR filter structure. 1789:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 1790:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 1791:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 1792:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1793:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_q7( 1794:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_instance_q7 * S, 1795:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrc, 1796:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 1797:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1798:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1799:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1800:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q7 FIR filter. 1801:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q7 FIR structure. 1802:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numTaps Number of filter coefficients in the filter. 1803:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffs points to the filter coefficients. 1804:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the state buffer. 1805:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples that are processed. 1806:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1807:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_init_q7( 1808:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_fir_instance_q7 * S, 1809:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps, 1810:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pCoeffs, 1811:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pState, 1812:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1813:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1814:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1815:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q15 FIR filter. 1816:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q15 FIR structure. ARM GAS /tmp/ccRzkJVN.s page 80 1817:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 1818:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 1819:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 1820:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1821:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_q15( 1822:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_instance_q15 * S, 1823:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 1824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 1825:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1826:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1827:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1828:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the fast Q15 FIR filter (fast version). 1829:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q15 FIR filter structure. 1830:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 1831:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 1832:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 1833:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1834:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_fast_q15( 1835:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_instance_q15 * S, 1836:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 1837:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 1838:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1839:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1840:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1841:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q15 FIR filter. 1842:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q15 FIR filter structure. 1843:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numTaps Number of filter coefficients in the filter. Must be even and greate 1844:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffs points to the filter coefficients. 1845:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the state buffer. 1846:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples that are processed at a time. 1847:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 1848:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SUCCESS if initialization was successful or 1849:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_ARGUMENT_ERROR if numTaps is not a supported value. 1850:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1851:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_fir_init_q15( 1852:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_fir_instance_q15 * S, 1853:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps, 1854:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pCoeffs, 1855:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pState, 1856:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1857:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1858:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1859:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q31 FIR filter. 1860:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q31 FIR filter structure. 1861:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 1862:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 1863:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 1864:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1865:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_q31( 1866:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_instance_q31 * S, 1867:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 1868:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 1869:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1870:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1871:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1872:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the fast Q31 FIR filter (fast version). 1873:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q31 FIR filter structure. ARM GAS /tmp/ccRzkJVN.s page 81 1874:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 1875:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 1876:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 1877:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1878:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_fast_q31( 1879:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_instance_q31 * S, 1880:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 1881:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 1882:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1883:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1884:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1885:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q31 FIR filter. 1886:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q31 FIR structure. 1887:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numTaps Number of filter coefficients in the filter. 1888:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffs points to the filter coefficients. 1889:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the state buffer. 1890:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples that are processed at a time. 1891:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1892:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_init_q31( 1893:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_fir_instance_q31 * S, 1894:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps, 1895:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pCoeffs, 1896:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pState, 1897:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1898:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1899:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1900:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the floating-point FIR filter. 1901:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the floating-point FIR structure. 1902:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 1903:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 1904:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 1905:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1906:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_f32( 1907:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_instance_f32 * S, 1908:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 1909:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 1910:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1911:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1912:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1913:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the floating-point FIR filter. 1914:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the floating-point FIR filter structure. 1915:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numTaps Number of filter coefficients in the filter. 1916:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffs points to the filter coefficients. 1917:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the state buffer. 1918:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples that are processed at a time. 1919:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1920:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_init_f32( 1921:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_fir_instance_f32 * S, 1922:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps, 1923:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pCoeffs, 1924:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pState, 1925:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1926:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1927:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1928:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 Biquad cascade filter. 1929:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1930:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct ARM GAS /tmp/ccRzkJVN.s page 82 1931:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1932:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t numStages; /**< number of 2nd order stages in the filter. Overall order is 1933:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t *pState; /**< Points to the array of state coefficients. The array is of 1934:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pCoeffs; /**< Points to the array of coefficients. The array is of lengt 1935:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t postShift; /**< Additional shift, in bits, applied to each output sample. * 1936:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_biquad_casd_df1_inst_q15; 1937:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1938:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1939:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 Biquad cascade filter. 1940:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1941:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 1942:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1943:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 1944:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t *pState; /**< Points to the array of state coefficients. The array is of 1945:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pCoeffs; /**< Points to the array of coefficients. The array is of lengt 1946:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t postShift; /**< Additional shift, in bits, applied to each output sample. * 1947:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_biquad_casd_df1_inst_q31; 1948:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1949:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1950:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point Biquad cascade filter. 1951:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1952:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 1953:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1954:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numStages; /**< number of 2nd order stages in the filter. Overall order is 1955:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pState; /**< Points to the array of state coefficients. The array is of 1956:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pCoeffs; /**< Points to the array of coefficients. The array is of lengt 1957:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_biquad_casd_df1_inst_f32; 1958:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1959:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 1960:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1961:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the modified Biquad coefs required by vectorized code. 1962:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1963:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 1964:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1965:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t coeffs[8][4]; /**< Points to the array of modified coefficients. The array is of l 1966:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_biquad_mod_coef_f32; 1967:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 1968:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1969:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1970:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q15 Biquad cascade filter. 1971:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q15 Biquad cascade structure. 1972:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 1973:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 1974:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 1975:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1976:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_biquad_cascade_df1_q15( 1977:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_biquad_casd_df1_inst_q15 * S, 1978:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 1979:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 1980:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 1981:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1982:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1983:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q15 Biquad cascade filter. 1984:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q15 Biquad cascade structure. 1985:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numStages number of 2nd order stages in the filter. 1986:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffs points to the filter coefficients. 1987:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the state buffer. ARM GAS /tmp/ccRzkJVN.s page 83 1988:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] postShift Shift to be applied to the output. Varies according to the coefficie 1989:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 1990:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_biquad_cascade_df1_init_q15( 1991:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_biquad_casd_df1_inst_q15 * S, 1992:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t numStages, 1993:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pCoeffs, 1994:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pState, 1995:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t postShift); 1996:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 1997:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 1998:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fast but less precise processing function for the Q15 Biquad cascade filter for Cortex- 1999:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q15 Biquad cascade structure. 2000:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 2001:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 2002:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 2003:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2004:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_biquad_cascade_df1_fast_q15( 2005:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_biquad_casd_df1_inst_q15 * S, 2006:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 2007:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 2008:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2009:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2010:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2011:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q31 Biquad cascade filter 2012:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q31 Biquad cascade structure. 2013:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 2014:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 2015:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 2016:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2017:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_biquad_cascade_df1_q31( 2018:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_biquad_casd_df1_inst_q31 * S, 2019:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 2020:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 2021:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2022:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2023:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2024:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fast but less precise processing function for the Q31 Biquad cascade filter for Cortex- 2025:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q31 Biquad cascade structure. 2026:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 2027:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 2028:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 2029:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2030:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_biquad_cascade_df1_fast_q31( 2031:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_biquad_casd_df1_inst_q31 * S, 2032:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 2033:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 2034:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2035:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2036:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2037:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q31 Biquad cascade filter. 2038:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q31 Biquad cascade structure. 2039:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numStages number of 2nd order stages in the filter. 2040:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffs points to the filter coefficients. 2041:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the state buffer. 2042:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] postShift Shift to be applied to the output. Varies according to the coefficie 2043:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2044:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_biquad_cascade_df1_init_q31( ARM GAS /tmp/ccRzkJVN.s page 84 2045:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_biquad_casd_df1_inst_q31 * S, 2046:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t numStages, 2047:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pCoeffs, 2048:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pState, 2049:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t postShift); 2050:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2051:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2052:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the floating-point Biquad cascade filter. 2053:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the floating-point Biquad cascade structure. 2054:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 2055:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 2056:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 2057:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2058:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_biquad_cascade_df1_f32( 2059:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_biquad_casd_df1_inst_f32 * S, 2060:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 2061:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 2062:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2063:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2064:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2065:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the floating-point Biquad cascade filter. 2066:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the floating-point Biquad cascade structure 2067:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numStages number of 2nd order stages in the filter. 2068:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffs points to the filter coefficients. 2069:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffsMod points to the modified filter coefficients (only MVE version). 2070:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the state buffer. 2071:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2072:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 2073:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_biquad_cascade_df1_mve_init_f32( 2074:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_biquad_casd_df1_inst_f32 * S, 2075:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t numStages, 2076:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pCoeffs, 2077:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_biquad_mod_coef_f32 * pCoeffsMod, 2078:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pState); 2079:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 2080:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2081:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_biquad_cascade_df1_init_f32( 2082:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_biquad_casd_df1_inst_f32 * S, 2083:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t numStages, 2084:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pCoeffs, 2085:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pState); 2086:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2087:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2088:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2089:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise AND of two fixed-point vectors. 2090:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to input vector A 2091:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to input vector B 2092:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2093:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2094:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2095:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2096:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_and_u16( 2097:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t * pSrcA, 2098:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t * pSrcB, 2099:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t * pDst, 2100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 85 2102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise AND of two fixed-point vectors. 2104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to input vector A 2105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to input vector B 2106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_and_u32( 2111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t * pSrcA, 2112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t * pSrcB, 2113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t * pDst, 2114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise AND of two fixed-point vectors. 2118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to input vector A 2119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to input vector B 2120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_and_u8( 2125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint8_t * pSrcA, 2126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint8_t * pSrcB, 2127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t * pDst, 2128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise OR of two fixed-point vectors. 2132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to input vector A 2133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to input vector B 2134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_or_u16( 2139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t * pSrcA, 2140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t * pSrcB, 2141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t * pDst, 2142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise OR of two fixed-point vectors. 2146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to input vector A 2147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to input vector B 2148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_or_u32( 2153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t * pSrcA, 2154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t * pSrcB, 2155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t * pDst, 2156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** ARM GAS /tmp/ccRzkJVN.s page 86 2159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise OR of two fixed-point vectors. 2160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to input vector A 2161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to input vector B 2162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_or_u8( 2167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint8_t * pSrcA, 2168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint8_t * pSrcB, 2169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t * pDst, 2170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise NOT of a fixed-point vector. 2174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to input vector 2175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_not_u16( 2180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t * pSrc, 2181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t * pDst, 2182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise NOT of a fixed-point vector. 2186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to input vector 2187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_not_u32( 2192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t * pSrc, 2193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t * pDst, 2194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise NOT of a fixed-point vector. 2198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to input vector 2199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_not_u8( 2204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint8_t * pSrc, 2205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t * pDst, 2206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise XOR of two fixed-point vectors. 2210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to input vector A 2211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to input vector B 2212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ ARM GAS /tmp/ccRzkJVN.s page 87 2216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_xor_u16( 2217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t * pSrcA, 2218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t * pSrcB, 2219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t * pDst, 2220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise XOR of two fixed-point vectors. 2224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to input vector A 2225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to input vector B 2226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_xor_u32( 2231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t * pSrcA, 2232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t * pSrcB, 2233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t * pDst, 2234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Compute the logical bitwise XOR of two fixed-point vectors. 2238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to input vector A 2239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to input vector B 2240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output vector 2241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 2243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_xor_u8( 2245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint8_t * pSrcA, 2246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint8_t * pSrcB, 2247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t * pDst, 2248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Struct for specifying sorting algorithm 2252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef enum 2254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SORT_BITONIC = 0, 2256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /**< Bitonic sort */ 2257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SORT_BUBBLE = 1, 2258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /**< Bubble sort */ 2259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SORT_HEAP = 2, 2260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /**< Heap sort */ 2261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SORT_INSERTION = 3, 2262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /**< Insertion sort */ 2263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SORT_QUICK = 4, 2264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /**< Quick sort */ 2265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SORT_SELECTION = 5 2266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /**< Selection sort */ 2267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_sort_alg; 2268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Struct for specifying sorting algorithm 2271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef enum ARM GAS /tmp/ccRzkJVN.s page 88 2273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SORT_DESCENDING = 0, 2275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /**< Descending order (9 to 0) */ 2276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SORT_ASCENDING = 1 2277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /**< Ascending order (0 to 9) */ 2278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_sort_dir; 2279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the sorting algorithms. 2282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_sort_alg alg; /**< Sorting algorithm selected */ 2286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_sort_dir dir; /**< Sorting order (direction) */ 2287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_sort_instance_f32; 2288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the sorting structure. 2291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 2292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 2293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 2294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_sort_f32( 2296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_sort_instance_f32 * S, 2297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pSrc, 2298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 2299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the sorting structure. 2303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] alg Selected algorithm. 2304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] dir Sorting order. 2305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_sort_init_f32( 2307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_sort_instance_f32 * S, 2308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_sort_alg alg, 2309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_sort_dir dir); 2310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the sorting algorithms. 2313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_sort_dir dir; /**< Sorting order (direction) */ 2317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * buffer; /**< Working buffer */ 2318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_merge_sort_instance_f32; 2319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the sorting structure. 2322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] pSrc points to the block of input data. 2323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 2324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process. 2325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_merge_sort_f32( 2327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_merge_sort_instance_f32 * S, 2328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pSrc, 2329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pDst, ARM GAS /tmp/ccRzkJVN.s page 89 2330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the sorting structure. 2334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] dir Sorting order. 2335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] buffer Working buffer. 2336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_merge_sort_init_f32( 2338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_merge_sort_instance_f32 * S, 2339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_sort_dir dir, 2340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * buffer); 2341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Struct for specifying cubic spline type 2344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef enum 2346:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2347:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SPLINE_NATURAL = 0, /**< Natural spline */ 2348:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM_SPLINE_PARABOLIC_RUNOUT = 1 /**< Parabolic runout spline */ 2349:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_spline_type; 2350:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2352:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point cubic spline interpolation. 2353:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2354:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2355:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2356:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_spline_type type; /**< Type (boundary conditions) */ 2357:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * x; /**< x values */ 2358:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * y; /**< y values */ 2359:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t n_x; /**< Number of known data points */ 2360:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * coeffs; /**< Coefficients buffer (b,c, and d) */ 2361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_spline_instance_f32; 2362:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2363:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2364:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the floating-point cubic spline interpolation. 2365:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the floating-point spline structure. 2366:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] xq points to the x values ot the interpolated data points. 2367:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 2368:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples of output data. 2369:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2370:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_spline_f32( 2371:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_spline_instance_f32 * S, 2372:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * xq, 2373:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 2374:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2375:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2376:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2377:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the floating-point cubic spline interpolation. 2378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the floating-point spline structure. 2379:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] type type of cubic spline interpolation (boundary conditions) 2380:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x points to the x values of the known data points. 2381:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] y points to the y values of the known data points. 2382:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] n number of known data points. 2383:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] coeffs coefficients array for b, c, and d 2384:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] tempBuffer buffer array for internal computations 2385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2386:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_spline_init_f32( ARM GAS /tmp/ccRzkJVN.s page 90 2387:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_spline_instance_f32 * S, 2388:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_spline_type type, 2389:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * x, 2390:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * y, 2391:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t n, 2392:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * coeffs, 2393:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * tempBuffer); 2394:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2395:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2396:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point matrix structure. 2397:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2398:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2400:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numRows; /**< number of rows of the matrix. */ 2401:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numCols; /**< number of columns of the matrix. */ 2402:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pData; /**< points to the data of the matrix. */ 2403:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_matrix_instance_f32; 2404:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2405:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2406:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point matrix structure. 2407:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2408:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2409:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2410:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numRows; /**< number of rows of the matrix. */ 2411:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numCols; /**< number of columns of the matrix. */ 2412:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float64_t *pData; /**< points to the data of the matrix. */ 2413:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_matrix_instance_f64; 2414:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2415:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2416:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 matrix structure. 2417:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2418:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2419:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2420:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numRows; /**< number of rows of the matrix. */ 2421:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numCols; /**< number of columns of the matrix. */ 2422:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t *pData; /**< points to the data of the matrix. */ 2423:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_matrix_instance_q15; 2424:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2425:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2426:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 matrix structure. 2427:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2428:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2429:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2430:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numRows; /**< number of rows of the matrix. */ 2431:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numCols; /**< number of columns of the matrix. */ 2432:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t *pData; /**< points to the data of the matrix. */ 2433:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_matrix_instance_q31; 2434:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2435:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2436:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point matrix addition. 2437:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2438:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2439:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2440:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2441:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2442:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2443:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_add_f32( ARM GAS /tmp/ccRzkJVN.s page 91 2444:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrcA, 2445:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrcB, 2446:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_f32 * pDst); 2447:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2448:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2449:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 matrix addition. 2450:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2451:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2452:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2453:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2454:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2455:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2456:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_add_q15( 2457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcA, 2458:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcB, 2459:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q15 * pDst); 2460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2461:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2462:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 matrix addition. 2463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2464:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2465:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2467:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2468:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_add_q31( 2470:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcA, 2471:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcB, 2472:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q31 * pDst); 2473:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2475:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point, complex, matrix multiplication. 2476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2478:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2480:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_cmplx_mult_f32( 2483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrcA, 2484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrcB, 2485:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_f32 * pDst); 2486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2487:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2488:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15, complex, matrix multiplication. 2489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2490:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2491:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2493:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2494:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_cmplx_mult_q15( 2496:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcA, 2497:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcB, 2498:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q15 * pDst, 2499:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch); 2500:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 92 2501:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2502:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31, complex, matrix multiplication. 2503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2505:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2508:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_cmplx_mult_q31( 2510:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcA, 2511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcB, 2512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q31 * pDst); 2513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2515:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point matrix transpose. 2516:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input matrix 2517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output matrix 2518:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either ARM_MATH_SIZE_MISMATCH 2519:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * or ARM_MATH_SUCCESS based on the outcome of size checking. 2520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2521:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_trans_f32( 2522:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrc, 2523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_f32 * pDst); 2524:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2525:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 matrix transpose. 2527:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input matrix 2528:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output matrix 2529:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either ARM_MATH_SIZE_MISMATCH 2530:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * or ARM_MATH_SUCCESS based on the outcome of size checking. 2531:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_trans_q15( 2533:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrc, 2534:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q15 * pDst); 2535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2536:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2537:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 matrix transpose. 2538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input matrix 2539:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output matrix 2540:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either ARM_MATH_SIZE_MISMATCH 2541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * or ARM_MATH_SUCCESS based on the outcome of size checking. 2542:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2543:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_trans_q31( 2544:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrc, 2545:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q31 * pDst); 2546:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2547:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2548:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point matrix multiplication 2549:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2550:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2551:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2552:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2553:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2554:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2555:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_mult_f32( 2556:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrcA, 2557:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrcB, ARM GAS /tmp/ccRzkJVN.s page 93 2558:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_f32 * pDst); 2559:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2560:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2561:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 matrix multiplication 2562:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2563:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2564:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2565:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the array for storing intermediate results 2566:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2567:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2568:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2569:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_mult_q15( 2570:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcA, 2571:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcB, 2572:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q15 * pDst, 2573:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pState); 2574:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2575:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2576:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 2577:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2578:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2579:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2580:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the array for storing intermediate results 2581:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2582:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2583:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2584:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_mult_fast_q15( 2585:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcA, 2586:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcB, 2587:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q15 * pDst, 2588:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pState); 2589:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2590:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2591:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 matrix multiplication 2592:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2593:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2594:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2595:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2596:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2597:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2598:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_mult_q31( 2599:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcA, 2600:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcB, 2601:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q31 * pDst); 2602:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2603:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2604:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 matrix multiplication (fast variant) for Cortex-M3 and Cortex-M4 2605:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2606:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2607:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2608:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2609:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2610:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2611:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_mult_fast_q31( 2612:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcA, 2613:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcB, 2614:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q31 * pDst); ARM GAS /tmp/ccRzkJVN.s page 94 2615:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2616:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2617:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point matrix subtraction 2618:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2619:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2620:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2621:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2622:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2623:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2624:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_sub_f32( 2625:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrcA, 2626:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrcB, 2627:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_f32 * pDst); 2628:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2629:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2630:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 matrix subtraction 2631:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2632:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2633:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2634:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2635:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2636:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2637:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_sub_q15( 2638:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcA, 2639:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrcB, 2640:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q15 * pDst); 2641:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2642:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2643:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 matrix subtraction 2644:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input matrix structure 2645:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input matrix structure 2646:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2647:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2648:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2649:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2650:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_sub_q31( 2651:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcA, 2652:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrcB, 2653:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q31 * pDst); 2654:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2655:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2656:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point matrix scaling. 2657:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input matrix 2658:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] scale scale factor 2659:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output matrix 2660:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2661:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2662:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2663:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_scale_f32( 2664:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * pSrc, 2665:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t scale, 2666:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_f32 * pDst); 2667:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2668:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2669:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 matrix scaling. 2670:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to input matrix 2671:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] scaleFract fractional portion of the scale factor ARM GAS /tmp/ccRzkJVN.s page 95 2672:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] shift number of bits to shift the result by 2673:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix 2674:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2675:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2676:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2677:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_scale_q15( 2678:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q15 * pSrc, 2679:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t scaleFract, 2680:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t shift, 2681:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q15 * pDst); 2682:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2683:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2684:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 matrix scaling. 2685:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to input matrix 2686:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] scaleFract fractional portion of the scale factor 2687:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] shift number of bits to shift the result by 2688:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to output matrix structure 2689:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns either 2690:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * ARM_MATH_SIZE_MISMATCH or ARM_MATH_SUCCESS based on the outcome of s 2691:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2692:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_scale_q31( 2693:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_q31 * pSrc, 2694:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t scaleFract, 2695:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t shift, 2696:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q31 * pDst); 2697:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2698:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2699:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 matrix initialization. 2700:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the floating-point matrix structure. 2701:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nRows number of rows in the matrix. 2702:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nColumns number of columns in the matrix. 2703:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pData points to the matrix data array. 2704:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2705:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_mat_init_q31( 2706:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q31 * S, 2707:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t nRows, 2708:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t nColumns, 2709:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pData); 2710:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2711:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2712:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 matrix initialization. 2713:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the floating-point matrix structure. 2714:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nRows number of rows in the matrix. 2715:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nColumns number of columns in the matrix. 2716:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pData points to the matrix data array. 2717:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2718:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_mat_init_q15( 2719:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_q15 * S, 2720:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t nRows, 2721:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t nColumns, 2722:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pData); 2723:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2724:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2725:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point matrix initialization. 2726:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the floating-point matrix structure. 2727:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nRows number of rows in the matrix. 2728:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nColumns number of columns in the matrix. ARM GAS /tmp/ccRzkJVN.s page 96 2729:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pData points to the matrix data array. 2730:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2731:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_mat_init_f32( 2732:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_f32 * S, 2733:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t nRows, 2734:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t nColumns, 2735:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pData); 2736:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2737:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2738:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2739:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 PID Control. 2740:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2741:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2742:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2743:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ 2744:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if !defined (ARM_MATH_DSP) 2745:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t A1; 2746:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t A2; 2747:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 2748:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t A1; /**< The derived gain A1 = -Kp - 2Kd | Kd.*/ 2749:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 2750:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t state[3]; /**< The state array of length 3. */ 2751:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t Kp; /**< The proportional gain. */ 2752:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t Ki; /**< The integral gain. */ 2753:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t Kd; /**< The derivative gain. */ 2754:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_pid_instance_q15; 2755:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2756:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2757:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 PID Control. 2758:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2759:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2760:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2761:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ 2762:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */ 2763:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t A2; /**< The derived gain, A2 = Kd . */ 2764:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t state[3]; /**< The state array of length 3. */ 2765:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t Kp; /**< The proportional gain. */ 2766:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t Ki; /**< The integral gain. */ 2767:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t Kd; /**< The derivative gain. */ 2768:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_pid_instance_q31; 2769:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2770:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2771:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point PID Control. 2772:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2773:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2774:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2775:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */ 2776:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */ 2777:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t A2; /**< The derived gain, A2 = Kd . */ 2778:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t state[3]; /**< The state array of length 3. */ 2779:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t Kp; /**< The proportional gain. */ 2780:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t Ki; /**< The integral gain. */ 2781:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t Kd; /**< The derivative gain. */ 2782:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_pid_instance_f32; 2783:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2784:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2785:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 97 2786:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2787:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the floating-point PID Control. 2788:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the PID structure. 2789:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the s 2790:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2791:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_pid_init_f32( 2792:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_pid_instance_f32 * S, 2793:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t resetStateFlag); 2794:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2795:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2796:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2797:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Reset function for the floating-point PID Control. 2798:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S is an instance of the floating-point PID Control structure 2799:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2800:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_pid_reset_f32( 2801:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_pid_instance_f32 * S); 2802:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2803:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2804:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2805:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q31 PID Control. 2806:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q15 PID structure. 2807:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the s 2808:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2809:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_pid_init_q31( 2810:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_pid_instance_q31 * S, 2811:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t resetStateFlag); 2812:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2813:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2814:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2815:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Reset function for the Q31 PID Control. 2816:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q31 PID Control structure 2817:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2818:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2819:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_pid_reset_q31( 2820:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_pid_instance_q31 * S); 2821:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2822:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2823:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q15 PID Control. 2825:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q15 PID structure. 2826:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] resetStateFlag flag to reset the state. 0 = no change in state 1 = reset the s 2827:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2828:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_pid_init_q15( 2829:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_pid_instance_q15 * S, 2830:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t resetStateFlag); 2831:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2832:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2833:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2834:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Reset function for the Q15 PID Control. 2835:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the q15 PID Control structure 2836:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2837:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_pid_reset_q15( 2838:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_pid_instance_q15 * S); 2839:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2840:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2841:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2842:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point Linear Interpolate function. ARM GAS /tmp/ccRzkJVN.s page 98 2843:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2844:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2845:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2846:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t nValues; /**< nValues */ 2847:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t x1; /**< x1 */ 2848:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t xSpacing; /**< xSpacing */ 2849:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pYData; /**< pointer to the table of Y values */ 2850:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_linear_interp_instance_f32; 2851:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2852:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2853:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point bilinear interpolation function. 2854:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2855:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2856:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2857:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numRows; /**< number of rows in the data table. */ 2858:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numCols; /**< number of columns in the data table. */ 2859:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pData; /**< points to the data table. */ 2860:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_bilinear_interp_instance_f32; 2861:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2862:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2863:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 bilinear interpolation function. 2864:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2865:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2866:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2867:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numRows; /**< number of rows in the data table. */ 2868:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numCols; /**< number of columns in the data table. */ 2869:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t *pData; /**< points to the data table. */ 2870:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_bilinear_interp_instance_q31; 2871:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2872:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2873:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 bilinear interpolation function. 2874:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2875:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2876:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2877:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numRows; /**< number of rows in the data table. */ 2878:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numCols; /**< number of columns in the data table. */ 2879:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t *pData; /**< points to the data table. */ 2880:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_bilinear_interp_instance_q15; 2881:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2882:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2883:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 bilinear interpolation function. 2884:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2885:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2886:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2887:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numRows; /**< number of rows in the data table. */ 2888:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numCols; /**< number of columns in the data table. */ 2889:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t *pData; /**< points to the data table. */ 2890:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_bilinear_interp_instance_q7; 2891:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2892:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2893:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2894:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q7 vector multiplication. 2895:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 2896:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 2897:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 2898:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2899:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ ARM GAS /tmp/ccRzkJVN.s page 99 2900:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_mult_q7( 2901:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcA, 2902:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcB, 2903:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 2904:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2905:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2906:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2907:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2908:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 vector multiplication. 2909:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 2910:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 2911:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 2912:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2913:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2914:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_mult_q15( 2915:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 2916:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 2917:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 2918:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2919:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2920:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2921:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2922:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 vector multiplication. 2923:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 2924:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 2925:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 2926:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2927:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2928:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_mult_q31( 2929:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcA, 2930:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcB, 2931:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 2932:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2933:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2934:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2935:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2936:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point vector multiplication. 2937:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 2938:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 2939:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 2940:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 2941:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2942:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_mult_f32( 2943:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcA, 2944:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcB, 2945:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 2946:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 2947:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2948:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2949:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2950:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 CFFT/CIFFT function. 2951:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2952:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2953:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2954:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 2955:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse ( 2956:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (b ARM GAS /tmp/ccRzkJVN.s page 100 2957:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pTwiddle; /**< points to the Sin twiddle factor table. */ 2958:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 2959:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports differen 2960:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevFactor; /**< bit reversal modifier that supports different size 2961:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_radix2_instance_q15; 2962:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2963:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 2964:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_cfft_radix2_init_q15( 2965:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix2_instance_q15 * S, 2966:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen, 2967:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 2968:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 2969:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2970:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 2971:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_radix2_q15( 2972:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_radix2_instance_q15 * S, 2973:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pSrc); 2974:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2975:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2976:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 2977:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 CFFT/CIFFT function. 2978:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 2979:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 2980:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 2981:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 2982:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse ( 2983:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (b 2984:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pTwiddle; /**< points to the twiddle factor table. */ 2985:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 2986:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports differen 2987:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevFactor; /**< bit reversal modifier that supports different size 2988:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_radix4_instance_q15; 2989:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2990:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 2991:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_cfft_radix4_init_q15( 2992:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_q15 * S, 2993:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen, 2994:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 2995:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 2996:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 2997:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 2998:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_radix4_q15( 2999:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_radix4_instance_q15 * S, 3000:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pSrc); 3001:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3002:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3003:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Radix-2 Q31 CFFT/CIFFT function. 3004:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3005:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3006:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3007:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 3008:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse ( 3009:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (b 3010:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pTwiddle; /**< points to the Twiddle factor table. */ 3011:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 3012:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports differen 3013:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevFactor; /**< bit reversal modifier that supports different size ARM GAS /tmp/ccRzkJVN.s page 101 3014:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_radix2_instance_q31; 3015:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3016:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 3017:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_cfft_radix2_init_q31( 3018:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix2_instance_q31 * S, 3019:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen, 3020:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 3021:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 3022:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3023:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 3024:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_radix2_q31( 3025:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_radix2_instance_q31 * S, 3026:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pSrc); 3027:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3028:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3029:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 CFFT/CIFFT function. 3030:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3031:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3032:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3033:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 3034:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse ( 3035:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables (b 3036:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pTwiddle; /**< points to the twiddle factor table. */ 3037:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 3038:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports differen 3039:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevFactor; /**< bit reversal modifier that supports different size 3040:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_radix4_instance_q31; 3041:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3042:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 3043:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_radix4_q31( 3044:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_radix4_instance_q31 * S, 3045:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pSrc); 3046:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3047:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 3048:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_cfft_radix4_init_q31( 3049:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_q31 * S, 3050:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen, 3051:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 3052:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 3053:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3054:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3055:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point CFFT/CIFFT function. 3056:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3057:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3058:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3059:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 3060:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse 3061:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables 3062:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pTwiddle; /**< points to the Twiddle factor table. */ 3063:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 3064:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports differ 3065:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevFactor; /**< bit reversal modifier that supports different siz 3066:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t onebyfftLen; /**< value of 1/fftLen. */ 3067:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_radix2_instance_f32; 3068:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3069:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 3070:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_cfft_radix2_init_f32( ARM GAS /tmp/ccRzkJVN.s page 102 3071:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix2_instance_f32 * S, 3072:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen, 3073:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 3074:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 3075:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3076:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 3077:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_radix2_f32( 3078:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_radix2_instance_f32 * S, 3079:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pSrc); 3080:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3081:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3082:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point CFFT/CIFFT function. 3083:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3084:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3085:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3086:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 3087:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag; /**< flag that selects forward (ifftFlag=0) or inverse 3088:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag; /**< flag that enables (bitReverseFlag=1) or disables 3089:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pTwiddle; /**< points to the Twiddle factor table. */ 3090:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 3091:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t twidCoefModifier; /**< twiddle coefficient modifier that supports differ 3092:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevFactor; /**< bit reversal modifier that supports different siz 3093:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t onebyfftLen; /**< value of 1/fftLen. */ 3094:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_radix4_instance_f32; 3095:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3096:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 3097:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_cfft_radix4_init_f32( 3098:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_f32 * S, 3099:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen, 3100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 3101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 3102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Deprecated */ 3104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_radix4_f32( 3105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_radix4_instance_f32 * S, 3106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pSrc); 3107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the fixed-point CFFT/CIFFT function. 3110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 3114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pTwiddle; /**< points to the Twiddle factor table. */ 3115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 3116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevLength; /**< bit reversal table length. */ 3117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_MVEI) 3118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t *rearranged_twiddle_tab_stride1_arr; /**< Per stage reordered twiddle poin 3119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t *rearranged_twiddle_tab_stride2_arr; /**< Per stage reordered twiddle poin 3120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t *rearranged_twiddle_tab_stride3_arr; /**< Per stage reordered twiddle poin 3121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *rearranged_twiddle_stride1; /**< reordered twiddle offset 1 storage */ 3122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *rearranged_twiddle_stride2; /**< reordered twiddle offset 2 storage */ 3123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *rearranged_twiddle_stride3; 3124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 3125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_instance_q15; 3126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_cfft_init_q15( ARM GAS /tmp/ccRzkJVN.s page 103 3128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_instance_q15 * S, 3129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen); 3130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_q15( 3132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_instance_q15 * S, 3133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * p1, 3134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 3135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 3136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the fixed-point CFFT/CIFFT function. 3139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 3143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pTwiddle; /**< points to the Twiddle factor table. */ 3144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 3145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevLength; /**< bit reversal table length. */ 3146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_MVEI) 3147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t *rearranged_twiddle_tab_stride1_arr; /**< Per stage reordered twiddle poin 3148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t *rearranged_twiddle_tab_stride2_arr; /**< Per stage reordered twiddle poin 3149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t *rearranged_twiddle_tab_stride3_arr; /**< Per stage reordered twiddle poin 3150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *rearranged_twiddle_stride1; /**< reordered twiddle offset 1 storage */ 3151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *rearranged_twiddle_stride2; /**< reordered twiddle offset 2 storage */ 3152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *rearranged_twiddle_stride3; 3153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 3154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_instance_q31; 3155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_cfft_init_q31( 3157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_instance_q31 * S, 3158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen); 3159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_q31( 3161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_instance_q31 * S, 3162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * p1, 3163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 3164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 3165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point CFFT/CIFFT function. 3168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 3172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pTwiddle; /**< points to the Twiddle factor table. */ 3173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 3174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevLength; /**< bit reversal table length. */ 3175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 3176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t *rearranged_twiddle_tab_stride1_arr; /**< Per stage reordered twiddle poin 3177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t *rearranged_twiddle_tab_stride2_arr; /**< Per stage reordered twiddle poin 3178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint32_t *rearranged_twiddle_tab_stride3_arr; /**< Per stage reordered twiddle poin 3179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *rearranged_twiddle_stride1; /**< reordered twiddle offset 1 storage */ 3180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *rearranged_twiddle_stride2; /**< reordered twiddle offset 2 storage */ 3181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *rearranged_twiddle_stride3; 3182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 3183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_instance_f32; 3184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 104 3185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_cfft_init_f32( 3187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_instance_f32 * S, 3188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen); 3189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_f32( 3191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_instance_f32 * S, 3192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * p1, 3193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 3194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 3195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Double Precision Floating-point CFFT/CIFFT function. 3199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen; /**< length of the FFT. */ 3203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float64_t *pTwiddle; /**< points to the Twiddle factor table. */ 3204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const uint16_t *pBitRevTable; /**< points to the bit reversal table. */ 3205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t bitRevLength; /**< bit reversal table length. */ 3206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_cfft_instance_f64; 3207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_cfft_f64( 3209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_instance_f64 * S, 3210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float64_t * p1, 3211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag, 3212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlag); 3213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 RFFT/RIFFT function. 3216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t fftLenReal; /**< length of the real FFT. */ 3220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) or 3221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or d 3222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that supports 3223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pTwiddleAReal; /**< points to the real twiddle factor table. * 3224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pTwiddleBReal; /**< points to the imag twiddle factor table. * 3225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_MVEI) 3226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_instance_q15 cfftInst; 3227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 3228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_instance_q15 *pCfft; /**< points to the complex FFT instance. */ 3229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 3230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_rfft_instance_q15; 3231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_rfft_init_q15( 3233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_instance_q15 * S, 3234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t fftLenReal, 3235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t ifftFlagR, 3236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t bitReverseFlag); 3237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_rfft_q15( 3239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_rfft_instance_q15 * S, 3240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pSrc, 3241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst); ARM GAS /tmp/ccRzkJVN.s page 105 3242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 RFFT/RIFFT function. 3245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t fftLenReal; /**< length of the real FFT. */ 3249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) 3250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or 3251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that suppor 3252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pTwiddleAReal; /**< points to the real twiddle factor table. 3253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pTwiddleBReal; /**< points to the imag twiddle factor table. 3254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined(ARM_MATH_MVEI) 3255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_instance_q31 cfftInst; 3256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 3257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_cfft_instance_q31 *pCfft; /**< points to the complex FFT instance. */ 3258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 3259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_rfft_instance_q31; 3260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_rfft_init_q31( 3262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_instance_q31 * S, 3263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t fftLenReal, 3264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t ifftFlagR, 3265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t bitReverseFlag); 3266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_rfft_q31( 3268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_rfft_instance_q31 * S, 3269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pSrc, 3270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst); 3271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point RFFT/RIFFT function. 3274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t fftLenReal; /**< length of the real FFT. */ 3278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLenBy2; /**< length of the complex FFT. */ 3279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlagR; /**< flag that selects forward (ifftFlagR=0) 3280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t bitReverseFlagR; /**< flag that enables (bitReverseFlagR=1) or 3281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t twidCoefRModifier; /**< twiddle coefficient modifier that su 3282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pTwiddleAReal; /**< points to the real twiddle factor table. 3283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pTwiddleBReal; /**< points to the imag twiddle factor table. 3284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_f32 *pCfft; /**< points to the complex FFT instance. */ 3285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_rfft_instance_f32; 3286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_rfft_init_f32( 3288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_instance_f32 * S, 3289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_f32 * S_CFFT, 3290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t fftLenReal, 3291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t ifftFlagR, 3292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t bitReverseFlag); 3293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_rfft_f32( 3295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_rfft_instance_f32 * S, 3296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pSrc, 3297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst); 3298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 106 3299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Double Precision Floating-point RFFT/RIFFT function. 3301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_instance_f64 Sint; /**< Internal CFFT structure. */ 3305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLenRFFT; /**< length of the real sequence */ 3306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float64_t * pTwiddleRFFT; /**< Twiddle factors real stage */ 3307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_rfft_fast_instance_f64 ; 3308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_rfft_fast_init_f64 ( 3310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_fast_instance_f64 * S, 3311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen); 3312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_rfft_fast_f64( 3315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_fast_instance_f64 * S, 3316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float64_t * p, float64_t * pOut, 3317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag); 3318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point RFFT/RIFFT function. 3322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_instance_f32 Sint; /**< Internal CFFT structure. */ 3326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLenRFFT; /**< length of the real sequence */ 3327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pTwiddleRFFT; /**< Twiddle factors real stage */ 3328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_rfft_fast_instance_f32 ; 3329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_rfft_fast_init_f32 ( 3331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_fast_instance_f32 * S, 3332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t fftLen); 3333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_rfft_fast_f32( 3336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_rfft_fast_instance_f32 * S, 3337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * p, float32_t * pOut, 3338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t ifftFlag); 3339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point DCT4/IDCT4 function. 3342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t N; /**< length of the DCT4. */ 3346:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t Nby2; /**< half of the length of the DCT4. */ 3347:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t normalize; /**< normalizing factor. */ 3348:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pTwiddle; /**< points to the twiddle factor table. */ 3349:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pCosFactor; /**< points to the cosFactor table. */ 3350:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_instance_f32 *pRfft; /**< points to the real FFT instance. */ 3351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_f32 *pCfft; /**< points to the complex FFT instance. */ 3352:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_dct4_instance_f32; 3353:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3354:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3355:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** ARM GAS /tmp/ccRzkJVN.s page 107 3356:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the floating-point DCT4/IDCT4. 3357:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of floating-point DCT4/IDCT4 structure. 3358:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S_RFFT points to an instance of floating-point RFFT/RIFFT structure. 3359:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S_CFFT points to an instance of floating-point CFFT/CIFFT structure. 3360:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] N length of the DCT4. 3361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] Nby2 half of the length of the DCT4. 3362:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] normalize normalizing factor. 3363:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or A 3364:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3365:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_dct4_init_f32( 3366:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_dct4_instance_f32 * S, 3367:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_instance_f32 * S_RFFT, 3368:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_f32 * S_CFFT, 3369:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t N, 3370:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t Nby2, 3371:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t normalize); 3372:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3373:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3374:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3375:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the floating-point DCT4/IDCT4. 3376:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the floating-point DCT4/IDCT4 structure 3377:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to state buffer. 3378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] pInlineBuffer points to the in-place input and output buffer. 3379:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3380:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_dct4_f32( 3381:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_dct4_instance_f32 * S, 3382:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pState, 3383:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pInlineBuffer); 3384:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3386:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3387:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 DCT4/IDCT4 function. 3388:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3389:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3390:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3391:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t N; /**< length of the DCT4. */ 3392:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t Nby2; /**< half of the length of the DCT4. */ 3393:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t normalize; /**< normalizing factor. */ 3394:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pTwiddle; /**< points to the twiddle factor table. */ 3395:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pCosFactor; /**< points to the cosFactor table. */ 3396:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_instance_q31 *pRfft; /**< points to the real FFT instance. */ 3397:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_q31 *pCfft; /**< points to the complex FFT instance. */ 3398:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_dct4_instance_q31; 3399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3400:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3401:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3402:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q31 DCT4/IDCT4. 3403:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of Q31 DCT4/IDCT4 structure. 3404:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S_RFFT points to an instance of Q31 RFFT/RIFFT structure 3405:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S_CFFT points to an instance of Q31 CFFT/CIFFT structure 3406:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] N length of the DCT4. 3407:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] Nby2 half of the length of the DCT4. 3408:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] normalize normalizing factor. 3409:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or A 3410:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3411:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_dct4_init_q31( 3412:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_dct4_instance_q31 * S, ARM GAS /tmp/ccRzkJVN.s page 108 3413:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_instance_q31 * S_RFFT, 3414:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_q31 * S_CFFT, 3415:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t N, 3416:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t Nby2, 3417:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t normalize); 3418:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3419:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3420:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3421:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q31 DCT4/IDCT4. 3422:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q31 DCT4 structure. 3423:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to state buffer. 3424:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] pInlineBuffer points to the in-place input and output buffer. 3425:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3426:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_dct4_q31( 3427:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_dct4_instance_q31 * S, 3428:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pState, 3429:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pInlineBuffer); 3430:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3431:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3432:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3433:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 DCT4/IDCT4 function. 3434:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3435:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 3436:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 3437:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t N; /**< length of the DCT4. */ 3438:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t Nby2; /**< half of the length of the DCT4. */ 3439:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t normalize; /**< normalizing factor. */ 3440:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pTwiddle; /**< points to the twiddle factor table. */ 3441:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pCosFactor; /**< points to the cosFactor table. */ 3442:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_instance_q15 *pRfft; /**< points to the real FFT instance. */ 3443:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_q15 *pCfft; /**< points to the complex FFT instance. */ 3444:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_dct4_instance_q15; 3445:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3446:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3447:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3448:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q15 DCT4/IDCT4. 3449:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of Q15 DCT4/IDCT4 structure. 3450:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S_RFFT points to an instance of Q15 RFFT/RIFFT structure. 3451:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S_CFFT points to an instance of Q15 CFFT/CIFFT structure. 3452:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] N length of the DCT4. 3453:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] Nby2 half of the length of the DCT4. 3454:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] normalize normalizing factor. 3455:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return arm_status function returns ARM_MATH_SUCCESS if initialization is successful or A 3456:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_dct4_init_q15( 3458:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_dct4_instance_q15 * S, 3459:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_rfft_instance_q15 * S_RFFT, 3460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_cfft_radix4_instance_q15 * S_CFFT, 3461:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t N, 3462:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t Nby2, 3463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t normalize); 3464:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3465:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3467:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q15 DCT4/IDCT4. 3468:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q15 DCT4 structure. 3469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to state buffer. ARM GAS /tmp/ccRzkJVN.s page 109 3470:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] pInlineBuffer points to the in-place input and output buffer. 3471:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3472:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_dct4_q15( 3473:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_dct4_instance_q15 * S, 3474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pState, 3475:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pInlineBuffer); 3476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3478:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point vector addition. 3480:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3485:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_add_f32( 3486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcA, 3487:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcB, 3488:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 3489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3490:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3491:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3493:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q7 vector addition. 3494:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3496:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3497:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3498:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3499:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_add_q7( 3500:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcA, 3501:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcB, 3502:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 3503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3505:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 vector addition. 3508:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3510:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_add_q15( 3514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 3515:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 3516:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 3517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3518:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3519:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3521:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 vector addition. 3522:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3524:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3525:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ ARM GAS /tmp/ccRzkJVN.s page 110 3527:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_add_q31( 3528:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcA, 3529:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcB, 3530:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 3531:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3533:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3534:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point vector subtraction. 3536:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3537:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3539:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3540:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_sub_f32( 3542:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcA, 3543:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcB, 3544:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 3545:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3546:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3547:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3548:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3549:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q7 vector subtraction. 3550:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3551:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3552:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3553:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3554:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3555:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_sub_q7( 3556:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcA, 3557:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcB, 3558:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 3559:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3560:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3561:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3562:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3563:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 vector subtraction. 3564:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3565:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3566:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3567:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3568:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3569:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_sub_q15( 3570:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 3571:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 3572:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 3573:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3574:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3575:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3576:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3577:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 vector subtraction. 3578:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3579:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3580:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3581:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3582:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3583:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_sub_q31( ARM GAS /tmp/ccRzkJVN.s page 111 3584:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcA, 3585:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcB, 3586:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 3587:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3588:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3589:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3590:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3591:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Multiplies a floating-point vector by a scalar. 3592:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3593:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] scale scale factor to be applied 3594:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3595:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3596:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3597:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_scale_f32( 3598:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 3599:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t scale, 3600:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 3601:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3602:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3603:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3604:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3605:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Multiplies a Q7 vector by a scalar. 3606:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3607:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] scaleFract fractional portion of the scale value 3608:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] shift number of bits to shift the result by 3609:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3610:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3611:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3612:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_scale_q7( 3613:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrc, 3614:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t scaleFract, 3615:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t shift, 3616:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 3617:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3618:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3619:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3620:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3621:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Multiplies a Q15 vector by a scalar. 3622:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3623:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] scaleFract fractional portion of the scale value 3624:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] shift number of bits to shift the result by 3625:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3626:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3627:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3628:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_scale_q15( 3629:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 3630:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t scaleFract, 3631:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t shift, 3632:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 3633:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3634:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3635:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3636:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3637:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Multiplies a Q31 vector by a scalar. 3638:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3639:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] scaleFract fractional portion of the scale value 3640:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] shift number of bits to shift the result by ARM GAS /tmp/ccRzkJVN.s page 112 3641:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3642:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3643:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3644:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_scale_q31( 3645:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 3646:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t scaleFract, 3647:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t shift, 3648:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 3649:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3650:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3651:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3652:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3653:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q7 vector absolute value. 3654:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input buffer 3655:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output buffer 3656:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3657:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3658:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_abs_q7( 3659:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrc, 3660:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 3661:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3662:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3663:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3664:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3665:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point vector absolute value. 3666:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input buffer 3667:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output buffer 3668:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3669:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3670:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_abs_f32( 3671:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 3672:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 3673:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3674:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3675:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3676:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3677:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q15 vector absolute value. 3678:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input buffer 3679:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output buffer 3680:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3681:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3682:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_abs_q15( 3683:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 3684:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 3685:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3686:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3687:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3688:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3689:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Q31 vector absolute value. 3690:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input buffer 3691:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output buffer 3692:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3693:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3694:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_abs_q31( 3695:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 3696:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 3697:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); ARM GAS /tmp/ccRzkJVN.s page 113 3698:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3699:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3700:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3701:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Dot product of floating-point vectors. 3702:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3703:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3704:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3705:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] result output result returned here 3706:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3707:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_dot_prod_f32( 3708:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcA, 3709:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcB, 3710:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize, 3711:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * result); 3712:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3713:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3714:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3715:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Dot product of Q7 vectors. 3716:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3717:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3718:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3719:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] result output result returned here 3720:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3721:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_dot_prod_q7( 3722:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcA, 3723:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcB, 3724:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize, 3725:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * result); 3726:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3727:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3728:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3729:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Dot product of Q15 vectors. 3730:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3731:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3732:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3733:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] result output result returned here 3734:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3735:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_dot_prod_q15( 3736:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 3737:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 3738:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize, 3739:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q63_t * result); 3740:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3741:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3742:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3743:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Dot product of Q31 vectors. 3744:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input vector 3745:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input vector 3746:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in each vector 3747:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] result output result returned here 3748:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3749:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_dot_prod_q31( 3750:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcA, 3751:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcB, 3752:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize, 3753:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q63_t * result); 3754:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 114 3755:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3756:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3757:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Shifts the elements of a Q7 vector a specified number of bits. 3758:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3759:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative valu 3760:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3761:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3762:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3763:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_shift_q7( 3764:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrc, 3765:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t shiftBits, 3766:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 3767:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3768:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3769:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3770:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3771:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Shifts the elements of a Q15 vector a specified number of bits. 3772:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3773:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative valu 3774:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3775:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3776:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3777:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_shift_q15( 3778:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 3779:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t shiftBits, 3780:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 3781:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3782:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3783:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3784:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3785:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Shifts the elements of a Q31 vector a specified number of bits. 3786:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3787:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] shiftBits number of bits to shift. A positive value shifts left; a negative valu 3788:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3789:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3790:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3791:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_shift_q31( 3792:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 3793:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int8_t shiftBits, 3794:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 3795:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3796:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3797:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3798:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3799:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Adds a constant offset to a floating-point vector. 3800:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3801:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] offset is the offset to be added 3802:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3803:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3804:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3805:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_offset_f32( 3806:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 3807:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t offset, 3808:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 3809:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3810:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3811:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 115 3812:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3813:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Adds a constant offset to a Q7 vector. 3814:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3815:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] offset is the offset to be added 3816:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3817:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3818:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3819:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_offset_q7( 3820:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrc, 3821:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t offset, 3822:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 3823:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3825:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3826:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3827:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Adds a constant offset to a Q15 vector. 3828:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3829:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] offset is the offset to be added 3830:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3831:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3832:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3833:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_offset_q15( 3834:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 3835:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t offset, 3836:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 3837:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3838:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3839:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3840:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3841:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Adds a constant offset to a Q31 vector. 3842:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3843:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] offset is the offset to be added 3844:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3845:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3846:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3847:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_offset_q31( 3848:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 3849:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t offset, 3850:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 3851:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3852:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3853:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3854:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3855:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Negates the elements of a floating-point vector. 3856:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3857:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3858:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3859:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3860:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_negate_f32( 3861:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 3862:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 3863:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3864:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3865:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3866:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3867:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Negates the elements of a Q7 vector. 3868:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector ARM GAS /tmp/ccRzkJVN.s page 116 3869:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3870:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3871:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3872:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_negate_q7( 3873:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrc, 3874:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 3875:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3876:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3877:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3878:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3879:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Negates the elements of a Q15 vector. 3880:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3881:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3882:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3883:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3884:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_negate_q15( 3885:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 3886:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 3887:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3888:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3889:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3890:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3891:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Negates the elements of a Q31 vector. 3892:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the input vector 3893:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the output vector 3894:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples in the vector 3895:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3896:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_negate_q31( 3897:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 3898:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 3899:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3900:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3901:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3902:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3903:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Copies the elements of a floating-point vector. 3904:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc input pointer 3905:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst output pointer 3906:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process 3907:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3908:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_copy_f32( 3909:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 3910:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 3911:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3912:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3913:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3914:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3915:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Copies the elements of a Q7 vector. 3916:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc input pointer 3917:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst output pointer 3918:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process 3919:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3920:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_copy_q7( 3921:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrc, 3922:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 3923:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3924:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3925:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 117 3926:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3927:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Copies the elements of a Q15 vector. 3928:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc input pointer 3929:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst output pointer 3930:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process 3931:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3932:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_copy_q15( 3933:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 3934:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 3935:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3936:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3937:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3938:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3939:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Copies the elements of a Q31 vector. 3940:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc input pointer 3941:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst output pointer 3942:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process 3943:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3944:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_copy_q31( 3945:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 3946:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 3947:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3948:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3949:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3950:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3951:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fills a constant value into a floating-point vector. 3952:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] value input value to be filled 3953:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst output pointer 3954:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process 3955:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3956:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fill_f32( 3957:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t value, 3958:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 3959:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3960:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3961:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3962:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3963:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fills a constant value into a Q7 vector. 3964:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] value input value to be filled 3965:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst output pointer 3966:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process 3967:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3968:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fill_q7( 3969:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t value, 3970:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 3971:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3972:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3973:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3974:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3975:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fills a constant value into a Q15 vector. 3976:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] value input value to be filled 3977:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst output pointer 3978:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process 3979:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3980:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fill_q15( 3981:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t value, 3982:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, ARM GAS /tmp/ccRzkJVN.s page 118 3983:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3984:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3985:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3986:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3987:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fills a constant value into a Q31 vector. 3988:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] value input value to be filled 3989:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst output pointer 3990:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of samples to process 3991:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 3992:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fill_q31( 3993:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t value, 3994:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 3995:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 3996:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3997:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 3998:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 3999:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Convolution of floating-point sequences. 4000:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4001:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4002:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4003:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4004:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the location where the output result is written. Length srcALen+ 4005:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4006:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_conv_f32( 4007:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcA, 4008:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4009:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcB, 4010:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4011:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst); 4012:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4013:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4014:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4015:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Convolution of Q15 sequences. 4016:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4017:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4018:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4019:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4020:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. 4021:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, 4022:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen). 4023:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4024:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_conv_opt_q15( 4025:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 4026:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4027:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 4028:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4029:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 4030:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch1, 4031:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch2); 4032:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4033:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4034:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4035:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Convolution of Q15 sequences. 4036:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4037:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4038:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4039:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. ARM GAS /tmp/ccRzkJVN.s page 119 4040:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the location where the output result is written. Length srcALen+ 4041:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4042:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_conv_q15( 4043:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 4044:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4045:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 4046:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4047:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst); 4048:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4049:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4050:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4051:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 4052:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4053:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4054:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4055:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4056:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. 4057:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4058:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_conv_fast_q15( 4059:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 4060:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4061:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 4062:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4063:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst); 4064:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4065:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4066:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4067:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 4068:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4069:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4070:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4071:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4072:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. 4073:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen, 4074:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen). 4075:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4076:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_conv_fast_opt_q15( 4077:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 4078:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4079:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 4080:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4081:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 4082:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch1, 4083:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch2); 4084:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4085:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4086:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4087:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Convolution of Q31 sequences. 4088:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4089:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4090:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4091:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4092:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. 4093:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4094:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_conv_q31( 4095:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcA, 4096:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, ARM GAS /tmp/ccRzkJVN.s page 120 4097:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcB, 4098:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4099:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst); 4100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 4104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. 4109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_conv_fast_q31( 4111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcA, 4112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcB, 4114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst); 4116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Convolution of Q7 sequences. 4120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. 4125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) + 4126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen). 4127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_conv_opt_q7( 4129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcA, 4130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcB, 4132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 4134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch1, 4135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch2); 4136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Convolution of Q7 sequences. 4140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data Length srcALen+srcBLen-1. 4145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_conv_q7( 4147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcA, 4148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcB, 4150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst); 4152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 121 4154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Partial convolution of floating-point sequences. 4156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] firstIndex is the first output sample to start with. 4162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numPoints is the number of output points to be computed. 4163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUM 4164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_conv_partial_f32( 4166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcA, 4167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrcB, 4169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 4171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t firstIndex, 4172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numPoints); 4173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Partial convolution of Q15 sequences. 4177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] firstIndex is the first output sample to start with. 4183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numPoints is the number of output points to be computed. 4184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen 4185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen). 4186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUM 4187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_conv_partial_opt_q15( 4189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 4190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 4192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 4194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t firstIndex, 4195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numPoints, 4196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch1, 4197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch2); 4198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Partial convolution of Q15 sequences. 4202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] firstIndex is the first output sample to start with. 4208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numPoints is the number of output points to be computed. 4209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUM 4210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ ARM GAS /tmp/ccRzkJVN.s page 122 4211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_conv_partial_q15( 4212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 4213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 4215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 4217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t firstIndex, 4218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numPoints); 4219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 4223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] firstIndex is the first output sample to start with. 4229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numPoints is the number of output points to be computed. 4230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUM 4231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_conv_partial_fast_q15( 4233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 4234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 4236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 4238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t firstIndex, 4239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numPoints); 4240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Partial convolution of Q15 sequences (fast version) for Cortex-M3 and Cortex-M4 4244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] firstIndex is the first output sample to start with. 4250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numPoints is the number of output points to be computed. 4251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch1 points to scratch buffer of size max(srcALen, srcBLen) + 2*min(srcALen 4252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch2 points to scratch buffer of size min(srcALen, srcBLen). 4253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUM 4254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_conv_partial_fast_opt_q15( 4256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcA, 4257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrcB, 4259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 4261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t firstIndex, 4262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numPoints, 4263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch1, 4264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch2); 4265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** ARM GAS /tmp/ccRzkJVN.s page 123 4268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Partial convolution of Q31 sequences. 4269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] firstIndex is the first output sample to start with. 4275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numPoints is the number of output points to be computed. 4276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUM 4277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_conv_partial_q31( 4279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcA, 4280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcB, 4282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 4284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t firstIndex, 4285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numPoints); 4286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Partial convolution of Q31 sequences (fast version) for Cortex-M3 and Cortex-M4 4290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] firstIndex is the first output sample to start with. 4296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numPoints is the number of output points to be computed. 4297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUM 4298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_conv_partial_fast_q31( 4300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcA, 4301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrcB, 4303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 4305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t firstIndex, 4306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numPoints); 4307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Partial convolution of Q7 sequences 4311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] firstIndex is the first output sample to start with. 4317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numPoints is the number of output points to be computed. 4318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch1 points to scratch buffer(of type q15_t) of size max(srcALen, srcBLen) 4319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pScratch2 points to scratch buffer (of type q15_t) of size min(srcALen, srcBLen) 4320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUM 4321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_conv_partial_opt_q7( 4323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcA, 4324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, ARM GAS /tmp/ccRzkJVN.s page 124 4325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcB, 4326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 4328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t firstIndex, 4329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numPoints, 4330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch1, 4331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pScratch2); 4332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Partial convolution of Q7 sequences. 4336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcA points to the first input sequence. 4337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcALen length of the first input sequence. 4338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrcB points to the second input sequence. 4339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] srcBLen length of the second input sequence. 4340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] firstIndex is the first output sample to start with. 4342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numPoints is the number of output points to be computed. 4343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return Returns either ARM_MATH_SUCCESS if the function completed correctly or ARM_MATH_ARGUM 4344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_conv_partial_q7( 4346:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcA, 4347:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcALen, 4348:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q7_t * pSrcB, 4349:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t srcBLen, 4350:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pDst, 4351:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t firstIndex, 4352:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t numPoints); 4353:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4354:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4355:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4356:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 FIR decimator. 4357:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4358:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 4359:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 4360:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t M; /**< decimation factor. */ 4361:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps; /**< number of coefficients in the filter. */ 4362:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pCoeffs; /**< points to the coefficient array. The array is of length 4363:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t *pState; /**< points to the state variable array. The array is of leng 4364:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_decimate_instance_q15; 4365:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4366:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4367:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 FIR decimator. 4368:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4369:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 4370:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 4371:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t M; /**< decimation factor. */ 4372:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps; /**< number of coefficients in the filter. */ 4373:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pCoeffs; /**< points to the coefficient array. The array is of length 4374:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t *pState; /**< points to the state variable array. The array is of leng 4375:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_decimate_instance_q31; 4376:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4377:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4378:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Instance structure for floating-point FIR decimator. 4379:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4380:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 4381:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { ARM GAS /tmp/ccRzkJVN.s page 125 4382:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t M; /**< decimation factor. */ 4383:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps; /**< number of coefficients in the filter. */ 4384:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pCoeffs; /**< points to the coefficient array. The array is of length 4385:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pState; /**< points to the state variable array. The array is of leng 4386:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_decimate_instance_f32; 4387:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4388:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4389:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4390:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Processing function for floating-point FIR decimator. 4391:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] S points to an instance of the floating-point FIR decimator structure 4392:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pSrc points to the block of input data 4393:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pDst points to the block of output data 4394:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] blockSize number of samples to process 4395:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4396:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_decimate_f32( 4397:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_decimate_instance_f32 * S, 4398:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 4399:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 4400:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 4401:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4402:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4403:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4404:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Initialization function for the floating-point FIR decimator. 4405:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in,out] S points to an instance of the floating-point FIR decimator structure 4406:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] numTaps number of coefficients in the filter 4407:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] M decimation factor 4408:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pCoeffs points to the filter coefficients 4409:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pState points to the state buffer 4410:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] blockSize number of input samples to process per call 4411:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return execution status 4412:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** - \ref ARM_MATH_SUCCESS : Operation successful 4413:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** - \ref ARM_MATH_LENGTH_ERROR : blockSize is not a multiple of blockSize is not a multiple of M. 4462:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_fir_decimate_init_q15( 4464:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_fir_decimate_instance_q15 * S, 4465:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps, 4466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t M, 4467:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pCoeffs, 4468:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pState, 4469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 4470:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4471:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4472:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4473:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q31 FIR decimator. 4474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q31 FIR decimator structure. 4475:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 4476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of input samples to process per call. 4478:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_decimate_q31( 4480:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_decimate_instance_q31 * S, 4481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 4482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, 4483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 4484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4485:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q31 FIR decimator (fast variant) for Cortex-M3 and Cortex-M 4487:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q31 FIR decimator structure. 4488:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 4489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data 4490:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of input samples to process per call. 4491:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_decimate_fast_q31( 4493:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_decimate_instance_q31 * S, 4494:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pSrc, 4495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pDst, ARM GAS /tmp/ccRzkJVN.s page 127 4496:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 4497:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4498:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4499:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4500:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q31 FIR decimator. 4501:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q31 FIR decimator structure. 4502:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numTaps number of coefficients in the filter. 4503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] M decimation factor. 4504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffs points to the filter coefficients. 4505:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the state buffer. 4506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of input samples to process per call. 4507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_L 4508:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * blockSize is not a multiple of M. 4509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4510:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_fir_decimate_init_q31( 4511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_fir_decimate_instance_q31 * S, 4512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t numTaps, 4513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t M, 4514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t * pCoeffs, 4515:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pState, 4516:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 4517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4518:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4519:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q15 FIR interpolator. 4521:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4522:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 4523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 4524:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t L; /**< upsample factor. */ 4525:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t phaseLength; /**< length of each polyphase filter component. */ 4526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t *pCoeffs; /**< points to the coefficient array. The array is of lengt 4527:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t *pState; /**< points to the state variable array. The array is of le 4528:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_interpolate_instance_q15; 4529:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4530:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4531:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the Q31 FIR interpolator. 4532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4533:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 4534:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 4535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t L; /**< upsample factor. */ 4536:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t phaseLength; /**< length of each polyphase filter component. */ 4537:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q31_t *pCoeffs; /**< points to the coefficient array. The array is of lengt 4538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t *pState; /**< points to the state variable array. The array is of le 4539:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_interpolate_instance_q31; 4540:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4542:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Instance structure for the floating-point FIR interpolator. 4543:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4544:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** typedef struct 4545:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 4546:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint8_t L; /**< upsample factor. */ 4547:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint16_t phaseLength; /**< length of each polyphase filter component. */ 4548:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t *pCoeffs; /**< points to the coefficient array. The array is of length 4549:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pState; /**< points to the state variable array. The array is of len 4550:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } arm_fir_interpolate_instance_f32; 4551:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4552:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 128 4553:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4554:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Processing function for the Q15 FIR interpolator. 4555:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] S points to an instance of the Q15 FIR interpolator structure. 4556:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pSrc points to the block of input data. 4557:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pDst points to the block of output data. 4558:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of input samples to process per call. 4559:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 4560:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_fir_interpolate_q15( 4561:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_fir_interpolate_instance_q15 * S, 4562:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const q15_t * pSrc, 4563:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pDst, 4564:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 4565:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4566:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 4567:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 4568:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Initialization function for the Q15 FIR interpolator. 4569:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S points to an instance of the Q15 FIR interpolator structure. 4570:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] L upsample factor. 4571:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] numTaps number of filter coefficients in the filter. 4572:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pCoeffs points to the filter coefficient buffer. 4573:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pState points to the state buffer. 4574:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] blockSize number of input samples to process per call. 4575:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MA 4576:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * the filter length numTaps is not a multiple of the interpolation factor LnumTaps is not a multiple of the interpolation factor LnumTaps is not a multiple of the interpolation factor LS points to an instance of the PID control data structure. in 5833:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * is the input sample value. The functions return the output value. 5834:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 5835:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Algorithm: 5836:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
5837:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *    y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2]
5838:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *    A0 = Kp + Ki + Kd
5839:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *    A1 = (-Kp ) - (2 * Kd )
5840:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *    A2 = Kd
5841:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    * 
5842:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 5843:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 5844:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * where \c Kp is proportional constant, \c Ki is Integral constant and \c Kd is Derivative const 5845:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 5846:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 5847:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \image html PID.gif "Proportional Integral Derivative Controller" 5848:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 5849:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 5850:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The PID controller calculates an "error" value as the difference between 5851:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * the measured output and the reference input. 5852:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The controller attempts to minimize the error by adjusting the process control inputs. 5853:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The proportional value determines the reaction to the current error, 5854:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * the integral value determines the reaction based on the sum of recent errors, 5855:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * and the derivative value determines the reaction based on the rate at which the error has been 5856:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 5857:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Instance Structure 5858:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The Gains A0, A1, A2 and state variables for a PID controller are stored together in an instan 5859:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * A separate instance structure must be defined for each PID Controller. 5860:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There are separate instance structure declarations for each of the 3 supported data types. 5861:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 5862:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Reset Functions 5863:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There is also an associated reset function for each data type which clears the state array. ARM GAS /tmp/ccRzkJVN.s page 151 5864:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 5865:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Initialization Functions 5866:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There is also an associated initialization function for each data type. 5867:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The initialization function performs the following operations: 5868:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Initializes the Gains A0, A1, A2 from Kp,Ki, Kd gains. 5869:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * - Zeros out the values in the state buffer. 5870:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 5871:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 5872:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Instance structure cannot be placed into a const data section and it is recommended to use the 5873:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 5874:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Fixed-Point Behavior 5875:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Care must be taken when using the fixed-point versions of the PID Controller functions. 5876:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * In particular, the overflow and saturation behavior of the accumulator used in each function m 5877:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Refer to the function specific documentation below for usage guidelines. 5878:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 5879:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5880:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 5881:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @addtogroup PID 5882:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @{ 5883:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 5884:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5885:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 5886:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Process function for the floating-point PID Control. 5887:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S is an instance of the floating-point PID Control structure 5888:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] in input sample to process 5889:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return processed output sample. 5890:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 5891:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE float32_t arm_pid_f32( 5892:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_pid_instance_f32 * S, 5893:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t in) 5894:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 5895:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t out; 5896:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5897:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* y[n] = y[n-1] + A0 * x[n] + A1 * x[n-1] + A2 * x[n-2] */ 5898:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** out = (S->A0 * in) + 5899:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** (S->A1 * S->state[0]) + (S->A2 * S->state[1]) + (S->state[2]); 5900:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5901:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Update state */ 5902:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** S->state[1] = S->state[0]; 5903:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** S->state[0] = in; 5904:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** S->state[2] = out; 5905:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5906:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* return to application */ 5907:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (out); 5908:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5909:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 5910:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5911:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 5912:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Process function for the Q31 PID Control. 5913:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in,out] S points to an instance of the Q31 PID Control structure 5914:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] in input sample to process 5915:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return processed output sample. 5916:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5917:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** \par Scaling and Overflow Behavior 5918:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The function is implemented using an internal 64-bit accumulator. 5919:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The accumulator has a 2.62 format and maintains full precision of the intermediate multipl 5920:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** Thus, if the accumulator result overflows it wraps around rather than clip. ARM GAS /tmp/ccRzkJVN.s page 152 5921:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** In order to avoid overflows completely the input signal must be scaled down by 2 bits as t 5922:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** After all multiply-accumulates are performed, the 2.62 accumulator is truncated to 1.32 fo 5923:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 5924:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t arm_pid_q31( 5925:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_pid_instance_q31 * S, 5926:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t in) 5927:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 5928:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q63_t acc; 5929:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t out; 5930:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5931:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* acc = A0 * x[n] */ 5932:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** acc = (q63_t) S->A0 * in; 5933:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5934:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* acc += A1 * x[n-1] */ 5935:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** acc += (q63_t) S->A1 * S->state[0]; 5936:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5937:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* acc += A2 * x[n-2] */ 5938:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** acc += (q63_t) S->A2 * S->state[1]; 5939:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5940:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* convert output to 1.31 format to add y[n-1] */ 5941:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** out = (q31_t) (acc >> 31U); 5942:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5943:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* out += y[n-1] */ 5944:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** out += S->state[2]; 5945:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5946:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Update state */ 5947:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** S->state[1] = S->state[0]; 5948:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** S->state[0] = in; 5949:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** S->state[2] = out; 5950:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5951:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* return to application */ 5952:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (out); 5953:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 5954:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5955:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5956:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 5957:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Process function for the Q15 PID Control. 5958:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in,out] S points to an instance of the Q15 PID Control structure 5959:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] in input sample to process 5960:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return processed output sample. 5961:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5962:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** \par Scaling and Overflow Behavior 5963:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The function is implemented using a 64-bit internal accumulator. 5964:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** Both Gains and state variables are represented in 1.15 format and multiplications yield a 5965:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The 2.30 intermediate results are accumulated in a 64-bit accumulator in 34.30 format. 5966:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** There is no risk of internal overflow with this approach and the full precision of interme 5967:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** After all additions have been performed, the accumulator is truncated to 34.15 format by d 5968:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** Lastly, the accumulator is saturated to yield a result in 1.15 format. 5969:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 5970:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q15_t arm_pid_q15( 5971:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_pid_instance_q15 * S, 5972:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t in) 5973:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 5974:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q63_t acc; 5975:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t out; 5976:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5977:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined (ARM_MATH_DSP) ARM GAS /tmp/ccRzkJVN.s page 153 5978:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Implementation of PID controller */ 5979:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5980:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* acc = A0 * x[n] */ 5981:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** acc = (q31_t) __SMUAD((uint32_t)S->A0, (uint32_t)in); 5982:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5983:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* acc += A1 * x[n-1] + A2 * x[n-2] */ 5984:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** acc = (q63_t)__SMLALD((uint32_t)S->A1, (uint32_t)read_q15x2 (S->state), (uint64_t)acc); 5985:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 5986:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* acc = A0 * x[n] */ 5987:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** acc = ((q31_t) S->A0) * in; 5988:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5989:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* acc += A1 * x[n-1] + A2 * x[n-2] */ 5990:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** acc += (q31_t) S->A1 * S->state[0]; 5991:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** acc += (q31_t) S->A2 * S->state[1]; 5992:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 5993:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5994:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* acc += y[n-1] */ 5995:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** acc += (q31_t) S->state[2] << 15; 5996:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 5997:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* saturate the output */ 5998:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** out = (q15_t) (__SSAT((q31_t)(acc >> 15), 16)); 5999:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6000:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Update state */ 6001:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** S->state[1] = S->state[0]; 6002:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** S->state[0] = in; 6003:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** S->state[2] = out; 6004:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6005:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* return to application */ 6006:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (out); 6007:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6008:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6009:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6010:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @} end of PID group 6011:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6012:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6013:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6014:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6015:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point matrix inverse. 6016:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] src points to the instance of the input floating-point matrix structure. 6017:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] dst points to the instance of the output floating-point matrix structure. 6018:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match. 6019:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * If the input matrix is singular (does not have an inverse), then the algorithm terminates and 6020:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6021:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_inverse_f32( 6022:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f32 * src, 6023:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_f32 * dst); 6024:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6025:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6026:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6027:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point matrix inverse. 6028:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] src points to the instance of the input floating-point matrix structure. 6029:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] dst points to the instance of the output floating-point matrix structure. 6030:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return The function returns ARM_MATH_SIZE_MISMATCH, if the dimensions do not match. 6031:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * If the input matrix is singular (does not have an inverse), then the algorithm terminates and 6032:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6033:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_status arm_mat_inverse_f64( 6034:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const arm_matrix_instance_f64 * src, ARM GAS /tmp/ccRzkJVN.s page 154 6035:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_matrix_instance_f64 * dst); 6036:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6037:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6038:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6039:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6040:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @ingroup groupController 6041:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6042:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6043:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6044:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup clarke Vector Clarke Transform 6045:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Forward Clarke transform converts the instantaneous stator phases into a two-coordinate time i 6046:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Generally the Clarke transform uses three-phase currents Ia, Ib and Ic to calcula 6047:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * in the two-phase orthogonal stator axis Ialpha and Ibeta. 6048:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * When Ialpha is superposed with Ia as shown in the figure below 6049:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \image html clarke.gif Stator current space vector and its components in (a,b). 6050:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * and Ia + Ib + Ic = 0, in this condition Ialpha and IbetaIa and Ib. 6052:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6053:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The function operates on a single sample of data and each call to the function returns the pro 6054:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library provides separate functions for Q31 and floating-point data types. 6055:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Algorithm 6056:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \image html clarkeFormula.gif 6057:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * where Ia and Ib are the instantaneous stator phases and 6058:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * pIalpha and pIbeta are the two coordinates of time invariant vector. 6059:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Fixed-Point Behavior 6060:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Care must be taken when using the Q31 version of the Clarke transform. 6061:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * In particular, the overflow and saturation behavior of the accumulator used must be considered 6062:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Refer to the function specific documentation below for usage guidelines. 6063:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6064:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6065:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6066:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @addtogroup clarke 6067:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @{ 6068:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6069:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6070:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6071:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6072:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point Clarke transform 6073:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] Ia input three-phase coordinate a 6074:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] Ib input three-phase coordinate b 6075:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pIalpha points to output two-phase orthogonal vector axis alpha 6076:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pIbeta points to output two-phase orthogonal vector axis beta 6077:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 6078:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6079:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void arm_clarke_f32( 6080:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t Ia, 6081:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t Ib, 6082:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pIalpha, 6083:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pIbeta) 6084:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6085:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculate pIalpha using the equation, pIalpha = Ia */ 6086:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIalpha = Ia; 6087:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6088:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculate pIbeta using the equation, pIbeta = (1/sqrt(3)) * Ia + (2/sqrt(3)) * Ib */ 6089:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIbeta = ((float32_t) 0.57735026919 * Ia + (float32_t) 1.15470053838 * Ib); 6090:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6091:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 155 6092:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6093:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6094:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Clarke transform for Q31 version 6095:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] Ia input three-phase coordinate a 6096:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] Ib input three-phase coordinate b 6097:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pIalpha points to output two-phase orthogonal vector axis alpha 6098:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pIbeta points to output two-phase orthogonal vector axis beta 6099:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 6100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** \par Scaling and Overflow Behavior 6102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The function is implemented using an internal 32-bit accumulator. 6103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate mult 6104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** There is saturation on the addition, hence there is no risk of overflow. 6105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void arm_clarke_q31( 6107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t Ia, 6108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t Ib, 6109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pIalpha, 6110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pIbeta) 6111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t product1, product2; /* Temporary variables used to store intermediate 6113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculating pIalpha from Ia by equation pIalpha = Ia */ 6115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIalpha = Ia; 6116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (1/(sqrt(3)) * Ia) */ 6118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product1 = (q31_t) (((q63_t) Ia * 0x24F34E8B) >> 30); 6119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (2/sqrt(3) * Ib) */ 6121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product2 = (q31_t) (((q63_t) Ib * 0x49E69D16) >> 30); 6122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* pIbeta is calculated by adding the intermediate products */ 6124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIbeta = __QADD(product1, product2); 6125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @} end of clarke group 6129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @ingroup groupController 6134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup inv_clarke Vector Inverse Clarke Transform 6138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Inverse Clarke transform converts the two-coordinate time invariant vector into instantaneous 6139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The function operates on a single sample of data and each call to the function returns the pro 6141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library provides separate functions for Q31 and floating-point data types. 6142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Algorithm 6143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \image html clarkeInvFormula.gif 6144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * where pIa and pIb are the instantaneous stator phases and 6145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Ialpha and Ibeta are the two coordinates of time invariant vector. 6146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Fixed-Point Behavior 6147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Care must be taken when using the Q31 version of the Clarke transform. 6148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * In particular, the overflow and saturation behavior of the accumulator used must be considered ARM GAS /tmp/ccRzkJVN.s page 156 6149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Refer to the function specific documentation below for usage guidelines. 6150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @addtogroup inv_clarke 6154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @{ 6155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point Inverse Clarke transform 6159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] Ialpha input two-phase orthogonal vector axis alpha 6160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] Ibeta input two-phase orthogonal vector axis beta 6161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pIa points to output three-phase coordinate a 6162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pIb points to output three-phase coordinate b 6163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 6164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void arm_inv_clarke_f32( 6166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t Ialpha, 6167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t Ibeta, 6168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pIa, 6169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pIb) 6170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculating pIa from Ialpha by equation pIa = Ialpha */ 6172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIa = Ialpha; 6173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculating pIb from Ialpha and Ibeta by equation pIb = -(1/2) * Ialpha + (sqrt(3)/2) * Ibet 6175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIb = -0.5f * Ialpha + 0.8660254039f * Ibeta; 6176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Inverse Clarke transform for Q31 version 6181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] Ialpha input two-phase orthogonal vector axis alpha 6182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] Ibeta input two-phase orthogonal vector axis beta 6183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pIa points to output three-phase coordinate a 6184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pIb points to output three-phase coordinate b 6185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 6186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** \par Scaling and Overflow Behavior 6188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The function is implemented using an internal 32-bit accumulator. 6189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate mult 6190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** There is saturation on the subtraction, hence there is no risk of overflow. 6191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void arm_inv_clarke_q31( 6193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t Ialpha, 6194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t Ibeta, 6195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pIa, 6196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pIb) 6197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t product1, product2; /* Temporary variables used to store intermediate 6199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculating pIa from Ialpha by equation pIa = Ialpha */ 6201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIa = Ialpha; 6202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (1/(2*sqrt(3)) * Ia) */ 6204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product1 = (q31_t) (((q63_t) (Ialpha) * (0x40000000)) >> 31); 6205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 157 6206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (1/sqrt(3) * pIb) */ 6207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product2 = (q31_t) (((q63_t) (Ibeta) * (0x6ED9EBA1)) >> 31); 6208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* pIb is calculated by subtracting the products */ 6210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIb = __QSUB(product2, product1); 6211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @} end of inv_clarke group 6215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @ingroup groupController 6221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup park Vector Park Transform 6225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Forward Park transform converts the input two-coordinate vector to flux and torque components. 6227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The Park transform can be used to realize the transformation of the Ialpha and th 6228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * from the stationary to the moving reference frame and control the spatial relationship between 6229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * the stator vector current and rotor flux vector. 6230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * If we consider the d axis aligned with the rotor flux, the diagram below shows the 6231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * current vector and the relationship from the two reference frames: 6232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \image html park.gif "Stator current space vector and its component in (a,b) and in the d,q ro 6233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The function operates on a single sample of data and each call to the function returns the pro 6235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library provides separate functions for Q31 and floating-point data types. 6236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Algorithm 6237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \image html parkFormula.gif 6238:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * where Ialpha and Ibeta are the stator vector components, 6239:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * pId and pIq are rotor vector components and cosVal and 6240:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * cosine and sine values of theta (rotor flux position). 6241:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Fixed-Point Behavior 6242:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Care must be taken when using the Q31 version of the Park transform. 6243:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * In particular, the overflow and saturation behavior of the accumulator used must be considered 6244:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Refer to the function specific documentation below for usage guidelines. 6245:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6246:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6247:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6248:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @addtogroup park 6249:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @{ 6250:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6251:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6252:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6253:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Floating-point Park transform 6254:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] Ialpha input two-phase vector coordinate alpha 6255:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] Ibeta input two-phase vector coordinate beta 6256:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pId points to output rotor reference frame d 6257:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[out] pIq points to output rotor reference frame q 6258:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] sinVal sine value of rotation angle theta 6259:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] cosVal cosine value of rotation angle theta 6260:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return none 6261:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6262:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The function implements the forward Park transform. ARM GAS /tmp/ccRzkJVN.s page 158 6263:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6264:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6265:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void arm_park_f32( 6266:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t Ialpha, 6267:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t Ibeta, 6268:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pId, 6269:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pIq, 6270:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t sinVal, 6271:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t cosVal) 6272:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6273:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculate pId using the equation, pId = Ialpha * cosVal + Ibeta * sinVal */ 6274:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pId = Ialpha * cosVal + Ibeta * sinVal; 6275:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6276:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculate pIq using the equation, pIq = - Ialpha * sinVal + Ibeta * cosVal */ 6277:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIq = -Ialpha * sinVal + Ibeta * cosVal; 6278:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6279:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6280:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6281:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6282:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Park transform for Q31 version 6283:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] Ialpha input two-phase vector coordinate alpha 6284:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] Ibeta input two-phase vector coordinate beta 6285:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pId points to output rotor reference frame d 6286:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pIq points to output rotor reference frame q 6287:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] sinVal sine value of rotation angle theta 6288:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] cosVal cosine value of rotation angle theta 6289:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 6290:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6291:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** \par Scaling and Overflow Behavior 6292:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The function is implemented using an internal 32-bit accumulator. 6293:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** The accumulator maintains 1.31 format by truncating lower 31 bits of the intermediate mult 6294:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** There is saturation on the addition and subtraction, hence there is no risk of overflow. 6295:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6296:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE void arm_park_q31( 6297:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t Ialpha, 6298:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t Ibeta, 6299:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pId, 6300:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pIq, 6301:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t sinVal, 6302:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t cosVal) 6303:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6304:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t product1, product2; /* Temporary variables used to store intermediate 6305:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t product3, product4; /* Temporary variables used to store intermediate 6306:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6307:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (Ialpha * cosVal) */ 6308:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product1 = (q31_t) (((q63_t) (Ialpha) * (cosVal)) >> 31); 6309:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6310:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (Ibeta * sinVal) */ 6311:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product2 = (q31_t) (((q63_t) (Ibeta) * (sinVal)) >> 31); 6312:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6313:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6314:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (Ialpha * sinVal) */ 6315:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product3 = (q31_t) (((q63_t) (Ialpha) * (sinVal)) >> 31); 6316:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6317:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (Ibeta * cosVal) */ 6318:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product4 = (q31_t) (((q63_t) (Ibeta) * (cosVal)) >> 31); 6319:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 159 6320:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculate pId by adding the two intermediate products 1 and 2 */ 6321:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pId = __QADD(product1, product2); 6322:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6323:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculate pIq by subtracting the two intermediate products 3 from 4 */ 6324:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIq = __QSUB(product4, product3); 6325:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6326:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6327:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6328:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @} end of park group 6329:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6330:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6331:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6332:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6333:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @ingroup groupController 6334:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6335:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6336:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6337:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup inv_park Vector Inverse Park transform 6338:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Inverse Park transform converts the input flux and torque components to two-coordinate vector. 6339:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6340:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The function operates on a single sample of data and each call to the function returns the pro 6341:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The library provides separate functions for Q31 and floating-point data types. 6342:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Algorithm 6343:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \image html parkInvFormula.gif 6344:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * where pIalpha and pIbeta are the stator vector components, 6345:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Id and Iq are rotor vector components and cosVal and > 31); 6412:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6413:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (Iq * sinVal) */ 6414:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product2 = (q31_t) (((q63_t) (Iq) * (sinVal)) >> 31); 6415:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6416:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6417:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (Id * sinVal) */ 6418:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product3 = (q31_t) (((q63_t) (Id) * (sinVal)) >> 31); 6419:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6420:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Intermediate product is calculated by (Iq * cosVal) */ 6421:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** product4 = (q31_t) (((q63_t) (Iq) * (cosVal)) >> 31); 6422:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6423:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculate pIalpha by using the two intermediate products 1 and 2 */ 6424:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIalpha = __QSUB(product1, product2); 6425:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6426:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculate pIbeta by using the two intermediate products 3 and 4 */ 6427:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pIbeta = __QADD(product4, product3); 6428:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6429:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6430:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6431:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @} end of Inverse park group 6432:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6433:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** ARM GAS /tmp/ccRzkJVN.s page 161 6434:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6435:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6436:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @ingroup groupInterpolation 6437:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6438:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6439:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6440:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup LinearInterpolate Linear Interpolation 6441:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6442:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Linear interpolation is a method of curve fitting using linear polynomials. 6443:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Linear interpolation works by effectively drawing a straight line between two neighboring samp 6444:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6445:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 6446:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \image html LinearInterp.gif "Linear interpolation" 6447:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6448:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 6449:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * A Linear Interpolate function calculates an output value(y), for the input(x) 6450:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * using linear interpolation of the input values x0, x1( nearest input values) and the output va 6451:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6452:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par Algorithm: 6453:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
6454:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *       y = y0 + (x - x0) * ((y1 - y0)/(x1-x0))
6455:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *       where x0, x1 are nearest values of input x
6456:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *             y0, y1 are nearest values to output y
6457:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    * 
6458:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6459:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 6460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This set of functions implements Linear interpolation process 6461:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * for Q7, Q15, Q31, and floating-point data types. The functions operate on a single 6462:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * sample of data and each call to the function returns a single processed value. 6463:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * S points to an instance of the Linear Interpolate function data structure. 6464:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * x is the input sample value. The functions returns the output value. 6465:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6466:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 6467:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * if x is outside of the table boundary, Linear interpolation returns first value of the table 6468:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * if x is below input range and returns last value of table if x is above range. 6469:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6470:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6471:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6472:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @addtogroup LinearInterpolate 6473:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @{ 6474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6475:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Process function for the floating-point Linear Interpolation Function. 6478:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in,out] S is an instance of the floating-point Linear Interpolation structure 6479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x input sample to process 6480:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return y processed output sample. 6481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6482:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE float32_t arm_linear_interp_f32( 6484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** arm_linear_interp_instance_f32 * S, 6485:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t x) 6486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6487:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t y; 6488:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t x0, x1; /* Nearest input values */ 6489:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t y0, y1; /* Nearest output values */ 6490:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t xSpacing = S->xSpacing; /* spacing between input values */ ARM GAS /tmp/ccRzkJVN.s page 162 6491:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t i; /* Index variable */ 6492:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t *pYData = S->pYData; /* pointer to output table */ 6493:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6494:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculation of index */ 6495:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** i = (int32_t) ((x - S->x1) / xSpacing); 6496:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6497:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (i < 0) 6498:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6499:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Iniatilize output for below specified range as least output value of table */ 6500:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y = pYData[0]; 6501:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6502:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else if ((uint32_t)i >= (S->nValues - 1)) 6503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Iniatilize output for above specified range as last output value of table */ 6505:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y = pYData[S->nValues - 1]; 6506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else 6508:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculation of nearest input values */ 6510:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** x0 = S->x1 + i * xSpacing; 6511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** x1 = S->x1 + (i + 1) * xSpacing; 6512:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Read of nearest output values */ 6514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y0 = pYData[i]; 6515:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y1 = pYData[i + 1]; 6516:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculation of output */ 6518:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y = y0 + (x - x0) * ((y1 - y0) / (x1 - x0)); 6519:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6520:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6521:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6522:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* returns output value */ 6523:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (y); 6524:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6525:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6526:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6527:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6528:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6529:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Process function for the Q31 Linear Interpolation Function. 6530:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pYData pointer to Q31 Linear Interpolation table 6531:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x input sample to process 6532:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nValues number of table values 6533:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return y processed output sample. 6534:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6535:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 6536:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Input sample x is in 12.20 format which contains 12 bits for table index and 20 b 6537:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This function can support maximum of table size 2^12. 6538:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6539:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6540:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q31_t arm_linear_interp_q31( 6541:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t * pYData, 6542:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t x, 6543:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t nValues) 6544:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6545:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t y; /* output */ 6546:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t y0, y1; /* Nearest output values */ 6547:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t fract; /* fractional part */ ARM GAS /tmp/ccRzkJVN.s page 163 6548:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t index; /* Index to read nearest output values */ 6549:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6550:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Input is in 12.20 format */ 6551:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 12 bits for the table index */ 6552:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Index value calculation */ 6553:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** index = ((x & (q31_t)0xFFF00000) >> 20); 6554:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6555:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (index >= (int32_t)(nValues - 1)) 6556:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6557:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (pYData[nValues - 1]); 6558:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6559:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else if (index < 0) 6560:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6561:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (pYData[0]); 6562:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6563:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else 6564:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6565:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 20 bits for the fractional part */ 6566:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* shift left by 11 to keep fract in 1.31 format */ 6567:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** fract = (x & 0x000FFFFF) << 11; 6568:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6569:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Read two nearest output values from the index in 1.31(q31) format */ 6570:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y0 = pYData[index]; 6571:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y1 = pYData[index + 1]; 6572:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6573:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculation of y0 * (1-fract) and y is in 2.30 format */ 6574:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y = ((q31_t) ((q63_t) y0 * (0x7FFFFFFF - fract) >> 32)); 6575:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6576:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculation of y0 * (1-fract) + y1 *fract and y is in 2.30 format */ 6577:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y += ((q31_t) (((q63_t) y1 * fract) >> 32)); 6578:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6579:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Convert y to 1.31 format */ 6580:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (y << 1U); 6581:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6582:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6583:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6584:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6585:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6586:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6587:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Process function for the Q15 Linear Interpolation Function. 6588:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pYData pointer to Q15 Linear Interpolation table 6589:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x input sample to process 6590:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nValues number of table values 6591:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return y processed output sample. 6592:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6593:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 6594:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Input sample x is in 12.20 format which contains 12 bits for table index and 20 b 6595:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This function can support maximum of table size 2^12. 6596:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6597:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6598:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q15_t arm_linear_interp_q15( 6599:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t * pYData, 6600:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t x, 6601:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t nValues) 6602:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6603:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q63_t y; /* output */ 6604:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t y0, y1; /* Nearest output values */ ARM GAS /tmp/ccRzkJVN.s page 164 6605:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t fract; /* fractional part */ 6606:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** int32_t index; /* Index to read nearest output values */ 6607:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6608:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Input is in 12.20 format */ 6609:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 12 bits for the table index */ 6610:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Index value calculation */ 6611:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** index = ((x & (int32_t)0xFFF00000) >> 20); 6612:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6613:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (index >= (int32_t)(nValues - 1)) 6614:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6615:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (pYData[nValues - 1]); 6616:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6617:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else if (index < 0) 6618:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6619:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (pYData[0]); 6620:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6621:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else 6622:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6623:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 20 bits for the fractional part */ 6624:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* fract is in 12.20 format */ 6625:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** fract = (x & 0x000FFFFF); 6626:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6627:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Read two nearest output values from the index */ 6628:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y0 = pYData[index]; 6629:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y1 = pYData[index + 1]; 6630:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6631:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculation of y0 * (1-fract) and y is in 13.35 format */ 6632:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y = ((q63_t) y0 * (0xFFFFF - fract)); 6633:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6634:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculation of (y0 * (1-fract) + y1 * fract) and y is in 13.35 format */ 6635:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y += ((q63_t) y1 * (fract)); 6636:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6637:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* convert y to 1.15 format */ 6638:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (q15_t) (y >> 20); 6639:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6640:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6641:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6642:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6643:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6644:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6645:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Process function for the Q7 Linear Interpolation Function. 6646:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] pYData pointer to Q7 Linear Interpolation table 6647:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x input sample to process 6648:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] nValues number of table values 6649:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return y processed output sample. 6650:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6651:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * \par 6652:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Input sample x is in 12.20 format which contains 12 bits for table index and 20 b 6653:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This function can support maximum of table size 2^12. 6654:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6655:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE q7_t arm_linear_interp_q7( 6656:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t * pYData, 6657:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t x, 6658:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t nValues) 6659:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6660:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t y; /* output */ 6661:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q7_t y0, y1; /* Nearest output values */ ARM GAS /tmp/ccRzkJVN.s page 165 6662:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t fract; /* fractional part */ 6663:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t index; /* Index to read nearest output values */ 6664:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6665:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Input is in 12.20 format */ 6666:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 12 bits for the table index */ 6667:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Index value calculation */ 6668:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (x < 0) 6669:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6670:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (pYData[0]); 6671:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6672:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** index = (x >> 20) & 0xfff; 6673:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6674:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (index >= (nValues - 1)) 6675:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6676:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (pYData[nValues - 1]); 6677:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6678:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else 6679:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6680:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* 20 bits for the fractional part */ 6681:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* fract is in 12.20 format */ 6682:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** fract = (x & 0x000FFFFF); 6683:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6684:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Read two nearest output values from the index and are in 1.7(q7) format */ 6685:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y0 = pYData[index]; 6686:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y1 = pYData[index + 1]; 6687:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6688:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculation of y0 * (1-fract ) and y is in 13.27(q27) format */ 6689:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y = ((y0 * (0xFFFFF - fract))); 6690:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6691:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* Calculation of y1 * fract + y0 * (1-fract) and y is in 13.27(q27) format */ 6692:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** y += (y1 * fract); 6693:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6694:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /* convert y to 1.7(q7) format */ 6695:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (q7_t) (y >> 20); 6696:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6697:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6698:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6699:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6700:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @} end of LinearInterpolate group 6701:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6702:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6703:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6704:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fast approximation to the trigonometric sine function for floating-point data. 6705:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x input value in radians. 6706:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return sin(x). 6707:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6708:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t arm_sin_f32( 6709:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t x); 6710:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6711:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6712:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6713:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fast approximation to the trigonometric sine function for Q31 data. 6714:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x Scaled input value in radians. 6715:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return sin(x). 6716:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6717:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t arm_sin_q31( 6718:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t x); ARM GAS /tmp/ccRzkJVN.s page 166 6719:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6720:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6721:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6722:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fast approximation to the trigonometric sine function for Q15 data. 6723:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x Scaled input value in radians. 6724:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return sin(x). 6725:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6726:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t arm_sin_q15( 6727:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t x); 6728:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6729:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6730:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6731:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fast approximation to the trigonometric cosine function for floating-point data. 6732:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x input value in radians. 6733:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return cos(x). 6734:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6735:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t arm_cos_f32( 6736:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t x); 6737:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6738:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6739:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6740:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fast approximation to the trigonometric cosine function for Q31 data. 6741:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x Scaled input value in radians. 6742:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return cos(x). 6743:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6744:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t arm_cos_q31( 6745:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q31_t x); 6746:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6747:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6748:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6749:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @brief Fast approximation to the trigonometric cosine function for Q15 data. 6750:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @param[in] x Scaled input value in radians. 6751:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @return cos(x). 6752:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6753:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t arm_cos_q15( 6754:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** q15_t x); 6755:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6756:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6757:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6758:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Floating-point vector of log values. 6759:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pSrc points to the input vector 6760:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pDst points to the output vector 6761:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] blockSize number of samples in each vector 6762:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 6763:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6764:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_vlog_f32( 6765:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 6766:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 6767:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 6768:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6769:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6770:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Floating-point vector of exp values. 6771:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] pSrc points to the input vector 6772:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pDst points to the output vector 6773:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] blockSize number of samples in each vector 6774:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return none 6775:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ ARM GAS /tmp/ccRzkJVN.s page 167 6776:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** void arm_vexp_f32( 6777:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** const float32_t * pSrc, 6778:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pDst, 6779:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** uint32_t blockSize); 6780:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6781:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6782:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @ingroup groupFastMath 6783:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6784:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6785:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6786:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6787:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @defgroup SQRT Square Root 6788:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * 6789:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * Computes the square root of a number. 6790:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * There are separate functions for Q15, Q31, and floating-point data types. 6791:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * The square root function is computed using the Newton-Raphson algorithm. 6792:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * This is an iterative algorithm of the form: 6793:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
6794:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *      x1 = x0 - f(x0)/f'(x0)
6795:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    * 
6796:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * where x1 is the current estimate, 6797:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * x0 is the previous estimate, and 6798:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * f'(x0) is the derivative of f() evaluated at x0. 6799:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * For the square root function, the algorithm reduces to: 6800:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *
6801:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *     x0 = in/2                         [initial guess]
6802:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    *     x1 = 1/2 * ( x0 + in / x0)        [each iteration]
6803:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h ****    * 
6804:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6805:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6806:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6807:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6808:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @addtogroup SQRT 6809:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** * @{ 6810:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6811:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6812:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** /** 6813:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @brief Floating-point square root function. 6814:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[in] in input value 6815:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @param[out] pOut square root of input value 6816:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** @return execution status 6817:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** - \ref ARM_MATH_SUCCESS : input value is positive 6818:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** - \ref ARM_MATH_ARGUMENT_ERROR : input value is negative; *pOut is set to 0 6819:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** */ 6820:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __STATIC_FORCEINLINE arm_status arm_sqrt_f32( 6821:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t in, 6822:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** float32_t * pOut) 6823:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** if (in >= 0.0f) 1156 .loc 7 6824 0 1157 0084 B5EEC07A vcmpe.f32 s14, #0 1158 0088 F1EE10FA vmrs APSR_nzcv, FPSCR 6825:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6826:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined ( __CC_ARM ) 6827:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined __TARGET_FPU_VFP 6828:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pOut = __sqrtf(in); 6829:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else ARM GAS /tmp/ccRzkJVN.s page 168 6830:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pOut = sqrtf(in); 6831:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 6832:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6833:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #elif defined ( __ICCARM__ ) 6834:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #if defined __ARMVFP__ 6835:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** __ASM("VSQRT.F32 %0,%1" : "=t"(*pOut) : "t"(in)); 6836:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 6837:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pOut = sqrtf(in); 6838:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 6839:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6840:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #else 6841:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pOut = sqrtf(in); 1159 .loc 7 6841 0 1160 008c AABF itet ge 1161 008e B1EEC76A vsqrtge.f32 s12, s14 1162 .LVL176: 6824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1163 .loc 7 6824 0 1164 0092 DFED057A vldrlt.32 s15, .L175 1165 0096 67EE867A vmulge.f32 s15, s15, s12 1166 .LBE17: 1167 .LBE16: 1168 .loc 6 73 0 1169 009a 86EEA77A vdiv.f32 s14, s13, s15 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_correlation_distance_f32.c **** } 1170 .loc 6 76 0 1171 009e 30EE470A vsub.f32 s0, s0, s14 1172 00a2 06B0 add sp, sp, #24 1173 .LCFI12: 1174 .cfi_def_cfa_offset 16 1175 @ sp needed 1176 00a4 70BD pop {r4, r5, r6, pc} 1177 .LVL177: 1178 .L176: 1179 00a6 00BF .align 2 1180 .L175: 1181 00a8 00000000 .word 0 1182 .cfi_endproc 1183 .LFE156: 1185 .section .text.arm_cosine_distance_f32,"ax",%progbits 1186 .align 1 1187 .p2align 2,,3 1188 .global arm_cosine_distance_f32 1189 .syntax unified 1190 .thumb 1191 .thumb_func 1192 .fpu fpv4-sp-d16 1194 arm_cosine_distance_f32: 1195 .LFB157: 1196 .file 8 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_ 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * Title: arm_cosine_distance_f32.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * Description: Cosine distance between two vectors ARM GAS /tmp/ccRzkJVN.s page 169 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** /** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** @addtogroup FloatDist 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** @{ 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** */ 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * @brief Cosine distance between two vectors 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * @param[in] pA First vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * @param[in] pB Second vector 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * @param[in] blockSize vector length 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * @return distance 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** * 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** */ 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** float32_t arm_cosine_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** { 1197 .loc 8 51 0 1198 .cfi_startproc 1199 @ args = 0, pretend = 0, frame = 16 1200 @ frame_needed = 0, uses_anonymous_args = 0 1201 .LVL178: 1202 0000 70B5 push {r4, r5, r6, lr} 1203 .LCFI13: 1204 .cfi_def_cfa_offset 16 1205 .cfi_offset 4, -16 1206 .cfi_offset 5, -12 1207 .cfi_offset 6, -8 ARM GAS /tmp/ccRzkJVN.s page 170 1208 .cfi_offset 14, -4 1209 0002 1446 mov r4, r2 1210 0004 84B0 sub sp, sp, #16 1211 .LCFI14: 1212 .cfi_def_cfa_offset 32 1213 .loc 8 51 0 1214 0006 0D46 mov r5, r1 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** float32_t pwra,pwrb,dot,tmp; 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** arm_power_f32(pA, blockSize, &pwra); 1215 .loc 8 54 0 1216 0008 01AA add r2, sp, #4 1217 .LVL179: 1218 000a 2146 mov r1, r4 1219 .LVL180: 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** float32_t pwra,pwrb,dot,tmp; 1220 .loc 8 51 0 1221 000c 0646 mov r6, r0 1222 .loc 8 54 0 1223 000e FFF7FEFF bl arm_power_f32 1224 .LVL181: 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** arm_power_f32(pB, blockSize, &pwrb); 1225 .loc 8 55 0 1226 0012 2146 mov r1, r4 1227 0014 2846 mov r0, r5 1228 0016 02AA add r2, sp, #8 1229 0018 FFF7FEFF bl arm_power_f32 1230 .LVL182: 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** arm_dot_prod_f32(pA,pB,blockSize,&dot); 1231 .loc 8 57 0 1232 001c 2246 mov r2, r4 1233 001e 2946 mov r1, r5 1234 0020 3046 mov r0, r6 1235 0022 03AB add r3, sp, #12 1236 0024 FFF7FEFF bl arm_dot_prod_f32 1237 .LVL183: 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** arm_sqrt_f32(pwra * pwrb, &tmp); 1238 .loc 8 59 0 1239 0028 9DED027A vldr.32 s14, [sp, #8] 1240 002c DDED017A vldr.32 s15, [sp, #4] 1241 0030 67EE877A vmul.f32 s15, s15, s14 1242 .LVL184: 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** return(1.0f - dot / tmp); 1243 .loc 8 60 0 1244 0034 9DED037A vldr.32 s14, [sp, #12] 1245 .LBB18: 1246 .LBB19: 6824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1247 .loc 7 6824 0 1248 0038 F5EEC07A vcmpe.f32 s15, #0 1249 003c F1EE10FA vmrs APSR_nzcv, FPSCR 1250 .loc 7 6841 0 1251 0040 ACBF ite ge 1252 0042 F1EEE76A vsqrtge.f32 s13, s15 1253 .LVL185: ARM GAS /tmp/ccRzkJVN.s page 171 6842:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** #endif 6843:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** 6844:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** return (ARM_MATH_SUCCESS); 6845:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** } 6846:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** else 6847:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 6848:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** *pOut = 0.0f; 1254 .loc 7 6848 0 1255 0046 DFED056A vldrlt.32 s13, .L184 1256 .LBE19: 1257 .LBE18: 1258 .loc 8 60 0 1259 004a C7EE267A vdiv.f32 s15, s14, s13 1260 004e B7EE000A vmov.f32 s0, #1.0e+0 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_cosine_distance_f32.c **** } 1261 .loc 8 62 0 1262 0052 30EE670A vsub.f32 s0, s0, s15 1263 0056 04B0 add sp, sp, #16 1264 .LCFI15: 1265 .cfi_def_cfa_offset 16 1266 @ sp needed 1267 0058 70BD pop {r4, r5, r6, pc} 1268 .LVL186: 1269 .L185: 1270 005a 00BF .align 2 1271 .L184: 1272 005c 00000000 .word 0 1273 .cfi_endproc 1274 .LFE157: 1276 .global __aeabi_ui2d 1277 .global __aeabi_dadd 1278 .global __aeabi_ddiv 1279 .global __aeabi_d2f 1280 .section .text.arm_dice_distance,"ax",%progbits 1281 .align 1 1282 .p2align 2,,3 1283 .global arm_dice_distance 1284 .syntax unified 1285 .thumb 1286 .thumb_func 1287 .fpu fpv4-sp-d16 1289 arm_dice_distance: 1290 .LFB158: 1291 .file 9 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c" 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Title: arm_dice_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Description: Dice distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * ARM GAS /tmp/ccRzkJVN.s page 172 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** extern void arm_boolean_distance_TT_TF_FT(const uint32_t *pA 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** , const uint32_t *pB 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** , uint32_t numberOfBools 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** , uint32_t *cTT 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** , uint32_t *cTF 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** , uint32_t *cFT 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** ); 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** /** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * @ingroup groupDistance 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * @{ 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** */ 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** /** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * @defgroup BoolDist Boolean Distances 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Distances between two vectors of boolean values. 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Booleans are packed in 32 bit words. 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * numberOfBooleans argument is the number of booleans and not the 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * number of words. 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * Bits are packed in big-endian mode (because of behavior of numpy packbits in 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * in version < 1.17) 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** */ 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** /** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** @addtogroup BoolDist 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** @{ 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** */ 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** /** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * @brief Dice distance between two vectors 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * @param[in] pA First vector of packed booleans 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * @param[in] pB Second vector of packed booleans 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * @param[in] numberOfBools Number of booleans ARM GAS /tmp/ccRzkJVN.s page 173 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * @return distance 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** * 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** */ 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** float32_t arm_dice_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** { 1292 .loc 9 75 0 1293 .cfi_startproc 1294 @ args = 0, pretend = 0, frame = 16 1295 @ frame_needed = 0, uses_anonymous_args = 0 1296 .LVL187: 1297 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1298 .LCFI16: 1299 .cfi_def_cfa_offset 32 1300 .cfi_offset 4, -32 1301 .cfi_offset 5, -28 1302 .cfi_offset 6, -24 1303 .cfi_offset 7, -20 1304 .cfi_offset 8, -16 1305 .cfi_offset 9, -12 1306 .cfi_offset 10, -8 1307 .cfi_offset 14, -4 1308 0004 86B0 sub sp, sp, #24 1309 .LCFI17: 1310 .cfi_def_cfa_offset 56 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** uint32_t ctt=0,ctf=0,cft=0; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** arm_boolean_distance_TT_TF_FT(pA, pB, numberOfBools, &ctt, &ctf, &cft); 1311 .loc 9 78 0 1312 0006 05AC add r4, sp, #20 1313 0008 04AB add r3, sp, #16 1314 000a CDE90034 strd r3, r4, [sp] 1315 000e 03AB add r3, sp, #12 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** uint32_t ctt=0,ctf=0,cft=0; 1316 .loc 9 76 0 1317 0010 0024 movs r4, #0 1318 0012 CDE90344 strd r4, r4, [sp, #12] 1319 0016 0594 str r4, [sp, #20] 1320 .loc 9 78 0 1321 0018 FFF7FEFF bl arm_boolean_distance_TT_TF_FT 1322 .LVL188: 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** return(1.0*(ctf + cft) / (2.0*ctt + cft + ctf)); 1323 .loc 9 80 0 1324 001c DDE904A8 ldrd r10, r8, [sp, #16] 1325 0020 0AEB0800 add r0, r10, r8 1326 0024 FFF7FEFF bl __aeabi_ui2d 1327 .LVL189: 1328 0028 0446 mov r4, r0 1329 002a 0398 ldr r0, [sp, #12] 1330 002c 0D46 mov r5, r1 1331 002e FFF7FEFF bl __aeabi_ui2d 1332 .LVL190: 1333 0032 0246 mov r2, r0 1334 0034 0B46 mov r3, r1 1335 0036 FFF7FEFF bl __aeabi_dadd 1336 .LVL191: ARM GAS /tmp/ccRzkJVN.s page 174 1337 003a 0646 mov r6, r0 1338 003c 4046 mov r0, r8 1339 003e 0F46 mov r7, r1 1340 0040 FFF7FEFF bl __aeabi_ui2d 1341 .LVL192: 1342 0044 8046 mov r8, r0 1343 0046 5046 mov r0, r10 1344 0048 8946 mov r9, r1 1345 004a FFF7FEFF bl __aeabi_ui2d 1346 .LVL193: 1347 004e 0246 mov r2, r0 1348 0050 0B46 mov r3, r1 1349 0052 4046 mov r0, r8 1350 0054 4946 mov r1, r9 1351 0056 FFF7FEFF bl __aeabi_dadd 1352 .LVL194: 1353 005a 0246 mov r2, r0 1354 005c 0B46 mov r3, r1 1355 005e 3046 mov r0, r6 1356 0060 3946 mov r1, r7 1357 0062 FFF7FEFF bl __aeabi_dadd 1358 .LVL195: 1359 0066 0246 mov r2, r0 1360 0068 0B46 mov r3, r1 1361 006a 2046 mov r0, r4 1362 006c 2946 mov r1, r5 1363 006e FFF7FEFF bl __aeabi_ddiv 1364 .LVL196: 1365 0072 FFF7FEFF bl __aeabi_d2f 1366 .LVL197: 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_dice_distance.c **** } 1367 .loc 9 81 0 1368 0076 00EE100A vmov s0, r0 1369 007a 06B0 add sp, sp, #24 1370 .LCFI18: 1371 .cfi_def_cfa_offset 32 1372 @ sp needed 1373 007c BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 1374 .cfi_endproc 1375 .LFE158: 1377 .section .text.arm_euclidean_distance_f32,"ax",%progbits 1378 .align 1 1379 .p2align 2,,3 1380 .global arm_euclidean_distance_f32 1381 .syntax unified 1382 .thumb 1383 .thumb_func 1384 .fpu fpv4-sp-d16 1386 arm_euclidean_distance_f32: 1387 .LFB159: 1388 .file 10 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_dista 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * Title: arm_euclidean_distance_f32.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * Description: Euclidean distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * ARM GAS /tmp/ccRzkJVN.s page 175 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** /** 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** @addtogroup FloatDist 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** @{ 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** */ 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * @brief Euclidean distance between two vectors 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * @param[in] pA First vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * @param[in] pB Second vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * @param[in] blockSize vector length 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * @return distance 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** */ 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #include "arm_helium_utils.h" 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #include "arm_vec_math.h" 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** float32_t arm_euclidean_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** { 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** uint32_t blkCnt; 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** float32_t tmp; 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** f32x4_t a, b, accumV, tempV; 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** accumV = vdupq_n_f32(0.0f); 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** blkCnt = blockSize >> 2; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** while (blkCnt > 0U) { 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** a = vld1q(pA); 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** b = vld1q(pB); ARM GAS /tmp/ccRzkJVN.s page 176 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** tempV = vsubq(a, b); 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** accumV = vfmaq(accumV, tempV, tempV); 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** pA += 4; 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** pB += 4; 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** blkCnt--; 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** } 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** /* 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * tail 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** * (will be merged thru tail predication) 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** */ 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** blkCnt = blockSize & 3; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** if (blkCnt > 0U) { 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** mve_pred16_t p0 = vctp32q(blkCnt); 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** a = vldrwq_z_f32(pA, p0); 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** b = vldrwq_z_f32(pB, p0); 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** tempV = vsubq(a, b); 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** accumV = vfmaq_m(accumV, tempV, tempV, p0); 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** } 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** arm_sqrt_f32(vecAddAcrossF32Mve(accumV), &tmp); 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** return (tmp); 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** } 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #else 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #if defined(ARM_MATH_NEON) 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #include "NEMath.h" 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** float32_t arm_euclidean_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** { 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** float32_t accum=0.0f,tmp; 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** uint32_t blkCnt; 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** float32x4_t a,b,accumV; 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** float32x2_t accumV2; 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** accumV = vdupq_n_f32(0.0f); 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** blkCnt = blockSize >> 2; 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** while(blkCnt > 0) 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** { 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** a = vld1q_f32(pA); 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** b = vld1q_f32(pB); 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** a = vsubq_f32(a,b); 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** accumV = vmlaq_f32(accumV,a,a); 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** pA += 4; 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** pB += 4; 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** blkCnt --; 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** } 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** accum = vget_lane_f32(accumV2, 0) + vget_lane_f32(accumV2, 1); 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** blkCnt = blockSize & 3; 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** while(blkCnt > 0) ARM GAS /tmp/ccRzkJVN.s page 177 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** { 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** tmp = *pA++ - *pB++; 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** accum += SQ(tmp); 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** blkCnt --; 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** } 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** arm_sqrt_f32(accum,&tmp); 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** return(tmp); 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** } 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** #else 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** float32_t arm_euclidean_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSize) 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** { 1389 .loc 10 132 0 1390 .cfi_startproc 1391 @ args = 0, pretend = 0, frame = 0 1392 @ frame_needed = 0, uses_anonymous_args = 0 1393 @ link register save eliminated. 1394 .LVL198: 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** float32_t accum=0.0f,tmp; 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** while(blockSize > 0) 1395 .loc 10 135 0 1396 0000 9AB1 cbz r2, .L197 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** float32_t accum=0.0f,tmp; 1397 .loc 10 133 0 1398 0002 9FED0B7A vldr.32 s14, .L198 1399 .LVL199: 1400 .L190: 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** { 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** tmp = *pA++ - *pB++; 1401 .loc 10 137 0 1402 0006 F0EC017A vldmia.32 r0!, {s15} 1403 .LVL200: 1404 000a F1EC016A vldmia.32 r1!, {s13} 1405 .LVL201: 1406 000e 77EEE67A vsub.f32 s15, s15, s13 1407 .LVL202: 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** { 1408 .loc 10 135 0 1409 0012 013A subs r2, r2, #1 1410 .LVL203: 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** accum += SQ(tmp); 1411 .loc 10 138 0 1412 0014 A7EEA77A vfma.f32 s14, s15, s15 1413 .LVL204: 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** { 1414 .loc 10 135 0 1415 0018 F5D1 bne .L190 1416 .LVL205: 1417 .LBB20: 1418 .LBB21: 6824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1419 .loc 7 6824 0 1420 001a B5EEC07A vcmpe.f32 s14, #0 1421 001e F1EE10FA vmrs APSR_nzcv, FPSCR 1422 0022 02DB blt .L197 1423 0024 B1EEC70A vsqrt.f32 s0, s14 ARM GAS /tmp/ccRzkJVN.s page 178 1424 0028 7047 bx lr 1425 .LVL206: 1426 .L197: 1427 .loc 7 6848 0 1428 002a 9FED010A vldr.32 s0, .L198 1429 .LBE21: 1430 .LBE20: 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** blockSize --; 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** } 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** arm_sqrt_f32(accum,&tmp); 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** return(tmp); 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_euclidean_distance_f32.c **** } 1431 .loc 10 143 0 1432 002e 7047 bx lr 1433 .L199: 1434 .align 2 1435 .L198: 1436 0030 00000000 .word 0 1437 .cfi_endproc 1438 .LFE159: 1440 .section .text.arm_hamming_distance,"ax",%progbits 1441 .align 1 1442 .p2align 2,,3 1443 .global arm_hamming_distance 1444 .syntax unified 1445 .thumb 1446 .thumb_func 1447 .fpu fpv4-sp-d16 1449 arm_hamming_distance: 1450 .LFB160: 1451 .file 11 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distanc 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * Title: arm_hamming_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * Description: Hamming distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** */ ARM GAS /tmp/ccRzkJVN.s page 179 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** extern void arm_boolean_distance_TF_FT(const uint32_t *pA 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** , const uint32_t *pB 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** , uint32_t numberOfBools 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** , uint32_t *cTF 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** , uint32_t *cFT 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** ); 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** /** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** @addtogroup BoolDist 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** @{ 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** */ 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** /** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * @brief Hamming distance between two vectors 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * @param[in] pA First vector of packed booleans 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * @param[in] pB Second vector of packed booleans 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * @param[in] numberOfBools Number of booleans 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * @return distance 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** * 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** */ 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** float32_t arm_hamming_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** { 1452 .loc 11 57 0 1453 .cfi_startproc 1454 @ args = 0, pretend = 0, frame = 8 1455 @ frame_needed = 0, uses_anonymous_args = 0 1456 .LVL207: 1457 0000 70B5 push {r4, r5, r6, lr} 1458 .LCFI19: 1459 .cfi_def_cfa_offset 16 1460 .cfi_offset 4, -16 1461 .cfi_offset 5, -12 1462 .cfi_offset 6, -8 1463 .cfi_offset 14, -4 1464 0002 84B0 sub sp, sp, #16 1465 .LCFI20: 1466 .cfi_def_cfa_offset 32 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** uint32_t ctf=0,cft=0; 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** arm_boolean_distance_TF_FT(pA, pB, numberOfBools, &ctf, &cft); 1467 .loc 11 60 0 1468 0004 03AB add r3, sp, #12 1469 0006 0093 str r3, [sp] 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** uint32_t ctf=0,cft=0; 1470 .loc 11 58 0 1471 0008 0024 movs r4, #0 1472 .loc 11 60 0 1473 000a 02AB add r3, sp, #8 ARM GAS /tmp/ccRzkJVN.s page 180 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** uint32_t ctf=0,cft=0; 1474 .loc 11 57 0 1475 000c 1646 mov r6, r2 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** uint32_t ctf=0,cft=0; 1476 .loc 11 58 0 1477 000e CDE90244 strd r4, r4, [sp, #8] 1478 .loc 11 60 0 1479 0012 FFF7FEFF bl arm_boolean_distance_TF_FT 1480 .LVL208: 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** return(1.0*(ctf + cft) / numberOfBools); 1481 .loc 11 62 0 1482 0016 DDE90203 ldrd r0, r3, [sp, #8] 1483 001a 1844 add r0, r0, r3 1484 001c FFF7FEFF bl __aeabi_ui2d 1485 .LVL209: 1486 0020 0446 mov r4, r0 1487 0022 3046 mov r0, r6 1488 0024 0D46 mov r5, r1 1489 0026 FFF7FEFF bl __aeabi_ui2d 1490 .LVL210: 1491 002a 0246 mov r2, r0 1492 002c 0B46 mov r3, r1 1493 002e 2046 mov r0, r4 1494 0030 2946 mov r1, r5 1495 0032 FFF7FEFF bl __aeabi_ddiv 1496 .LVL211: 1497 0036 FFF7FEFF bl __aeabi_d2f 1498 .LVL212: 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_hamming_distance.c **** } 1499 .loc 11 63 0 1500 003a 00EE100A vmov s0, r0 1501 003e 04B0 add sp, sp, #16 1502 .LCFI21: 1503 .cfi_def_cfa_offset 16 1504 @ sp needed 1505 0040 70BD pop {r4, r5, r6, pc} 1506 .cfi_endproc 1507 .LFE160: 1509 0042 00BF .section .text.arm_jaccard_distance,"ax",%progbits 1510 .align 1 1511 .p2align 2,,3 1512 .global arm_jaccard_distance 1513 .syntax unified 1514 .thumb 1515 .thumb_func 1516 .fpu fpv4-sp-d16 1518 arm_jaccard_distance: 1519 .LFB161: 1520 .file 12 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distanc 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * Title: arm_jaccard_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * Description: Jaccard distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * ARM GAS /tmp/ccRzkJVN.s page 181 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** extern void arm_boolean_distance_TT_TF_FT(const uint32_t *pA 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** , const uint32_t *pB 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** , uint32_t numberOfBools 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** , uint32_t *cTT 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** , uint32_t *cTF 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** , uint32_t *cFT 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** ); 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** /** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** @addtogroup BoolDist 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** @{ 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** /** 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * @brief Jaccard distance between two vectors 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * @param[in] pA First vector of packed booleans 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * @param[in] pB Second vector of packed booleans 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * @param[in] numberOfBools Number of booleans 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * @return distance 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** * 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** */ 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** float32_t arm_jaccard_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** { 1521 .loc 12 59 0 1522 .cfi_startproc 1523 @ args = 0, pretend = 0, frame = 16 1524 @ frame_needed = 0, uses_anonymous_args = 0 1525 .LVL213: ARM GAS /tmp/ccRzkJVN.s page 182 1526 0000 D0B5 push {r4, r6, r7, lr} 1527 .LCFI22: 1528 .cfi_def_cfa_offset 16 1529 .cfi_offset 4, -16 1530 .cfi_offset 6, -12 1531 .cfi_offset 7, -8 1532 .cfi_offset 14, -4 1533 0002 86B0 sub sp, sp, #24 1534 .LCFI23: 1535 .cfi_def_cfa_offset 40 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** uint32_t ctt=0,ctf=0,cft=0; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** arm_boolean_distance_TT_TF_FT(pA, pB, numberOfBools, &ctt, &ctf, &cft); 1536 .loc 12 62 0 1537 0004 05AC add r4, sp, #20 1538 0006 04AB add r3, sp, #16 1539 0008 CDE90034 strd r3, r4, [sp] 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** uint32_t ctt=0,ctf=0,cft=0; 1540 .loc 12 60 0 1541 000c 0024 movs r4, #0 1542 .loc 12 62 0 1543 000e 03AB add r3, sp, #12 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** uint32_t ctt=0,ctf=0,cft=0; 1544 .loc 12 60 0 1545 0010 CDE90344 strd r4, r4, [sp, #12] 1546 0014 0594 str r4, [sp, #20] 1547 .loc 12 62 0 1548 0016 FFF7FEFF bl arm_boolean_distance_TT_TF_FT 1549 .LVL214: 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** return(1.0*(ctf + cft) / (ctt + cft + ctf)); 1550 .loc 12 64 0 1551 001a DDE90443 ldrd r4, r3, [sp, #16] 1552 001e 1C44 add r4, r4, r3 1553 0020 2046 mov r0, r4 1554 0022 FFF7FEFF bl __aeabi_ui2d 1555 .LVL215: 1556 0026 0646 mov r6, r0 1557 0028 0398 ldr r0, [sp, #12] 1558 002a 2044 add r0, r0, r4 1559 002c 0F46 mov r7, r1 1560 002e FFF7FEFF bl __aeabi_ui2d 1561 .LVL216: 1562 0032 0246 mov r2, r0 1563 0034 0B46 mov r3, r1 1564 0036 3046 mov r0, r6 1565 0038 3946 mov r1, r7 1566 003a FFF7FEFF bl __aeabi_ddiv 1567 .LVL217: 1568 003e FFF7FEFF bl __aeabi_d2f 1569 .LVL218: 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jaccard_distance.c **** } 1570 .loc 12 65 0 1571 0042 00EE100A vmov s0, r0 1572 0046 06B0 add sp, sp, #24 1573 .LCFI24: 1574 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccRzkJVN.s page 183 1575 @ sp needed 1576 0048 D0BD pop {r4, r6, r7, pc} 1577 .cfi_endproc 1578 .LFE161: 1580 004a 00BF .section .text.arm_jensenshannon_distance_f32,"ax",%progbits 1581 .align 1 1582 .p2align 2,,3 1583 .global arm_jensenshannon_distance_f32 1584 .syntax unified 1585 .thumb 1586 .thumb_func 1587 .fpu fpv4-sp-d16 1589 arm_jensenshannon_distance_f32: 1590 .LFB163: 1591 .file 13 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_d 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * Title: arm_jensenshannon_distance_f32.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * Description: Jensen-Shannon distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** /** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** @addtogroup FloatDist 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** @{ 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** */ 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #if !defined(ARM_MATH_MVEF) || defined(ARM_MATH_AUTOVECTORIZE) 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** __STATIC_INLINE float32_t rel_entr(float32_t x, float32_t y) 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** return (x * logf(x / y)); 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } ARM GAS /tmp/ccRzkJVN.s page 184 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #endif 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #include "arm_helium_utils.h" 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #include "arm_vec_math.h" 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** float32_t arm_jensenshannon_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSiz 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** uint32_t blkCnt; 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** float32_t tmp; 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** f32x4_t a, b, t, tmpV, accumV; 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accumV = vdupq_n_f32(0.0f); 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** blkCnt = blockSize >> 2; 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** while (blkCnt > 0U) { 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** a = vld1q(pA); 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** b = vld1q(pB); 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** t = vaddq(a, b); 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** t = vmulq(t, 0.5f); 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vmulq(a, vrecip_medprec_f32(t)); 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vlogq_f32(tmpV); 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accumV = vfmaq(accumV, a, tmpV); 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vmulq_f32(b, vrecip_medprec_f32(t)); 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vlogq_f32(tmpV); 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accumV = vfmaq(accumV, b, tmpV); 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** pA += 4; 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** pB += 4; 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** blkCnt--; 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** /* 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * tail 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * (will be merged thru tail predication) 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** */ 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** blkCnt = blockSize & 3; 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** if (blkCnt > 0U) { 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** mve_pred16_t p0 = vctp32q(blkCnt); 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** a = vldrwq_z_f32(pA, p0); 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** b = vldrwq_z_f32(pB, p0); 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** t = vaddq(a, b); 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** t = vmulq(t, 0.5f); 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vmulq_f32(a, vrecip_medprec_f32(t)); 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vlogq_f32(tmpV); 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accumV = vfmaq_m_f32(accumV, a, tmpV, p0); 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vmulq_f32(b, vrecip_medprec_f32(t)); 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vlogq_f32(tmpV); ARM GAS /tmp/ccRzkJVN.s page 185 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accumV = vfmaq_m_f32(accumV, b, tmpV, p0); 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** arm_sqrt_f32(vecAddAcrossF32Mve(accumV) / 2.0f, &tmp); 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** return (tmp); 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #else 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #if defined(ARM_MATH_NEON) 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #include "NEMath.h" 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** /** 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @brief Jensen-Shannon distance between two vectors 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * This function is assuming that elements of second vector are > 0 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * and 0 only when the corresponding element of first vector is 0. 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * Otherwise the result of the computation does not make sense 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * and for speed reasons, the cases returning NaN or Infinity are not 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * managed. 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * When the function is computing x log (x / y) with x == 0 and y == 0, 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * it will compute the right result (0) but a division by zero will occur 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * and should be ignored in client code. 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @param[in] pA First vector 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @param[in] pB Second vector 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @param[in] blockSize vector length 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @return distance 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** */ 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** float32_t arm_jensenshannon_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSiz 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** float32_t accum, result, tmp,a,b; 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** uint32_t blkCnt; 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** float32x4_t aV,bV,t, tmpV, accumV; 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** float32x2_t accumV2; 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accum = 0.0f; 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accumV = vdupq_n_f32(0.0f); 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** blkCnt = blockSize >> 2; 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** while(blkCnt > 0) 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** aV = vld1q_f32(pA); 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** bV = vld1q_f32(pB); 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** t = vaddq_f32(aV,bV); 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** t = vmulq_n_f32(t, 0.5f); 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vmulq_f32(aV, vinvq_f32(t)); 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vlogq_f32(tmpV); 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accumV = vmlaq_f32(accumV, aV, tmpV); ARM GAS /tmp/ccRzkJVN.s page 186 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vmulq_f32(bV, vinvq_f32(t)); 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmpV = vlogq_f32(tmpV); 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accumV = vmlaq_f32(accumV, bV, tmpV); 162:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 163:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** pA += 4; 164:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** pB += 4; 165:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 166:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 167:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** blkCnt --; 168:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 169:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 170:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accumV2 = vpadd_f32(vget_low_f32(accumV),vget_high_f32(accumV)); 171:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accum = vget_lane_f32(accumV2, 0) + vget_lane_f32(accumV2, 1); 172:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 173:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** blkCnt = blockSize & 3; 174:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** while(blkCnt > 0) 175:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 176:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** a = *pA; 177:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** b = *pB; 178:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmp = (a + b) / 2.0f; 179:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accum += rel_entr(a, tmp); 180:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** accum += rel_entr(b, tmp); 181:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 182:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** pA++; 183:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** pB++; 184:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 185:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** blkCnt --; 186:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 187:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 188:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 189:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** arm_sqrt_f32(accum/2.0f, &result); 190:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** return(result); 191:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 192:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 193:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 194:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** #else 195:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 196:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 197:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** /** 198:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @brief Jensen-Shannon distance between two vectors 199:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 200:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * This function is assuming that elements of second vector are > 0 201:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * and 0 only when the corresponding element of first vector is 0. 202:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * Otherwise the result of the computation does not make sense 203:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * and for speed reasons, the cases returning NaN or Infinity are not 204:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * managed. 205:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 206:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * When the function is computing x log (x / y) with x == 0 and y == 0, 207:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * it will compute the right result (0) but a division by zero will occur 208:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * and should be ignored in client code. 209:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 210:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @param[in] pA First vector 211:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @param[in] pB Second vector 212:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @param[in] blockSize vector length 213:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * @return distance ARM GAS /tmp/ccRzkJVN.s page 187 214:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** * 215:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** */ 216:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 217:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 218:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** float32_t arm_jensenshannon_distance_f32(const float32_t *pA,const float32_t *pB, uint32_t blockSiz 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 1592 .loc 13 219 0 1593 .cfi_startproc 1594 @ args = 0, pretend = 0, frame = 0 1595 @ frame_needed = 0, uses_anonymous_args = 0 1596 .LVL219: 220:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** float32_t left, right,sum, result, tmp; 221:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** uint32_t i; 222:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** left = 0.0f; 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** right = 0.0f; 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** for(i=0; i < blockSize; i++) 1597 .loc 13 225 0 1598 0000 AAB3 cbz r2, .L209 219:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** float32_t left, right,sum, result, tmp; 1599 .loc 13 219 0 1600 0002 70B5 push {r4, r5, r6, lr} 1601 .LCFI25: 1602 .cfi_def_cfa_offset 16 1603 .cfi_offset 4, -16 1604 .cfi_offset 5, -12 1605 .cfi_offset 6, -8 1606 .cfi_offset 14, -4 1607 0004 2DED068B vpush.64 {d8, d9, d10} 1608 .LCFI26: 1609 .cfi_def_cfa_offset 40 1610 .cfi_offset 80, -40 1611 .cfi_offset 81, -36 1612 .cfi_offset 82, -32 1613 .cfi_offset 83, -28 1614 .cfi_offset 84, -24 1615 .cfi_offset 85, -20 224:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** for(i=0; i < blockSize; i++) 1616 .loc 13 224 0 1617 0008 9FED1AAA vldr.32 s20, .L218 1618 000c 0446 mov r4, r0 223:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** right = 0.0f; 1619 .loc 13 223 0 1620 000e F0EE4A9A vmov.f32 s19, s20 1621 0012 00EB8206 add r6, r0, r2, lsl #2 1622 0016 0D46 mov r5, r1 226:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 227:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** tmp = (pA[i] + pB[i]) / 2.0f; 1623 .loc 13 227 0 1624 0018 F6EE00AA vmov.f32 s21, #5.0e-1 1625 .LVL220: 1626 .L206: 1627 .loc 13 227 0 is_stmt 0 discriminator 3 1628 001c B4EC019A vldmia.32 r4!, {s18} 1629 0020 F5EC018A vldmia.32 r5!, {s17} 1630 0024 39EE288A vadd.f32 s16, s18, s17 1631 0028 28EE2A8A vmul.f32 s16, s16, s21 ARM GAS /tmp/ccRzkJVN.s page 188 1632 .LVL221: 1633 .LBB22: 1634 .LBB23: 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 1635 .loc 13 41 0 is_stmt 1 discriminator 3 1636 002c 89EE080A vdiv.f32 s0, s18, s16 1637 0030 FFF7FEFF bl logf 1638 .LVL222: 1639 .LBE23: 1640 .LBE22: 228:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** left += rel_entr(pA[i], tmp); 1641 .loc 13 228 0 discriminator 3 1642 0034 E9EE009A vfma.f32 s19, s18, s0 1643 .LVL223: 1644 .LBB24: 1645 .LBB25: 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 1646 .loc 13 41 0 discriminator 3 1647 0038 88EE880A vdiv.f32 s0, s17, s16 1648 003c FFF7FEFF bl logf 1649 .LVL224: 1650 .LBE25: 1651 .LBE24: 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 1652 .loc 13 225 0 discriminator 3 1653 0040 A642 cmp r6, r4 229:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** right += rel_entr(pB[i], tmp); 1654 .loc 13 229 0 discriminator 3 1655 0042 A8EE80AA vfma.f32 s20, s17, s0 1656 .LVL225: 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 1657 .loc 13 225 0 discriminator 3 1658 0046 E9D1 bne .L206 1659 .LVL226: 230:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 231:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 232:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** 233:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** sum = left + right; 1660 .loc 13 233 0 1661 0048 79EE8A9A vadd.f32 s19, s19, s20 1662 .LVL227: 234:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** arm_sqrt_f32(sum/2.0f, &result); 1663 .loc 13 234 0 1664 004c 69EEAA9A vmul.f32 s19, s19, s21 1665 .LVL228: 1666 .LBB26: 1667 .LBB27: 6824:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Include/arm_math.h **** { 1668 .loc 7 6824 0 1669 0050 F5EEC09A vcmpe.f32 s19, #0 1670 0054 F1EE10FA vmrs APSR_nzcv, FPSCR 1671 0058 04DB blt .L213 1672 005a B1EEE90A vsqrt.f32 s0, s19 1673 .LBE27: 1674 .LBE26: 235:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** return(result); 236:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** ARM GAS /tmp/ccRzkJVN.s page 189 237:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** } 1675 .loc 13 237 0 1676 005e BDEC068B vldm sp!, {d8-d10} 1677 .LCFI27: 1678 .cfi_remember_state 1679 .cfi_restore 84 1680 .cfi_restore 85 1681 .cfi_restore 82 1682 .cfi_restore 83 1683 .cfi_restore 80 1684 .cfi_restore 81 1685 .cfi_def_cfa_offset 16 1686 .LVL229: 1687 0062 70BD pop {r4, r5, r6, pc} 1688 .LVL230: 1689 .L213: 1690 .LCFI28: 1691 .cfi_restore_state 1692 0064 BDEC068B vldm sp!, {d8-d10} 1693 .LCFI29: 1694 .cfi_restore 84 1695 .cfi_restore 85 1696 .cfi_restore 82 1697 .cfi_restore 83 1698 .cfi_restore 80 1699 .cfi_restore 81 1700 .cfi_def_cfa_offset 16 1701 .LVL231: 1702 .LBB29: 1703 .LBB28: 1704 .loc 7 6848 0 1705 0068 9FED020A vldr.32 s0, .L218 1706 .LVL232: 1707 .LBE28: 1708 .LBE29: 1709 .loc 13 237 0 1710 006c 70BD pop {r4, r5, r6, pc} 1711 .LVL233: 1712 .L209: 1713 .LCFI30: 1714 .cfi_def_cfa_offset 0 1715 .cfi_restore 4 1716 .cfi_restore 5 1717 .cfi_restore 6 1718 .cfi_restore 14 225:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_jensenshannon_distance_f32.c **** { 1719 .loc 13 225 0 1720 006e 9FED010A vldr.32 s0, .L218 1721 .LVL234: 1722 .loc 13 237 0 1723 0072 7047 bx lr 1724 .L219: 1725 .align 2 1726 .L218: 1727 0074 00000000 .word 0 1728 .cfi_endproc 1729 .LFE163: ARM GAS /tmp/ccRzkJVN.s page 190 1731 .section .text.arm_kulsinski_distance,"ax",%progbits 1732 .align 1 1733 .p2align 2,,3 1734 .global arm_kulsinski_distance 1735 .syntax unified 1736 .thumb 1737 .thumb_func 1738 .fpu fpv4-sp-d16 1740 arm_kulsinski_distance: 1741 .LFB164: 1742 .file 14 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_dista 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * Title: arm_kulsinski_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * Description: Kulsinski distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** extern void arm_boolean_distance_TT_TF_FT(const uint32_t *pA 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** , const uint32_t *pB 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** , uint32_t numberOfBools 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** , uint32_t *cTT 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** , uint32_t *cTF 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** , uint32_t *cFT 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** ); 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** /** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** @addtogroup BoolDist 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** @{ 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** */ ARM GAS /tmp/ccRzkJVN.s page 191 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** /** 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * @brief Kulsinski distance between two vectors 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * @param[in] pA First vector of packed booleans 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * @param[in] pB Second vector of packed booleans 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * @param[in] numberOfBools Number of booleans 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * @return distance 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** * 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** */ 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** float32_t arm_kulsinski_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** { 1743 .loc 14 60 0 1744 .cfi_startproc 1745 @ args = 0, pretend = 0, frame = 16 1746 @ frame_needed = 0, uses_anonymous_args = 0 1747 .LVL235: 1748 0000 F0B5 push {r4, r5, r6, r7, lr} 1749 .LCFI31: 1750 .cfi_def_cfa_offset 20 1751 .cfi_offset 4, -20 1752 .cfi_offset 5, -16 1753 .cfi_offset 6, -12 1754 .cfi_offset 7, -8 1755 .cfi_offset 14, -4 1756 0002 87B0 sub sp, sp, #28 1757 .LCFI32: 1758 .cfi_def_cfa_offset 48 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** uint32_t ctt=0,ctf=0,cft=0; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** arm_boolean_distance_TT_TF_FT(pA, pB, numberOfBools, &ctt, &ctf, &cft); 1759 .loc 14 63 0 1760 0004 05AC add r4, sp, #20 1761 0006 04AB add r3, sp, #16 1762 0008 CDE90034 strd r3, r4, [sp] 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** uint32_t ctt=0,ctf=0,cft=0; 1763 .loc 14 61 0 1764 000c 0024 movs r4, #0 1765 .loc 14 63 0 1766 000e 03AB add r3, sp, #12 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** uint32_t ctt=0,ctf=0,cft=0; 1767 .loc 14 60 0 1768 0010 1546 mov r5, r2 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** uint32_t ctt=0,ctf=0,cft=0; 1769 .loc 14 61 0 1770 0012 CDE90344 strd r4, r4, [sp, #12] 1771 0016 0594 str r4, [sp, #20] 1772 .loc 14 63 0 1773 0018 FFF7FEFF bl arm_boolean_distance_TT_TF_FT 1774 .LVL236: 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** return(1.0*(ctf + cft - ctt + numberOfBools) / (cft + ctf + numberOfBools)); 1775 .loc 14 65 0 1776 001c DDE90443 ldrd r4, r3, [sp, #16] 1777 0020 0398 ldr r0, [sp, #12] ARM GAS /tmp/ccRzkJVN.s page 192 1778 0022 1C44 add r4, r4, r3 1779 0024 201A subs r0, r4, r0 1780 0026 2844 add r0, r0, r5 1781 0028 FFF7FEFF bl __aeabi_ui2d 1782 .LVL237: 1783 002c 0646 mov r6, r0 1784 002e 6019 adds r0, r4, r5 1785 0030 0F46 mov r7, r1 1786 0032 FFF7FEFF bl __aeabi_ui2d 1787 .LVL238: 1788 0036 0246 mov r2, r0 1789 0038 0B46 mov r3, r1 1790 003a 3046 mov r0, r6 1791 003c 3946 mov r1, r7 1792 003e FFF7FEFF bl __aeabi_ddiv 1793 .LVL239: 1794 0042 FFF7FEFF bl __aeabi_d2f 1795 .LVL240: 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_kulsinski_distance.c **** } 1796 .loc 14 66 0 1797 0046 00EE100A vmov s0, r0 1798 004a 07B0 add sp, sp, #28 1799 .LCFI33: 1800 .cfi_def_cfa_offset 20 1801 @ sp needed 1802 004c F0BD pop {r4, r5, r6, r7, pc} 1803 .cfi_endproc 1804 .LFE164: 1806 004e 00BF .section .text.arm_minkowski_distance_f32,"ax",%progbits 1807 .align 1 1808 .p2align 2,,3 1809 .global arm_minkowski_distance_f32 1810 .syntax unified 1811 .thumb 1812 .thumb_func 1813 .fpu fpv4-sp-d16 1815 arm_minkowski_distance_f32: 1816 .LFB165: 1817 .file 15 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_dista 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * Title: arm_minkowski_distance_f32.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * Description: Minkowski distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * ARM GAS /tmp/ccRzkJVN.s page 193 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** /** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** @addtogroup FloatDist 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** @{ 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** */ 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** /** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * @brief Minkowski distance between two vectors 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * @param[in] pA First vector 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * @param[in] pB Second vector 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * @param[in] order Distance order 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * @param[in] blockSize Number of samples 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * @return distance 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** */ 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #if defined(ARM_MATH_MVEF) && !defined(ARM_MATH_AUTOVECTORIZE) 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #include "arm_helium_utils.h" 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #include "arm_vec_math.h" 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** float32_t arm_minkowski_distance_f32(const float32_t *pA,const float32_t *pB, int32_t order, uint32 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** { 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** uint32_t blkCnt; 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** f32x4_t a, b, tmpV, accumV, sumV; 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sumV = vdupq_n_f32(0.0f); 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** accumV = vdupq_n_f32(0.0f); 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** blkCnt = blockSize >> 2; 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** while (blkCnt > 0U) { 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** a = vld1q(pA); 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** b = vld1q(pB); 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** tmpV = vabdq(a, b); 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** tmpV = vpowq_f32(tmpV, vdupq_n_f32(order)); 70:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sumV = vaddq(sumV, tmpV); 71:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 72:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** pA += 4; 73:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** pB += 4; 74:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** blkCnt--; 75:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** } ARM GAS /tmp/ccRzkJVN.s page 194 76:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 77:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** /* 78:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * tail 79:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** * (will be merged thru tail predication) 80:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** */ 81:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** blkCnt = blockSize & 3; 82:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** if (blkCnt > 0U) { 83:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** mve_pred16_t p0 = vctp32q(blkCnt); 84:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 85:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** a = vldrwq_z_f32(pA, p0); 86:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** b = vldrwq_z_f32(pB, p0); 87:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 88:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** tmpV = vabdq(a, b); 89:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** tmpV = vpowq_f32(tmpV, vdupq_n_f32(order)); 90:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sumV = vaddq_m(sumV, sumV, tmpV, p0); 91:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** } 92:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 93:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** return (powf(vecAddAcrossF32Mve(sumV), (1.0f / (float32_t) order))); 94:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** } 95:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 96:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #else 97:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #if defined(ARM_MATH_NEON) 98:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 99:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #include "NEMath.h" 100:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 101:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** float32_t arm_minkowski_distance_f32(const float32_t *pA,const float32_t *pB, int32_t order, uint32 102:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** { 103:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** float32_t sum; 104:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** uint32_t blkCnt; 105:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** float32x4_t sumV,aV,bV, tmpV, n; 106:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** float32x2_t sumV2; 107:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 108:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sum = 0.0f; 109:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sumV = vdupq_n_f32(0.0f); 110:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** n = vdupq_n_f32(order); 111:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 112:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** blkCnt = blockSize >> 2; 113:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** while(blkCnt > 0) 114:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** { 115:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** aV = vld1q_f32(pA); 116:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** bV = vld1q_f32(pB); 117:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** pA += 4; 118:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** pB += 4; 119:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 120:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** tmpV = vabdq_f32(aV,bV); 121:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** tmpV = vpowq_f32(tmpV,n); 122:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sumV = vaddq_f32(sumV, tmpV); 123:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 124:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 125:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** blkCnt --; 126:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** } 127:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 128:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sumV2 = vpadd_f32(vget_low_f32(sumV),vget_high_f32(sumV)); 129:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sum = vget_lane_f32(sumV2, 0) + vget_lane_f32(sumV2, 1); 130:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 131:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** blkCnt = blockSize & 3; 132:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** while(blkCnt > 0) ARM GAS /tmp/ccRzkJVN.s page 195 133:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** { 134:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sum += powf(fabsf(*pA++ - *pB++),order); 135:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 136:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** blkCnt --; 137:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** } 138:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 139:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 140:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** return(powf(sum,(1.0f/order))); 141:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 142:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** } 143:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 144:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** #else 145:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 146:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 147:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** float32_t arm_minkowski_distance_f32(const float32_t *pA,const float32_t *pB, int32_t order, uint32 148:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** { 1818 .loc 15 148 0 1819 .cfi_startproc 1820 @ args = 0, pretend = 0, frame = 0 1821 @ frame_needed = 0, uses_anonymous_args = 0 1822 .LVL241: 1823 0000 70B5 push {r4, r5, r6, lr} 1824 .LCFI34: 1825 .cfi_def_cfa_offset 16 1826 .cfi_offset 4, -16 1827 .cfi_offset 5, -12 1828 .cfi_offset 6, -8 1829 .cfi_offset 14, -4 1830 0002 07EE902A vmov s15, r2 @ int 1831 0006 2DED028B vpush.64 {d8} 1832 .LCFI35: 1833 .cfi_def_cfa_offset 24 1834 .cfi_offset 80, -24 1835 .cfi_offset 81, -20 1836 000a F8EEE78A vcvt.f32.s32 s17, s15 149:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** float32_t sum; 150:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** uint32_t i; 151:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sum = 0.0f; 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** for(i=0; i < blockSize; i++) 1837 .loc 15 153 0 1838 000e 0BB3 cbz r3, .L225 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** for(i=0; i < blockSize; i++) 1839 .loc 15 152 0 1840 0010 9FED128A vldr.32 s16, .L228 1841 0014 0446 mov r4, r0 1842 0016 00EB8306 add r6, r0, r3, lsl #2 1843 001a 0D46 mov r5, r1 1844 .LVL242: 1845 .L224: 154:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** { 155:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** sum += powf(fabsf(pA[i] - pB[i]),order); 1846 .loc 15 155 0 discriminator 3 1847 001c B4EC010A vldmia.32 r4!, {s0} 1848 0020 F5EC017A vldmia.32 r5!, {s15} 1849 0024 30EE670A vsub.f32 s0, s0, s15 1850 0028 F0EE680A vmov.f32 s1, s17 ARM GAS /tmp/ccRzkJVN.s page 196 1851 002c B0EEC00A vabs.f32 s0, s0 1852 0030 FFF7FEFF bl powf 1853 .LVL243: 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** { 1854 .loc 15 153 0 discriminator 3 1855 0034 A642 cmp r6, r4 1856 .loc 15 155 0 discriminator 3 1857 0036 38EE008A vadd.f32 s16, s16, s0 1858 .LVL244: 153:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** { 1859 .loc 15 153 0 discriminator 3 1860 003a EFD1 bne .L224 1861 .LVL245: 1862 .L223: 156:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** } 157:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 158:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** return(powf(sum,(1.0f/order))); 1863 .loc 15 159 0 1864 003c F7EE000A vmov.f32 s1, #1.0e+0 1865 0040 B0EE480A vmov.f32 s0, s16 1866 0044 C0EEA80A vdiv.f32 s1, s1, s17 160:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 161:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** } 1867 .loc 15 161 0 1868 0048 BDEC028B vldm sp!, {d8} 1869 .LCFI36: 1870 .cfi_remember_state 1871 .cfi_restore 80 1872 .cfi_restore 81 1873 .cfi_def_cfa_offset 16 1874 004c BDE87040 pop {r4, r5, r6, lr} 1875 .LCFI37: 1876 .cfi_restore 14 1877 .cfi_restore 6 1878 .cfi_restore 5 1879 .cfi_restore 4 1880 .cfi_def_cfa_offset 0 159:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** 1881 .loc 15 159 0 1882 0050 FFF7FEBF b powf 1883 .LVL246: 1884 .L225: 1885 .LCFI38: 1886 .cfi_restore_state 152:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_minkowski_distance_f32.c **** for(i=0; i < blockSize; i++) 1887 .loc 15 152 0 1888 0054 9FED018A vldr.32 s16, .L228 1889 0058 F0E7 b .L223 1890 .L229: 1891 005a 00BF .align 2 1892 .L228: 1893 005c 00000000 .word 0 1894 .cfi_endproc 1895 .LFE165: 1897 .section .text.arm_rogerstanimoto_distance,"ax",%progbits 1898 .align 1 ARM GAS /tmp/ccRzkJVN.s page 197 1899 .p2align 2,,3 1900 .global arm_rogerstanimoto_distance 1901 .syntax unified 1902 .thumb 1903 .thumb_func 1904 .fpu fpv4-sp-d16 1906 arm_rogerstanimoto_distance: 1907 .LFB166: 1908 .file 16 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_ 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * Title: arm_rogerstanimoto_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * Description: Roger Stanimoto distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** extern void arm_boolean_distance_TT_FF_TF_FT(const uint32_t *pA 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** , const uint32_t *pB 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** , uint32_t numberOfBools 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** , uint32_t *cTT 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** , uint32_t *cFF 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** , uint32_t *cTF 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** , uint32_t *cFT 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** ); 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** /** 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** @addtogroup BoolDist 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** @{ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** */ 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** ARM GAS /tmp/ccRzkJVN.s page 198 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** /** 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * @brief Roger Stanimoto distance between two vectors 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * @param[in] pA First vector of packed booleans 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * @param[in] pB Second vector of packed booleans 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * @param[in] numberOfBools Number of booleans 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * @return distance 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** * 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** */ 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** float32_t arm_rogerstanimoto_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBool 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** { 1909 .loc 16 60 0 1910 .cfi_startproc 1911 @ args = 0, pretend = 0, frame = 16 1912 @ frame_needed = 0, uses_anonymous_args = 0 1913 .LVL247: 1914 0000 F0B5 push {r4, r5, r6, r7, lr} 1915 .LCFI39: 1916 .cfi_def_cfa_offset 20 1917 .cfi_offset 4, -20 1918 .cfi_offset 5, -16 1919 .cfi_offset 6, -12 1920 .cfi_offset 7, -8 1921 .cfi_offset 14, -4 1922 0002 89B0 sub sp, sp, #36 1923 .LCFI40: 1924 .cfi_def_cfa_offset 56 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** uint32_t ctt=0,cff=0,ctf=0,cft=0,r; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** arm_boolean_distance_TT_FF_TF_FT(pA, pB, numberOfBools, &ctt,&cff, &ctf, &cft); 1925 .loc 16 63 0 1926 0004 06AC add r4, sp, #24 1927 0006 05AB add r3, sp, #20 1928 0008 07AD add r5, sp, #28 1929 000a CDE90145 strd r4, r5, [sp, #4] 1930 000e 0093 str r3, [sp] 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** uint32_t ctt=0,cff=0,ctf=0,cft=0,r; 1931 .loc 16 61 0 1932 0010 0024 movs r4, #0 1933 .loc 16 63 0 1934 0012 04AB add r3, sp, #16 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** uint32_t ctt=0,cff=0,ctf=0,cft=0,r; 1935 .loc 16 61 0 1936 0014 CDE90444 strd r4, r4, [sp, #16] 1937 0018 CDE90644 strd r4, r4, [sp, #24] 1938 .loc 16 63 0 1939 001c FFF7FEFF bl arm_boolean_distance_TT_FF_TF_FT 1940 .LVL248: 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** r = 2*(ctf + cft); 1941 .loc 16 65 0 1942 0020 DDE90643 ldrd r4, r3, [sp, #24] 1943 0024 1C44 add r4, r4, r3 1944 0026 6400 lsls r4, r4, #1 1945 .LVL249: 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** ARM GAS /tmp/ccRzkJVN.s page 199 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** return(1.0*r / (r + ctt + cff)); 1946 .loc 16 67 0 1947 0028 2046 mov r0, r4 1948 002a FFF7FEFF bl __aeabi_ui2d 1949 .LVL250: 1950 002e 0646 mov r6, r0 1951 0030 DDE90403 ldrd r0, r3, [sp, #16] 1952 0034 1844 add r0, r0, r3 1953 0036 2044 add r0, r0, r4 1954 0038 0F46 mov r7, r1 1955 003a FFF7FEFF bl __aeabi_ui2d 1956 .LVL251: 1957 003e 0246 mov r2, r0 1958 0040 0B46 mov r3, r1 1959 0042 3046 mov r0, r6 1960 0044 3946 mov r1, r7 1961 0046 FFF7FEFF bl __aeabi_ddiv 1962 .LVL252: 1963 004a FFF7FEFF bl __aeabi_d2f 1964 .LVL253: 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_rogerstanimoto_distance.c **** } 1965 .loc 16 68 0 1966 004e 00EE100A vmov s0, r0 1967 0052 09B0 add sp, sp, #36 1968 .LCFI41: 1969 .cfi_def_cfa_offset 20 1970 @ sp needed 1971 0054 F0BD pop {r4, r5, r6, r7, pc} 1972 .cfi_endproc 1973 .LFE166: 1975 .global __aeabi_f2d 1976 0056 00BF .section .text.arm_russellrao_distance,"ax",%progbits 1977 .align 1 1978 .p2align 2,,3 1979 .global arm_russellrao_distance 1980 .syntax unified 1981 .thumb 1982 .thumb_func 1983 .fpu fpv4-sp-d16 1985 arm_russellrao_distance: 1986 .LFB167: 1987 .file 17 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_dist 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * Title: arm_russellrao_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * Description: Russell-Rao distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * Licensed under the Apache License, Version 2.0 (the License); you may ARM GAS /tmp/ccRzkJVN.s page 200 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** extern void arm_boolean_distance_TT(const uint32_t *pA 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** , const uint32_t *pB 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** , uint32_t numberOfBools 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** , uint32_t *cTT 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** ); 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** /** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** @addtogroup BoolDist 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** @{ 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** */ 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** /** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * @brief Russell-Rao distance between two vectors 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * @param[in] pA First vector of packed booleans 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * @param[in] pB Second vector of packed booleans 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * @param[in] numberOfBools Number of booleans 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * @return distance 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** * 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** */ 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** float32_t arm_russellrao_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** { 1988 .loc 17 57 0 1989 .cfi_startproc 1990 @ args = 0, pretend = 0, frame = 0 1991 @ frame_needed = 0, uses_anonymous_args = 0 1992 .LVL254: 1993 .LBB32: 1994 .LBB33: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 1995 .loc 1 474 0 1996 0000 1F2A cmp r2, #31 1997 .LBE33: 1998 .LBE32: 1999 .loc 17 57 0 2000 0002 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 2001 .LCFI42: ARM GAS /tmp/ccRzkJVN.s page 201 2002 .cfi_def_cfa_offset 32 2003 .cfi_offset 3, -32 2004 .cfi_offset 4, -28 2005 .cfi_offset 5, -24 2006 .cfi_offset 6, -20 2007 .cfi_offset 7, -16 2008 .cfi_offset 8, -12 2009 .cfi_offset 9, -8 2010 .cfi_offset 14, -4 2011 .loc 17 57 0 2012 0006 9046 mov r8, r2 2013 .LVL255: 2014 .LBB36: 2015 .LBB34: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 2016 .loc 1 474 0 2017 0008 50D9 bls .L240 2018 000a A2F1200E sub lr, r2, #32 2019 000e 4FEA5E1E lsr lr, lr, #5 2020 0012 0EF1010E add lr, lr, #1 2021 0016 4FEA8E0E lsl lr, lr, #2 2022 001a 00EB0E09 add r9, r0, lr 2023 001e 0A46 mov r2, r1 2024 .LVL256: 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 2025 .loc 1 460 0 2026 0020 4FF0000C mov ip, #0 2027 .LVL257: 2028 .L236: 476:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 2029 .loc 1 476 0 2030 0024 50F8044B ldr r4, [r0], #4 2031 .LVL258: 477:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** shift = 0; 2032 .loc 1 477 0 2033 0028 52F8045B ldr r5, [r2], #4 2034 .LVL259: 2035 002c 2023 movs r3, #32 2036 .LVL260: 2037 .L235: 481:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 2038 .loc 1 481 0 2039 002e 04F00107 and r7, r4, #1 2040 .LVL261: 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 2041 .loc 1 484 0 2042 0032 6E08 lsrs r6, r5, #1 483:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 2043 .loc 1 483 0 2044 0034 6408 lsrs r4, r4, #1 2045 .LVL262: 486:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 2046 .loc 1 486 0 2047 0036 1FB1 cbz r7, .L234 2048 0038 ED07 lsls r5, r5, #31 2049 .LVL263: 2050 003a 48BF it mi ARM GAS /tmp/ccRzkJVN.s page 202 2051 003c 0CF1010C addmi ip, ip, #1 2052 .LVL264: 2053 .L234: 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 2054 .loc 1 479 0 2055 0040 013B subs r3, r3, #1 484:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #ifdef TT 2056 .loc 1 484 0 2057 0042 3546 mov r5, r6 479:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 2058 .loc 1 479 0 2059 0044 F3D1 bne .L235 2060 .LVL265: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 2061 .loc 1 474 0 2062 0046 4845 cmp r0, r9 2063 0048 ECD1 bne .L236 2064 004a 7144 add r1, r1, lr 2065 .LVL266: 2066 004c 08F01F03 and r3, r8, #31 2067 .LVL267: 2068 .L233: 504:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 2069 .loc 1 504 0 2070 0050 0A68 ldr r2, [r1] 503:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = *pB++; 2071 .loc 1 503 0 2072 0052 0068 ldr r0, [r0] 2073 .LVL268: 506:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> (32 - numberOfBools); 2074 .loc 1 506 0 2075 0054 C3F12004 rsb r4, r3, #32 2076 0058 20FA04F1 lsr r1, r0, r4 2077 .LVL269: 507:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 2078 .loc 1 507 0 2079 005c E240 lsrs r2, r2, r4 2080 .LVL270: 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 2081 .loc 1 509 0 2082 005e 5BB1 cbz r3, .L237 2083 .LVL271: 2084 .L239: 511:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** bb = b & 1; 2085 .loc 1 511 0 2086 0060 01F00104 and r4, r1, #1 2087 .LVL272: 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 2088 .loc 1 514 0 2089 0064 5008 lsrs r0, r2, #1 513:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** b = b >> 1; 2090 .loc 1 513 0 2091 0066 4908 lsrs r1, r1, #1 2092 .LVL273: 517:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 2093 .loc 1 517 0 2094 0068 1CB1 cbz r4, .L238 ARM GAS /tmp/ccRzkJVN.s page 203 2095 006a D207 lsls r2, r2, #31 2096 .LVL274: 2097 006c 48BF it mi 2098 006e 0CF1010C addmi ip, ip, #1 2099 .LVL275: 2100 .L238: 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 2101 .loc 1 509 0 2102 0072 013B subs r3, r3, #1 2103 .LVL276: 514:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** 2104 .loc 1 514 0 2105 0074 0246 mov r2, r0 509:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 2106 .loc 1 509 0 2107 0076 F3D1 bne .L239 2108 .LVL277: 2109 .L237: 2110 .LBE34: 2111 .LBE36: 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** uint32_t ctt=0; 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** arm_boolean_distance_TT(pA, pB, numberOfBools, &ctt); 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** return(1.0*(numberOfBools - ctt) / ((float32_t)numberOfBools)); 2112 .loc 17 64 0 2113 0078 A8EB0C00 sub r0, r8, ip 2114 007c FFF7FEFF bl __aeabi_ui2d 2115 .LVL278: 2116 0080 07EE908A vmov s15, r8 @ int 2117 0084 F8EE677A vcvt.f32.u32 s15, s15 2118 0088 0446 mov r4, r0 2119 008a 17EE900A vmov r0, s15 2120 008e 0D46 mov r5, r1 2121 0090 FFF7FEFF bl __aeabi_f2d 2122 .LVL279: 2123 0094 0246 mov r2, r0 2124 0096 0B46 mov r3, r1 2125 0098 2046 mov r0, r4 2126 009a 2946 mov r1, r5 2127 009c FFF7FEFF bl __aeabi_ddiv 2128 .LVL280: 2129 00a0 FFF7FEFF bl __aeabi_d2f 2130 .LVL281: 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_russellrao_distance.c **** } 2131 .loc 17 65 0 2132 00a4 00EE100A vmov s0, r0 2133 00a8 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 2134 .LVL282: 2135 .L240: 2136 .LBB37: 2137 .LBB35: 474:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** { 2138 .loc 1 474 0 2139 00ac 1346 mov r3, r2 ARM GAS /tmp/ccRzkJVN.s page 204 460:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_boolean_distance_template.h **** #endif 2140 .loc 1 460 0 2141 00ae 4FF0000C mov ip, #0 2142 00b2 CDE7 b .L233 2143 .LBE35: 2144 .LBE37: 2145 .cfi_endproc 2146 .LFE167: 2148 .section .text.arm_sokalmichener_distance,"ax",%progbits 2149 .align 1 2150 .p2align 2,,3 2151 .global arm_sokalmichener_distance 2152 .syntax unified 2153 .thumb 2154 .thumb_func 2155 .fpu fpv4-sp-d16 2157 arm_sokalmichener_distance: 2158 .LFB168: 2159 .file 18 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_d 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * Title: arm_sokalmichener_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * Description: Sokal-Michener distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** extern void arm_boolean_distance_TT_FF_TF_FT(const uint32_t *pA 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** , const uint32_t *pB 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** , uint32_t numberOfBools 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** , uint32_t *cTT 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** , uint32_t *cFF 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** , uint32_t *cTF ARM GAS /tmp/ccRzkJVN.s page 205 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** , uint32_t *cFT 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** ); 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** /** 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** @addtogroup BoolDist 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** @{ 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** */ 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** /** 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * @brief Sokal-Michener distance between two vectors 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * @param[in] pA First vector of packed booleans 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * @param[in] pB Second vector of packed booleans 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * @param[in] numberOfBools Number of booleans 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * @return distance 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** * 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** */ 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** float32_t arm_sokalmichener_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** { 2160 .loc 18 59 0 2161 .cfi_startproc 2162 @ args = 0, pretend = 0, frame = 16 2163 @ frame_needed = 0, uses_anonymous_args = 0 2164 .LVL283: 2165 0000 30B5 push {r4, r5, lr} 2166 .LCFI43: 2167 .cfi_def_cfa_offset 12 2168 .cfi_offset 4, -12 2169 .cfi_offset 5, -8 2170 .cfi_offset 14, -4 2171 0002 2DED028B vpush.64 {d8} 2172 .LCFI44: 2173 .cfi_def_cfa_offset 20 2174 .cfi_offset 80, -20 2175 .cfi_offset 81, -16 2176 0006 89B0 sub sp, sp, #36 2177 .LCFI45: 2178 .cfi_def_cfa_offset 56 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** uint32_t ctt=0,cff=0,cft=0,ctf=0; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** float32_t r,s; 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** arm_boolean_distance_TT_FF_TF_FT(pA, pB, numberOfBools, &ctt, &cff, &ctf, &cft); 2179 .loc 18 63 0 2180 0008 07AC add r4, sp, #28 2181 000a 05AB add r3, sp, #20 2182 000c 06AD add r5, sp, #24 2183 000e CDE90145 strd r4, r5, [sp, #4] 2184 0012 0093 str r3, [sp] 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** uint32_t ctt=0,cff=0,cft=0,ctf=0; 2185 .loc 18 60 0 2186 0014 0024 movs r4, #0 2187 .loc 18 63 0 2188 0016 04AB add r3, sp, #16 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** uint32_t ctt=0,cff=0,cft=0,ctf=0; 2189 .loc 18 60 0 ARM GAS /tmp/ccRzkJVN.s page 206 2190 0018 CDE90444 strd r4, r4, [sp, #16] 2191 001c CDE90644 strd r4, r4, [sp, #24] 2192 .loc 18 63 0 2193 0020 FFF7FEFF bl arm_boolean_distance_TT_FF_TF_FT 2194 .LVL284: 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** r = 2.0*(ctf + cft); 2195 .loc 18 65 0 2196 0024 DDE90630 ldrd r3, r0, [sp, #24] 2197 0028 1844 add r0, r0, r3 2198 002a FFF7FEFF bl __aeabi_ui2d 2199 .LVL285: 2200 002e 0246 mov r2, r0 2201 0030 0B46 mov r3, r1 2202 0032 FFF7FEFF bl __aeabi_dadd 2203 .LVL286: 2204 0036 FFF7FEFF bl __aeabi_d2f 2205 .LVL287: 2206 003a 08EE100A vmov s16, r0 2207 .LVL288: 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** s = 1.0*(cff + ctt); 2208 .loc 18 66 0 2209 003e DDE90430 ldrd r3, r0, [sp, #16] 2210 .LVL289: 2211 0042 1844 add r0, r0, r3 2212 0044 FFF7FEFF bl __aeabi_ui2d 2213 .LVL290: 2214 0048 FFF7FEFF bl __aeabi_d2f 2215 .LVL291: 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** 68:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** return(r / (s+r)); 2216 .loc 18 68 0 2217 004c 07EE900A vmov s15, r0 2218 0050 37EE880A vadd.f32 s0, s15, s16 69:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalmichener_distance.c **** } 2219 .loc 18 69 0 2220 0054 88EE000A vdiv.f32 s0, s16, s0 2221 0058 09B0 add sp, sp, #36 2222 .LCFI46: 2223 .cfi_def_cfa_offset 20 2224 @ sp needed 2225 005a BDEC028B vldm sp!, {d8} 2226 .LCFI47: 2227 .cfi_restore 80 2228 .cfi_restore 81 2229 .cfi_def_cfa_offset 12 2230 .LVL292: 2231 005e 30BD pop {r4, r5, pc} 2232 .cfi_endproc 2233 .LFE168: 2235 .section .text.arm_sokalsneath_distance,"ax",%progbits 2236 .align 1 2237 .p2align 2,,3 2238 .global arm_sokalsneath_distance 2239 .syntax unified 2240 .thumb 2241 .thumb_func ARM GAS /tmp/ccRzkJVN.s page 207 2242 .fpu fpv4-sp-d16 2244 arm_sokalsneath_distance: 2245 .LFB169: 2246 .file 19 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_dis 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * Title: arm_sokalsneath_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * Description: Sokal-Sneath distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** extern void arm_boolean_distance_TT_TF_FT(const uint32_t *pA 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** , const uint32_t *pB 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** , uint32_t numberOfBools 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** , uint32_t *cTT 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** , uint32_t *cTF 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** , uint32_t *cFT 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** ); 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** /** 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** @addtogroup BoolDist 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** @{ 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** */ 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** /** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * @brief Sokal-Sneath distance between two vectors 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * @param[in] pA First vector of packed booleans 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * @param[in] pB Second vector of packed booleans 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * @param[in] numberOfBools Number of booleans 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * @return distance ARM GAS /tmp/ccRzkJVN.s page 208 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** * 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** */ 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** float32_t arm_sokalsneath_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** { 2247 .loc 19 58 0 2248 .cfi_startproc 2249 @ args = 0, pretend = 0, frame = 16 2250 @ frame_needed = 0, uses_anonymous_args = 0 2251 .LVL293: 2252 0000 10B5 push {r4, lr} 2253 .LCFI48: 2254 .cfi_def_cfa_offset 8 2255 .cfi_offset 4, -8 2256 .cfi_offset 14, -4 2257 0002 86B0 sub sp, sp, #24 2258 .LCFI49: 2259 .cfi_def_cfa_offset 32 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** uint32_t ctt=0,cft=0,ctf=0; 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** float32_t r; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** arm_boolean_distance_TT_TF_FT(pA, pB, numberOfBools, &ctt, &ctf, &cft); 2260 .loc 19 62 0 2261 0004 04AC add r4, sp, #16 2262 0006 05AB add r3, sp, #20 2263 0008 CDE90034 strd r3, r4, [sp] 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** uint32_t ctt=0,cft=0,ctf=0; 2264 .loc 19 59 0 2265 000c 0024 movs r4, #0 2266 .loc 19 62 0 2267 000e 03AB add r3, sp, #12 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** uint32_t ctt=0,cft=0,ctf=0; 2268 .loc 19 59 0 2269 0010 CDE90344 strd r4, r4, [sp, #12] 2270 0014 0594 str r4, [sp, #20] 2271 .loc 19 62 0 2272 0016 FFF7FEFF bl arm_boolean_distance_TT_TF_FT 2273 .LVL294: 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** r = 2.0*(ctf + cft); 2274 .loc 19 64 0 2275 001a DDE90430 ldrd r3, r0, [sp, #16] 2276 001e 1844 add r0, r0, r3 2277 0020 FFF7FEFF bl __aeabi_ui2d 2278 .LVL295: 2279 0024 0246 mov r2, r0 2280 0026 0B46 mov r3, r1 2281 0028 FFF7FEFF bl __aeabi_dadd 2282 .LVL296: 2283 002c FFF7FEFF bl __aeabi_d2f 2284 .LVL297: 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** return(r / (r + ctt)); 2285 .loc 19 66 0 2286 0030 DDED037A vldr.32 s15, [sp, #12] @ int 2287 0034 B8EE670A vcvt.f32.u32 s0, s15 2288 0038 07EE900A vmov s15, r0 ARM GAS /tmp/ccRzkJVN.s page 209 2289 003c 30EE270A vadd.f32 s0, s0, s15 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_sokalsneath_distance.c **** } 2290 .loc 19 67 0 2291 0040 87EE800A vdiv.f32 s0, s15, s0 2292 0044 06B0 add sp, sp, #24 2293 .LCFI50: 2294 .cfi_def_cfa_offset 8 2295 @ sp needed 2296 0046 10BD pop {r4, pc} 2297 .cfi_endproc 2298 .LFE169: 2300 .global __aeabi_dmul 2301 .section .text.arm_yule_distance,"ax",%progbits 2302 .align 1 2303 .p2align 2,,3 2304 .global arm_yule_distance 2305 .syntax unified 2306 .thumb 2307 .thumb_func 2308 .fpu fpv4-sp-d16 2310 arm_yule_distance: 2311 .LFB170: 2312 .file 20 "Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c 1:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 2:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** /* ---------------------------------------------------------------------- 3:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * Project: CMSIS DSP Library 4:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * Title: arm_yule_distance.c 5:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * Description: Yule distance between two vectors 6:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * 7:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * 8:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * Target Processor: Cortex-M cores 9:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * -------------------------------------------------------------------- */ 10:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** /* 11:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved. 12:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * 13:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * SPDX-License-Identifier: Apache-2.0 14:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * 15:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * Licensed under the Apache License, Version 2.0 (the License); you may 16:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * not use this file except in compliance with the License. 17:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * You may obtain a copy of the License at 18:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * 19:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * www.apache.org/licenses/LICENSE-2.0 20:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * 21:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * Unless required by applicable law or agreed to in writing, software 22:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * distributed under the License is distributed on an AS IS BASIS, WITHOUT 23:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 24:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * See the License for the specific language governing permissions and 25:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * limitations under the License. 26:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** */ 27:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 28:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** #include "arm_math.h" 29:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** #include 30:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** #include 31:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 32:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 33:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** extern void arm_boolean_distance_TT_FF_TF_FT(const uint32_t *pA 34:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** , const uint32_t *pB ARM GAS /tmp/ccRzkJVN.s page 210 35:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** , uint32_t numberOfBools 36:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** , uint32_t *cTT 37:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** , uint32_t *cFF 38:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** , uint32_t *cTF 39:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** , uint32_t *cFT 40:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** ); 41:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 42:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** /** 43:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** @addtogroup BoolDist 44:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** @{ 45:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** */ 46:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 47:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 48:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** /** 49:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * @brief Yule distance between two vectors 50:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * 51:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * @param[in] pA First vector of packed booleans 52:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * @param[in] pB Second vector of packed booleans 53:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * @param[in] numberOfBools Number of booleans 54:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * @return distance 55:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** * 56:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** */ 57:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 58:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** float32_t arm_yule_distance(const uint32_t *pA, const uint32_t *pB, uint32_t numberOfBools) 59:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** { 2313 .loc 20 59 0 2314 .cfi_startproc 2315 @ args = 0, pretend = 0, frame = 16 2316 @ frame_needed = 0, uses_anonymous_args = 0 2317 .LVL298: 2318 0000 F0B5 push {r4, r5, r6, r7, lr} 2319 .LCFI51: 2320 .cfi_def_cfa_offset 20 2321 .cfi_offset 4, -20 2322 .cfi_offset 5, -16 2323 .cfi_offset 6, -12 2324 .cfi_offset 7, -8 2325 .cfi_offset 14, -4 2326 0002 89B0 sub sp, sp, #36 2327 .LCFI52: 2328 .cfi_def_cfa_offset 56 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** uint32_t ctt=0,cff=0,ctf=0,cft=0,r; 61:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 62:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** arm_boolean_distance_TT_FF_TF_FT(pA, pB, numberOfBools, &ctt,&cff, &ctf, &cft); 2329 .loc 20 62 0 2330 0004 07AD add r5, sp, #28 2331 0006 06AC add r4, sp, #24 2332 0008 05AB add r3, sp, #20 2333 000a CDE90145 strd r4, r5, [sp, #4] 2334 000e 0093 str r3, [sp] 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** uint32_t ctt=0,cff=0,ctf=0,cft=0,r; 2335 .loc 20 60 0 2336 0010 0024 movs r4, #0 2337 .loc 20 62 0 2338 0012 04AB add r3, sp, #16 60:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** uint32_t ctt=0,cff=0,ctf=0,cft=0,r; 2339 .loc 20 60 0 ARM GAS /tmp/ccRzkJVN.s page 211 2340 0014 CDE90444 strd r4, r4, [sp, #16] 2341 0018 CDE90644 strd r4, r4, [sp, #24] 2342 .loc 20 62 0 2343 001c FFF7FEFF bl arm_boolean_distance_TT_FF_TF_FT 2344 .LVL299: 63:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 64:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** r = 2*(ctf * cft); 2345 .loc 20 64 0 2346 0020 DDE90630 ldrd r3, r0, [sp, #24] 2347 0024 00FB03F0 mul r0, r0, r3 65:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** 66:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** return(1.0*r / (r/2.0 + ctt * cff)); 2348 .loc 20 66 0 2349 0028 4000 lsls r0, r0, #1 2350 .LVL300: 2351 002a FFF7FEFF bl __aeabi_ui2d 2352 .LVL301: 2353 002e 0446 mov r4, r0 2354 0030 DDE90430 ldrd r3, r0, [sp, #16] 2355 0034 00FB03F0 mul r0, r0, r3 2356 0038 0D46 mov r5, r1 2357 003a FFF7FEFF bl __aeabi_ui2d 2358 .LVL302: 2359 003e 0022 movs r2, #0 2360 0040 0646 mov r6, r0 2361 0042 0F46 mov r7, r1 2362 0044 0B4B ldr r3, .L266 2363 0046 2046 mov r0, r4 2364 0048 2946 mov r1, r5 2365 004a FFF7FEFF bl __aeabi_dmul 2366 .LVL303: 2367 004e 0246 mov r2, r0 2368 0050 0B46 mov r3, r1 2369 0052 3046 mov r0, r6 2370 0054 3946 mov r1, r7 2371 0056 FFF7FEFF bl __aeabi_dadd 2372 .LVL304: 2373 005a 0246 mov r2, r0 2374 005c 0B46 mov r3, r1 2375 005e 2046 mov r0, r4 2376 0060 2946 mov r1, r5 2377 0062 FFF7FEFF bl __aeabi_ddiv 2378 .LVL305: 2379 0066 FFF7FEFF bl __aeabi_d2f 2380 .LVL306: 67:Middlewares/Third_Party/ARM_CMSIS/CMSIS/DSP/Source/DistanceFunctions/arm_yule_distance.c **** } 2381 .loc 20 67 0 2382 006a 00EE100A vmov s0, r0 2383 006e 09B0 add sp, sp, #36 2384 .LCFI53: 2385 .cfi_def_cfa_offset 20 2386 @ sp needed 2387 0070 F0BD pop {r4, r5, r6, r7, pc} 2388 .L267: 2389 0072 00BF .align 2 2390 .L266: 2391 0074 0000E03F .word 1071644672 ARM GAS /tmp/ccRzkJVN.s page 212 2392 .cfi_endproc 2393 .LFE170: 2395 .text 2396 .Letext0: 2397 .file 21 "/usr/include/newlib/machine/_default_types.h" 2398 .file 22 "/usr/include/newlib/sys/_stdint.h" 2399 .file 23 "/usr/include/newlib/sys/lock.h" 2400 .file 24 "/usr/include/newlib/sys/_types.h" 2401 .file 25 "/usr/lib/gcc/arm-none-eabi/7.3.1/include/stddef.h" 2402 .file 26 "/usr/include/newlib/sys/reent.h" 2403 .file 27 "/usr/include/newlib/math.h" ARM GAS /tmp/ccRzkJVN.s page 213 DEFINED SYMBOLS *ABS*:0000000000000000 DistanceFunctions.c /tmp/ccRzkJVN.s:16 .text.arm_boolean_distance_TT_TF_FT:0000000000000000 $t /tmp/ccRzkJVN.s:24 .text.arm_boolean_distance_TT_TF_FT:0000000000000000 arm_boolean_distance_TT_TF_FT /tmp/ccRzkJVN.s:220 .text.arm_boolean_distance_TF_FT:0000000000000000 $t /tmp/ccRzkJVN.s:228 .text.arm_boolean_distance_TF_FT:0000000000000000 arm_boolean_distance_TF_FT /tmp/ccRzkJVN.s:389 .text.arm_boolean_distance_TT_FF_TF_FT:0000000000000000 $t /tmp/ccRzkJVN.s:397 .text.arm_boolean_distance_TT_FF_TF_FT:0000000000000000 arm_boolean_distance_TT_FF_TF_FT /tmp/ccRzkJVN.s:668 .text.arm_boolean_distance_TT:0000000000000000 $t /tmp/ccRzkJVN.s:676 .text.arm_boolean_distance_TT:0000000000000000 arm_boolean_distance_TT /tmp/ccRzkJVN.s:805 .text.arm_braycurtis_distance_f32:0000000000000000 $t /tmp/ccRzkJVN.s:813 .text.arm_braycurtis_distance_f32:0000000000000000 arm_braycurtis_distance_f32 /tmp/ccRzkJVN.s:865 .text.arm_braycurtis_distance_f32:000000000000003c $d /tmp/ccRzkJVN.s:871 .text.arm_canberra_distance_f32:0000000000000000 $t /tmp/ccRzkJVN.s:879 .text.arm_canberra_distance_f32:0000000000000000 arm_canberra_distance_f32 /tmp/ccRzkJVN.s:939 .text.arm_canberra_distance_f32:0000000000000048 $d /tmp/ccRzkJVN.s:944 .text.arm_chebyshev_distance_f32:0000000000000000 $t /tmp/ccRzkJVN.s:952 .text.arm_chebyshev_distance_f32:0000000000000000 arm_chebyshev_distance_f32 /tmp/ccRzkJVN.s:1004 .text.arm_cityblock_distance_f32:0000000000000000 $t /tmp/ccRzkJVN.s:1012 .text.arm_cityblock_distance_f32:0000000000000000 arm_cityblock_distance_f32 /tmp/ccRzkJVN.s:1050 .text.arm_cityblock_distance_f32:0000000000000024 $d /tmp/ccRzkJVN.s:1055 .text.arm_correlation_distance_f32:0000000000000000 $t /tmp/ccRzkJVN.s:1063 .text.arm_correlation_distance_f32:0000000000000000 arm_correlation_distance_f32 /tmp/ccRzkJVN.s:1181 .text.arm_correlation_distance_f32:00000000000000a8 $d /tmp/ccRzkJVN.s:1186 .text.arm_cosine_distance_f32:0000000000000000 $t /tmp/ccRzkJVN.s:1194 .text.arm_cosine_distance_f32:0000000000000000 arm_cosine_distance_f32 /tmp/ccRzkJVN.s:1272 .text.arm_cosine_distance_f32:000000000000005c $d /tmp/ccRzkJVN.s:1281 .text.arm_dice_distance:0000000000000000 $t /tmp/ccRzkJVN.s:1289 .text.arm_dice_distance:0000000000000000 arm_dice_distance /tmp/ccRzkJVN.s:1378 .text.arm_euclidean_distance_f32:0000000000000000 $t /tmp/ccRzkJVN.s:1386 .text.arm_euclidean_distance_f32:0000000000000000 arm_euclidean_distance_f32 /tmp/ccRzkJVN.s:1436 .text.arm_euclidean_distance_f32:0000000000000030 $d /tmp/ccRzkJVN.s:1441 .text.arm_hamming_distance:0000000000000000 $t /tmp/ccRzkJVN.s:1449 .text.arm_hamming_distance:0000000000000000 arm_hamming_distance /tmp/ccRzkJVN.s:1510 .text.arm_jaccard_distance:0000000000000000 $t /tmp/ccRzkJVN.s:1518 .text.arm_jaccard_distance:0000000000000000 arm_jaccard_distance /tmp/ccRzkJVN.s:1581 .text.arm_jensenshannon_distance_f32:0000000000000000 $t /tmp/ccRzkJVN.s:1589 .text.arm_jensenshannon_distance_f32:0000000000000000 arm_jensenshannon_distance_f32 /tmp/ccRzkJVN.s:1727 .text.arm_jensenshannon_distance_f32:0000000000000074 $d /tmp/ccRzkJVN.s:1732 .text.arm_kulsinski_distance:0000000000000000 $t /tmp/ccRzkJVN.s:1740 .text.arm_kulsinski_distance:0000000000000000 arm_kulsinski_distance /tmp/ccRzkJVN.s:1807 .text.arm_minkowski_distance_f32:0000000000000000 $t /tmp/ccRzkJVN.s:1815 .text.arm_minkowski_distance_f32:0000000000000000 arm_minkowski_distance_f32 /tmp/ccRzkJVN.s:1893 .text.arm_minkowski_distance_f32:000000000000005c $d /tmp/ccRzkJVN.s:1898 .text.arm_rogerstanimoto_distance:0000000000000000 $t /tmp/ccRzkJVN.s:1906 .text.arm_rogerstanimoto_distance:0000000000000000 arm_rogerstanimoto_distance /tmp/ccRzkJVN.s:1977 .text.arm_russellrao_distance:0000000000000000 $t /tmp/ccRzkJVN.s:1985 .text.arm_russellrao_distance:0000000000000000 arm_russellrao_distance /tmp/ccRzkJVN.s:2149 .text.arm_sokalmichener_distance:0000000000000000 $t /tmp/ccRzkJVN.s:2157 .text.arm_sokalmichener_distance:0000000000000000 arm_sokalmichener_distance /tmp/ccRzkJVN.s:2236 .text.arm_sokalsneath_distance:0000000000000000 $t /tmp/ccRzkJVN.s:2244 .text.arm_sokalsneath_distance:0000000000000000 arm_sokalsneath_distance /tmp/ccRzkJVN.s:2302 .text.arm_yule_distance:0000000000000000 $t /tmp/ccRzkJVN.s:2310 .text.arm_yule_distance:0000000000000000 arm_yule_distance /tmp/ccRzkJVN.s:2391 .text.arm_yule_distance:0000000000000074 $d UNDEFINED SYMBOLS ARM GAS /tmp/ccRzkJVN.s page 214 arm_mean_f32 arm_offset_f32 arm_power_f32 arm_dot_prod_f32 __aeabi_ui2d __aeabi_dadd __aeabi_ddiv __aeabi_d2f logf powf __aeabi_f2d __aeabi_dmul