Pereiti prie turinio

Kahano sudėties algoritmas

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.

Kahano sudėties algoritmas randa daugelio slankaus kablelio tipo skaičių sumą tiksliau, nei ji gaunama tiesiog sudedant šiuos skaičius. Suma visada randama ribotu tikslumu, nes veiksmai su slankaus kablelio (angl. real, double) skaičiais yra apytiksliai. Algoritmą pasiūlė Viljamas Kahanas.[1]

Pseudokodu algoritmas užrašomas taip:

function kahanSum(input, n)
    var sum = input[1]
    var c = 0.0
    for i = 2 to n
        y = input[i] – c
        t = sum + y
        c = (t – sum) – y
        sum = t
    return sum
  1. Kahan, William (1965 m. sausio mėn.), „Further remarks on reducing truncation errors“ (PDF), Communications of the ACM, 8 (1): 40, doi:10.1145/363707.363723, S2CID 22584810, suarchyvuotas originalas (PDF) 2018-02-09 Archyvuota kopija 2018-02-09 iš Wayback Machine projekto..