46#ifndef XPETRA_CONFIGDEFS_HPP
47#define XPETRA_CONFIGDEFS_HPP
63#ifdef PACKAGE_BUGREPORT
64#undef PACKAGE_BUGREPORT
85#include <Xpetra_config.hpp>
87#include <TpetraCore_config.h>
89#if defined(HAVE_XPETRA_TPETRA)
90 #include <Tpetra_ConfigDefs.hpp>
103#ifdef HAVE_XPETRA_THROW_EFFICIENCY_WARNINGS
104#define XPETRA_THROWS_EFFICIENCY_WARNINGS 1
106#define XPETRA_THROWS_EFFICIENCY_WARNINGS 0
109#ifdef HAVE_XPETRA_PRINT_EFFICIENCY_WARNINGS
110#define XPETRA_PRINTS_EFFICIENCY_WARNINGS 1
112#define XPETRA_PRINTS_EFFICIENCY_WARNINGS 0
115#ifdef HAVE_XPETRA_THROW_ABUSE_WARNINGS
116#define XPETRA_THROWS_ABUSE_WARNINGS 1
118#define XPETRA_THROWS_ABUSE_WARNINGS 0
121#ifdef HAVE_XPETRA_PRINT_ABUSE_WARNINGS
122#define XPETRA_PRINTS_ABUSE_WARNINGS 1
124#define XPETRA_PRINTS_ABUSE_WARNINGS 0
127#ifdef HAVE_XPETRA_PROFILING
130#define XPETRA_MONITOR(funcName) Teuchos::TimeMonitor(*Teuchos::TimeMonitor::getNewTimer(std::string("Xpetra: ") + funcName));
132#define XPETRA_MONITOR(funcName)
139#ifdef HAVE_XPETRA_DEBUG
140#define XPETRA_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg) \
141 TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg);
143#define XPETRA_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
149#include <Teuchos_ArrayView.hpp>
150#include <Teuchos_ArrayRCP.hpp>
157#include <Teuchos_NullIteratorTraits.hpp>
160#include <Teuchos_Comm.hpp>
161#include <Teuchos_CommHelpers.hpp>
228 using Teuchos::outArg;
229 using Teuchos::tuple;
232 using Teuchos::rcpFromRef;
233 using Teuchos::av_reinterpret_cast;
234 using Teuchos::arcp_reinterpret_cast;
239 using Teuchos::parameterList;
240 using Teuchos::sublist;
244 template <
class Arg1,
class Arg2>
245 class firstArg : std::binary_function<Arg1,Arg2,Arg1> {
250 inline Arg1
operator()(
const Arg1 &arg1,
const Arg2 &arg2) {
return arg1;}
253 template <
class Arg1,
class Arg2>
254 class secondArg : std::binary_function<Arg1,Arg2,Arg2> {
259 inline Arg2
operator()(
const Arg1 &arg1,
const Arg2 &arg2) {
return arg2;}
269#define XPETRA_ERR_CHECK(arg) { int r = arg; if (r < 0) { std::cout << "r = " << r << std::endl; assert(r>=0); }; };
272#include "Teuchos_CompilerCodeTweakMacros.hpp"
Arg1 operator()(const Arg1 &arg1, const Arg2 &arg2)
Arg2 second_argument_type
Arg2 operator()(const Arg1 &arg1, const Arg2 &arg2)
Arg2 second_argument_type
std::string typeName(const T &t)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Namespace for Xpetra example classes and methods.
size_t global_size_t
Global size_t object.
Teuchos_Ordinal Array_size_type
Size type for Teuchos Array objects.
CombineMode
Xpetra::Combine Mode enumerable type.