-
Notifications
You must be signed in to change notification settings - Fork 19
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
bounding_box format #34
Comments
During initial work on the |
That said, I agree with changing the return type as you propose. I think that the main disadvantage is an extra transpose (or otherwise, change to the shape of) to the corner vertices. However, that cost is small compared to benefits of using transformations in your case. |
The question then is whether making the proposed change is going to disrupt anyone's use of |
The method
In the past, in Matlab code (e.g., The proposed change is to return a |
OK, an I could switch over all the internal calls to |
Regarding version management, I increment the minor version number for incompatible API changes. The version up to a037b55 has been below 1.0.0, so this practice happens to be compatible with semantic versioning. I do not follow semantic versioning strictly, I agree with several of the principles it describes. If applied after version 0.1.4 is released, this change would result in an increment to version 0.2.0. I think that 1.0.0 should not be used before the API is overhauled, testing coverage increased to more than 80%, documentation written, and some algorithms reimplemented. |
I agree with the comment above about requirements before v1.0.0. So, likely the next version (pending this issue) will be 0.2.0. regarding #34 (comment), @carterbox have you already modified |
Yeah, brain fart this morning, I forgot that 0.x.y is pre-release and APIs are considered unstable. I have not already modified I'm offering to make all of the changes, but I am uncertain whether it would make any significant impact on performance. |
To be sure that I understand where we are on this issue:
Here, code quality would mean easier to check and understand matrix computations vs. tuples of vectors. |
In the discussion above, we decided that for multiple vectors in one matrix, column vectors are the preference. However, for a lonesome vector, e.g. The problem is that, there is an inconsistent definition of vector type things. Travis tests failing for #39 and the changes at 770a408 are related to this topic. |
For the question of the opening post and with some relevance to the question about lonesome vectors, I am also in support of using matrices of shape For lonesome vectors, I do not think that we can give a general rule because vectors can be expressed both in the type |
In a bounding box matrix of shape |
I just did some reading about the differences between choosing The reasons cited seem to be:
Additionally, everywhere in |
re #34 (comment), I do not think that precedence in the literature is a sufficient argument because in a practical implementation, we must also be concerned with issues of numerical computation, such as speed and precision. However, the fact that previously re #34 (comment), to be clear, I think that the type to which you refer is Another interesting consideration about performance is the configuration in which the arrays are stored. The default of |
To be clear, I did not intend to entirely dismiss the argument about following the notation in the literature. Indeed, following it makes understanding easier. |
Previously, the implementation used right multiplication for rotation matrices. This is because the source material used this convention. However, we decided in #34 to use column vectors and left multiplication in `polytope`, so this commit converts the internal use of matrix multiplication to reflect this preference.
Why is bounding box stored as a 2-tuple of vertical arrays?
For the purpose of applying transformations to the bounding box (#32), I think it would be better to store the bounding box as a single 2xN array where the min corner and max corner are their own rows.
The text was updated successfully, but these errors were encountered: