TiraLabra/TiraLabra — pull request #306 by ousou (2014-08-03 11:04:15+00:00)
Title: Palautus 1

Sain tällä viikolla tehtyä määrittelydokumentin lisäksi rajapinnan IPolynomial polynomeille, ja rupesin tekemään siitä implementaatiota LinkedListPolynomial, joka kuvaa polynomin kahteen suuntaan linkitettynä listana. Implementaatio on testattu ja toteutettu lukuunottamatta kertolaskua ja jakolaskua, jotka toki ovat ne vaikeimmat laskutoimitukset.

Jotkin luokan LinkedListPolynomial metodeista ovat melko sotkuisia johtuen siitä, että monessa tilanteessa pitää tarkastaa useita erikoistapauksia. Metodit kuitenkin näyttävät tällä hetkellä toimivan, joten ne saavat nyt toistaiseksi jäädä ennalleen. Myöhemmin voin tarvittaessa refaktoroida ne. Linkitettyjen listojen manipulointi oli aluksi hieman rasittavaa, etenkin kun kysessä on kahteen suuntaan linkitetty lista. Osoittimia on sen verran paljon että jokin niistä meinasi aina unohtua.

Seuraavalla viikolla toteutan LinkedListPolynomial-luokan metodit multiply ja divide, ja sen jälkeen luon toisen, taulukoihin perustuvan implementaation rajapinnasta IPolynomial. Tämän jälkeen implementoin Eukleideen algoritmin polynomeille, ja jos aikaa riittää, rupean toteuttamaan Rabinin jaottomuustestiä. Tavoitteena on saada jaottomuustesti toteutettua niin pikaisesti kuin mahdollista jotta minulle jää tarpeeksi aikaa kehittää heuristiikkaa jaottomien polynomien löytämiseksi.