Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of dsp by
arm_min_f32.c
00001 /* ---------------------------------------------------------------------- 00002 * Copyright (C) 2010 ARM Limited. All rights reserved. 00003 * 00004 * $Date: 29. November 2010 00005 * $Revision: V1.0.3 00006 * 00007 * Project: CMSIS DSP Library 00008 * Title: arm_min_f32.c 00009 * 00010 * Description: Minimum value of two floating point arrays. 00011 * 00012 * Target Processor: Cortex-M4/Cortex-M3 00013 * 00014 * Version 1.0.3 2010/11/29 00015 * Re-organized the CMSIS folders and updated documentation. 00016 * 00017 * Version 1.0.2 2010/11/11 00018 * Documentation updated. 00019 * 00020 * Version 1.0.1 2010/10/05 00021 * Production release and review comments incorporated. 00022 * 00023 * Version 1.0.0 2010/09/20 00024 * Production release and review comments incorporated. 00025 * ---------------------------------------------------------------------------- */ 00026 00027 #include "arm_math.h" 00028 00029 /** 00030 * @ingroup groupStats 00031 */ 00032 00033 /** 00034 * @defgroup Min Minimum 00035 * 00036 * Computes the minimum value of an array of data. 00037 * The function returns both the minimum value and its position within the array. 00038 * There are separate functions for floating-point, Q31, Q15, and Q7 data types. 00039 */ 00040 00041 /** 00042 * @addtogroup Min 00043 * @{ 00044 */ 00045 00046 00047 /** 00048 * @brief Minimum value of a floating-point vector. 00049 * @param[in] *pSrc points to the input vector 00050 * @param[in] blockSize length of the input vector 00051 * @param[out] *pResult minimum value returned here 00052 * @param[out] *pIndex index of minimum value returned here 00053 * @return none. 00054 * 00055 */ 00056 00057 void arm_min_f32( 00058 float32_t * pSrc, 00059 uint32_t blockSize, 00060 float32_t * pResult, 00061 uint32_t * pIndex) 00062 { 00063 float32_t minVal, out; /* Temporary variables to store the output value. */ 00064 uint32_t blkCnt, outIndex; /* loop counter */ 00065 00066 /* Initialise the index value to zero. */ 00067 outIndex = 0u; 00068 /* Load first input value that act as reference value for comparision */ 00069 out = *pSrc++; 00070 00071 /* Loop over blockSize number of values */ 00072 blkCnt = (blockSize - 1u); 00073 00074 do 00075 { 00076 /* Initialize minVal to the next consecutive values one by one */ 00077 minVal = *pSrc++; 00078 00079 /* compare for the minimum value */ 00080 if(out > minVal) 00081 { 00082 /* Update the minimum value and it's index */ 00083 out = minVal; 00084 outIndex = blockSize - blkCnt; 00085 } 00086 00087 blkCnt--; 00088 00089 } while(blkCnt > 0u); 00090 00091 /* Store the minimum value and it's index into destination pointers */ 00092 *pResult = out; 00093 *pIndex = outIndex; 00094 } 00095 00096 /** 00097 * @} end of Min group 00098 */
Generated on Tue Jul 12 2022 19:55:43 by
 1.7.2
 1.7.2 
    