-
-
Notifications
You must be signed in to change notification settings - Fork 488
Fix definitions of type_min and type_zero in xr_types.h
#1510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Conversation
|
This is related to #195. One of the reasons why this inconsistency still wasn't fixed is that I really don't know if everything will work correct after the change. Knowing the codebase, some code logic could depend on this inconsistency. The situation when some code was broken because another unrelated code has been changed happened many times |
13a36a3 to
1b49451
Compare
|
Okay I've now added type_lowest and accompanying constants and changed all usages of these constants across the code base to keep the old behavior. Making these changes I'm a bit suspicious about some of the uses of |
| ; | ||
| #ifdef DEBUG | ||
| if ((v.x * v.x + v.y * v.y + v.z * v.z) <= flt_zero) | ||
| if ((v.x * v.x + v.y * v.y + v.z * v.z) <= flt_min) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can this ever be true?
| a._13 * (a._21 * a._32 - a._22 * a._31)); | ||
|
|
||
| VERIFY(_abs(fDetInv) > flt_zero); | ||
| VERIFY(_abs(fDetInv) > flt_min); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar here this would always be true since flt_min is negative
1b49451 to
eea5ffe
Compare
eea5ffe to
80bfd73
Compare
The following usages across the code base were changed `flt_min` -> `flt_lowest` `flt_zero` -> `flt_min` `dbl_zero` -> `dbl_min`
80bfd73 to
fda0f0a
Compare
143d1ca to
118d39d
Compare
5b2ec76 to
6fffce9
Compare
e89fcc8 to
f6fd5cc
Compare
c3ffa4d to
09b0b99
Compare
e38d9d8 to
94d0261
Compare
While looking at the code inside
xr_types.hI've notices some very strange definitions which are used later in the code to define constants.type_minis not the minimum value of integer types it is actually the minimum + 1. This only works for floating point types.type_zerois the actual minimum of a type. But is only 0 for unsigned types. For signed types its a negative value.Thus we have some very strange constants.
Fixes #195