10 #ifndef TEUCHOS_XMLPERFTESTARCHIVE_HPP
11 #define TEUCHOS_XMLPERFTESTARCHIVE_HPP
25 #if defined __ECC || defined __ICC || defined __INTEL_COMPILER
26 #define TEUCHOS_COMPILER_NAME "Intel C++"
28 #define TEUCHOS_COMPILER_VERSION __ICC
30 #if defined __INTEL_COMPILER
31 #define TEUCHOS_COMPILER_VERSION __INTEL_COMPILER
33 #define TEUCHOS_COMPILER_VERSION __ECC
36 #define TEUCHOS_COMPILER_INTEL 1
39 #if defined __IBMC__ || defined __IBMCPP__
40 #define TEUCHOS_COMPILER_NAME "IBM C++"
42 #define TEUCHOS_COMPILER_VERSION __IBMC__
44 #define TEUCHOS_COMPILER_VERSION __IBMCPP__
46 #define TEUCHOS_COMPILER_IBM 1
49 #if defined __APPLE_CC__
51 #define TEUCHOS_COMPILER_APPLECC 1
55 #define TEUCHOS_COMPILER_NAME "Clang"
56 #define TEUCHOS_COMPILER_VERSION __clang_major__*100+__clang_minor__*10+__clang_patchlevel__
57 #define TEUCHOS_COMPILER_CLANG 1
60 #if defined __GNUC__ && !defined TEUCHOS_COMPILER_NAME && !defined __clang__
61 #define TEUCHOS_COMPILER_NAME "Gnu GCC"
62 #define TEUCHOS_COMPILER_VERSION __GNUC__*100+__GNUC_MINOR__*10+__GNUC_PATCHLEVEL__
63 #define TEUCHOS_COMPILER_GCC 1
66 #if defined __PGIC__ && !defined TEUCHOS_COMPILER_NAME
67 #define TEUCHOS_COMPILER_NAME "PGI C++"
68 #define TEUCHOS_COMPILER_VERSION __PGIC__*100+__PGIC_MINOR__*10+__PGIC_PATCHLEVEL__
69 #define TEUCHOS_COMPILER_PGI 1
73 #define TEUCHOS_DEVICE_COMPILER_NAME "NVIDIA NVCC"
74 #define TEUCHOS_DEVICE_COMPILER_VERSION __NVCC__
77 #if !defined TEUCHOS_COMPILER_NAME
78 #define TEUCHOS_COMPILER_NAME "Unknown compiler"
81 #if !defined TEUCHOS_COMPILER_VERSION
82 #define TEUCHOS_COMPILER_VERSION 0
85 #if !defined TEUCHOS_DEVICE_COMPILER_NAME
86 #define TEUCHOS_DEVICE_COMPILER_NAME TEUCHOS_COMPILER_NAME
89 #if !defined TEUCHOS_DEVICE_COMPILER_VERSION
90 #define TEUCHOS_DEVICE_COMPILER_VERSION TEUCHOS_COMPILER_VERSION
114 std::string as_string();
115 void from_string(
const std::string& valtol_str);
133 void addDouble (
const std::string& name,
double val);
134 void addInt (
const std::string& name,
int val);
135 void addBool (
const std::string& name,
bool val);
136 void addValueTolerance(
const std::string& name,
ValueTolerance val);
137 void addString (
const std::string& name, std::string val);
140 void addAttribute (
const std::string& name, T val) {
141 for (
size_t i = 0; i < name.length (); i++) {
142 if (name[i] ==
' ') {
146 std::ostringstream strs;
153 bool hasChild(
const std::string &name)
const;
155 void appendContentLine(
const size_t& i,
const std::string &str);
157 XMLTestNode getChild(
const std::string &name)
const;
163 bool hasSameElements(
XMLTestNode const & lhs)
const;
188 PerfTestNewMachine, PerfTestNewConfiguration,
189 PerfTestNewTest, PerfTestNewTestConfiguration,
190 PerfTestUpdatedTest};
240 XMLTestNode new_test,
241 const std::string filename,
242 const std::string ext_hostname = std::string ());
void addChild(const XMLObject &child)
Add a child node to the node.
Teuchos header file which uses auto-configuration information to include necessary C++ headers...
ValueTolerance is a struct to keep a tuple of value and a tolerance. The tolerance can be either expr...
Representation of an XML data tree. XMLObject is a ref-counted handle to a XMLObjectImplem object...
PerfTestResult
ReturnValues for PerfTest_CheckOrAdd_Test.
Subclass of XMLObject used by the performance archive.
void addContent(const std::string &contentLine)
Add a line of character content.
The XMLObjectImplem class takes care of the low-level implementation details of XMLObject.
PerfTestResult PerfTest_CheckOrAdd_Test(XMLTestNode machine_config, XMLTestNode new_test, const std::string filename, const std::string ext_hostname)
Check whether a test is present and match an existing test in an archive.
XMLTestNode PerfTest_MachineConfig()
PerfTest_MachineConfig generates a basic machine configuration XMLTestNode.
An object representation of a subset of XML data.