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.

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

Koolis õpetatakse lastele korrutustabelit, mis on ka tegelikult otsingutabel, et kiirendada kõige sagedamine 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

Vahemälud 

Erinevad vahemälud töötavad ka nagu otsingutabel.

Riistvaralised otsingutabelid 
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.

Viited