TRIQS/nda 1.3.0
Multi-dimensional array library for C++
Loading...
Searching...
No Matches
cxx_interface.hpp
#include "../../blas/tools.hpp"
#include <complex>

Detailed Description

Provides a C++ interface for various LAPACK routines.

Definition in file cxx_interface.hpp.

Go to the source code of this file.

Functions

template<Array A>
requires (MemoryArray<A> or is_conj_array_expr<A>)
MemoryArray decltype(auto) nda::lapack::get_array (A &&a)
 Get the underlying array of a conjugate lazy expression or return the array itself in case it is an nda::MemoryArray.
template<MemoryArray A>
requires (get_rank<A> == 1 or get_rank<A> == 2)
int nda::lapack::get_ld (A const &a)
 Get the leading dimension of an nda::MemoryArray with rank 1 or 2 for BLAS/LAPACK calls.
template<MemoryArray A>
requires (get_rank<A> == 1 or get_rank<A> == 2)
int nda::lapack::get_ncols (A const &a)
 Get the number of columns of an nda::MemoryArray with rank 1 or 2 for BLAS/LAPACK calls.

Variables

template<Array A>
static constexpr char nda::lapack::get_op
 Variable template that determines the BLAS matrix operation tag ('N','T','C') based on the given boolean flags for conjugation and transposition.
template<Array A>
static constexpr bool nda::lapack::has_C_layout
 Constexpr variable that is true if the given nda::Array type has nda::C_layout.
template<Array A>
static constexpr bool nda::lapack::has_F_layout
 Constexpr variable that is true if the given nda::Array type has nda::F_layout.
template<typename A>
static constexpr bool nda::lapack::is_conj_array_expr
 Constexpr variable that is true if the given type is a conjugate lazy expression.

Function Documentation

◆ get_array()

template<Array A>
requires (MemoryArray<A> or is_conj_array_expr<A>)
MemoryArray decltype(auto) nda::blas::get_array ( A && a)

Get the underlying array of a conjugate lazy expression or return the array itself in case it is an nda::MemoryArray.

Template Parameters
Anda::Array type.
Parameters
aConjugate expression or array/view.
Returns
nda::MemoryArray object.

Definition at line 62 of file tools.hpp.

◆ get_ld()

template<MemoryArray A>
requires (get_rank<A> == 1 or get_rank<A> == 2)
int nda::blas::get_ld ( A const & a)

Get the leading dimension of an nda::MemoryArray with rank 1 or 2 for BLAS/LAPACK calls.

The leading dimension is the stride between two consecutive columns (rows) of a matrix in Fortran (C) layout. For 1-dimensional arrays, we simply return the size of the array.

Template Parameters
Anda::MemoryArray type.
Parameters
anda::MemoryArray object.
Returns
Leading dimension for BLAS/LAPACK calls.

Definition at line 122 of file tools.hpp.

◆ get_ncols()

template<MemoryArray A>
requires (get_rank<A> == 1 or get_rank<A> == 2)
int nda::blas::get_ncols ( A const & a)

Get the number of columns of an nda::MemoryArray with rank 1 or 2 for BLAS/LAPACK calls.

The number of columns corresponds to the extent of the second (first) dimension of a matrix in Fortran (C) layout. For 1-dimensional arrays, we return 1.

Template Parameters
Anda::MemoryArray type.
Parameters
anda::MemoryArray object.
Returns
Number of columns for BLAS/LAPACK calls.

Definition at line 142 of file tools.hpp.

Variable Documentation

◆ get_op

template<Array A>
char nda::blas::get_op
staticconstexpr

Variable template that determines the BLAS matrix operation tag ('N','T','C') based on the given boolean flags for conjugation and transposition.

Template Parameters
conjBoolean flag for conjugation.
transposeBoolean flag for transposition.

Definition at line 98 of file tools.hpp.