ricosjp / monolish

monolish: MONOlithic LInear equation Solvers for Highly-parallel architecture
Apache License 2.0
195 stars 12 forks source link

Inconsistent implementation of transpose() #79

Closed t-hishinuma closed 2 years ago

t-hishinuma commented 2 years ago

Dense.transpose(A) is Dense = A^T COO.transpose(A) is A = COO^T

correct: A.,transpose() // A = A^T A.transpose(B) // A=B^T

t-hishinuma commented 2 years ago

Performance of transpose() in Dense is low due to poor implementation for square matrix. I refactored it so that it can be parallelized.

I have confirmed that the performance improves with a simple benchmark. image