DenseLinAlgPack: Concreate C++ Classes for Dense Blas-Compatible Linear Algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
DenseLinAlgPack_LAPACK_C_Decl.hpp
1 // @HEADER
2 // ***********************************************************************
3 //
4 // Moocho: Multi-functional Object-Oriented arCHitecture for Optimization
5 // Copyright (2003) Sandia Corporation
6 //
7 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8 // license for use of this work by or on behalf of the U.S. Government.
9 //
10 // Redistribution and use in source and binary forms, with or without
11 // modification, are permitted provided that the following conditions are
12 // met:
13 //
14 // 1. Redistributions of source code must retain the above copyright
15 // notice, this list of conditions and the following disclaimer.
16 //
17 // 2. Redistributions in binary form must reproduce the above copyright
18 // notice, this list of conditions and the following disclaimer in the
19 // documentation and/or other materials provided with the distribution.
20 //
21 // 3. Neither the name of the Corporation nor the names of the
22 // contributors may be used to endorse or promote products derived from
23 // this software without specific prior written permission.
24 //
25 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 //
37 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov)
38 //
39 // ***********************************************************************
40 // @HEADER
41 
42 #ifndef LAPACK_C_DECL_H
43 #define LAPACK_C_DECL_H
44 
45 #include "Teuchos_F77_wrappers.h"
46 
47 // C Declarations for calling LAPACK functions.
48 
49 namespace LAPACK_C_Decl {
50 
51 typedef FortranTypes::f_int f_int;
52 typedef FortranTypes::f_real f_real;
53 typedef FortranTypes::f_dbl_prec f_dbl_prec;
54 typedef FortranTypes::f_logical f_logical;
55 typedef FortranTypes::f_char f_char;
56 
57 // DPOTRF
58 
59 void dpotrf( const f_char& UPLO
60  , const f_int& N, f_dbl_prec* A, const f_int& LDA
61  , f_int* INFO );
62 
63 // DGEQRF
64 
65 void dgeqrf( const f_int& M
66  , const f_int& N, f_dbl_prec* A, const f_int& LDA
67  , f_dbl_prec* TAU, f_dbl_prec* WORK
68  , const f_int& LWORK, f_int* INFO );
69 
70 // DORMRQ
71 
72 void dormqr( const f_char& SIDE
73  , const f_char& TRANS, const f_int& M, const f_int& N
74  , const f_int& K, const f_dbl_prec* A, const f_int& LDA
75  , const f_dbl_prec* TAU, f_dbl_prec* C, const f_int& LDC
76  , f_dbl_prec* WORK, const f_int& LWORK, f_int* INFO );
77 
78 // DSYTRF
79 
80 void dsytrf( const f_char& UPLO
81  , const f_int& N, f_dbl_prec A[], const f_int& LDA
82  , f_int IPIV[], f_dbl_prec WORK[], const f_int& LWORK
83  , f_int* INFO );
84 
85 // DSYTRS
86 
87 void dsytrs( const f_char& UPLO
88  , const f_int& N, const f_int& NRHS, const f_dbl_prec A[]
89  , const f_int& LDA, const f_int IPIV[], f_dbl_prec B[]
90  , const f_int& LDB, f_int* INFO );
91 
92 // DGETRF
93 
94 void dgetrf(
95  const f_int& M, const f_int& N, f_dbl_prec A[], const f_int& LDA
96  ,f_int IPIV[], f_int* INFO
97  );
98 
99 // DGETRS
100 
101 void dgetrs(
102  const f_char& TRANS
103  ,const f_int& N, const f_int& NRHS, const f_dbl_prec A[]
104  ,const f_int& LDA, const f_int IPIV[], f_dbl_prec B[]
105  ,const f_int& LDB, f_int* INFO
106  );
107 
108 
109 } // end namespace LAPACK_C_Decl
110 
111 #endif // LAPACK_C_DECL_H