1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | foam-extend: Open Source CFD
4 \\ / O peration | Version: 3.2
5 \\ / A nd | Web: http://www.foam-extend.org
6 \\/ M anipulation | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
9 This file is part of foam-extend.
11 foam-extend is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by the
13 Free Software Foundation, either version 3 of the License, or (at your
14 option) any later version.
16 foam-extend is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
28 Long double precision floating point scalar type.
33 \*---------------------------------------------------------------------------*/
35 #ifndef longDoubleScalar_H
36 #define longDoubleScalar_H
38 #include "doubleFloat.H"
39 #include "direction.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 typedef long double longDoubleScalar;
51 // Largest and smallest scalar values allowed in certain parts of the code.
52 // (15 is the number of significant figures in an
53 // IEEE double precision number. See limits.h or float.h)
54 static const longDoubleScalar longDoubleScalarGREAT = 1.0e+15;
55 static const longDoubleScalar longDoubleScalarVGREAT = 1.0e+300;
56 static const longDoubleScalar longDoubleScalarROOTVGREAT = 1.0e+150;
57 static const longDoubleScalar longDoubleScalarSMALL = 1.0e-15;
58 static const longDoubleScalar longDoubleScalarVSMALL = 1.0e-300;
59 static const longDoubleScalar longDoubleScalarROOTVSMALL = 1.0e-150;
62 #define Scalar longDoubleScalar
63 #define ScalarVGREAT longDoubleScalarVGREAT
64 #define ScalarVSMALL longDoubleScalarVSMALL
65 #define readScalar readLongDoubleScalar
67 inline Scalar mag(const Scalar s)
72 #define transFunc(func) \
73 inline Scalar func(const Scalar s) \
78 #include "ScalarTemplate.H"
80 inline Scalar hypot(const Scalar x, const Scalar y)
85 inline Scalar atan2(const Scalar y, const Scalar x)
90 inline Scalar jn(const int n, const Scalar s)
95 inline Scalar yn(const int n, const Scalar s)
107 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
109 } // End namespace Foam
111 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
115 // ************************************************************************* //