Palautus 5

Algoritmi on nyt aikalailla valmis. Olen implementoinut Rabinin jaottomuustestin valmiiksi, ja lisäksi olen tehnyt muutamia eri heuristiikkoja joiden toivon tehostavan jaottomien polynomien löytämistä. Laitoin juuri hieman suuremman testiajon menemään ukko-klusterilla jotta saan hieman dataa eri heuristiikkojen toiminnasta. Jaottomien polynomien löytämiseen käytetyn algoritmin aikavaativuus on noin O(c*d^3) missä c on karakteristika ja d on polynomin aste, joten muutamaa sataa suuremmat asteet ovat jo hyvin hitaita.

Olin lisäksi käyttänyt muutamassa kohtaa Javan ArrayListia ja HashSetia. Korvasin ne omalla kahteen suuntaan linkitetyllä listalla SortedIntegerList joka pitää itsensä automaattisesti järjestyksessä. Tämä luokka ei toteuta mitään Javan valmiita rajapintoja koska tarvitsen hyvin vähän toiminnallisuutta.

Seuraavalla viikolla pitäisi kirjoittaa testaus- ja toteutusdokumentaatio. Lisäksi olisi hyvä ajaa algoritmia myös taulukkopolynomeilla eikä vain linkitetty lista-polynomitoteutuksella kuten tähän asti olen tehnyt. Koodissa on vielä muutenkin hieman hiomista, joitakin metodeja voisi selkeyttää ja poistaa hieman copy-paste-koodia. Tarkoituksena on myös ehtiä suorittaa lisää suorituskykytestausta luomilleni heuristiikoille.