/* * Copyright (c) 2020 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. */ #include <immintrin.h> #include <math.h> #include "api/array_view.h" #include "modules/audio_processing/aec3/vector_math.h" #include "rtc_base/checks.h" namespace webrtc { namespace aec3 { // Elementwise square root. void VectorMath::SqrtAVX2(rtc::ArrayView<float> x) { … } // Elementwise vector multiplication z = x * y. void VectorMath::MultiplyAVX2(rtc::ArrayView<const float> x, rtc::ArrayView<const float> y, rtc::ArrayView<float> z) { … } // Elementwise vector accumulation z += x. void VectorMath::AccumulateAVX2(rtc::ArrayView<const float> x, rtc::ArrayView<float> z) { … } } // namespace aec3 } // namespace webrtc