Otsingutabel

Otsingutabel (inglise keeles lookup-table) on andmete tabel arvutiteaduses, kuhu on salvestatud mingi funktsiooni väärtused, et asendada jooksvalt nende arvutamine. Programmi tööajas võib sellest tulenev säästmine olla väga suur, sest tavaliselt on mälust andmete lugemine kordades kiirem, kui seda on mõni kallis arvutustehe. Otsingutabel võib olla enne valmis arvutatud ja juba programmi salvestatud või siis arvutatakse selle väärtused programmi initsialiseerimise faasis. Otsingutabeleid kasutatakse ka tihti igasuguse sisendi valideerimiseks: võrreldakse sisendit lubatud sisendite nimekirjaga jne.

Enne arvutite tulekut kasutati paberile prinditud otsingutabeleid, et kiirendada käsitsi keeruliste funktsioonide arvutamist. Nendeks funktsioonideks olid enamasti trigonomeetrilised funktsioonid ja logaritmid.[1]

Koolis õpetatakse lastele korrutustabelit, mis on ka tegelikult otsingutabel, et kiirendada kõige sagedamini kasutatavate numbrite korrutamist.

Esimeste arvutite juures olid sisend/väljund operatsioonid eriti aeglased. Ja nii tundus loogiline vähendada kulukaid lugemisoperatsioone kasutades tabeleid, kus olid ainult kõige sagedamini esinevad andmed. Tänapäeval on see protsess automatiseeritud (vt vahemälu), aga siiski on kasulik kasutada ka rakenduse otsingutabeleid nende andmete jaoks, mis ei muutu üldse või muutuvad harva.

Muud kasutusalad

[muuda | muuda lähteteksti]
 Pikemalt artiklis Vahemälu

Vahemälud töötavad ka nagu otsingutabel.

Riistvaralised otsingutabelid

[muuda | muuda lähteteksti]

Digitaalses loogikas saab implementeerida n-bitilist otsingutabelit multiplekseriga, mille sisendiks on otsingutabeli sisendid ja väljundid on konstantsed. n-bitine otsingutabel saab kujutada endast ükskõik millist n sisendiga Boole'i funktsiooni, modelleerides tõeväärtustabelit. Selliseid otsingutabeleid kasutatakse laialdaselt FPGA-des.

  1. Campbell-Kelly, Martin; Croarken, Mary; Flood, Raymond; Robson, Eleanor, toim-d (2. oktoober 2003) [2003]. The History of Mathematical Tables From Sumer to Spreadsheets (1st ed.). New York, USA: Oxford University Press. ISBN 978-0-19-850841-0.