- add sources.
[platform/framework/web/crosswalk.git] / src / media / base / vector_math.h
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.
4
5 #ifndef MEDIA_BASE_VECTOR_MATH_H_
6 #define MEDIA_BASE_VECTOR_MATH_H_
7
8 #include "media/base/media_export.h"
9
10 namespace media {
11 namespace vector_math {
12
13 // Required alignment for inputs and outputs to all vector math functions
14 enum { kRequiredAlignment = 16 };
15
16 // Selects runtime specific optimizations such as SSE.  Must be called prior to
17 // calling FMAC() or FMUL().  Called during media library initialization; most
18 // users should never have to call this.
19 MEDIA_EXPORT void Initialize();
20
21 // Multiply each element of |src| (up to |len|) by |scale| and add to |dest|.
22 // |src| and |dest| must be aligned by kRequiredAlignment.
23 MEDIA_EXPORT void FMAC(const float src[], float scale, int len, float dest[]);
24
25 // Multiply each element of |src| by |scale| and store in |dest|.  |src| and
26 // |dest| must be aligned by kRequiredAlignment.
27 MEDIA_EXPORT void FMUL(const float src[], float scale, int len, float dest[]);
28
29 }  // namespace vector_math
30 }  // namespace media
31
32 #endif  // MEDIA_BASE_VECTOR_MATH_H_