qpOASES  3.2.1
An Implementation of the Online Active Set Strategy
LapackBlasReplacement.hpp
Go to the documentation of this file.
1 /*
2  * This file is part of qpOASES.
3  *
4  * qpOASES -- An Implementation of the Online Active Set Strategy.
5  * Copyright (C) 2007-2017 by Hans Joachim Ferreau, Andreas Potschka,
6  * Christian Kirches et al. All rights reserved.
7  *
8  * qpOASES is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * qpOASES is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16  * See the GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with qpOASES; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  *
22  */
23 
24 
36 #ifndef QPOASES_LAPACKBLASREPLACEMENT_HPP
37 #define QPOASES_LAPACKBLASREPLACEMENT_HPP
38 
39 
40 #ifdef __USE_SINGLE_PRECISION__
41 
43  #define GEMM sgemm_
44 
45  #define SYR ssyr_
46 
47  #define SYR2 ssyr2_
48 
49  #define POTRF spotrf_
50 
52  /* #define GEQRF sgeqrf_ */
54  /* #define ORMQR sormqr_ */
56  #define TRTRS strtrs_
57 
58  #define TRCON strcon_
59 
60 #else
61 
63  #define GEMM dgemm_
64 
65  #define SYR dsyr_
66 
67  #define SYR2 dsyr2_
68 
69  #define POTRF dpotrf_
70 
72  /* #define GEQRF dgeqrf_ */
74  /* #define ORMQR dormqr_ */
76  #define TRTRS dtrtrs_
77 
78  #define TRCON dtrcon_
79 
80 #endif /* __USE_SINGLE_PRECISION__ */
81 
82 
83 extern "C"
84 {
86  void dgemm_( const char*, const char*, const la_uint_t*, const la_uint_t*, const la_uint_t*,
87  const double*, const double*, const la_uint_t*, const double*, const la_uint_t*,
88  const double*, double*, const la_uint_t* );
90  void sgemm_( const char*, const char*, const la_uint_t*, const la_uint_t*, const la_uint_t*,
91  const float*, const float*, const la_uint_t*, const float*, const la_uint_t*,
92  const float*, float*, const la_uint_t* );
93 
95  void dsyr_( const char*, const la_uint_t*, const double*, const double*,
96  const la_uint_t*, double*, const la_uint_t* );
98  void ssyr_( const char*, const la_uint_t*, const float*, const float*,
99  const la_uint_t*, float*, const la_uint_t* );
100 
102  void dsyr2_( const char*, const la_uint_t*, const double*, const double*,
103  const la_uint_t*, const double*, const la_uint_t*, double*, const la_uint_t*);
105  void ssyr2_( const char*, const la_uint_t*, const float*, const float*,
106  const la_uint_t*, const float*, const la_uint_t*, float*, const la_uint_t*);
107 
109  void dpotrf_( const char*, const la_uint_t*, double*, const la_uint_t*, la_int_t* );
111  void spotrf_( const char*, const la_uint_t*, float*, const la_uint_t*, la_int_t* );
112 
113 
115  /* void dgeqrf_( const la_uint_t* M, const la_uint_t* N, double* A, const la_uint_t* LDA,
116  double* TAU, double* WORK, const la_uint_t* LWORK, int *INFO );*/
118  /* void sgeqrf_( const la_uint_t* M, const la_uint_t* N, float* A, const la_uint_t* LDA,
119  float* TAU, float* WORK, const la_uint_t* LWORK, int *INFO );*/
120 
122  /* void dormqr_( const char* SIDE, const char* TRANS, const la_uint_t* M, const la_uint_t* N, const la_uint_t* K,
123  double* A, const la_uint_t* LDA, double* TAU, double* C, const la_uint_t* LDC,
124  double* WORK, const la_uint_t* LWORK, int *INFO );*/
126  /* void sormqr_( const char* SIDE, const char* TRANS, const la_uint_t* M, const la_uint_t* N, const la_uint_t* K,
127  float* A, const la_uint_t* LDA, float* TAU, float* C, const la_uint_t* LDC,
128  float* WORK, const la_uint_t* LWORK, int *INFO );*/
129 
131  void dtrtrs_( const char* UPLO, const char* TRANS, const char* DIAG, const la_uint_t* N, const la_uint_t* NRHS,
132  double* A, const la_uint_t* LDA, double* B, const la_uint_t* LDB, la_int_t* INFO );
134  void strtrs_( const char* UPLO, const char* TRANS, const char* DIAG, const la_uint_t* N, const la_uint_t* NRHS,
135  float* A, const la_uint_t* LDA, float* B, const la_uint_t* LDB, la_int_t* INFO );
136 
138  void dtrcon_( const char* NORM, const char* UPLO, const char* DIAG, const la_uint_t* N, double* A, const la_uint_t* LDA,
139  double* RCOND, double* WORK, const la_uint_t* IWORK, la_int_t* INFO );
141  void strcon_( const char* NORM, const char* UPLO, const char* DIAG, const la_uint_t* N, float* A, const la_uint_t* LDA,
142  float* RCOND, float* WORK, const la_uint_t* IWORK, la_int_t* INFO );
143 }
144 
145 #endif /* QPOASES_LAPACKBLASREPLACEMENT_HPP */
long la_int_t
Definition: Types.hpp:161
void dsyr_(const char *, const la_uint_t *, const double *, const double *, const la_uint_t *, double *, const la_uint_t *)
void dtrtrs_(const char *UPLO, const char *TRANS, const char *DIAG, const la_uint_t *N, const la_uint_t *NRHS, double *A, const la_uint_t *LDA, double *B, const la_uint_t *LDB, la_int_t *INFO)
Definition: LAPACKReplacement.cpp:121
void ssyr2_(const char *, const la_uint_t *, const float *, const float *, const la_uint_t *, const float *, const la_uint_t *, float *, const la_uint_t *)
void dsyr2_(const char *, const la_uint_t *, const double *, const double *, const la_uint_t *, const double *, const la_uint_t *, double *, const la_uint_t *)
void strcon_(const char *NORM, const char *UPLO, const char *DIAG, const la_uint_t *N, float *A, const la_uint_t *LDA, float *RCOND, float *WORK, const la_uint_t *IWORK, la_int_t *INFO)
Definition: LAPACKReplacement.cpp:145
void sgemm_(const char *, const char *, const la_uint_t *, const la_uint_t *, const la_uint_t *, const float *, const float *, const la_uint_t *, const float *, const la_uint_t *, const float *, float *, const la_uint_t *)
Definition: BLASReplacement.cpp:93
void dgemm_(const char *, const char *, const la_uint_t *, const la_uint_t *, const la_uint_t *, const double *, const double *, const la_uint_t *, const double *, const la_uint_t *, const double *, double *, const la_uint_t *)
Definition: BLASReplacement.cpp:38
void dpotrf_(const char *, const la_uint_t *, double *, const la_uint_t *, la_int_t *)
Definition: LAPACKReplacement.cpp:38
void spotrf_(const char *, const la_uint_t *, float *, const la_uint_t *, la_int_t *)
Definition: LAPACKReplacement.cpp:80
void strtrs_(const char *UPLO, const char *TRANS, const char *DIAG, const la_uint_t *N, const la_uint_t *NRHS, float *A, const la_uint_t *LDA, float *B, const la_uint_t *LDB, la_int_t *INFO)
Definition: LAPACKReplacement.cpp:129
void ssyr_(const char *, const la_uint_t *, const float *, const float *, const la_uint_t *, float *, const la_uint_t *)
void dtrcon_(const char *NORM, const char *UPLO, const char *DIAG, const la_uint_t *N, double *A, const la_uint_t *LDA, double *RCOND, double *WORK, const la_uint_t *IWORK, la_int_t *INFO)
Definition: LAPACKReplacement.cpp:137