|
BeBOP Optimized Sparse Kernel Interface Library
1.0.1h
|
Non-transposed sparse triangular solve implementation when the matrix is upper triangular. More...
#include <assert.h>#include <oski/config.h>#include <oski/common.h>#include <oski/mangle.h>#include <oski/vecview.h>#include <oski/CSR/format.h>#include <oski/CSR/module.h>Defines | |
| #define | REGISTER register |
| Real-valued, so use explicit 'register' keyword. | |
Functions | |
| static void | CSR_MatTrisolveUpper_Unitdiag_xsX (oski_index_t m, oski_index_t indbase, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, oski_value_t alpha, oski_value_t *restrict x, oski_index_t incx) |
Solves for , where: | |
| static void | CSR_MatTrisolveUpper_Unitdiag_xs1 (oski_index_t m, oski_index_t indbase, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, oski_value_t alpha, oski_value_t *x) |
Solves for , where: | |
| static void | CSR_MatTrisolveUpper_Diag_Sorted_xsX (oski_index_t m, oski_index_t indbase, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, oski_value_t alpha, oski_value_t *restrict x, oski_index_t incx) |
Solves for , where: | |
| static void | CSR_MatTrisolveUpper_Diag_Sorted_xs1 (oski_index_t m, oski_index_t indbase, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, oski_value_t alpha, oski_value_t *x) |
Solves for , where: | |
| static void | CSR_MatTrisolveUpper_Diag_Unsorted_xsX (oski_index_t m, oski_index_t indbase, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, oski_value_t alpha, oski_value_t *restrict x, oski_index_t incx) |
Solves for , where: | |
| static void | CSR_MatTrisolveUpper_Diag_Unsorted_xs1 (oski_index_t m, oski_index_t indbase, const oski_index_t *restrict ptr, const oski_index_t *restrict ind, const oski_value_t *restrict val, oski_value_t alpha, oski_value_t *x) |
Solves for , where: | |
| void | CSR_MatTrisolveUpper (oski_index_t m, oski_index_t indbase, int is_unit, int is_sorted, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, oski_value_t *restrict x, oski_index_t num_vecs, oski_index_t rowinc, oski_index_t colinc) |
Non-transposed sparse triangular solve implementation when the matrix is upper triangular.
| static void CSR_MatTrisolveUpper_Diag_Sorted_xs1 | ( | oski_index_t | m, |
| oski_index_t | indbase, | ||
| const oski_index_t *restrict | ptr, | ||
| const oski_index_t *restrict | ind, | ||
| const oski_value_t *restrict | val, | ||
| oski_value_t | alpha, | ||
| oski_value_t * | x | ||
| ) | [static] |
Solves
for
, where:
is upper triangular,
is an array with unit-stride. References REGISTER, VAL_ASSIGN, VAL_DIVEQ, VAL_MSUB, and VAL_MUL.
| static void CSR_MatTrisolveUpper_Diag_Sorted_xsX | ( | oski_index_t | m, |
| oski_index_t | indbase, | ||
| const oski_index_t *restrict | ptr, | ||
| const oski_index_t *restrict | ind, | ||
| const oski_value_t *restrict | val, | ||
| oski_value_t | alpha, | ||
| oski_value_t *restrict | x, | ||
| oski_index_t | incx | ||
| ) | [static] |
Solves
for
, where:
is upper triangular,
is an array with general stride. References REGISTER, VAL_ASSIGN, VAL_DIVEQ, VAL_MSUB, and VAL_MUL.
| static void CSR_MatTrisolveUpper_Diag_Unsorted_xs1 | ( | oski_index_t | m, |
| oski_index_t | indbase, | ||
| const oski_index_t *restrict | ptr, | ||
| const oski_index_t *restrict | ind, | ||
| const oski_value_t *restrict | val, | ||
| oski_value_t | alpha, | ||
| oski_value_t * | x | ||
| ) | [static] |
Solves
for
, where:
is upper triangular,
is an array with unit-stride. References REGISTER, VAL_ASSIGN, VAL_DIVEQ, VAL_INC, VAL_MSUB, VAL_MUL, and VAL_SET_ZERO.
| static void CSR_MatTrisolveUpper_Diag_Unsorted_xsX | ( | oski_index_t | m, |
| oski_index_t | indbase, | ||
| const oski_index_t *restrict | ptr, | ||
| const oski_index_t *restrict | ind, | ||
| const oski_value_t *restrict | val, | ||
| oski_value_t | alpha, | ||
| oski_value_t *restrict | x, | ||
| oski_index_t | incx | ||
| ) | [static] |
Solves
for
, where:
is upper triangular,
is an array with general stride. References REGISTER, VAL_ASSIGN, VAL_DIVEQ, VAL_INC, VAL_MSUB, VAL_MUL, and VAL_SET_ZERO.
| static void CSR_MatTrisolveUpper_Unitdiag_xs1 | ( | oski_index_t | m, |
| oski_index_t | indbase, | ||
| const oski_index_t *restrict | ptr, | ||
| const oski_index_t *restrict | ind, | ||
| const oski_value_t *restrict | val, | ||
| oski_value_t | alpha, | ||
| oski_value_t * | x | ||
| ) | [static] |
Solves
for
, where:
is upper triangular,
is an array with unit-stride. References REGISTER, VAL_ASSIGN, VAL_MSUB, and VAL_MUL.
| static void CSR_MatTrisolveUpper_Unitdiag_xsX | ( | oski_index_t | m, |
| oski_index_t | indbase, | ||
| const oski_index_t *restrict | ptr, | ||
| const oski_index_t *restrict | ind, | ||
| const oski_value_t *restrict | val, | ||
| oski_value_t | alpha, | ||
| oski_value_t *restrict | x, | ||
| oski_index_t | incx | ||
| ) | [static] |
Solves
for
, where:
is upper triangular,
is an array with general stride. References REGISTER, VAL_ASSIGN, VAL_MSUB, and VAL_MUL.
1.7.6.1