1 #ifndef __CODEGEN_PRIME_H__ 2 #define __CODEGEN_PRIME_H__ 11 #include "amd_internal.h" 139 QP*
QP_SETUP(
qp_int n,
qp_int m,
qp_int p,
qp_int *Pjc,
qp_int *Pir,
qp_real *Ppr,
qp_int*Ajc,
qp_int *Air,
qp_real *Apr,
qp_int *Gjc,
qp_int *Gir,
qp_real *Gpr,
qp_real *c,
qp_real *h,
qp_real *b,
qp_real sigma_d,
qp_int *Permut);
180 void updatekktmatrix(
smat *
kkt,
qp_real *s,
qp_real*z,
qp_real*delta_s,
qp_real* delta_z,
qp_real alpha_p,
qp_real alpha_d,
qp_int m,
qp_int n,
qp_int p,
qp_int indicator);
void formlambda(qp_real *lambda, qp_real *s, qp_real *z, qp_int n)
Computes the scaling point lambda.
Definition: Auxilary.c:638
void updatekktmatrix(smat *kkt, qp_real *s, qp_real *z, qp_real *delta_s, qp_real *delta_z, qp_real alpha_p, qp_real alpha_d, qp_int m, qp_int n, qp_int p, qp_int indicator)
Updates the lower diagonal part of the kkt Matrix,.
Definition: Auxilary.c:205
void SparseMatrixMultiply(smat *A, qp_real *x, qp_real *y, qp_int start)
Performs Sparse Matrix Vector Multiplication as.
Definition: Auxilary.c:839
void test_reach(qp_int *Parent, qp_int *Pinv, qp_int *UPattern, qp_int n, qp_int m, qp_int p)
Computes the nodes to be updated at each iteration.
Definition: Auxilary.c:1105
void densetosparse(qp_int m, qp_int n, qp_real *pr, smat *A)
Converts dense matrix in column major format to CCS format.
Definition: Auxilary.c:1155
smat At
Definition: CodeGen_Prime.h:124
void kktsolve_2(QP *myQP)
Solves the kktlinear system from results of kktsolve_1 and updates delta_x, delta_y, delta_z and delta_s.
Definition: Auxilary.c:524
qp_int ldlinitialsolve(kkt *mykkt, qp_real *delta)
Solves the kktlinear system from results of kktsolve_1 and updates delta_x, delta_y, delta_z and delta_s.
Definition: Auxilary.c:578
qp_int QP_SOLVE(QP *myQP)
qpSWIFT main function
Definition: qpSWIFT.c:471
qp_int kkt_initialize(QP *myQP)
Computes the initial condition for the QP problem.
Definition: Auxilary.c:992
void QP_CLEANUP_dense(QP *myQP)
qpSWIFT exit function
Definition: qpSWIFT.c:752
qp_int nnz
Definition: Auxilary.h:25
smat P
Definition: CodeGen_Prime.h:117
qp_int n
Definition: Auxilary.h:23
qp_real c
Definition: CodeGen_Prime.h:118
#define qp_real
Definition: GlobalOptions.h:36
qp_int kktsolve_1(QP *myQP)
Solves the KKT linear systems and updates delta_z and delta_s.
Definition: Auxilary.c:471
kkt kkt
Definition: CodeGen_Prime.h:127
qp_int * jc
Definition: Auxilary.h:20
void findsteplength(qp_real *s, qp_real *delta_s, qp_real *z, qp_real *delta_z, qp_int m, qp_real *alpha_p, qp_real *alpha_d)
Calculates the step length.
Definition: Auxilary.c:359
qp_real h
Definition: CodeGen_Prime.h:120
qp_real formrho(qp_real *s, qp_real *delta_s, qp_real *z, qp_real *delta_z, qp_real alpha_p, qp_real alpha_d, qp_int n)
Computes the scalar rho as.
Definition: Auxilary.c:879
QP * QP_SETUP_dense(qp_int n, qp_int m, qp_int p, qp_real *Ppr, qp_real *Apr, qp_real *Gpr, qp_real *c, qp_real *h, qp_real *b, qp_int *Permut, int ordering)
qpSWIFT entry point Function
Definition: qpSWIFT.c:259
void SparseMatrixSetup(qp_int m, qp_int n, qp_int nnz, qp_int *jc, qp_int *ir, qp_real *pr, smat *sparse)
Sets up the Sparse Matrix in Column Compressed Storage Format based on inputs.
Definition: Auxilary.c:660
void QP_CLEANUP(QP *myQP)
qpSWIFT exit function
Definition: qpSWIFT.c:659
smat Gt
Definition: CodeGen_Prime.h:125
smat A
Definition: CodeGen_Prime.h:121
stats stats
Definition: CodeGen_Prime.h:129
qp_int checksign(qp_real *x, qp_real *delta_x, qp_real alpha, qp_int count)
Checks if x + alpha*delta_x < 0.
Definition: Auxilary.c:404
#define qp_int
Definition: GlobalOptions.h:42
qp_real * pr
Definition: Auxilary.h:22
QP * QP_SETUP(qp_int n, qp_int m, qp_int p, qp_int *Pjc, qp_int *Pir, qp_real *Ppr, qp_int *Ajc, qp_int *Air, qp_real *Apr, qp_int *Gjc, qp_int *Gir, qp_real *Gpr, qp_real *c, qp_real *h, qp_real *b, qp_real sigma_d, qp_int *Permut)
qpSWIFT entry point Function
Definition: qpSWIFT.c:60
qp_real temp
Definition: CodeGen_Prime.h:115
Definition: Auxilary.h:89
Definition: Auxilary.h:31
Definition: Auxilary.h:106
qp_int m
Definition: Auxilary.h:24
settings options
Definition: CodeGen_Prime.h:128
void updatekktmatrix_b(qp_real *b, qp_real *rx, qp_real *ry, qp_real *rz, qp_real *ds, qp_real *z, qp_int n, qp_int m, qp_int p)
Updates the right hand side of the KKT linear system of equations.
Definition: Auxilary.c:274
void formkktmatrix_U(smat *P, smat *G, smat *Gt, smat *kkt)
Definition: Auxilary.c:14
smat kktmatrix
Definition: CodeGen_Prime.h:29
qp_int Lp
Definition: CodeGen_Prime.h:35
void formkktmatrix_full(smat *P, smat *G, smat *A, smat *Gt, smat *At, smat *kkt)
Assembles the KKT matrix.
Definition: Auxilary.c:71
Definition: Auxilary.h:55
void Transpose_Row_Count(qp_int m, qp_int n, qp_int *Li, qp_int *Lp, qp_int *Lti, qp_int *Ltp)
Computes the ir and jc of transpose of a Matrix.
Definition: Auxilary.c:683
qp_real b
Definition: CodeGen_Prime.h:122
Definition: Auxilary.h:18
qp_real b
Definition: CodeGen_Prime.h:30
qp_int * ir
Definition: Auxilary.h:21
void form_ds(qp_real *ds, qp_real *lambda, qp_real *delta_s, qp_real *delta_z, qp_real sigma, qp_real mu, qp_int m, qp_int selector)
Updates the ds vector based on the selector.
Definition: Auxilary.c:315
qp_real obj_value(smat *P, qp_real *c, qp_real *x, qp_real *temp)
Computes the objective function value f = x'Px + c'x.
Definition: Auxilary.c:1134
void SparseMatrixTranspose(smat *A, smat *At)
Computes the sparse matrix transpose.
Definition: Auxilary.c:901
smat G
Definition: CodeGen_Prime.h:119
void computeresiduals(QP *myQP)
Computes the residuals rx, ry and rz.
Definition: Auxilary.c:745
void SparseMatrixTransMultiply(smat *A, qp_real *x, qp_real *y, qp_int start)
Performs Sparse Matrix Transpose Vector Multiplication as.
Definition: Auxilary.c:802
void updatevariables(qp_real *x, qp_real *delta_x, qp_real alpha, qp_int count)
Performs scalar vector addition.
Definition: Auxilary.c:246
qp_real innerproduct(qp_real *x, qp_real *y, qp_int n)
Calculates the inner product of two vectors.
Definition: Auxilary.c:451
qp_real delta
Definition: CodeGen_Prime.h:106