| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 #ifndef SkPathOpsTypes_DEFINED | 7 #ifndef SkPathOpsTypes_DEFINED |
| 8 #define SkPathOpsTypes_DEFINED | 8 #define SkPathOpsTypes_DEFINED |
| 9 | 9 |
| 10 #include <float.h> // for FLT_EPSILON | 10 #include <float.h> // for FLT_EPSILON |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 }; | 23 }; |
| 24 | 24 |
| 25 // Use Almost Equal when comparing coordinates. Use epsilon to compare T values. | 25 // Use Almost Equal when comparing coordinates. Use epsilon to compare T values. |
| 26 bool AlmostEqualUlps(float a, float b); | 26 bool AlmostEqualUlps(float a, float b); |
| 27 inline bool AlmostEqualUlps(double a, double b) { | 27 inline bool AlmostEqualUlps(double a, double b) { |
| 28 return AlmostEqualUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); | 28 return AlmostEqualUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); |
| 29 } | 29 } |
| 30 | 30 |
| 31 // Use Almost Dequal when comparing should not special case denormalized values. | 31 // Use Almost Dequal when comparing should not special case denormalized values. |
| 32 bool AlmostDequalUlps(float a, float b); | 32 bool AlmostDequalUlps(float a, float b); |
| 33 inline bool AlmostDequalUlps(double a, double b) { | 33 bool AlmostDequalUlps(double a, double b); |
| 34 return AlmostDequalUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); | |
| 35 } | |
| 36 | 34 |
| 37 bool NotAlmostEqualUlps(float a, float b); | 35 bool NotAlmostEqualUlps(float a, float b); |
| 38 inline bool NotAlmostEqualUlps(double a, double b) { | 36 inline bool NotAlmostEqualUlps(double a, double b) { |
| 39 return NotAlmostEqualUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); | 37 return NotAlmostEqualUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); |
| 40 } | 38 } |
| 41 | 39 |
| 42 bool NotAlmostDequalUlps(float a, float b); | 40 bool NotAlmostDequalUlps(float a, float b); |
| 43 inline bool NotAlmostDequalUlps(double a, double b) { | 41 inline bool NotAlmostDequalUlps(double a, double b) { |
| 44 return NotAlmostDequalUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); | 42 return NotAlmostDequalUlps(SkDoubleToScalar(a), SkDoubleToScalar(b)); |
| 45 } | 43 } |
| (...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 /* Returns 1 if negative, 2 if zero, 4 if positive | 361 /* Returns 1 if negative, 2 if zero, 4 if positive |
| 364 */ | 362 */ |
| 365 inline int SkDSideBit(double x) { | 363 inline int SkDSideBit(double x) { |
| 366 return 1 << SKDSide(x); | 364 return 1 << SKDSide(x); |
| 367 } | 365 } |
| 368 | 366 |
| 369 inline double SkPinT(double t) { | 367 inline double SkPinT(double t) { |
| 370 return precisely_less_than_zero(t) ? 0 : precisely_greater_than_one(t) ? 1 :
t; | 368 return precisely_less_than_zero(t) ? 0 : precisely_greater_than_one(t) ? 1 :
t; |
| 371 } | 369 } |
| 372 | 370 |
| 371 struct SkFloat128 { |
| 372 int fExp; |
| 373 int64_t fHigh; |
| 374 uint64_t fLow; |
| 375 }; |
| 376 |
| 377 double SkFloat128Sub(const SkFloat128& a, const SkFloat128& b); |
| 378 SkFloat128 SkFloat128Mul(double a, double b); |
| 379 SkFloat128 SkFloat128Mul(SkFloat128& a, double b); |
| 380 |
| 373 #endif | 381 #endif |
| OLD | NEW |