Blender
V3.3
|
#include <stdbool.h>
Go to the source code of this file.
Typedefs | |
typedef struct LinearSolver | LinearSolver |
Functions | |
LinearSolver * | EIG_linear_solver_new (int num_rows, int num_columns, int num_right_hand_sides) |
LinearSolver * | EIG_linear_least_squares_solver_new (int num_rows, int num_columns, int num_right_hand_sides) |
void | EIG_linear_solver_delete (LinearSolver *solver) |
void | EIG_linear_solver_variable_set (LinearSolver *solver, int rhs, int index, double value) |
double | EIG_linear_solver_variable_get (LinearSolver *solver, int rhs, int index) |
void | EIG_linear_solver_variable_lock (LinearSolver *solver, int index) |
void | EIG_linear_solver_variable_unlock (LinearSolver *solver, int index) |
void | EIG_linear_solver_matrix_add (LinearSolver *solver, int row, int col, double value) |
void | EIG_linear_solver_right_hand_side_add (LinearSolver *solver, int rhs, int index, double value) |
bool | EIG_linear_solver_solve (LinearSolver *solver) |
void | EIG_linear_solver_print_matrix (LinearSolver *solver) |
Sparse linear solver.
Definition in file linear_solver.h.
typedef struct LinearSolver LinearSolver |
Definition at line 1 of file linear_solver.h.
LinearSolver* EIG_linear_least_squares_solver_new | ( | int | num_rows, |
int | num_columns, | ||
int | num_right_hand_sides | ||
) |
Definition at line 106 of file linear_solver.cc.
Referenced by adjust_the_cycle_or_chain(), bmo_smooth_laplacian_vert_exec(), laplacian_system_construct_begin(), laplacianDeformPreview(), laplaciansmoothModifier_do(), and p_chart_lscm_begin().
void EIG_linear_solver_delete | ( | LinearSolver * | solver | ) |
Definition at line 111 of file linear_solver.cc.
Referenced by adjust_the_cycle_or_chain(), delete_laplacian_system(), deleteLaplacianSystem(), laplacian_system_delete(), laplaciansmoothModifier_do(), meshdeform_matrix_solve(), p_abf_matrix_invert(), and p_chart_lscm_end().
void EIG_linear_solver_matrix_add | ( | LinearSolver * | solver, |
int | row, | ||
int | col, | ||
double | value | ||
) |
Definition at line 210 of file linear_solver.cc.
References col, LinearSolver::Coeff::index, LinearSolver::least_squares, linear_solver_ensure_matrix_construct(), LinearSolver::Mtriplets, LinearSolver::state, LinearSolver::STATE_MATRIX_SOLVED, LinearSolver::Coeff::value, and LinearSolver::variable.
Referenced by adjust_the_cycle_or_chain(), bmo_smooth_laplacian_vert_exec(), fill_laplacian_matrix(), initLaplacianMatrix(), laplacian_system_construct_end(), laplacian_triangle_weights(), laplacianDeformPreview(), laplaciansmoothModifier_do(), meshdeform_matrix_add_cell(), p_abf_matrix_invert(), and p_chart_lscm_solve().
LinearSolver* EIG_linear_solver_new | ( | int | num_rows, |
int | num_columns, | ||
int | num_right_hand_sides | ||
) |
Definition at line 101 of file linear_solver.cc.
Referenced by laplacian_system_construct_begin(), meshdeform_matrix_solve(), and p_abf_matrix_invert().
void EIG_linear_solver_print_matrix | ( | LinearSolver * | solver | ) |
Definition at line 334 of file linear_solver.cc.
References LinearSolver::b, if(), LinearSolver::M, LinearSolver::MtM, and LinearSolver::num_rhs.
Referenced by adjust_the_cycle_or_chain().
void EIG_linear_solver_right_hand_side_add | ( | LinearSolver * | solver, |
int | rhs, | ||
int | index, | ||
double | value | ||
) |
Definition at line 241 of file linear_solver.cc.
References LinearSolver::b, LinearSolver::least_squares, linear_solver_ensure_matrix_construct(), and LinearSolver::variable.
Referenced by adjust_the_cycle_or_chain(), bmo_smooth_laplacian_vert_exec(), laplacian_add_right_hand_side(), laplacianDeformPreview(), laplaciansmoothModifier_do(), meshdeform_matrix_add_rhs(), p_abf_matrix_invert(), and rotateDifferentialCoordinates().
bool EIG_linear_solver_solve | ( | LinearSolver * | solver | ) |
Definition at line 256 of file linear_solver.cc.
References LinearSolver::Variable::a, Freestyle::a, LinearSolver::b, usdtokens::b(), LinearSolver::least_squares, linear_solver_vector_to_variables(), LinearSolver::Variable::locked, LinearSolver::m, LinearSolver::M, M, LinearSolver::MtM, LinearSolver::Mtriplets, LinearSolver::n, LinearSolver::num_rhs, LinearSolver::num_variables, result, LinearSolver::sparseLU, LinearSolver::state, LinearSolver::STATE_MATRIX_CONSTRUCT, LinearSolver::STATE_MATRIX_SOLVED, LinearSolver::STATE_VARIABLES_CONSTRUCT, LinearSolver::Variable::value, LinearSolver::variable, and LinearSolver::x.
Referenced by adjust_the_cycle_or_chain(), bmo_smooth_laplacian_vert_exec(), laplacian_system_solve(), laplacianDeformPreview(), laplaciansmoothModifier_do(), meshdeform_matrix_solve(), p_abf_matrix_invert(), and p_chart_lscm_solve().
double EIG_linear_solver_variable_get | ( | LinearSolver * | solver, |
int | rhs, | ||
int | index | ||
) |
Definition at line 123 of file linear_solver.cc.
References LinearSolver::variable.
Referenced by adjust_the_cycle_or_chain(), laplacian_system_get_solution(), laplacianDeformPreview(), meshdeform_matrix_solve(), p_abf_matrix_invert(), p_chart_lscm_load_solution(), rotateDifferentialCoordinates(), and validate_solution().
void EIG_linear_solver_variable_lock | ( | LinearSolver * | solver, |
int | index | ||
) |
Definition at line 128 of file linear_solver.cc.
References LinearSolver::state, LinearSolver::STATE_VARIABLES_CONSTRUCT, and LinearSolver::variable.
Referenced by bmo_smooth_laplacian_vert_exec(), laplacian_begin_solve(), and p_chart_lscm_solve().
void EIG_linear_solver_variable_set | ( | LinearSolver * | solver, |
int | rhs, | ||
int | index, | ||
double | value | ||
) |
Definition at line 118 of file linear_solver.cc.
References LinearSolver::variable.
Referenced by bmo_smooth_laplacian_vert_exec(), laplacian_begin_solve(), laplacianDeformPreview(), laplaciansmoothModifier_do(), and p_chart_lscm_solve().
void EIG_linear_solver_variable_unlock | ( | LinearSolver * | solver, |
int | index | ||
) |
Definition at line 136 of file linear_solver.cc.
References LinearSolver::state, LinearSolver::STATE_VARIABLES_CONSTRUCT, and LinearSolver::variable.
Referenced by bmo_smooth_laplacian_vert_exec().