Routine de calcul bas-niveau
eng - fr


intmod_num_lib - routine d'interface des routines bas-niveaux de communication

Librairie

Paramètres

Description

Add here a paragraph of the function description.

Contenu du fichier


/* intmod_num_lib.c scilab interface routine
 * IRCOM GROUP - Author : A.Layec
 */
 
/* REVISION HISTORY :
 * $Log$
 */

#include "stack-c.h"
#include "mex.h" 

void genint_c __PARAMS((int *n, int *m, int *type, double *y));
void surecht_c __PARAMS((int *opt,int *n,int *nech,int *init_c,double *u,double *y));
void modpsk_c __PARAMS((int *n,int *m,double *u,double *i_c, double *q_c));

int intgenint_c(char *fname) 
{
  static int l1, m1, n1; /*entrée 1*/
  static int l2, m2, n2; /*entrée 2*/
  static int l3, m3, n3; /*entrée 3*/
  static int l4; /*sortie 1*/
  static int minlhs=1, maxlhs=1, minrhs=3, maxrhs=3;

  /* Check number of inputs and outputs (lhs=1) */
  CheckRhs(minrhs,maxrhs) ;
  CheckLhs(minlhs,maxlhs) ;

  /*Get input and create output*/
  GetRhsVar(1,"i",&m1,&n1,&l1);   
  GetRhsVar(2,"i",&m2,&n2,&l2);   
  GetRhsVar(3,"i",&m3,&n3,&l3);   
  CreateVar(4,"d",istk(l1),&n1,&l4);

  /*Check dimensions*/
  /*TO BE DONE*/
  
  /*Appel bin_c*/
  genint_c(istk(l1),istk(l2),istk(l3),stk(l4));
  
  /*Return output variable*/
  LhsVar(1) = 4;
  
  return 0;
}

int intsurecht_c(char *fname) 
{
  static int l1,m1,n1; /*entrée 1*/
  static int l2,m2,n2; /*entrée 2*/
  static int l3,m3,n3; /*entrée 3*/
  static int l4,m4,n4; /*entrée 4*/
  static int l5; /*sortie 1*/
  static int minlhs=1, maxlhs=1,minrhs=4,maxrhs=4;
  static int k;
  
  /* Check number of inputs and outputs (lhs=1) */
  CheckRhs(minrhs,maxrhs);
  CheckLhs(minlhs,maxlhs);

  /*Get input and create output*/
  GetRhsVar(1,"i",&m1,&n1,&l1); /*opt : option -scalaire*/
  GetRhsVar(2,"i",&m2,&n2,&l2); /*nech : facteur de surechantillonnage -scalaire-*/
  GetRhsVar(3,"i",&m3,&n3,&l3); /*init_c : valeur du compteur initial -scalaire-*/
  GetRhsVar(4,"d",&m4,&n4,&l4); /*u : vecteur d'entrée*/
  k=*istk(l2)*m4;
  sciprint("k=%d\r\n",k);
  CreateVar(5,"d",&k,&n4,&l5); /*y : vecteur de sortie*/

  /*Check dimensions*/
  /*TO BE DONE*/
  
  
  /*Appel surech_c*/
  surecht_c(istk(l1),&m4,istk(l2),istk(l3),stk(l4),stk(l5));
  
  /*Return output variable*/
  LhsVar(1) = 5;
  
  return 0;
}

int intmodpsk_c(char *fname) 
{
  static int l1,m1,n1; /*entrée 1*/
  static int l2,m2,n2; /*entrée 2*/
  static int l3; /*sortie 2*/
  static int l4; /*sortie 1*/
  static int minlhs=2, maxlhs=2,minrhs=2,maxrhs=2;

  /* Check number of inputs and outputs (lhs=1) */
  CheckRhs(minrhs,maxrhs) ;
  CheckLhs(minlhs,maxlhs) ;

  /*Get input and create output*/
  GetRhsVar(1,"i",&m1,&n1,&l1); /*nbr d'états -scalaire-*/
  GetRhsVar(2,"d",&m2,&n2,&l2); /*vecteur d'entrée*/
  CreateVar(3,"d",&m2,&n2,&l3); /*vecteur i*/  
  CreateVar(4,"d",&m2,&n2,&l4); /*vecteur q*/

  /*Check dimensions*/
  /*TO BE DONE*/
  
  /*Appel bin_c*/
  modpsk_c(&m2,istk(l1),stk(l2),stk(l3),stk(l4));
  
  /*Return output variable*/
  LhsVar(1) = 3;
  LhsVar(2) = 4;
  return 0;
}

static GenericTable Tab[]={
{(Myinterfun)sci_gateway, intgenint_c,"error msg"},
{(Myinterfun)sci_gateway, intmodpsk_c,"error msg"},
{(Myinterfun)sci_gateway, intsurecht_c,"error msg"},
};

int C2F(intmod_num_lib)()
{  Rhs = Max(0, Rhs);
(*(Tab[Fin-1].f))(Tab[Fin-1].name,Tab[Fin-1].F);
  return 0;
}

Auteurs

IRCOM Group Alan Layec