Precedente | Indice | Successivo |
Scopo: | calcolo del minimo numero positivo rappresentabile in un sistema aritmetico floating-point |
Specifiche: | real function minr() |
Descrizione: |
Background del problema
L'importanza della conoscenza del minimo numero positivo rappresentabile di un sistema floating-point, risiede nel fatto che esso ci fornisce un'indicazione della soglia oltre la quale un numero può generare una situazione di underflow, venendo in alcuni casi approssimato con 0 e provocando numerosi e inaspettati errori. Descrizione dell'algoritmo L'algoritmo consta di un unico ciclo nel quale una variabile, con valore iniziale pari ad 1, è divisa per 2 fino ad ottenere una situazione di underflow. Il valore precedente l'ultima divisione rappresenta il minimo numero rappresentabile denormalizzato, cioè con mantissa shiftata a destra di t-1 posizioni, dove t è la precisione del sistema aritmetico. Il numero effettivo è ottenuto mediante un'operazione di shift left che equivale alla moltiplicazione per 2^(t-1) ovvero alla divisione per 2^(1-t) = 2 * b , dove b rappresenta l'epsilon macchina. Raccomandazioni d'uso nessuna. |
Bibliografia: | [1], [2] |
Parametri di I/O: |
input: - nessuno
output: minr - di tipo reale, minimo numero positivo rappresentabile. |
Indicatori d'errore: | nessuno. |
Routines ausiliarie: | eps, funzione reale, epsilon macchina. |
Tempo di esecuzione: | complessità asintotica lineare O(n), in funzione del numero di bit n della rappresentazione di un numero reale in singola precisione. |
Memoria richiesta: | nessun array allocato in memoria. |
Accuratezza fornita: | dipendente dalla precisione del sistema aritmetico della macchina. |
Esempio di programma chiamante: |
Program minrd
|
Precedente | Indice | Successivo |