Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upSymmetric matrices #59
Conversation
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
…Double Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
… of "this" Signed-off-by: Alexander Karatarakis <[email protected]>
…est a fullyMutable matrix Signed-off-by: Alexander Karatarakis <[email protected]>
…od names Signed-off-by: Alexander Karatarakis <[email protected]>
…te symmetric+non-symmetric into symmetric Signed-off-by: Alexander Karatarakis <[email protected]>
…r" as SymmetricMatrix Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
…rix since symm matrices are always square Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Signed-off-by: Alexander Karatarakis <[email protected]>
Impressive, thanks! FYI, currently in mainline in the la-symmetric branch. |
Fread75
commented
Dec 13, 2019
This feature could be really useful for my use case. Do you still plan to merge it to master ? |
alexkaratarakis commentedNov 26, 2012
Adds symmetric matrices.
-Symmetric class family
SquareMatrix->SymmetricMatrix->SymmetricDenseMatrix
There are some choices that need to be made here:
a) The transpose of a symmetric matrix is the same as the original matrix. This means that Tranpose() can simply return "this". However, this has the pitfall of not being a separate entity and thus changes to the "transposed" affect the original. Since there was a Unit test explicitly checking for NotSameObject, Transpose() return this.clone().
b) Writing the symmetric matrix: [i,j] & [j,i] point to the same element. Modifying the strictly lower triangle is disabled to avoid hard to debug errors. See issue 39 (#39) for more information.
This uses the recently introduced MatrixStorage. The Storages used for Symmetric Matrices also have an Indexer as a separate class. The same indexer is used for Triangular matrices so its worth having it separately to avoid duplication. Included is a hierarchy to cover Indexers, StaticIndexers, (in contrast to DynamicIndexers used by formats such as Skyline) and PackedStorage with an implemented UpperPackedStorage.
99b710a [Matrix.Arithmetic] Matrix-Matrix operations that CreateMatrix() request a fullyMutable matrix
94747be [MatrixTests.Arithmetic] Fix reversed CanKroneckerProduct() test method names
are the only ones (I think) that modify existing files. They are bug fixes that can be independently cherry picked for master.