1 /************************************************************************************************** 2 * * 3 * This file is part of HPIPM. * 4 * * 5 * HPIPM -- High-Performance Interior Point Method. * 6 * Copyright (C) 2019 by Gianluca Frison. * 7 * Developed at IMTEK (University of Freiburg) under the supervision of Moritz Diehl. * 8 * All rights reserved. * 9 * * 10 * The 2-Clause BSD License * 11 * * 12 * Redistribution and use in source and binary forms, with or without * 13 * modification, are permitted provided that the following conditions are met: * 14 * * 15 * 1. Redistributions of source code must retain the above copyright notice, this * 16 * list of conditions and the following disclaimer. * 17 * 2. Redistributions in binary form must reproduce the above copyright notice, * 18 * this list of conditions and the following disclaimer in the documentation * 19 * and/or other materials provided with the distribution. * 20 * * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * 22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * 23 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * 24 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * 25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * 26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * 27 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * 28 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * 29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * 31 * * 32 * Author: Gianluca Frison, gianluca.frison (at) imtek.uni-freiburg.de * 33 * * 34 **************************************************************************************************/ 35 36 #include <stdlib.h> 37 #include <stdio.h> 38 39 #include <blasfeo_target.h> 40 #include <blasfeo_common.h> 41 #include <blasfeo_s_blas.h> 42 #include <blasfeo_s_aux.h> 43 44 #include "../include/hpipm_s_ocp_qp_dim.h" 45 #include "../include/hpipm_s_ocp_qp.h" 46 #include "../include/hpipm_s_ocp_qp_sol.h" 47 #include "../include/hpipm_s_dense_qp.h" 48 #include "../include/hpipm_s_dense_qp_sol.h" 49 #include "../include/hpipm_s_cond.h" 50 #include "../include/hpipm_s_cond_aux.h" 51 52 53 54 #define COND_DCTD s_cond_DCtd 55 #define COND_D s_cond_d 56 #define COND_B s_cond_b 57 #define COND_BABT s_cond_BAbt 58 #define COND_RQ_N2NX3 s_cond_rq_N2nx3 59 #define COND_RSQRQ_N2NX3 s_cond_RSQrq_N2nx3 60 #define COND_QP_ARG s_cond_qp_arg 61 #define COND_QP_WS s_cond_qp_ws 62 #define CREATE_STRMAT blasfeo_create_smat 63 #define CREATE_STRVEC blasfeo_create_svec 64 #define DENSE_QP s_dense_qp 65 #define DENSE_QP_DIM s_dense_qp_dim 66 #define DENSE_QP_SOL s_dense_qp_sol 67 #define EXPAND_SOL s_expand_sol 68 #define EXPAND_PRIMAL_SOL s_expand_primal_sol 69 #define OCP_QP s_ocp_qp 70 #define OCP_QP_DIM s_ocp_qp_dim 71 #define OCP_QP_SOL s_ocp_qp_sol 72 #define SIZE_STRMAT blasfeo_memsize_smat 73 #define SIZE_STRVEC blasfeo_memsize_svec 74 #define STRMAT blasfeo_smat 75 #define STRVEC blasfeo_svec 76 #define UPDATE_COND_DCTD s_update_cond_DCtd 77 #define UPDATE_COND_BABT s_update_cond_BAbt 78 #define UPDATE_COND_RSQRQ_N2NX3 s_update_cond_RSQrq_N2nx3 79 80 #define COND_QP_COMPUTE_DIM s_cond_qp_compute_dim 81 #define COND_QP_ARG_MEMSIZE s_cond_qp_arg_memsize 82 #define COND_QP_ARG_CREATE s_cond_qp_arg_create 83 #define COND_QP_ARG_SET_DEFAULT s_cond_qp_arg_set_default 84 #define COND_QP_ARG_SET_RIC_ALG s_cond_qp_arg_set_ric_alg 85 #define COND_QP_WS_MEMSIZE s_cond_qp_ws_memsize 86 #define COND_QP_WS_CREATE s_cond_qp_ws_create 87 #define COND_QP_COND s_cond_qp_cond 88 #define COND_QP_COND_RHS s_cond_qp_cond_rhs 89 #define COND_QP_EXPAND_SOL s_cond_qp_expand_sol 90 #define COND_QP_EXPAND_PRIMAL_SOL s_cond_qp_expand_primal_sol 91 #define COND_QP_UPDATE s_cond_qp_update 92 93 94 95 #include "x_cond.c" 96 97