• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ----------------------------------------------------------------------
2  * Project:      CMSIS DSP Library
3  * Title:        arm_logsumexp_f32.c
4  * Description:  LogSumExp
5  *
6  *
7  * Target Processor: Cortex-M and Cortex-A cores
8  * -------------------------------------------------------------------- */
9 /*
10  * Copyright (C) 2010-2019 ARM Limited or its affiliates. All rights reserved.
11  *
12  * SPDX-License-Identifier: Apache-2.0
13  *
14  * Licensed under the Apache License, Version 2.0 (the License); you may
15  * not use this file except in compliance with the License.
16  * You may obtain a copy of the License at
17  *
18  * www.apache.org/licenses/LICENSE-2.0
19  *
20  * Unless required by applicable law or agreed to in writing, software
21  * distributed under the License is distributed on an AS IS BASIS, WITHOUT
22  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23  * See the License for the specific language governing permissions and
24  * limitations under the License.
25  */
26 
27 #include "arm_math.h"
28 #include <limits.h>
29 #include <math.h>
30 
31 
32 /**
33  * @addtogroup groupStats
34  * @{
35  */
36 
37 
38 /**
39  * @brief Dot product with log arithmetic
40  *
41  * Vectors are containing the log of the samples
42  *
43  * @param[in]       *pSrcA points to the first input vector
44  * @param[in]       *pSrcB points to the second input vector
45  * @param[in]       blockSize number of samples in each vector
46  * @param[in]       *pTmpBuffer temporary buffer of length blockSize
47  * @return The log of the dot product.
48  *
49  */
50 
51 
arm_logsumexp_dot_prod_f32(const float32_t * pSrcA,const float32_t * pSrcB,uint32_t blockSize,float32_t * pTmpBuffer)52 float32_t arm_logsumexp_dot_prod_f32(const float32_t * pSrcA,
53   const float32_t * pSrcB,
54   uint32_t blockSize,
55   float32_t *pTmpBuffer)
56 {
57     float32_t result;
58     arm_add_f32((float32_t*)pSrcA, (float32_t*)pSrcB, pTmpBuffer, blockSize);
59 
60     result = arm_logsumexp_f32(pTmpBuffer, blockSize);
61     return(result);
62 }
63 
64 /**
65  * @} end of groupStats group
66  */
67