qpOASES
3.2.1
An Implementation of the Online Active Set Strategy
|
00001 /* 00002 * This file is part of qpOASES. 00003 * 00004 * qpOASES -- An Implementation of the Online Active Set Strategy. 00005 * Copyright (C) 2007-2017 by Hans Joachim Ferreau, Andreas Potschka, 00006 * Christian Kirches et al. All rights reserved. 00007 * 00008 * qpOASES is free software; you can redistribute it and/or 00009 * modify it under the terms of the GNU Lesser General Public 00010 * License as published by the Free Software Foundation; either 00011 * version 2.1 of the License, or (at your option) any later version. 00012 * 00013 * qpOASES is distributed in the hope that it will be useful, 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00016 * See the GNU Lesser General Public License for more details. 00017 * 00018 * You should have received a copy of the GNU Lesser General Public 00019 * License along with qpOASES; if not, write to the Free Software 00020 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00021 * 00022 */ 00023 00024 00036 #ifndef QPOASES_LAPACKBLASREPLACEMENT_HPP 00037 #define QPOASES_LAPACKBLASREPLACEMENT_HPP 00038 00039 00040 #ifdef __USE_SINGLE_PRECISION__ 00041 00043 #define GEMM sgemm_ 00044 00045 #define SYR ssyr_ 00046 00047 #define SYR2 ssyr2_ 00048 00049 #define POTRF spotrf_ 00050 00052 /* #define GEQRF sgeqrf_ */ 00054 /* #define ORMQR sormqr_ */ 00056 #define TRTRS strtrs_ 00057 00058 #define TRCON strcon_ 00059 00060 #else 00061 00063 #define GEMM dgemm_ 00064 00065 #define SYR dsyr_ 00066 00067 #define SYR2 dsyr2_ 00068 00069 #define POTRF dpotrf_ 00070 00072 /* #define GEQRF dgeqrf_ */ 00074 /* #define ORMQR dormqr_ */ 00076 #define TRTRS dtrtrs_ 00077 00078 #define TRCON dtrcon_ 00079 00080 #endif /* __USE_SINGLE_PRECISION__ */ 00081 00082 00083 extern "C" 00084 { 00086 void dgemm_( const char*, const char*, const la_uint_t*, const la_uint_t*, const la_uint_t*, 00087 const double*, const double*, const la_uint_t*, const double*, const la_uint_t*, 00088 const double*, double*, const la_uint_t* ); 00090 void sgemm_( const char*, const char*, const la_uint_t*, const la_uint_t*, const la_uint_t*, 00091 const float*, const float*, const la_uint_t*, const float*, const la_uint_t*, 00092 const float*, float*, const la_uint_t* ); 00093 00095 void dsyr_( const char*, const la_uint_t*, const double*, const double*, 00096 const la_uint_t*, double*, const la_uint_t* ); 00098 void ssyr_( const char*, const la_uint_t*, const float*, const float*, 00099 const la_uint_t*, float*, const la_uint_t* ); 00100 00102 void dsyr2_( const char*, const la_uint_t*, const double*, const double*, 00103 const la_uint_t*, const double*, const la_uint_t*, double*, const la_uint_t*); 00105 void ssyr2_( const char*, const la_uint_t*, const float*, const float*, 00106 const la_uint_t*, const float*, const la_uint_t*, float*, const la_uint_t*); 00107 00109 void dpotrf_( const char*, const la_uint_t*, double*, const la_uint_t*, la_int_t* ); 00111 void spotrf_( const char*, const la_uint_t*, float*, const la_uint_t*, la_int_t* ); 00112 00113 00115 /* void dgeqrf_( const la_uint_t* M, const la_uint_t* N, double* A, const la_uint_t* LDA, 00116 double* TAU, double* WORK, const la_uint_t* LWORK, int *INFO );*/ 00118 /* void sgeqrf_( const la_uint_t* M, const la_uint_t* N, float* A, const la_uint_t* LDA, 00119 float* TAU, float* WORK, const la_uint_t* LWORK, int *INFO );*/ 00120 00122 /* void dormqr_( const char* SIDE, const char* TRANS, const la_uint_t* M, const la_uint_t* N, const la_uint_t* K, 00123 double* A, const la_uint_t* LDA, double* TAU, double* C, const la_uint_t* LDC, 00124 double* WORK, const la_uint_t* LWORK, int *INFO );*/ 00126 /* void sormqr_( const char* SIDE, const char* TRANS, const la_uint_t* M, const la_uint_t* N, const la_uint_t* K, 00127 float* A, const la_uint_t* LDA, float* TAU, float* C, const la_uint_t* LDC, 00128 float* WORK, const la_uint_t* LWORK, int *INFO );*/ 00129 00131 void dtrtrs_( const char* UPLO, const char* TRANS, const char* DIAG, const la_uint_t* N, const la_uint_t* NRHS, 00132 double* A, const la_uint_t* LDA, double* B, const la_uint_t* LDB, la_int_t* INFO ); 00134 void strtrs_( const char* UPLO, const char* TRANS, const char* DIAG, const la_uint_t* N, const la_uint_t* NRHS, 00135 float* A, const la_uint_t* LDA, float* B, const la_uint_t* LDB, la_int_t* INFO ); 00136 00138 void dtrcon_( const char* NORM, const char* UPLO, const char* DIAG, const la_uint_t* N, double* A, const la_uint_t* LDA, 00139 double* RCOND, double* WORK, const la_uint_t* IWORK, la_int_t* INFO ); 00141 void strcon_( const char* NORM, const char* UPLO, const char* DIAG, const la_uint_t* N, float* A, const la_uint_t* LDA, 00142 float* RCOND, float* WORK, const la_uint_t* IWORK, la_int_t* INFO ); 00143 } 00144 00145 #endif /* QPOASES_LAPACKBLASREPLACEMENT_HPP */