User Tools

Site Tools


math_library

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
math_library [2022/04/29 23:39]
max [Float comparison]
math_library [2022/04/29 23:41]
max
Line 17: Line 17:
  
 To learn which methods Impulse Physics offers to compare floating-point numbers, visit [[floating point comparison]]. To learn which methods Impulse Physics offers to compare floating-point numbers, visit [[floating point comparison]].
- 
-It also means that for example, 0.2 + 0.1 is not equal to 0.3; rather it is equal to 0.30000000000000004. 
-Since computers are exact in comparison by default, you can see how you can run into issues with this. 
- 
- 
-Impulse, therefore, offers two methods of float comparison by default.  
-The default option is a combination of both the absolute and relative methods of epsilon comparison. ((http://www.realtimecollisiondetection.net/pubs/Tolerances/)) 
-The second option is simply the computer's default "==" operator. It is not recommended, but it is marginally faster.  
- 
-==== The absolute method ==== 
- 
-The absolute method takes the absolute value of ''x - y'', then checks if they are less than or equal to the FLT_EPSILON preprocessor definition. ((FLT_EPSILON is defined as 1.192092896e-07F)) 
- 
-The absolute method will work, but it does not work on large values. 
- 
-==== The relative method ==== 
- 
-The relative method takes the result of the absolute method and multiplies the epsilon by ''x'' or ''y'', depending on which is larger. 
- 
-The drawback to this method is that it does not work on small values. 
- 
-==== The combined method ==== 
- 
-Considering the strengths and drawbacks of the two methods above, you can combine the two to overcome these limitations.  
- 
-The combined method takes the result of the absolute method and multiplies it by the largest absolute number out of a set of ''1'', ''x'', or ''y''. Very similar to the relative method. 
- 
-This method gives us good results, but it is not without its drawbacks since it uses the same epsilon for the relative and the absolute tolerance.  
- 
-For further reading, please check out [[http://www.realtimecollisiondetection.net/pubs/Tolerances/|Christer Erison's research on this topic.]] 
math_library.txt ยท Last modified: 2022/05/01 18:38 by max