Viikko 5

Skippasin viime viikon deadlinen, sillä keskityin kertaamaan ainoaan kesätenttiini. Tämä meni heittämällä läpi, joten tällä viikolla jatkoin mielelläni harjoitustyöni parissa.
Olen oppinut Cormenin luvun 28.1 sisällön. Kyseinen luku siis sisältää algoritmit LU(P)-hajotelmalle. Viimeisen parin viikon aikana olen onnistunut koodaamaan LU-hajotelman sekä reaalilukumatriiseille että kompleksilukumatriiseille. Luonnollisesti olen koodannut myös luokat kompleksiluvulle ja kompleksimatriisille. Samalla tuli kerrattua kompleksilukujen aritmetiikkaa. Tein myös yksikkötestejä kyseisille luokille ja kirjoitin dokumentaatiota. ComplexMatrix-luokan testit puuttuvat vielä, mutta teen ne ennen viimeistä palautusta. Aloitin suorituskykytestauksen, jonka ensimmäiset tulokset ovat sekä .dat että .png-tiedostoina näkyvissä repositorion kansion matrixcalc alla. Aloitin myös toteutus- sekä testausdokumentaatiota.
Toistaiseksi suurin kysymysmerkki on Strassenin algoritmin optimointi siten, ettei tarvitse luoda tajuttoman monta uutta taulukkoa. Uskon kuitenkin että tämäkin selviää ennen viimeisen palautuksen deadlinea.
Ohjelma on edistynyt erittäin hyvin, jopa komentorivipohjainen (toistaiseksi hieman buginen ja toiminnallisuudeltaan vajaa) käyttöliittymä on valmiina. Kyseisen käyttöliittymän aion myös hioa timantiksi ennen viimeistä palautusta, joten ensi viikollekin riittää varmasti tekemistä. Myös kaikki algoritmit ja tietorakenteet ovat valmiina, ja ohjelman kaikki ominaisuudet (peruslaskutoimitukset, determinantti, käänteismatriisi) on toteutettu.
Seuraavaksi aion siis koodata, testata ja dokumentoida ohjelmani loppuun. Tämä sisältää ainakin Strassenin optimoinnin, yksikkötestit kompleksimatriisille, käyttöliittymän parantamisen, suorituskykytestauksen vertailupohjaisesti (pitänee siis toteuttaa naiivi algoritmi determinantille ja Gaussin algoritmi) ja paljon refaktorointia.
Aivan! Tuli aivan viimeiseksi mieleen, että käyttöliittymäni sisältää yhden HashMapin. Tarkoittaako tämä, että minun tulisi koodata oma versioni hajautustaulusta, vai saako tässä tapauksessa käyttää Javan valmista versiota?