batmat 0.0.17
Batched linear algebra routines
Loading...
Searching...
No Matches
shift.hpp File Reference
#include <optional>
#include <type_traits>

Go to the source code of this file.

Classes

struct  batmat::linalg::with_shift_A_t< I >
struct  batmat::linalg::with_rotate_B_t< I >
struct  batmat::linalg::with_rotate_C_t< I >
struct  batmat::linalg::with_rotate_D_t< I >
struct  batmat::linalg::with_mask_D_t< I >
struct  batmat::linalg::with_rotate_t< I >
struct  batmat::linalg::with_mask_t< I >

Namespaces

namespace  batmat
namespace  batmat::linalg

Concepts

concept  batmat::linalg::shift_opt
concept  batmat::linalg::rotate_opt

Variables

template<int I>
constexpr with_shift_A_t< I > batmat::linalg::with_shift_A
template<int I>
constexpr with_rotate_B_t< I > batmat::linalg::with_rotate_B
template<int I>
constexpr with_rotate_C_t< I > batmat::linalg::with_rotate_C
template<int I>
constexpr with_rotate_D_t< I > batmat::linalg::with_rotate_D
template<int I>
constexpr with_mask_D_t< I > batmat::linalg::with_mask_D
template<class...>
constexpr std::optional< int > batmat::linalg::shift_A = std::nullopt
template<class T, class... Ts>
constexpr std::optional< int > batmat::linalg::shift_A< T, Ts... > = shift_A<Ts...>
template<int I, class... Ts>
constexpr std::optional< int > batmat::linalg::shift_A< with_shift_A_t< I >, Ts... > = I
template<class...>
constexpr std::optional< int > batmat::linalg::rotate_B = std::nullopt
template<class T, class... Ts>
constexpr std::optional< int > batmat::linalg::rotate_B< T, Ts... > = rotate_B<Ts...>
template<int I, class... Ts>
constexpr std::optional< int > batmat::linalg::rotate_B< with_rotate_B_t< I >, Ts... > = I
template<class...>
constexpr std::optional< int > batmat::linalg::rotate_C = std::nullopt
template<class T, class... Ts>
constexpr std::optional< int > batmat::linalg::rotate_C< T, Ts... > = rotate_C<Ts...>
template<int I, class... Ts>
constexpr std::optional< int > batmat::linalg::rotate_C< with_rotate_C_t< I >, Ts... > = I
template<class...>
constexpr std::optional< int > batmat::linalg::rotate_D = std::nullopt
template<class T, class... Ts>
constexpr std::optional< int > batmat::linalg::rotate_D< T, Ts... > = rotate_D<Ts...>
template<int I, class... Ts>
constexpr std::optional< int > batmat::linalg::rotate_D< with_rotate_D_t< I >, Ts... > = I
template<class...>
constexpr std::optional< int > batmat::linalg::mask_D = std::nullopt
template<class T, class... Ts>
constexpr std::optional< int > batmat::linalg::mask_D< T, Ts... > = mask_D<Ts...>
template<int I, class... Ts>
constexpr std::optional< int > batmat::linalg::mask_D< with_mask_D_t< I >, Ts... > = I
template<class>
constexpr bool batmat::linalg::is_shift_opt = false
template<int I>
constexpr bool batmat::linalg::is_shift_opt< with_shift_A_t< I > > = true
template<int I>
constexpr bool batmat::linalg::is_shift_opt< with_rotate_B_t< I > > = true
template<int I>
constexpr bool batmat::linalg::is_shift_opt< with_rotate_C_t< I > > = true
template<int I>
constexpr bool batmat::linalg::is_shift_opt< with_rotate_D_t< I > > = true
template<int I>
constexpr bool batmat::linalg::is_shift_opt< with_mask_D_t< I > > = true
template<int I>
constexpr with_rotate_t< I > batmat::linalg::with_rotate
template<int I>
constexpr with_mask_t< I > batmat::linalg::with_mask
template<class...>
constexpr std::optional< int > batmat::linalg::get_rotate = std::nullopt
template<class T, class... Ts>
constexpr std::optional< int > batmat::linalg::get_rotate< T, Ts... > = get_rotate<Ts...>
template<int I, class... Ts>
constexpr std::optional< int > batmat::linalg::get_rotate< with_rotate_t< I >, Ts... > = I
template<class...>
constexpr std::optional< int > batmat::linalg::get_mask = std::nullopt
template<class T, class... Ts>
constexpr std::optional< int > batmat::linalg::get_mask< T, Ts... > = get_mask<Ts...>
template<int I, class... Ts>
constexpr std::optional< int > batmat::linalg::get_mask< with_mask_t< I >, Ts... > = I
template<class>
constexpr bool batmat::linalg::is_rotate_opt = false
template<int I>
constexpr bool batmat::linalg::is_rotate_opt< with_rotate_t< I > > = true
template<int I>
constexpr bool batmat::linalg::is_rotate_opt< with_mask_t< I > > = true