Openholo  v5.0
Open Source Digital Holographic Library
epsilon.h
Go to the documentation of this file.
1 /*M///////////////////////////////////////////////////////////////////////////////////////
2 //
3 // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
4 //
5 // By downloading, copying, installing or using the software you agree to this license.
6 // If you do not agree to this license, do not download, install, copy or use the software.
7 //
8 //
9 // License Agreement
10 // For Open Source Digital Holographic Library
11 //
12 // Openholo library is free software;
13 // you can redistribute it and/or modify it under the terms of the BSD 2-Clause license.
14 //
15 // Copyright (C) 2017-2024, Korea Electronics Technology Institute. All rights reserved.
16 // E-mail : contact.openholo@gmail.com
17 // Web : http://www.openholo.org
18 //
19 // Redistribution and use in source and binary forms, with or without modification,
20 // are permitted provided that the following conditions are met:
21 //
22 // 1. Redistribution's of source code must retain the above copyright notice,
23 // this list of conditions and the following disclaimer.
24 //
25 // 2. Redistribution's in binary form must reproduce the above copyright notice,
26 // this list of conditions and the following disclaimer in the documentation
27 // and/or other materials provided with the distribution.
28 //
29 // This software is provided by the copyright holders and contributors "as is" and
30 // any express or implied warranties, including, but not limited to, the implied
31 // warranties of merchantability and fitness for a particular purpose are disclaimed.
32 // In no event shall the copyright holder or contributors be liable for any direct,
33 // indirect, incidental, special, exemplary, or consequential damages
34 // (including, but not limited to, procurement of substitute goods or services;
35 // loss of use, data, or profits; or business interruption) however caused
36 // and on any theory of liability, whether in contract, strict liability,
37 // or tort (including negligence or otherwise) arising in any way out of
38 // the use of this software, even if advised of the possibility of such damage.
39 //
40 // This software contains opensource software released under GNU Generic Public License,
41 // NVDIA Software License Agreement, or CUDA supplement to Software License Agreement.
42 // Check whether software you use contains licensed software.
43 //
44 //M*/
45 
46 #ifndef __epsilon_h
47 #define __epsilon_h
48 
49 #include "typedef.h"
50 
51 namespace oph {
52 
53 extern Real epsilon;
54 extern Real user_epsilon;
56 
57 extern Real sqrt_epsilon;
58 extern Real unset_value;
59 extern Real zero_tolerance;
60 extern Real angle_tolerance;
61 extern Real zero_epsilon;
62 
63 #ifndef M_PI
64 #define M_PI 3.141592653589793238462643383279502884197169399375105820974944592308
65 #endif
66 
67 
68 /*|--------------------------------------------------------------------------*/
69 /*| Set user epsilon : Throughout the running program we could use the same */
70 /*| user epsilon defined here. Default user_epsilon is always 1e-8. */
71 /*|--------------------------------------------------------------------------*/
72 void set_u_epsilon(Real a);
73 
74 void reset_u_epsilon();
75 
76 
77 void set_zero_epsilon(Real a);
78 
79 void reset_zero_epsilon();
80 /*|--------------------------------------------------------------------------*/
81 /*| Approximated version of checking equality : using epsilon */
82 /*|--------------------------------------------------------------------------*/
83 int apx_equal(Real x, Real y);
84 
85 int apx_equal(Real x, Real y, Real eps);
86 
87 }; // namespace oph
88 #endif // !__epsilon_h
Real sqrt_epsilon
Definition: epsilon.cpp:56
Real user_epsilon
Definition: epsilon.cpp:54
float Real
Definition: typedef.h:55
void reset_zero_epsilon()
Definition: epsilon.cpp:83
Real zero_tolerance
Definition: epsilon.cpp:58
Real epsilon
Definition: epsilon.cpp:53
Real unset_value
Definition: epsilon.cpp:57
int apx_equal(Real x, Real y)
Definition: epsilon.cpp:91
void reset_u_epsilon()
Definition: epsilon.cpp:73
Real zero_epsilon
Definition: epsilon.cpp:59
Real angle_tolerance
Definition: epsilon.cpp:60
void set_zero_epsilon(Real a)
Definition: epsilon.cpp:77
Real intersection_epsilon
Definition: epsilon.cpp:55
Definition: Bitmap.h:49
void set_u_epsilon(Real a)
Definition: epsilon.cpp:68