Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / media / base / vector_math_testing.h
blob9240fbf54f4f92a1624f5234901ded38d1316f9c
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef MEDIA_BASE_VECTOR_MATH_TESTING_H_
6 #define MEDIA_BASE_VECTOR_MATH_TESTING_H_
8 #include <utility>
10 #include "build/build_config.h"
11 #include "media/base/media_export.h"
13 namespace media {
14 namespace vector_math {
16 // Optimized versions exposed for testing. See vector_math.h for details.
17 MEDIA_EXPORT void FMAC_C(const float src[], float scale, int len, float dest[]);
18 MEDIA_EXPORT void FMUL_C(const float src[], float scale, int len, float dest[]);
19 MEDIA_EXPORT std::pair<float, float> EWMAAndMaxPower_C(
20 float initial_value, const float src[], int len, float smoothing_factor);
22 #if defined(ARCH_CPU_X86_FAMILY) && !defined(OS_NACL)
23 MEDIA_EXPORT void FMAC_SSE(const float src[], float scale, int len,
24 float dest[]);
25 MEDIA_EXPORT void FMUL_SSE(const float src[], float scale, int len,
26 float dest[]);
27 MEDIA_EXPORT std::pair<float, float> EWMAAndMaxPower_SSE(
28 float initial_value, const float src[], int len, float smoothing_factor);
29 #endif
31 #if defined(ARCH_CPU_ARM_FAMILY) && defined(USE_NEON)
32 MEDIA_EXPORT void FMAC_NEON(const float src[], float scale, int len,
33 float dest[]);
34 MEDIA_EXPORT void FMUL_NEON(const float src[], float scale, int len,
35 float dest[]);
36 MEDIA_EXPORT std::pair<float, float> EWMAAndMaxPower_NEON(
37 float initial_value, const float src[], int len, float smoothing_factor);
38 #endif
40 } // namespace vector_math
41 } // namespace media
43 #endif // MEDIA_BASE_VECTOR_MATH_TESTING_H_