Join GitHub today
Coverage now 100%, added POD... #4
I did change how two methods could be called ... matrix_multiply is now a proper instance method, and new can no longer be called on an instance ... so updated the version number.
I hope that last change isn't annoying. The construct that allowed new to be called on the class or an instance was hard to test properly, and when I researched it, found a recommendation to not do it that way that made a lot of sense: http://www.stonehenge.com/merlyn/UnixReview/col52.html ... I hope that's okay!
This all looks good, thanks again.
I'm OK committing it like it is, but I do have one remark that we should discuss first: Personally I would not have exposed all these internal methods (matrix_multiply, set_matrix_2x3, determinant, matrix_2x3, concatenate_matrix_2x3).
That is a lot of extra API surface and cognitive burden for the client. They were all supposed to be hidden and the interface was supposed to be just "concatenate". I think a client can access all the functionality through that one simple API call.
I assume that you exposed them for ease of coverage/unit testing, and not to improve the user-facing API. If that's the case, I would try to hit these paths with coverage tests without also exposing all these internals.
What do you think? And thanks again :)