Teuchos - Trilinos Tools Package  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Teuchos_MatrixMarket_Banner.hpp
1 // @HEADER
2 // *****************************************************************************
3 // Tpetra: Templated Linear Algebra Services Package
4 //
5 // Copyright 2008 NTESS and the Tpetra contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef __Teuchos_MatrixMarket_Banner_hpp
11 #define __Teuchos_MatrixMarket_Banner_hpp
12 
13 #include <complex>
14 #include <ostream>
15 #include <string>
16 
17 #include "Teuchos_ConfigDefs.hpp"
18 
19 namespace Teuchos {
20  namespace MatrixMarket {
21 
35  class TEUCHOSNUMERICS_LIB_DLL_EXPORT Banner {
36  public:
45  Banner (const std::string& line, const bool tolerant=false);
46 
54  const std::string& objectType() const { return objectType_; }
55 
61  const std::string& matrixType() const { return matrixType_; }
62 
67  const std::string& dataType() const { return dataType_; }
68 
90  const std::string& symmType() const { return symmType_; }
91 
92  private:
93  static std::string validateObjectType (const std::string& objectType, const bool tolerant=false);
94  static std::string validateMatrixType (const std::string& matrixType, const bool tolerant=false);
95  static std::string validateDataType (const std::string& dataType, const bool tolerant=false);
96  static std::string validateSymmType (const std::string& symmType, const bool tolerant=false);
97 
99  void setDefaults (const int howMany);
100 
101  std::string objectType_, matrixType_, dataType_, symmType_;
102  };
103 
119  TEUCHOSNUMERICS_LIB_DLL_EXPORT std::ostream& operator<< (std::ostream& out, const Banner& banner);
120 
121  } // namespace MatrixMarket
122 } // namespace Teuchos
123 
124 #endif // __Teuchos_MatrixMarket_Banner_hpp
const std::string & matrixType() const
Storage type of the matrix.
Teuchos header file which uses auto-configuration information to include necessary C++ headers...
const std::string & dataType() const
Data type of matrix entries.
const std::string & symmType() const
Symmetric storage type.
const std::string & objectType() const
The object type.
Parse a Matrix Market banner line.