Version 2 of one of my "old" projects, a library and demo program that can do all kinds of useful stuff with matrices, in a very efficient manner.
No followers yet
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
So, full honesty here. I tried doing the determinant and echelon form reductions and... It didn't go as plan. The commits are there, but I completely scraped that work, because, well, god knows why, but it didn't work. I will probably just reutilise what I used for the original Matrinator, if a bit improved overall. Let's see how that goes... If it even goes...
Finally added matrix multiplication! I also added matrix division, which is basically just A(1/B), which *can come useful, even if I don't know where, and it's cheaper than doing B=1/B and then AB, soooooo, it *will** be great in case it is useful :D I have also added the 1/M calculation and transposition, and now I am off to do determinants, for which I will probably just use reduction tbh, because, for an nxn matrix, most methods are O(n!) in average, whilst the Gauss-Jordan method should be n(n-1)/2 operations at most, which is O(n2) (And it will also allow me to do inverses in n(n-1) operations). My previous iteration of the Matrinator project CLEARLY showed that the Gauss-Jordan method is a much bigger improvement over the adjugates or the canonical determinant, by a lot! So, lets see how it goes... :D
So, this devlog is shorter but I just wanted to make everything as compatible as possible. I have adapted every single function that could take it to take a template, so in this way the end user has to worry the least possible amount about the whats and the nots of the whatnots of the various C++ types, and instead will just get an error if they fucked something up, and otherwise, we'll keep living, which is just what we want :D
Welp, I have done a bit more work, and by using some std helpers, I have not only made a bit more of a great assertion that we are properly using everything, but I have also managed to make it so we can define our matrices based on functions of all kinds, which is something that can come in really really handy, especially if you are in a pinch and need to fill out a matrix with some data that follows some model you know? Anyways, time to go back to the grind cave now :3
Would have preferred to do this devlog way before, but hey, servers were down... Anyways, I have implemented the very basics. For now the matrix class is basically a really specific array wrapper class, BUT, it's really cool because I did not use any std classes (other than cout and ostream to display the matrix on the console lol), so it is quite literally implemented from zero, as of right now. It also supports any number of dimensions, and any numerical type for its values, and it handles errors by itself, which is what I am hopefully going for yay :D