Belos Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BelosStubTsqrAdapter.hpp
Go to the documentation of this file.
1 // @HEADER
2 // ***********************************************************************
3 //
4 // Belos: Block Linear Solvers Package
5 // Copyright (2010) 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 // This library is free software; you can redistribute it and/or modify
11 // it under the terms of the GNU Lesser General Public License as
12 // published by the Free Software Foundation; either version 2.1 of the
13 // License, or (at your option) any later version.
14 //
15 // This library is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public
21 // License along with this library; if not, write to the Free Software
22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
23 // USA
24 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
25 //
26 // ***********************************************************************
27 // @HEADER
28 
29 #ifndef __Belos_StubTsqrAdapter_hpp
30 #define __Belos_StubTsqrAdapter_hpp
31 
32 #include <BelosConfigDefs.hpp>
34 #include <Teuchos_ScalarTraits.hpp>
37 #include <stdexcept>
38 
41 
42 namespace Belos {
43 namespace details {
44 
70  template<class MultiVectorType>
72  public:
73  typedef MultiVectorType MV;
74  typedef double scalar_type; // This doesn't really matter
75  typedef int ordinal_type; // This doesn't matter either
76  typedef int node_type; // Nor does this
79 
87  {
88  TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, "TSQR adapter for "
89  "multivector type \"" << Teuchos::TypeNameTraits<MV>::name()
90  << " is not yet implemented.");
91  }
92 
95  {
96  TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, "TSQR adapter for "
97  "multivector type \"" << Teuchos::TypeNameTraits<MV>::name()
98  << " is not yet implemented.");
99  }
100 
103  {
104  (void) rhs;
105  TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, "TSQR adapter for "
106  "multivector type \"" << Teuchos::TypeNameTraits<MV>::name()
107  << " is not yet implemented.");
108  }
109 
113  {
114  TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, "TSQR adapter for "
115  "multivector type \"" << Teuchos::TypeNameTraits<MV>::name()
116  << " is not yet implemented.");
117  }
118 
120  void
122  {
123  TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, "TSQR adapter for "
124  "multivector type \"" << Teuchos::TypeNameTraits<MV>::name()
125  << " is not yet implemented.");
126  }
127 
129  void
131  MV& Q,
133  const bool forceNonnegativeDiagonal=false)
134  {
135  TEUCHOS_TEST_FOR_EXCEPTION(true, std::logic_error, "TSQR adapter for "
136  "multivector type \"" << Teuchos::TypeNameTraits<MV>::name()
137  << " is not yet implemented.");
138  }
139 
141  int
144  const magnitude_type& tol)
145  {
146  // mfh 07 Sep 2012: In order to prevent compiler warnings on
147  // some platforms, we simply return some value. This code can
148  // never execute anyway, since it is in an instance method and
149  // all of the constructors throw exceptions. (We've overridden
150  // the default and copy constructors to throw exceptions.)
151  return 0;
152  }
153  };
154 
155 } // namespace details
156 } // namespace Belos
157 
158 #endif // __Belos_StubTsqrAdapter_hpp
159 
StubTsqrAdapter()
Default constructor (stub; throws std::logic_error).
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
StubTsqrAdapter(const StubTsqrAdapter &rhs)
Copy constructor (throws std::logic_error).
Teuchos::ScalarTraits< scalar_type >::magnitudeType magnitude_type
Teuchos::SerialDenseMatrix< ordinal_type, scalar_type > dense_matrix_type
StubTsqrAdapter(const Teuchos::RCP< Teuchos::ParameterList > &plist)
Constructor (that accepts a parameter list).
&quot;Stub&quot; TSQR adaptor for unsupported multivector types.
int revealRank(MV &Q, dense_matrix_type &R, const magnitude_type &tol)
Rank-revealing decomposition (stub; does nothing).
void factorExplicit(MV &A, MV &Q, dense_matrix_type &R, const bool forceNonnegativeDiagonal=false)
Compute QR factorization [Q,R] = qr(A,0) (stub; throws std::logic_error).
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &plist)
Set parameters (stub; throws std::logic_error).
Belos header file which uses auto-configuration information to include necessary C++ headers...
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Get list of valid default parameters (stub; throws std::logic_error).