Belos Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BelosConfigDefs.hpp
Go to the documentation of this file.
1 //@HEADER
2 // ************************************************************************
3 //
4 // Belos: Block Linear Solvers Package
5 // Copyright 2004 Sandia Corporation
6 //
7 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
8 // the U.S. Government retains certain rights in this software.
9 //
10 // Redistribution and use in source and binary forms, with or without
11 // modification, are permitted provided that the following conditions are
12 // met:
13 //
14 // 1. Redistributions of source code must retain the above copyright
15 // notice, this list of conditions and the following disclaimer.
16 //
17 // 2. Redistributions in binary form must reproduce the above copyright
18 // notice, this list of conditions and the following disclaimer in the
19 // documentation and/or other materials provided with the distribution.
20 //
21 // 3. Neither the name of the Corporation nor the names of the
22 // contributors may be used to endorse or promote products derived from
23 // this software without specific prior written permission.
24 //
25 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 //
37 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
38 //
39 // ************************************************************************
40 //@HEADER
41 
42 #ifndef BELOS_CONFIGDEFS_HPP
43 #define BELOS_CONFIGDEFS_HPP
44 
49 #ifndef __cplusplus
50 #define __cplusplus
51 #endif
52 
53 #ifndef TRILINOS_NO_CONFIG_H
54 
55 /*
56  * The macros PACKAGE, PACKAGE_NAME, etc, get defined for each package and need to
57  * be undef'd here to avoid warnings when this file is included from another package.
58  * KL 11/25/02
59  */
60 #ifdef PACKAGE
61 #undef PACKAGE
62 #endif
63 
64 #ifdef PACKAGE_NAME
65 #undef PACKAGE_NAME
66 #endif
67 
68 #ifdef PACKAGE_BUGREPORT
69 #undef PACKAGE_BUGREPORT
70 #endif
71 
72 #ifdef PACKAGE_STRING
73 #undef PACKAGE_STRING
74 #endif
75 
76 #ifdef PACKAGE_TARNAME
77 #undef PACKAGE_TARNAME
78 #endif
79 
80 #ifdef PACKAGE_VERSION
81 #undef PACKAGE_VERSION
82 #endif
83 
84 #ifdef VERSION
85 #undef VERSION
86 #endif
87 
88 #include <Belos_config.h>
89 
90 #ifdef HAVE_MPI
91 #ifndef EPETRA_MPI
92 #define EPETRA_MPI
93 #endif
94 #endif
95 
96 #include "Teuchos_ConfigDefs.hpp"
97 
98 #else
99 
100 #include <iostream>
101 #include <string>
102 #include <stdexcept>
103 #include <vector>
104 
105 #if defined(SGI) || defined(SGI64) || defined(SGI32) || defined(CPLANT) || defined(TFLOP)
106 
107 #include <stdlib.h>
108 #include <stdio.h>
109 #include <assert.h>
110 #include <math.h>
111 #include <complex.h>
112 
113 #else
114 
115 #include <cstdlib>
116 #include <cstdio>
117 #include <cassert>
118 #include <cmath>
119 #include <complex>
120 
121 #endif
122 
123 #endif /*ndef HAVE_CONFIG_H*/
124 
125 
126 /* Define some macros */
127 #define BELOS_MAX(x,y) (( (x) > (y) ) ? (x) : (y) ) /* max function */
128 #define BELOS_MIN(x,y) (( (x) < (y) ) ? (x) : (y) ) /* min function */
129 #define BELOS_SGN(x) (( (x) < 0.0 ) ? -1.0 : 1.0 ) /* sign function */
130 
131 namespace Belos { std::string Belos_Version(); }
132 
133 // This include file defines macros to avoid warnings under CUDA. See github issue #1133.
135 
136 #endif /* BELOS_CONFIGDEFS_HPP */
std::string Belos_Version()