-
Nerd_STF v2.4.1 Stable
released this
2023-07-16 20:19:17 -04:00 | 0 commits to v2.4 since this releaseHey everyone! This is one of the larger small updates, and I'm pretty proud of what I got done in a week.
Along with adding setters to parts like
Float3.XYand fixing a few bugs, almost all improvements in this update are related to matricies. First of all, I've added a bunch of new items to theIMatrixinterface. Now, any deriving matrix has more requirements that fit the regularMatrixtype. I don't know why one would use theIMatrixinterface rather than a specific matrix type, but now the options are more sophisticated.I've added some new stuff to all the matrix types, including row operations. You can now scale a row, add a row to another, and swap two rows. If I become aware of any more commonly-used row operations, I'll add then in a
2.4.2update. But I think I've got all the good ones. There is also a mutable version of each operation which, rather than returning a new matrix with changes made, instead applies the changes to itself.Did you know I made two seperate blunders in the
Cofactor()method? For theMatrix2x2version of theCofactor()method, I had the diagonal elements swapped. Whoops. For theMatrixversion of theCofactor()method, matricies with even column count would break because of the alternating sign pattern I was using. Now, as far as I know, that bug is fixed.The last thing I did was add the ability to turn a matrix into its equivalent row-echelon form. This is applicable only to the
Matrixtype (the dynamic one), and works with some levels of success. It's a little weird and tends to give results with lots of negative zeroes, but overall it's fine, I think. As far as I know there aren't any obvious bugs. We'll see though.Anyway, that's everything in this update. Again, pretty small, but meaningful nonetheless. Unless I haven't screwed anything up, the next update I work on will be
2.5, so I'll see you then!Here's the full changelog:
* Nerd_STF * Mathematics * Abstract * IMatrix + AddRow(int, int, float) + AddRowMutable(int, int, float) + Cofactor() + GetColumn(int) + GetRow(int) + ScaleRow(int, float) + ScaleRowMutable(int, float) + SetColumn(int, float[]) + SetRow(int, float[]) + Size + SwapRows(int, int) + SwapRowsMutable(int, int) + this[int, int] + this[Index, Index] * Algebra * Matrix + AddRow(int, int, float) + AddRowMutable(int, int, float) + ScaleRow(int, float) + ScaleRowMutable(int, float) + SwapRows(int, int) + SwapRowsMutable(int, int) = Fixed a blunder in `SignGrid(Int2)` with signs being incorrectly placed on matrixes with even column count. * Matrix2x2 + AddRow(int, int, float) + AddRowMutable(int, int, float) + GetColumn(int) + GetRow(int) + ScaleRow(int, float) + ScaleRowMutable(int, float) + SetColumn(int, float[]) + SetRow(int, float[]) + Size + SwapRows(int, int) + SwapRowsMutable(int, int) = Fixed a blunder in `Cofactor()` with the position of elements. * Matrix3x3 + AddRow(int, int, float) + AddRowMutable(int, int, float) + GetColumn(int) + GetRow(int) + ScaleRow(int, float) + ScaleRowMutable(int, float) + SetColumn(int, float[]) + SetRow(int, float[]) + Size + SwapRows(int, int) + SwapRowsMutable(int, int) * Matrix4x4 + AddRow(int, int, float) + AddRowMutable(int, int, float) + GetColumn(int) + GetRow(int) + ScaleRow(int, float) + ScaleRowMutable(int, float) + SetColumn(int, float[]) + SetRow(int, float[]) + Size + SwapRows(int, int) + SwapRowsMutable(int, int) * NumberSystems * Complex + operator Complex(SystemComplex) + operator SystemComplex(Complex) * Quaternion + operator Quaternion(SystemQuaternion) + operator SystemQuaternion(Quaternion) * Float3 = Added a setter to `XY` = Added a setter to `XZ` = Added a setter to `YZ` * Float4 = Added a setter to `XW` = Added a setter to `XY` = Added a setter to `XZ` = Added a setter to `YW` = Added a setter to `YZ` = Added a setter to `ZW` = Added a setter to `XYW` = Added a setter to `XYZ` = Added a setter to `XZW` = Added a setter to `YZW` * Int3 = Added a setter to `XY` = Added a setter to `XZ` = Added a setter to `YZ` * Int4 = Added a setter to `XW` = Added a setter to `XY` = Added a setter to `XZ` = Added a setter to `YW` = Added a setter to `YZ` = Added a setter to `ZW` = Added a setter to `XYW` = Added a setter to `XYZ` = Added a setter to `XZW` = Added a setter to `YZW`Downloads