Třída pro matice v C# (Strassenův algoritmus, LU rozklad)
Toto je jednoduchá třída, která obsahuje opravdu rychlé násobení matic (Strassenův algoritmus, který je cache oblivious), LU rozklad a další funkce.
Obsahuje mocnění celým číslem (-1 : inverze, ...), LU rozklad, který se dál používá pro výpočet determinantu inverze a řešení systému lineárních rovnic. Samozřejmostí jsou standardní funkce jako sčítání matic, násobení, transpozice ... Třída má vlastní systém vyjímek a přetížené operátory, takže lze psát
C = A * B; D = -C; ...
Test
Při pokusu násobení matice 500x500 čísel je výpočet 3 krát rychlejší, než klasickým algoritmem ($O(n^3)$).
Stažení kódu
CS fileEXE example (.NET - Windows)
Okomentovat