comparison mupdf-source/thirdparty/tesseract/src/arch/dotproduct.h @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 ///////////////////////////////////////////////////////////////////////
2 // File: dotproduct.h
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 #ifndef TESSERACT_ARCH_DOTPRODUCT_H_
18 #define TESSERACT_ARCH_DOTPRODUCT_H_
19
20 #include "tesstypes.h"
21
22 namespace tesseract {
23
24 // Computes and returns the dot product of the n-vectors u and v.
25 TFloat DotProductNative(const TFloat *u, const TFloat *v, int n);
26
27 // Uses Intel AVX intrinsics to access the SIMD instruction set.
28 TFloat DotProductAVX(const TFloat *u, const TFloat *v, int n);
29
30 // Uses Intel AVX512F intrinsics to access the SIMD instruction set.
31 TFloat DotProductAVX512F(const TFloat *u, const TFloat *v, int n);
32
33 // Use Intel FMA.
34 TFloat DotProductFMA(const TFloat *u, const TFloat *v, int n);
35
36 // Uses Intel SSE intrinsics to access the SIMD instruction set.
37 TFloat DotProductSSE(const TFloat *u, const TFloat *v, int n);
38
39 // Use NEON intrinsics.
40 TFloat DotProductNEON(const TFloat *u, const TFloat *v, int n);
41
42 } // namespace tesseract.
43
44 #endif // TESSERACT_ARCH_DOTPRODUCT_H_