| 123456789101112131415161718192021222324252627282930313233343536 |
- //
- // double_equals.h
- // limit
- //
- // Created by Sam Jaffe on 12/9/23.
- //
- #pragma once
- #include <algorithm>
- namespace math {
- inline bool approx_equal(double lhs, double rhs, double eps) {
- double const a = std::abs(lhs);
- double const b = std::abs(rhs);
- return std::abs(lhs - rhs) <= (std::max(a, b) * eps);
- }
- inline bool essentially_equal(double lhs, double rhs, double eps) {
- double const a = std::abs(lhs);
- double const b = std::abs(rhs);
- return std::abs(lhs - rhs) <= (std::min(a, b) * eps);
- }
- inline bool definitely_greater(double lhs, double rhs, double eps) {
- double const a = std::abs(lhs);
- double const b = std::abs(rhs);
- return (lhs - rhs) > (std::max(a, b) * eps);
- }
- inline bool definitely_less(double lhs, double rhs, double eps) {
- double const a = std::abs(lhs);
- double const b = std::abs(rhs);
- return (rhs - lhs) > (std::max(a, b) * eps);
- }
- }
|