subroutine tbvenp(a,b,npts,nbits,ndimv,iv,nbv)
integer a(1),b(1),ndimv,nbv,nbits
subroutine tbpenv(a,b,npts,nbits,ndimv,iv,nbv)
integer a(1),b(1),ndimv,nbv,nbits
subroutine tbp1tv(a,b,iv,ndimv,nbv,nbits)
integer a(1),b(1),iv,ndimv,nbv,nbits
subroutine tbvtp1(a,b,iv,ndimv,nbv,nbits)
integer a(1),b(1),iv,ndimv,nbv,nbits
#include <inrimage/image.h>
c_tbvenp(a,b,npts,nbits,ndimv,iv,nbv)
char *a, *b; int ndimv, nbv, nbits, iv, npts;
c_tbpenv(a,b,npts,nbits,ndimv,iv,nbv)
char *a, *b; int ndimv, nbv, nbits, iv, npts;
c_tbp1tv(a,b,iv,ndimv,nbv,nbits)
char *a, *b; int ndimv, iv, nbv, nbits;
c_tbvtp1(a,b,iv,ndimv,nbv,nbits)
char *a, *b; int ndimv, nbv, nbits;
tbpenv (tbpenv_)
regroupe, dans b, les composantes iv à iv - nbv -1,
codées sur nbits bits,
des npts vecteurs de dimension ndimv,
à partir de nbv tableaux répartis dans a.
a est découpé en nbv
tableaux de taille multiple de
sizeof(t_aligned) (4 ou 8 octets selon les systèmes).
iv est compté à partir de 1.
Si nbv est différent de ndimv,
les autres composantes des vecteurs sont conservées.
On pourra utiliser buffer_size et buffer_split (voir ligbit(3i)
)
pour calculer le découpage.
tbp1tv (tbp1tv_) charge la composante iv des nbv vecteurs à ndimv composantes (nbits par point) contenus dans b, à partir de a.
tbvtp1 (tbvtp1_) transfère dans b, la composante iv des nbv vecteurs de dimensions ndimv contenus dans a. Chaque élément étant codé sur nbits bits.
char *in, *out; Fort_int nb, nbits, ndimv, ibs; nbits = ligbit_(lfmt,&ibs); ndimv = lfmt[I_NDIMV]; nb = nblig * lfmt[I_NDIMX]; incr = buffer_split(buffer_size(lfmt,ndimv * nblig),ndimv) c_tbvenp( in, out, ndimv, nb, nbits); for(i=0;i<nb;i++) { traitement(out); out += incr; }Dans cet exemple, buffer_size rend la taille multiple desizeof(t_aligned) pour que buffer_split puisse découper optimalement.