MCPcopy Create free account
hub / github.com/cvanaret/Uno / compute_jacobian_sparsity

Method compute_jacobian_sparsity

interfaces/Python/cpp_classes/PythonModel.cpp:99–116  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

97 }
98
99 void PythonModel::compute_jacobian_sparsity(uno_int * row_indices, uno_int * column_indices, uno_int row_offset,
100 uno_int column_offset, uno_int solver_indexing, MatrixOrder /*matrix_format*/) const {
101 // copy the indices of the user sparsity patterns to the Uno vectors
102 for (size_t index: Range(static_cast<size_t>(this->user_model.number_jacobian_nonzeros))) {
103 row_indices[index] = this->user_model.jacobian_row_indices[index] + row_offset;
104 column_indices[index] = this->user_model.jacobian_column_indices[index] + column_offset;
105 }
106 // TODO matrix_format
107
108 // handle the solver indexing
109 if (this->user_model.base_indexing != solver_indexing) {
110 const int indexing_difference = solver_indexing - this->user_model.base_indexing;
111 for (size_t index: Range(static_cast<size_t>(this->user_model.number_jacobian_nonzeros))) {
112 row_indices[index] += indexing_difference;
113 column_indices[index] += indexing_difference;
114 }
115 }
116 }
117
118 void PythonModel::compute_hessian_sparsity(uno_int *row_indices, uno_int *column_indices, uno_int solver_indexing) const {
119 // copy the indices of the user sparsity patterns to the Uno vectors

Callers

nothing calls this directly

Calls 1

RangeClass · 0.85

Tested by

no test coverage detected