/src/tesseract/src/arch/dotproduct.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | /////////////////////////////////////////////////////////////////////// |
2 | | // File: dotproduct.cpp |
3 | | // Description: Native dot product function. |
4 | | // |
5 | | // (C) Copyright 2018, Google Inc. |
6 | | // Licensed under the Apache License, Version 2.0 (the "License"); |
7 | | // you may not use this file except in compliance with the License. |
8 | | // You may obtain a copy of the License at |
9 | | // http://www.apache.org/licenses/LICENSE-2.0 |
10 | | // Unless required by applicable law or agreed to in writing, software |
11 | | // distributed under the License is distributed on an "AS IS" BASIS, |
12 | | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
13 | | // See the License for the specific language governing permissions and |
14 | | // limitations under the License. |
15 | | /////////////////////////////////////////////////////////////////////// |
16 | | |
17 | | #include "dotproduct.h" |
18 | | |
19 | | namespace tesseract { |
20 | | |
21 | | // Computes and returns the dot product of the two n-vectors u and v. |
22 | 0 | TFloat DotProductNative(const TFloat *u, const TFloat *v, int n) { |
23 | 0 | TFloat total = 0; |
24 | 0 | #if defined(OPENMP_SIMD) || defined(_OPENMP) |
25 | 0 | #pragma omp simd reduction(+:total) |
26 | 0 | #endif |
27 | 0 | for (int k = 0; k < n; k++) { |
28 | 0 | total += u[k] * v[k]; |
29 | 0 | } |
30 | 0 | return total; |
31 | 0 | } |
32 | | |
33 | | } // namespace tesseract |