User Intro
Prog Intro
Liste des programmes
Liste des manuels
Table of Contents
cnvtbg, c_cnvtbg - conversion d'un tableau d'un type dans un autre
subroutine cnvtbg(a,b,ndim,icodi,icodo,iexpi,iexpo)
integer a(1),b(1),ndim,icodi(2),icodo(2),iexpi,iexpo
void c_cnvtbg(a,b,ndim,icodi,icodo,iexpi,iexpo)
char *a, *b;int ndim;Fort_int icodi[2], icodo[2], iexpi, iexpo;
cnvtbg, c_cnvtbg
effectuent la conversion du tableau a\f (ndim points de byte/bit size
icodi[0]),
de type icodi[1]) et d'exposant iexpi) dans le tableau b
(byte size icodo[0], type
icodo[1], et exposant iexpo).
En fortran : byte/bit size icodi(1), icodo(1),
types icodi(2), icodo(2).
Les valeurs de type et de byte/bit size sont celles décrites dans Intro(3i)
.
Le codage en virgule fixe est par convention traité de la manière suivante:
-
- quel que soit le nombre de bits pour le codage, le nombre maximum (tous les
bits a 1, sauf bit de signe si le codage est signé) représente le nombre flottant 2.**exposant.
Pour un codage virgule fixe sur N bits sans signe, avec exposant 0
la valeur binaire x sera convertie en x/(2**N - 1), ce qui permet
de normaliser les valeurs dans l'intervalle [0,1].
Si l'exposant est N, on obtiendra (x * 2**N)/(2**N - 1) et non pas
x.
Pour un codage virgule fixe sur N bits avec signe, avec exposant 0 la
valeur binaire de x sera convertie en x/(2**(N-1)-1) si le
bit de signe est à 0 (valeur positive) ou en x/(2**(N-1)) si le
bit de signe est à 1 (valeur négative). Cela permet de normaliser les valeurs
dans l'intervalle [-1,1].
Le codage après conversion doit être dans l'intervalle [0.,1.] pour
les images non signées et dans [-1,+1] pour les images signées.
Les valeurs en dehors de l'intervalle sont forcées aux bornes.
Intro(3i)
, pckbt(3i)
cnvtbg, c_cnvtbg
font une erreur 9 si le byte size ou le type sont incorrects.
Le codage flottant avec byte size différente de 4 n'est pas accepté.
Les codages fixe de 17 à 24 bits ne sont pas acceptés.