ISO/IEC 10967
# ISO/IEC 10967

ISO/IEC 10967 (Language independent arithmetic) è la denominazione di una serie di standard per l'aritmetica dei calcolatori. Al contrario dello standard ISO/IEC/IEEE 60559, meglio conosciuto come IEEE 754, non include i dettagli riguardanti la rappresentazione dei valori, e si può quindi utilizzare per qualunque valore di precisione. Tuttavia, le parti 2 e 3 dello standard fanno riferimento per lo più alla precisione utilizzata dallo standard IEEE 754.

## Composizione

Lo standard ISO/IEC 10967 si compone di tre parti:

* LIA-1: Integer and floating point arithmetic (aritmetica intera e in virgola mobile, seconda edizione del 2012.
* LIA-2: Elementary numerical functions (funzioni numeriche elementari), prima edizione del 2001.
* LIA-3: Complex integer and floating point arithmetic and complex elementary numerical functions, (aritmetica complessa intera e in virgola mobile, e funzioni numeriche elementari complesse), prima edizione del 2006.

### LIA-1

La prima parte definisce i tipi di dato interi e in virgola mobile; definisce inoltre le operazioni aritmetiche di base (inclusi i confronti) sui valori interi e in virgola mobile. Anche se lo standard non include dettagli sulla rappresentazione in memoria dei valori, la maggior parte delle implementazioni utilizzerà a tale scopo le modalità illustrate nello standard IEEE 754.

### LIA-2

La seconda parte, basata per lo più sulle specifiche del linguaggio Ada, definisce ulteriori operazioni sugli interi e sui numeri in virgola mobile, e impone dei requisiti per la precisione numerica delle funzioni elementari.

### LIA-3

La terza parte, ispirata dalle specifiche dei linguaggi C, Ada e Common LISP, generalizza le prime due estendendone le definizioni ai numeri immaginari e complessi.

## Utilizzo nei linguaggi di programmazione

Ciascuna parte include dei suggerimenti sull'utilizzo dello standard nei linguaggi di programmazione. Queste indicazioni sono incomplete e possono essere modificate negli standard che definiscono i linguaggi. Tra i linguaggi che fanno riferimento alle specifiche LIA-1 vi sono C, C++, Modula-2 e Smalltalk.

