TBVENP (3I)     version 4.6.9     March 2022

User Intro    Prog Intro    Liste des programmes    Liste des manuels
Table of Contents


NAME

tbvenp, c_tbvenp, tbpenv, c_tbpenv, tbp1tv, c_tbp1tv, tbvtp1, c_tbvtp1 - opérations sur des tableaux vectoriels et multiplans

SYNOPSIS

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;

DESCRIPTION

tbvenp (tbvenp_) sépare les composantes iv à iv - nbv -1 des npts vecteurs de dimension ndimv contenus dans a, en les répartissant dans b. Le tableau b est découpé en nbv tableaux élémentaires commençant sur une frontière d'élément de type t_aligned. Chaque composante est codée sur nbits bits.
iv est compté à partir de 1.

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.

EXEMPLE


	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.