TRIQS/nda 1.3.0
Multi-dimensional array library for C++
|
#include "./expression.hpp"
#include "./utils.hpp"
#include "../macros.hpp"
#include <functional>
#include <type_traits>
#include <utility>
Provides operations for the clef library.
Definition in file operation.hpp.
Go to the source code of this file.
Functions | |
template<typename C , typename A , typename B > | |
__inline__ auto | nda::clef::if_else (C &&c, A &&a, B &&b) |
Create a lazy ternary (if-else) expression. | |
template<typename Tag , typename... Args> | |
__inline__ decltype(auto) | nda::clef::op_dispatch (std::false_type, Args &&...args) |
Dispatch operations containing only non-lazy operands. | |
template<typename Tag , typename... Args> | |
__inline__ auto | nda::clef::op_dispatch (std::true_type, Args &&...args) |
Dispatch operations containing at least one lazy operand. | |
template<typename L > requires (is_any_lazy<L>) | |
__inline__ auto | nda::clef::operator! (L &&l) |
Implementation of the lazy unary ! operation. | |
template<typename L , typename R > requires (is_any_lazy<L, R>) | |
__inline__ auto | nda::clef::operator* (L &&l, R &&r) |
Implementation of the lazy binary * operation. | |
template<typename L > requires (is_any_lazy<L>) | |
__inline__ auto | nda::clef::operator+ (L &&l) |
Implementation of the lazy unary + operation. | |
template<typename L , typename R > requires (is_any_lazy<L, R>) | |
__inline__ auto | nda::clef::operator+ (L &&l, R &&r) |
Implementation of the lazy binary + operation. | |
template<typename L > requires (is_any_lazy<L>) | |
__inline__ auto | nda::clef::operator- (L &&l) |
Implementation of the lazy unary - operation. | |
template<typename L , typename R > requires (is_any_lazy<L, R>) | |
__inline__ auto | nda::clef::operator- (L &&l, R &&r) |
Implementation of the lazy binary - operation. | |
template<typename L , typename R > requires (is_any_lazy<L, R>) | |
__inline__ auto | nda::clef::operator/ (L &&l, R &&r) |
Implementation of the lazy binary / operation. | |
template<typename L , typename R > requires (is_any_lazy<L, R>) | |
__inline__ auto | nda::clef::operator< (L &&l, R &&r) |
Implementation of the lazy binary < operation. | |
template<typename L , typename R > requires (is_any_lazy<L, R>) | |
__inline__ auto | nda::clef::operator<= (L &&l, R &&r) |
Implementation of the lazy binary <= operation. | |
template<typename L , typename R > requires (is_any_lazy<L, R>) | |
__inline__ auto | nda::clef::operator== (L &&l, R &&r) |
Implementation of the lazy binary == operation. | |
template<typename L , typename R > requires (is_any_lazy<L, R>) | |
__inline__ auto | nda::clef::operator> (L &&l, R &&r) |
Implementation of the lazy binary > operation. | |
template<typename L , typename R > requires (is_any_lazy<L, R>) | |
__inline__ auto | nda::clef::operator>= (L &&l, R &&r) |
Implementation of the lazy binary >= operation. | |