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<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 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<bool conj, bool transpose>
const 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 a C memory layout.
template<Array A>
static constexpr bool nda::lapack::has_F_layout
 Constexpr variable that is true if the given nda::Array type has a Fortran memory 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_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 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 102 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 122 of file tools.hpp.

Variable Documentation

◆ get_op

template<bool conj, bool transpose>
const char nda::blas::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 Parameters
conjBoolean flag for conjugation.
transposeBoolean flag for transposition.

Definition at line 80 of file tools.hpp.