Teuchos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Teuchos_Details_LapackLongDouble.hpp
Go to the documentation of this file.
1 // @HEADER
2 // ***********************************************************************
3 //
4 // Teuchos: Common Tools Package
5 // Copyright (2004) 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 Michael A. Heroux (maherou@sandia.gov)
38 //
39 // ***********************************************************************
40 // @HEADER
41 
42 #ifndef TEUCHOS_DETAILS_LAPACKLONGDOUBLE_HPP
43 #define TEUCHOS_DETAILS_LAPACKLONGDOUBLE_HPP
44 
48 
49 #include "Teuchos_ConfigDefs.hpp"
50 
51 
52 #ifdef HAVE_TEUCHOS_LONG_DOUBLE
53 namespace Teuchos {
54 namespace Details {
55 
57 class LapackLongDouble {
58 public:
61  void
62  GETRF (const int M, const int N, long double A[],
63  const int LDA, int IPIV[], int* INFO) const;
64 
79  void
80  LASWP (const int N, long double A[], const int LDA, const int K1,
81  const int K2, const int IPIV[], const int INCX) const;
82 
85  void
86  GETRS (const char TRANS, const int N, const int NRHS,
87  const long double A[], const int LDA, const int IPIV[],
88  long double B[], const int LDB, int* INFO) const;
89 
92  void
93  GETRI (const int N, long double A[], const int LDA, int IPIV[],
94  long double WORK[], const int LWORK, int* INFO) const;
95 
98  long double
99  LAPY2 (const long double& x, const long double& y) const;
100 
102  void
103  LARFG (const int N, long double* const ALPHA,
104  long double X[], const int INCX, long double* const TAU) const;
105 
107  void
108  LARF (const char side,
109  const int m,
110  const int n,
111  const long double v[],
112  const int incv,
113  const long double tau,
114  long double C[],
115  const int ldc,
116  long double work[]) const;
117 
119  void
120  ORM2R (const char side, const char trans,
121  const int m, const int n, const int k,
122  const long double A[], const int lda,
123  const long double* const tau,
124  long double C[], const int ldc,
125  long double work[], int* const info) const;
126 
128  void
129  GEQR2 (const int M,
130  const int N,
131  long double A[],
132  const int LDA,
133  long double TAU[],
134  long double WORK[],
135  int* const INFO) const;
136 
138  void
139  GEQRF (const int M,
140  const int N,
141  long double A[],
142  const int LDA,
143  long double TAU[],
144  long double WORK[],
145  const int LWORK,
146  int* const INFO) const;
147 
149  void
150  ORGQR (const int M,
151  const int N,
152  const int K,
153  long double A[],
154  const int LDA,
155  const long double TAU[],
156  long double WORK[],
157  const int LWORK,
158  int* const INFO) const;
159 
161  void
162  UNGQR (const int M,
163  const int N,
164  const int K,
165  long double A[],
166  const int LDA,
167  const long double TAU[],
168  long double WORK[],
169  const int LWORK,
170  int* const INFO) const;
171 
173  void
174  LASCL (const char TYPE,
175  const int kl,
176  const int ku,
177  const long double cfrom,
178  const long double cto,
179  const int m,
180  const int n,
181  long double* A,
182  const int lda,
183  int* info) const;
184 
186  void
187  GBTRF (const int m,
188  const int n,
189  const int kl,
190  const int ku,
191  long double* A,
192  const int lda,
193  int* IPIV,
194  int* info) const;
195 
197  void
198  GBTRS (const char TRANS,
199  const int n,
200  const int kl,
201  const int ku,
202  const int nrhs,
203  const long double* A,
204  const int lda,
205  const int* IPIV,
206  long double* B,
207  const int ldb,
208  int* info) const;
209 };
210 
211 } // namespace Details
212 } // namespace Teuchos
213 #endif // HAVE_TEUCHOS_LONG_DOUBLE
214 
215 #endif // TEUCHOS_DETAILS_LAPACKLONGDOUBLE_HPP
Teuchos header file which uses auto-configuration information to include necessary C++ headers...