10 #ifndef XPETRA_CONFIGDEFS_HPP
11 #define XPETRA_CONFIGDEFS_HPP
15 #endif // ifndef __cplusplus
21 #endif // ifdef PACKAGE
25 #endif // ifdef PACKAGE_NAME
27 #ifdef PACKAGE_BUGREPORT
28 #undef PACKAGE_BUGREPORT
29 #endif // ifdef PACKAGE_BUGREPORT
33 #endif // ifdef PACKAGE_STRING
35 #ifdef PACKAGE_TARNAME
36 #undef PACKAGE_TARNAME
37 #endif // ifdef PACKAGE_TARNAME
39 #ifdef PACKAGE_VERSION
40 #undef PACKAGE_VERSION
41 #endif // ifdef PACKAGE_VERSION
45 #endif // ifdef VERSION
49 #include <Xpetra_config.hpp>
50 #include <Teuchos_ConfigDefs.hpp>
51 #include <TpetraCore_config.h>
53 #if defined(HAVE_XPETRA_TPETRA)
54 #include <Tpetra_ConfigDefs.hpp>
67 #ifdef HAVE_XPETRA_THROW_EFFICIENCY_WARNINGS
68 #define XPETRA_THROWS_EFFICIENCY_WARNINGS 1
70 #define XPETRA_THROWS_EFFICIENCY_WARNINGS 0
73 #ifdef HAVE_XPETRA_PRINT_EFFICIENCY_WARNINGS
74 #define XPETRA_PRINTS_EFFICIENCY_WARNINGS 1
76 #define XPETRA_PRINTS_EFFICIENCY_WARNINGS 0
79 #ifdef HAVE_XPETRA_THROW_ABUSE_WARNINGS
80 #define XPETRA_THROWS_ABUSE_WARNINGS 1
82 #define XPETRA_THROWS_ABUSE_WARNINGS 0
85 #ifdef HAVE_XPETRA_PRINT_ABUSE_WARNINGS
86 #define XPETRA_PRINTS_ABUSE_WARNINGS 1
88 #define XPETRA_PRINTS_ABUSE_WARNINGS 0
91 #ifdef HAVE_XPETRA_PROFILING
93 #include <Teuchos_TimeMonitor.hpp>
94 #define XPETRA_MONITOR(funcName) Teuchos::TimeMonitor(*Teuchos::TimeMonitor::getNewTimer(std::string("Xpetra: ") + funcName));
96 #define XPETRA_MONITOR(funcName)
103 #ifdef HAVE_XPETRA_DEBUG
104 #define XPETRA_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg) \
105 TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg);
107 #define XPETRA_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
110 #include <functional>
113 #include <Teuchos_ArrayView.hpp>
114 #include <Teuchos_ArrayRCP.hpp>
115 #include <Teuchos_Array.hpp>
116 #include <Teuchos_RCP.hpp>
118 #include <Teuchos_OrdinalTraits.hpp>
119 #include <Teuchos_ScalarTraits.hpp>
120 #include <Teuchos_TypeNameTraits.hpp>
121 #include <Teuchos_NullIteratorTraits.hpp>
122 #include <Teuchos_SerializationTraits.hpp>
124 #include <Teuchos_Comm.hpp>
125 #include <Teuchos_CommHelpers.hpp>
127 #include <Teuchos_ParameterList.hpp>
183 using Teuchos::Array;
184 using Teuchos::ArrayRCP;
185 using Teuchos::ArrayView;
188 using Teuchos::OrdinalTraits;
190 using Teuchos::ScalarTraits;
193 using Teuchos::arcp_reinterpret_cast;
194 using Teuchos::av_reinterpret_cast;
195 using Teuchos::outArg;
197 using Teuchos::rcpFromRef;
198 using Teuchos::tuple;
200 using Teuchos::typeName;
202 using Teuchos::ParameterList;
203 using Teuchos::parameterList;
204 using Teuchos::sublist;
208 template <
class Arg1,
class Arg2>
214 inline Arg1
operator()(
const Arg1 &arg1,
const Arg2 &arg2) {
return arg1; }
217 template <
class Arg1,
class Arg2>
223 inline Arg2
operator()(
const Arg1 &arg1,
const Arg2 &arg2) {
return arg2; }
229 namespace XpetraExamples {
232 #define XPETRA_ERR_CHECK(arg) \
236 std::cout << "r = " << r << std::endl; \
239 }; // TODO: throw exceptions
242 #include "Teuchos_CompilerCodeTweakMacros.hpp"
244 #endif // XPETRA_CONFIGDEFS_HPP
Arg1 operator()(const Arg1 &arg1, const Arg2 &arg2)
Arg2 operator()(const Arg1 &arg1, const Arg2 &arg2)
Arg2 second_argument_type
Arg2 second_argument_type
size_t global_size_t
Global size_t object.
CombineMode
Xpetra::Combine Mode enumerable type.
Teuchos_Ordinal Array_size_type
Size type for Teuchos Array objects.