ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
detray::algebra::storage::block_getter Struct Reference

Functor used to access a submatrix of a matrix. More...

#include <detray/algebra/common/matrix_getter.hpp>

Public Member Functions

template<std::size_t ROWS, std::size_t COLS, std::size_t mROW, std::size_t mCOL, concepts::scalar scalar_t, template< typename, std::size_t > class array_t>
constexpr auto operator() (const matrix< array_t, scalar_t, mROW, mCOL > &m, const std::size_t row, const std::size_t col) const noexcept
 Get a block of a const matrix.
template<std::size_t ROWS, std::size_t COLS, std::size_t mROW, std::size_t mCOL, concepts::scalar scalar_t, template< typename, std::size_t > class array_t>
constexpr void set (matrix< array_t, scalar_t, mROW, mCOL > &m, const matrix< array_t, scalar_t, ROWS, COLS > &b, const std::size_t row, const std::size_t col) const noexcept
 Write a block into a matrix.
template<std::size_t ROWS, std::size_t COLS, std::size_t N, concepts::scalar scalar_t, template< typename, std::size_t > class array_t>
constexpr void set (matrix< array_t, scalar_t, ROWS, COLS > &m, const detray::algebra::storage::vector< N, scalar_t, array_t > &b, const std::size_t row, const std::size_t col) const noexcept
 Operator setting a block with a vector.
template<std::size_t SIZE, std::size_t ROWS, std::size_t COLS, concepts::scalar scalar_t, template< typename, std::size_t > class array_t>
constexpr auto vector (const matrix< array_t, scalar_t, ROWS, COLS > &m, const std::size_t row, const std::size_t col) const noexcept
 Get a vector of a const matrix.

Detailed Description

Functor used to access a submatrix of a matrix.

Member Function Documentation

◆ operator()()

template<std::size_t ROWS, std::size_t COLS, std::size_t mROW, std::size_t mCOL, concepts::scalar scalar_t, template< typename, std::size_t > class array_t>
auto detray::algebra::storage::block_getter::operator() ( const matrix< array_t, scalar_t, mROW, mCOL > & m,
const std::size_t row,
const std::size_t col ) const
constexprnoexcept

Get a block of a const matrix.

Parameters
mSource matrix.
rowFirst row of the block.
colFirst column of the block.
Returns
A copy of the selected block.

◆ set() [1/2]

template<std::size_t ROWS, std::size_t COLS, std::size_t mROW, std::size_t mCOL, concepts::scalar scalar_t, template< typename, std::size_t > class array_t>
void detray::algebra::storage::block_getter::set ( matrix< array_t, scalar_t, mROW, mCOL > & m,
const matrix< array_t, scalar_t, ROWS, COLS > & b,
const std::size_t row,
const std::size_t col ) const
constexprnoexcept

Write a block into a matrix.

Parameters
mMatrix to update.
bBlock values to write.
rowFirst destination row.
colFirst destination column.

◆ set() [2/2]

template<std::size_t ROWS, std::size_t COLS, std::size_t N, concepts::scalar scalar_t, template< typename, std::size_t > class array_t>
void detray::algebra::storage::block_getter::set ( matrix< array_t, scalar_t, ROWS, COLS > & m,
const detray::algebra::storage::vector< N, scalar_t, array_t > & b,
const std::size_t row,
const std::size_t col ) const
constexprnoexcept

Operator setting a block with a vector.

Parameters
mMatrix to update.
bVector values to write into one column.
rowFirst destination row.
colDestination column.

◆ vector()

template<std::size_t SIZE, std::size_t ROWS, std::size_t COLS, concepts::scalar scalar_t, template< typename, std::size_t > class array_t>
auto detray::algebra::storage::block_getter::vector ( const matrix< array_t, scalar_t, ROWS, COLS > & m,
const std::size_t row,
const std::size_t col ) const
constexprnoexcept

Get a vector of a const matrix.

Parameters
mSource matrix.
rowFirst row of the segment.
colColumn containing the segment.
Returns
A copy of the selected column segment.