Einsums/Config/CompilerSpecific.hpp#

Defined in header Einsums/Config/CompilerSpecific.hpp.

See Overview for a list of names and headers that are part of the public Einsums API.

Defines

EINSUMS_TRANSACTION_SAFE_DYN#

If transactional memory is supported by your compiler, expands to the transaction_safe_dynamic keyword.

Added in version 2.0.0.

EINSUMS_TRANSACTION_SAFE#

If transactional memory is supported by your compiler, expands to the transaction_safe keyword.

Added in version 2.0.0.

EINSUMS_ATOMIC_CANCEL#

If transactional memory is supported by your compiler, expands to the atomic_cancel keyword.

Added in version 2.0.0.

EINSUMS_ATOMIC_COMMIT#

If transactional memory is supported by your compiler, expands to the atomic_commit keyword.

Added in version 2.0.0.

EINSUMS_ATOMIC_NOEXCEPT#

If transactional memory is supported by your compiler, expands to the atomic_noexcept keyword.

Added in version 2.0.0.

EINSUMS_SYNCHRONIZED#

If transactional memory is supported by your compiler, expands to the synchronized keyword.

Added in version 2.0.0.

EINSUMS_PRAGMA(stuff)#

Creates a pragma line. Mostly used within other macros.

Added in version 1.1.0.

Parameters:
  • stuff – The pragma line without quotes.

EINSUMS_OMP_PRAGMA(stuff)#

Creates a pragma line for an OpenMP call. The text inside does not need the “omp”.

Added in version 1.1.0.

Parameters:
  • stuff – The OpenMP directives to use.

EINSUMS_OMP_SIMD_PRAGMA(stuff)#

Creates a pragma line for an OpenMP call that can be vectorized, if supported by the compiler. The text inside does not need the “omp”.

Added in version 1.1.0.

Parameters:
  • stuff – The OpenMP directives to use.

EINSUMS_OMP_SIMD#

Indicates that the following block can be vectorized.

Added in version 1.1.0.

EINSUMS_OMP_PARALLEL_FOR_SIMD#

Tell the compiler that the following for-loop can be parallelized and vectorized using SIMD.

Added in version 1.1.0.

EINSUMS_OMP_PARALLEL_FOR#

Tell the compiler that the following for-loop can be parallelized.

Added in version 1.0.0.

EINSUMS_OMP_PARALLEL#

Tell the compiler that the following block should be done in parallel.

Added in version 1.0.0.

EINSUMS_OMP_TASK_FOR#

Tell the compiler that the following for-loop can be parallelized and should use tasks.

Added in version 1.0.0.

EINSUMS_OMP_TASK_FOR_SIMD#

Tell the compiler that the following for-loop can be parallelized and vectorized using SIMD and should use tasks.

Added in version 1.1.0.

EINSUMS_OMP_TASK#

Start a new task within a parallel region.

Added in version 1.0.0.

EINSUMS_OMP_FOR_NOWAIT#

Tell the compiler that the following for-loop can be parallelized and it should not wait for threads to finish.

Added in version 1.0.0.

EINSUMS_OMP_CRITICAL#

Indicates that the following block should only be executed by one thread at a time.

Added in version 1.0.0.

EINSUMS_ALWAYS_INLINE#

Tell the compiler to inline a function.

Added in version 1.0.0.

EINSUMS_DISABLE_WARNING_PUSH#

Pushes the current warning ignore state so that ignore rules can be changed and then reverted.

Added in version 1.0.0.

EINSUMS_DISABLE_WARNING_POP#

Ppp the current warning ignore state to revert the changes to the warning ignore rules.

Added in version 1.0.0.

EINSUMS_DISABLE_WARNING(warning)#

Disables a specific warning. The behavior may differ between compilers.

Added in version 1.0.0.

EINSUMS_DISABLE_WARNING_RETURN_TYPE_C_LINKAGE#

Disable warnings that a function that normally returns C’s _Complex float or _Complex double is externed as a function that returns C++’s std::complex<float> or std::complex<double>.

Added in version 1.0.0.

EINSUMS_DISABLE_WARNING_DEPRECATED_DECLARATIONS#

Disable warnings of deprecated functions, classes, variables, etc.

Added in version 1.0.0.

EINSUMS_GCC_VERSION#

Returns the GCC version einsums is compiled with. Only set if compiled with GCC.

Added in version 1.0.0.

EINSUMS_CLANG_VERSION#

Returns the Clang version einsums is compiled with. Only set if compiled with Clang.

Added in version 1.0.0.

EINSUMS_INTEL_VERSION#

Returns the Intel Compiler version einsums is compiled with. Only set if compiled with the Intel Compiler.

Added in version 1.0.0.

EINSUMS_MSVC#

This macro is set if the compilation is with MSVC.

Added in version 1.0.0.

EINSUMS_MINGW#

This macro is set if the compilation is with Mingw.

Added in version 1.0.0.

EINSUMS_WINDOWS#

This macro is set if the compilation is for Windows.

Added in version 1.0.0.

EINSUMS_NO_SANITIZE_ADDRESS#