11#ifndef ANASAZI_STATUS_TEST_OUTPUT_HPP
12#define ANASAZI_STATUS_TEST_OUTPUT_HPP
39template <
class ScalarType,
class MV,
class OP>
67 : printer_(printer), test_(test), state_(
Undefined), stateTest_(printStates), modTest_(mod), numCalls_(0)
94 TEUCHOS_TEST_FOR_EXCEPTION(test_ == Teuchos::null,
StatusTestError,
"StatusTestOutput::checkStatus(): child pointer is null.");
95 state_ = test_->checkStatus(solver);
97 if (numCalls_++ % modTest_ == 0) {
98 if ( (state_ & stateTest_) == state_) {
102 else if ( printer_->isVerbosity(
Debug) ) {
118 return std::vector<int>(0);
142 Teuchos::RCP<StatusTest<ScalarType,MV,OP> >
getChild()
const {
158 if (test_ != Teuchos::null) {
168 if (test_ != Teuchos::null) {
169 test_->clearStatus();
179 std::ostream&
print(std::ostream& os,
int indent = 0)
const {
180 std::string ind(indent,
' ');
181 os << ind <<
"- StatusTestOutput: ";
184 os <<
"Passed" << std::endl;
187 os <<
"Failed" << std::endl;
190 os <<
"Undefined" << std::endl;
193 os << ind <<
" (Num calls,Mod test,State test): " <<
"(" << numCalls_ <<
", " << modTest_ <<
",";
194 if (stateTest_ == 0) {
195 os <<
" none )" << std::endl;
201 os <<
" )" << std::endl;
204 test_->print(os,indent+3);
211 Teuchos::RCP<OutputManager<ScalarType> > printer_;
212 Teuchos::RCP<StatusTest<ScalarType,MV,OP> > test_;
Anasazi header file which uses auto-configuration information to include necessary C++ headers.
Pure virtual base class which describes the basic interface to the iterative eigensolver.
Declaration and definition of Anasazi::StatusTest.
Types and exceptions used within Anasazi solvers and interfaces.
The Eigensolver is a templated virtual base class that defines the basic interface that any eigensolv...
Output managers remove the need for the eigensolver to know any information about the required output...
Exception thrown to signal error in a status test during Anasazi::StatusTest::checkStatus().
A special StatusTest for printing other status tests.
int howMany() const
Get the number of vectors that passed the test.
StatusTestOutput(const Teuchos::RCP< OutputManager< ScalarType > > &printer, Teuchos::RCP< StatusTest< ScalarType, MV, OP > > test, int mod=1, int printStates=Passed)
Constructor.
void setChild(Teuchos::RCP< StatusTest< ScalarType, MV, OP > > test)
Set child test.
std::vector< int > whichVecs() const
Get the indices for the vectors that passed the test.
void reset()
Informs the status test that it should reset its internal configuration to the uninitialized state.
TestStatus checkStatus(Eigensolver< ScalarType, MV, OP > *solver)
std::ostream & print(std::ostream &os, int indent=0) const
Output formatted description of stopping test to output stream.
virtual ~StatusTestOutput()
Destructor.
TestStatus getStatus() const
Return the result of the most recent checkStatus call, or undefined if it has not been run.
Teuchos::RCP< StatusTest< ScalarType, MV, OP > > getChild() const
Get child test.
Common interface of stopping criteria for Anasazi's solvers.
Namespace Anasazi contains the classes, structs, enums and utilities used by the Anasazi package.
TestStatus
Enumerated type used to pass back information from a StatusTest.