Routine de calcul bas-niveau
eng - fr


genint_c - routine de calcul générateur de nombre entier aléatoire

Librairie

Paramètres

Description

Add here a paragraph of the function description.

Contenu du fichier


/* genint_c subroutine
 * Random Integer Number Generator
 * IRCOM GROUP - Author : A.Layec
 */
 
/* REVISION HISTORY :
 * $Log$
 */
 
#include "mod_num_lib.h"

/* genint_c routine de calcul de mots entiers aléatoires
 * Entrées :
 * n   : taille du  vecteur de sortie (scalaire)
 * m   : longueur des mots binaires des éléments du vecteur de sorties (scalaire)
 * typ : type des générateurs binaires (scalaire)
 * (typ=0: génére 1 seul bit codé NRZ
 *    =1: génère 1 seul bit codé RZ, ou un mot non signé
 *    =2: génère un mot codé code complément à 2)
 * Sorties :
 * y : vecteur de sortie
 *
 * dépendances
 * math.h
 */

void genint_c(int *n,int *m,int *typ,double *y)
{
 /*déclaration des variables compteurs*/
 int k,i,j;
 
 for(i=0;i<(*n);i++)
 {
  switch (*typ)
  {
   /*Type 0 -> dédié signal NRZ*/
   case 0:
   {
    y[i]=(int)((rand()&1)*2-1);
    break;
   }
   /*Type 1 -> mot non signé*/
   case 1 :
   {
    k=1;
    k=k<<(*m);
    j=rand();
    y[i]=(j&(k-1));
    break;
   }
   /*Type 2 -> mot codé code complémént à 2*/
   case 2 :
   {
    j=rand();
    j -= 2<<((*m)-2);
    j &= (2<<((*m)-1)) - 1;
    j -= 2<<((*m)-2);
    y[i]=j;
    break;
   }
   break;
  }
 }
 return;
}

Auteurs

IRCOM Group Alan Layec