41 lines
1.4 KiB
C
41 lines
1.4 KiB
C
/*
|
|
* Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef COMMON_AUDIO_SIGNAL_PROCESSING_DOT_PRODUCT_WITH_SCALE_H_
|
|
#define COMMON_AUDIO_SIGNAL_PROCESSING_DOT_PRODUCT_WITH_SCALE_H_
|
|
|
|
#include <stdint.h>
|
|
#include <string.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// Calculates the dot product between two (int16_t) vectors.
|
|
//
|
|
// Input:
|
|
// - vector1 : Vector 1
|
|
// - vector2 : Vector 2
|
|
// - vector_length : Number of samples used in the dot product
|
|
// - scaling : The number of right bit shifts to apply on each term
|
|
// during calculation to avoid overflow, i.e., the
|
|
// output will be in Q(-|scaling|)
|
|
//
|
|
// Return value : The dot product in Q(-scaling)
|
|
int32_t WebRtcSpl_DotProductWithScale(const int16_t* vector1,
|
|
const int16_t* vector2,
|
|
size_t length,
|
|
int scaling);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif // __cplusplus
|
|
#endif // COMMON_AUDIO_SIGNAL_PROCESSING_DOT_PRODUCT_WITH_SCALE_H_
|