batmat 0.0.19
Batched linear algebra routines
Loading...
Searching...
No Matches
copy.hpp File Reference
#include <batmat/linalg/shift.hpp>
#include <batmat/linalg/simdify.hpp>
#include <batmat/linalg/structure.hpp>
#include <batmat/linalg/triangular.hpp>
#include <batmat/linalg/uview.hpp>
#include <batmat/loop.hpp>
#include <batmat/lut.hpp>
#include <batmat/ops/rotate.hpp>
#include <batmat/ops/transpose.hpp>
#include <batmat/platform/platform.hpp>
#include <batmat/unroll.h>
#include <guanaqo/trace.hpp>
#include <algorithm>
#include <concepts>

Go to the source code of this file.

Copying and filling batches of matrices

template<simdifiable VA, simdifiable VB, rotate_opt... Opts>
void batmat::linalg::copy (VA &&A, VB &&B, Opts... opts)
 B = A.
template<MatrixStructure S, simdifiable VA, simdifiable VB, rotate_opt... Opts>
void batmat::linalg::copy (Structured< VA, S > A, Structured< VB, S > B, Opts... opts)
 B = A.
template<simdifiable VB>
void batmat::linalg::fill (simdified_value_t< VB > a, VB &&B)
 B = a.
template<MatrixStructure S, simdifiable VB>
void batmat::linalg::fill (simdified_value_t< VB > a, Structured< VB, S > B)
 B = a.

Classes

struct  batmat::linalg::detail::copy::FillConfig
struct  batmat::linalg::detail::copy::CopyConfig

Namespaces

namespace  batmat
namespace  batmat::linalg
namespace  batmat::linalg::detail
namespace  batmat::linalg::detail::copy

Functions

template<class T, class Abi, FillConfig Conf = {}, StorageOrder OB>
void batmat::linalg::detail::copy::fill (T a, view< T, Abi, OB > B)
template<class T, class Abi, CopyConfig Conf = {}, StorageOrder OA, StorageOrder OB>
requires (!std::same_as<Abi, datapar::scalar_abi<T>> || Conf.struc != MatrixStructure::General)
void batmat::linalg::detail::copy::copy (view< const T, Abi, OA > A, view< T, Abi, OB > B)
template<class T, class Abi, CopyConfig Conf = {}, StorageOrder OA, StorageOrder OB>
requires (std::same_as<Abi, datapar::scalar_abi<T>> && OA == OB && Conf.struc == MatrixStructure::General)
void batmat::linalg::detail::copy::copy (view< const T, Abi, OA > A, view< T, Abi, OB > B)
template<class T, class Abi, CopyConfig Conf = {}, StorageOrder OA, StorageOrder OB>
requires (std::same_as<Abi, datapar::scalar_abi<T>> && OA != OB && Conf.struc == MatrixStructure::General)
void batmat::linalg::detail::copy::copy (view< const T, Abi, OA > A, view< T, Abi, OB > B)
template<class... Opts>
constexpr CopyConfig batmat::linalg::detail::copy::apply_options (CopyConfig conf, Opts...)

Class Documentation

◆ batmat::linalg::detail::copy::FillConfig

struct batmat::linalg::detail::copy::FillConfig
Class Members
int mask = 0
MatrixStructure struc = MatrixStructure::General

◆ batmat::linalg::detail::copy::CopyConfig

struct batmat::linalg::detail::copy::CopyConfig
Class Members
int rotate = 0
int mask = rotate
MatrixStructure struc = MatrixStructure::General