10#ifndef TEUCHOS_CONFIGDEFS_HPP
11#define TEUCHOS_CONFIGDEFS_HPP
18#include "TeuchosCore_config.h"
19#include "Teuchos_config.h"
21#ifdef HAVE_TEUCHOS_DEBUG
23# define HAVE_TEUCHOS_ARRAY_BOUNDSCHECK
28#if defined(__GNUC__) && !defined(__clang__) && \
29 !defined(__INTEL_COMPILER) && !defined(__INTEL_LLVM_COMPILER) && \
32# define TEUCHOS_IMPL_GCC_12_NONNULL_WORKAROUND
35#if defined(_MSC_VER) || defined(__APPLE__)
36# define TEUCHOS_NO_ZERO_ITERATOR_CONVERSION
39#if defined(__IBMC__) || defined(__IBMCPP__)
40# ifndef TEMPLATE_FRIENDS_NOT_SUPPORTED
41# define TEMPLATE_FRIENDS_NOT_SUPPORTED
43# ifndef TEUCHOS_PRIVIATE_DELETE_NOT_SUPPORTED
44# define TEUCHOS_PRIVIATE_DELETE_NOT_SUPPORTED
81#if defined(__IBMCPP__)
82# pragma do_not_instantiate std::fpos<mbstate_t>
85const double Teuchos_MinDouble = 1.0E-100;
86const double Teuchos_MaxDouble = 1.0E+100;
87const double Teuchos_Overflow = 1.79E308;
88const double Teuchos_Underflow = 2.23E-308;
101#ifdef TEUCHOS_CHK_PTR
102#undef TEUCHOS_CHK_PTR
104#ifdef TEUCHOS_CHK_REF
105#undef TEUCHOS_CHK_REF
114typedef TEUCHOS_ORDINAL_TYPE Teuchos_Ordinal;
117namespace Teuchos {
typedef Teuchos_Ordinal Ordinal; }
121TEUCHOS_DEPRECATED
typedef Teuchos_Ordinal Teuchos_Index;
125#define TEUCHOS_CHK_ERR(a) { if (a != 0) return(a);}
126#define TEUCHOS_CHK_PTR(a) { return(a);}
127#define TEUCHOS_CHK_REF(a) { return(a);}
130const int Teuchos_DefaultTracebackMode = 1;
134#define TEUCHOS_MAX(x,y) (( (x) > (y) ) ? (x) : (y) )
135#define TEUCHOS_MIN(x,y) (( (x) < (y) ) ? (x) : (y) )
136#define TEUCHOS_SGN(x) (( (x) < 0.0 ) ? -1.0 : 1.0 )
138#ifndef HAVE_FORTRAN_SUPPORT
139# ifndef FORTRAN_DISABLED
140# define FORTRAN_DISABLED
144#include "Teuchos_DLLExportMacro.h"
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...