26 #ifndef CASADI_CSPARSE_CHOLESKY_INTERFACE_HPP
27 #define CASADI_CSPARSE_CHOLESKY_INTERFACE_HPP
40 #include "casadi/core/linsol_internal.hpp"
41 #include <casadi/interfaces/csparse/casadi_linsol_csparsecholesky_export.h>
45 struct CsparseCholMemory :
public LinsolMemory {
59 std::vector<double> temp;
61 std::vector<int> colind;
74 CSparseCholeskyInterface :
public LinsolInternal {
77 CSparseCholeskyInterface(
const std::string& name,
const Sparsity& sp);
80 static LinsolInternal* creator(
const std::string& name,
const Sparsity& sp) {
81 return new CSparseCholeskyInterface(name, sp);
85 ~CSparseCholeskyInterface()
override;
88 void init(
const Dict& opts)
override;
91 void* alloc_mem()
const override {
return new CsparseCholMemory();}
94 int init_mem(
void* mem)
const override;
97 void free_mem(
void *mem)
const override {
delete static_cast<CsparseCholMemory*
>(mem);}
100 int sfact(
void* mem,
const double* A)
const override;
103 int nfact(
void* mem,
const double* A)
const override;
106 int solve(
void* mem,
const double* A,
double* x, casadi_int nrhs,
bool tr)
const override;
109 static const std::string meta_doc;
112 const char* plugin_name()
const override {
return "csparsecholesky";}
115 std::string class_name()
const override {
return "CSparseCholeskyInterface";}
118 static ProtoFunction* deserialize(DeserializingStream& s) {
119 return new CSparseCholeskyInterface(s);
124 explicit CSparseCholeskyInterface(DeserializingStream& s) : LinsolInternal(s) {}
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.