Matrix Manipulation#

2025-10-17

4 min read time

Applies to Linux

Initialization#

#include <raft/matrix/init.cuh>

namespace raft::matrix

template<typename math_t, typename extents, typename layout>
void fill(
raft::resources const &handle,
raft::device_mdspan<const math_t, extents, layout> in,
raft::device_mdspan<math_t, extents, layout> out,
raft::host_scalar_view<math_t> scalar
)#

set values to scalar in matrix

Template Parameters:
  • math_t – data-type upon which the math operation will be performed

  • extents – dimension and indexing type used for the input

  • layout – layout of the matrix data (must be row or col major)

Parameters:
  • handle[in] raft handle

  • in[in] input matrix

  • out[out] output matrix. The result is stored in the out matrix

  • scalar[in] scalar value to fill matrix elements

template<typename math_t, typename extents, typename layout>
void fill(
raft::resources const &handle,
raft::device_mdspan<math_t, extents, layout> inout,
math_t scalar
)#

set values to scalar in matrix

Template Parameters:
  • math_t – data-type upon which the math operation will be performed

  • extents – dimension and indexing type used for the input

  • layout_t – layout of the matrix data (must be row or col major)

Parameters:
  • handle[in] raft handle

  • inout[inout] input matrix

  • scalar[in] scalar value to fill matrix elements

Reverse#

#include <raft/matrix/reverse.cuh>

namespace raft::matrix

template<typename m_t, typename idx_t, typename layout_t>
void col_reverse(
raft::resources const &handle,
raft::device_matrix_view<m_t, idx_t, layout_t> inout
)#

Reverse the columns of a matrix in place (i.e. first column and last column are swapped)

Parameters:
  • handle[in] raft handle

  • inout[inout] input and output matrix

template<typename m_t, typename idx_t, typename layout_t>
void row_reverse(
raft::resources const &handle,
raft::device_matrix_view<m_t, idx_t, layout_t> inout
)#

Reverse the rows of a matrix in place (i.e. first row and last row are swapped)

Parameters:
  • handle[in] raft handle

  • inout[inout] input and output matrix

Threshold#

#include <raft/matrix/threshold.cuh>

namespace raft::matrix

template<typename math_t, typename idx_t, typename layout>
void zero_small_values(
raft::resources const &handle,
raft::device_matrix_view<const math_t, idx_t, layout> in,
raft::device_matrix_view<math_t, idx_t, layout> out,
math_t thres = 1e-15
)#

sets the small values to zero based on a defined threshold

Template Parameters:
  • math_t – data-type upon which the math operation will be performed

  • idx_t – integer type used for indexing

  • layout – layout of the matrix data (must be row or col major)

Parameters:
  • handle – raft handle

  • in[in] input matrix

  • out[out] output matrix. The result is stored in the out matrix

  • thres[in] threshold to set values to zero

template<typename math_t, typename idx_t, typename layout>
void zero_small_values(
raft::resources const &handle,
raft::device_matrix_view<math_t, idx_t, layout> inout,
math_t thres = 1e-15
)#

sets the small values to zero in-place based on a defined threshold

Template Parameters:
  • math_t – data-type upon which the math operation will be performed

  • idx_t – integer type used for indexing

  • layout – layout of the matrix data (must be row or col major)

Parameters:
  • handle – raft handle

  • inout – input matrix and also the result is stored

  • thres – threshold