![]() |
batmat
0.0.19
Batched linear algebra routines
|
#include <batmat/matrix/matrix.hpp>#include <batmat/matrix/view.hpp>#include <batmat/simd.hpp>#include <guanaqo/mat-view.hpp>#include <type_traits>Go to the source code of this file.
Namespaces | |
| namespace | guanaqo |
| namespace | batmat |
| namespace | batmat::linalg |
| namespace | batmat::linalg::detail |
Concepts | |
| concept | batmat::linalg::simdifiable |
| concept | batmat::linalg::simdifiable_multi |
Typedefs | |
| template<class V> | |
| using | batmat::linalg::simdified_view_type = detail::simdified_view_type<std::remove_reference_t<V>> |
Convert the given view or matrix type V (batmat::matrix::View or batmat::matrix::Matrix) to a batched view type using a deduced SIMD type. | |
| template<simdifiable V> | |
| using | batmat::linalg::simdified_view_t = typename simdified_view_type<V>::type |
| template<class V> | |
| using | batmat::linalg::simdified_value_t = typename detail::simdified_value<V>::type |
| template<class V> | |
| using | batmat::linalg::simdified_abi_t = typename detail::simdified_abi<V>::type |
| template<class V> | |
| using | batmat::linalg::simdified_multi_view_type = detail::simdified_multi_view_type<std::remove_reference_t<V>> |
| template<simdifiable_multi V> | |
| using | batmat::linalg::simdified_multi_view_t = typename simdified_multi_view_type<V>::type |
Functions | |
| template<class T, class I, class S, StorageOrder O> | |
| constexpr auto | guanaqo::data (const MatrixView< T, I, S, O > &v) |
| template<class T, class I, class S, StorageOrder O> | |
| constexpr auto | guanaqo::rows (const MatrixView< T, I, S, O > &v) |
| template<class T, class I, class S, StorageOrder O> | |
| constexpr auto | guanaqo::cols (const MatrixView< T, I, S, O > &v) |
| template<class T, class I, class S, StorageOrder O> | |
| constexpr auto | guanaqo::outer_stride (const MatrixView< T, I, S, O > &v) |
| template<class T, class I, class S, StorageOrder O> | |
| constexpr auto | guanaqo::depth (const MatrixView< T, I, S, O > &) |
| constexpr auto | batmat::linalg::simdify (simdifiable auto &&a) -> simdified_view_t< decltype(a)> |
| constexpr auto | batmat::linalg::simdify (simdifiable_multi auto &&a) -> simdified_multi_view_t< decltype(a)> |
Variables | |
| template<class...> | |
| constexpr bool | batmat::linalg::simdify_compatible = false |
| template<simdifiable V, simdifiable... Vs> | |
| constexpr bool | batmat::linalg::simdify_compatible< V, Vs... > |
| struct batmat::linalg::detail::simdified_view_type< batmat::matrix::View< T, index_t, S, S, L, O > > |
| Class Members | ||
|---|---|---|
| typedef remove_const_t< T > | value_type std::remove_const_t<T> | |
| typedef deduced_abi< value_type, S{}> | abi_type datapar::deduced_abi<value_type, S{}> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef DefaultStride | layer_stride batmat::matrix::DefaultStride | |
| typedef View< T, index_t, stride, stride, layer_stride, O > | type batmat::matrix::View<T, index_t, stride, stride, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_view_type< const batmat::matrix::View< T, index_t, S, S, L, O > > |
| Class Members | ||
|---|---|---|
| typedef remove_const_t< T > | value_type std::remove_const_t<T> | |
| typedef deduced_abi< value_type, S{}> | abi_type datapar::deduced_abi<value_type, S{}> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef DefaultStride | layer_stride batmat::matrix::DefaultStride | |
| typedef View< T, index_t, stride, stride, layer_stride, O > | type batmat::matrix::View<T, index_t, stride, stride, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_view_type< guanaqo::MatrixView< T, I, std::integral_constant< I, 1 >, O > > |
| Class Members | ||
|---|---|---|
| typedef remove_const_t< T > | value_type std::remove_const_t<T> | |
| typedef scalar_abi< value_type > | abi_type datapar::scalar_abi<value_type> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef DefaultStride | layer_stride batmat::matrix::DefaultStride | |
| typedef View< T, index_t, stride, stride, layer_stride, O > | type batmat::matrix::View<T, index_t, stride, stride, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_view_type< const guanaqo::MatrixView< T, I, std::integral_constant< I, 1 >, O > > |
| Class Members | ||
|---|---|---|
| typedef remove_const_t< T > | value_type std::remove_const_t<T> | |
| typedef scalar_abi< value_type > | abi_type datapar::scalar_abi<value_type> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef DefaultStride | layer_stride batmat::matrix::DefaultStride | |
| typedef View< T, index_t, stride, stride, layer_stride, O > | type batmat::matrix::View<T, index_t, stride, stride, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_view_type< batmat::matrix::Matrix< T, I, S, S, O, A > > |
| Class Members | ||
|---|---|---|
| typedef T | value_type T | |
| typedef deduced_abi< value_type, S{}> | abi_type datapar::deduced_abi<value_type, S{}> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef DefaultStride | layer_stride batmat::matrix::DefaultStride | |
| typedef View< T, index_t, stride, stride, layer_stride, O > | type batmat::matrix::View<T, index_t, stride, stride, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_view_type< const batmat::matrix::Matrix< T, I, S, S, O, A > > |
| Class Members | ||
|---|---|---|
| typedef T | value_type T | |
| typedef deduced_abi< value_type, S{}> | abi_type datapar::deduced_abi<value_type, S{}> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef DefaultStride | layer_stride batmat::matrix::DefaultStride | |
| typedef View< const T, index_t, stride, stride, layer_stride, O > | type batmat::matrix::View<const T, index_t, stride, stride, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_multi_view_type< batmat::matrix::View< T, index_t, S, index_t, L, O > > |
| Class Members | ||
|---|---|---|
| typedef remove_const_t< T > | value_type std::remove_const_t<T> | |
| typedef deduced_abi< value_type, S{}> | abi_type datapar::deduced_abi<value_type, S{}> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef L | layer_stride L | |
| typedef View< T, index_t, stride, index_t, layer_stride, O > | type batmat::matrix::View<T, index_t, stride, index_t, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_multi_view_type< const batmat::matrix::View< T, index_t, S, index_t, L, O > > |
| Class Members | ||
|---|---|---|
| typedef remove_const_t< T > | value_type std::remove_const_t<T> | |
| typedef deduced_abi< value_type, S{}> | abi_type datapar::deduced_abi<value_type, S{}> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef L | layer_stride L | |
| typedef View< T, index_t, stride, index_t, layer_stride, O > | type batmat::matrix::View<T, index_t, stride, index_t, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_multi_view_type< batmat::matrix::Matrix< T, I, S, I, O, A > > |
| Class Members | ||
|---|---|---|
| typedef T | value_type T | |
| typedef deduced_abi< value_type, S{}> | abi_type datapar::deduced_abi<value_type, S{}> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef DefaultStride | layer_stride batmat::matrix::DefaultStride | |
| typedef View< T, index_t, stride, index_t, layer_stride, O > | type batmat::matrix::View<T, index_t, stride, index_t, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_multi_view_type< const batmat::matrix::Matrix< T, I, S, I, O, A > > |
| Class Members | ||
|---|---|---|
| typedef T | value_type T | |
| typedef deduced_abi< value_type, S{}> | abi_type datapar::deduced_abi<value_type, S{}> | |
| typedef simd< value_type, abi_type > | simd_type datapar::simd<value_type, abi_type> | |
| typedef simd_size< value_type, abi_type > | stride datapar::simd_size<value_type, abi_type> | |
| typedef simd_align< value_type, abi_type > | alignment datapar::simd_align<value_type, abi_type> | |
| typedef DefaultStride | layer_stride batmat::matrix::DefaultStride | |
| typedef View< const T, index_t, stride, index_t, layer_stride, O > | type batmat::matrix::View<const T, index_t, stride, index_t, layer_stride, O> | |
| struct batmat::linalg::detail::simdified_value< V > |
| Class Members | ||
|---|---|---|
| typedef typename value_type | type typename batmat::linalg::simdified_view_type<V>::value_type | |
| typedef typename value_type | type typename batmat::linalg::simdified_multi_view_type<V>::value_type | |
| struct batmat::linalg::detail::simdified_abi< V > |
| Class Members | ||
|---|---|---|
| typedef typename abi_type | type typename batmat::linalg::simdified_view_type<V>::abi_type | |
| typedef typename abi_type | type typename batmat::linalg::simdified_multi_view_type<V>::abi_type | |