title: Lookup table
text: # Lookup table
  
  In informatica per lookup table si intende una struttura dati, generalmente un array, usata per sostituire operazioni di calcolo a runtime con una più semplice operazione di consultazione. Il guadagno di velocità può essere significativo, poiché recuperare un valore dalla memoria è spesso più veloce che sottoporsi a calcoli con tempi di esecuzione dispendiosi.
  
  ## Descrizione
  
  Una tabella di associazione, o tabella dati, è una struttura che permette di associare ad ogni ammissibile combinazione di dati in ingresso una corrispondente (non necessariamente univoca) configurazione di dati in uscita. Il termine inglese utilizzato per descriverle, lookup table, sottintende l'operazione di consultazione (lookup, in inglese) che permette di associare i dati in uscita a una determinata combinazione dei dati in ingresso.
  
  Un esempio classico sono le tabelle trigonometriche. Calcolare il seno di valore ogni qual volta serve può rallentare i processi di calcolo in certe applicazioni. Per evitare ciò l'applicazione all'avvio può impiegare qualche secondo per calcolarsi il valore del seno per un certo numero di valori. Poi, quando il programma ha bisogno del seno di un certo valore, usa la lookup table per recuperare il valore del seno dall'indirizzo della memoria, anziché calcolarlo usando una formula matematica. Le lookup table sono usate anche in co-processori matematici, un errore in una lookup table fu responsabile di un grave bug nelle unità floating point dei processori Intel.
  
  Nell'elaborazione digitale delle immagini le lookup table sono spesso chiamate LUT, e sono tabelle che collegano indici numerici (che vanno generalmente da 0 a 255) con valori di output.
  
  Una delle più comuni lookup table è la colormap (tavola colore) o palette. Questa LUT viene usata per determinare i valori dei colori e dell'intensità con cui una particolare immagine deve essere visualizzata. Un'altra comune lookup table è usata dai server DNS (DNS Lookup), cui viene chiesto di trovare l'indirizzo IP di un host, dato il nome di dominio di tale host. Alcuni nomi di dominio possono essere associati a svariati indirizzi IP. Il lookup inverso (Reverse DNS Lookup) esegue il compito inverso: dato l'indirizzo IP, cerca di risolvere il nome di dominio associato allo specifico indirizzo IP.
  
  In casi di errore, può verificarsi un lookup error.
  
  