26 #ifndef CASADI_LAPACK_QR_HPP
27 #define CASADI_LAPACK_QR_HPP
29 #include "casadi/core/linsol_internal.hpp"
30 #include <casadi/interfaces/lapack/casadi_linsol_lapackqr_export.h>
34 void dgeqrf_(
int *m,
int *n,
double *a,
int *lda,
double *tau,
35 double *work,
int *lwork,
int *info);
38 void dormqr_(
char *side,
char *trans,
int *n,
int *m,
int *k,
double *a,
39 int *lda,
double *tau,
double *c,
int *ldc,
40 double *work,
int *lwork,
int *info);
43 void dtrsm_(
char *side,
char *uplo,
char *transa,
char *diag,
int *m,
int *n,
44 double *alpha,
double *a,
int *lda,
double *b,
int *ldb);
61 std::vector<double>
mat;
64 std::vector<double>
tau;
90 void init(
const Dict& opts)
override;
102 int init_mem(
void* mem)
const override;
108 int nfact(
void* mem,
const double* A)
const override;
111 int solve_batch(
void* mem,
const double* A,
double* x, casadi_int nrhs,
bool tr)
const;
114 int solve(
void* mem,
const double* A,
double* x, casadi_int nrhs,
bool tr)
const override;
123 std::string
class_name()
const override {
return "LapackQr";}
Helper class for Serialization.
'lapackqr' plugin for Linsol
static LinsolInternal * creator(const std::string &name, const Sparsity &sp)
Create a new Linsol.
const char * plugin_name() const override
static ProtoFunction * deserialize(DeserializingStream &s)
Deserialize with type disambiguation.
static const Options options_
Options.
const Options & get_options() const override
Options.
void free_mem(void *mem) const override
Free memory block.
std::string class_name() const override
Readable name of the internal class.
static const std::string meta_doc
A documentation string.
void * alloc_mem() const override
Create memory block.
Base class for FunctionInternal and LinsolInternal.
Helper class for Serialization.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
std::vector< double > work
std::vector< double > mat
std::vector< double > tau
Options metadata for a class.