Documentation 6b54b78464
Loading...
Searching...
No Matches
special_vectorization.hpp File Reference

Code generator header to create specializations of simd::Array. More...

Go to the source code of this file.

Classes

class  ARRAY_T
 Symbols that need to be defined before including this header: More...
 

Macros

#define FOREACH   SU2_OMP_SIMD for (size_t k = 0; k < Size; ++k)
 
#define MAKE_COMPOUND(OP, IMPL)
 
#define MAKE_UNARY_FUN(NAME, IMPL)    FORCEINLINE ARRAY_T NAME(const ARRAY_T& x) { return IMPL(x.reg); }
 
#define MAKE_BINARY_FUN(NAME, IMPL)
 
#define FOREACH   SU2_OMP_SIMD for (size_t k = 0; k < ARRAY_T::Size; ++k)
 
#define MAKE_UNARY_FUN(NAME, IMPL)
 
#define MAKE_BINARY_FUN(NAME, IMPL)
 

Functions

FORCEINLINE ARRAY_T operator- (const ARRAY_T &x)
 
FORCEINLINE ARRAY_T sqrt (const ARRAY_T &x)
 
FORCEINLINE ARRAY_T abs (const ARRAY_T &x)
 
FORCEINLINE ARRAY_T sign (const ARRAY_T &x)
 
FORCEINLINE ARRAY_T operator+ (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator+ (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator+ (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T operator- (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator- (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator- (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T operator* (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator* (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator* (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T operator/ (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator/ (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator/ (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T operator< (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator< (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator< (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T operator> (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator> (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator> (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T operator== (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator== (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator== (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T operator!= (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator!= (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator!= (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T operator<= (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator<= (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator<= (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T operator>= (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T operator>= (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T operator>= (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T fmax (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T fmax (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T fmax (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T fmin (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T fmin (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T fmin (SCALAR_T b, const ARRAY_T &a)
 
FORCEINLINE ARRAY_T exp (const ARRAY_T &x)
 
FORCEINLINE ARRAY_T pow (const ARRAY_T &a, const ARRAY_T &b)
 
FORCEINLINE ARRAY_T pow (const ARRAY_T &a, SCALAR_T b)
 
FORCEINLINE ARRAY_T pow (SCALAR_T b, const ARRAY_T &a)
 

Detailed Description

Code generator header to create specializations of simd::Array.

Author
P. Gomes
Version
8.5.0 "Harrier"

SU2 Project Website: https://su2code.github.io

The SU2 Project is maintained by the SU2 Foundation (http://su2foundation.org)

Copyright 2012-2026, SU2 Contributors (cf. AUTHORS.md)

SU2 is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

SU2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with SU2. If not, see http://www.gnu.org/licenses/.

Macro Definition Documentation

◆ MAKE_COMPOUND

#define MAKE_COMPOUND (   OP,
  IMPL 
)
Value:
FORCEINLINE Array& operator OP(Scalar x) { \
reg = IMPL(reg, set1_p(SIZE_TAG, x)); \
return *this; \
} \
FORCEINLINE Array& operator OP(const Array& other) noexcept { \
reg = IMPL(reg, other.reg); \
return *this; \
}
CNewtonIntegration::Scalar Scalar
Definition CNewtonIntegration.cpp:31
#define FORCEINLINE
Definition code_config.hpp:44
#define SIZE_TAG
Definition vectorization.hpp:219