blocks.c File Reference

#include <stdio.h>
#include <math.h>
#include "machine.h"
#include "../../elementaries_functions/includes/elementaries_functions.h"
#include "scicos.h"

Include dependency graph for blocks.c:

Go to the source code of this file.

Defines

#define Abs(x)   ( (x) > 0) ? (x) : -(x)
#define Min(x, y)   (((x)<(y))?(x):(y))
#define Max(x, y)   (((x)>(y))?(x):(y))

Functions

typedef void (scicos0_block)
void C2F() andlog (integer *flag, integer *nevprt, double *t, double *xd, double *x, integer *nx, double *z, integer *nz, double *tvec, integer *ntvec, double *rpar, integer *nrpar, integer *ipar, integer *nipar, double *u, integer *nu, double *y, integer *ny)
void C2F() bidon (integer *flag, integer *nevprt, double *t, double *xd, double *x, integer *nx, double *z, integer *nz, double *tvec, integer *ntvec, double *rpar, integer *nrpar, integer *ipar, integer *nipar, double *u, integer *nu, double *y, integer *ny)
void C2F() gain (integer *flag, integer *nevprt, double *t, double *xd, double *x, integer *nx, double *z, integer *nz, double *tvec, integer *ntvec, double *rpar, integer *nrpar, integer *ipar, integer *nipar, double *u, integer *nu, double *y, integer *ny)
void C2F() cdummy (integer *flag, integer *nevprt, double *t, double *xd, double *x, integer *nx, double *z, integer *nz, double *tvec, integer *ntvec, double *rpar, integer *nrpar, integer *ipar, integer *nipar, double *u, integer *nu, double *y, integer *ny)
void C2F() dband (integer *flag, integer *nevprt, double *t, double *xd, double *x, integer *nx, double *z, integer *nz, double *tvec, integer *ntvec, double *rpar, integer *nrpar, integer *ipar, integer *nipar, double *u, integer *nu, double *y, integer *ny)
void C2F() cosblk (integer *flag, integer *nevprt, double *t, double *xd, double *x, integer *nx, double *z, integer *nz, double *tvec, integer *ntvec, double *rpar, integer *nrpar, integer *ipar, integer *nipar, double *u, integer *nu, double *y, integer *ny)


Define Documentation

#define Abs ( x   )     ( (x) > 0) ? (x) : -(x)

Definition at line 13 of file blocks.c.

#define Max ( x,
y   )     (((x)>(y))?(x):(y))

Definition at line 15 of file blocks.c.

#define Min ( x,
y   )     (((x)<(y))?(x):(y))

Definition at line 14 of file blocks.c.


Function Documentation

void C2F() andlog ( integer flag,
integer nevprt,
double *  t,
double *  xd,
double *  x,
integer nx,
double *  z,
integer nz,
double *  tvec,
integer ntvec,
double *  rpar,
integer nrpar,
integer ipar,
integer nipar,
double *  u,
integer nu,
double *  y,
integer ny 
)

Definition at line 43 of file blocks.c.

References x, and y.

00047 {
00048   if ( *flag == 1)  y[0] = ( *nevprt != 3 ) ? -1.00 :  1.00; 
00049 }

void C2F() bidon ( integer flag,
integer nevprt,
double *  t,
double *  xd,
double *  x,
integer nx,
double *  z,
integer nz,
double *  tvec,
integer ntvec,
double *  rpar,
integer nrpar,
integer ipar,
integer nipar,
double *  u,
integer nu,
double *  y,
integer ny 
)

Definition at line 57 of file blocks.c.

References x.

00061 {
00062 }

void C2F() cdummy ( integer flag,
integer nevprt,
double *  t,
double *  xd,
double *  x,
integer nx,
double *  z,
integer nz,
double *  tvec,
integer ntvec,
double *  rpar,
integer nrpar,
integer ipar,
integer nipar,
double *  u,
integer nu,
double *  y,
integer ny 
)

Definition at line 86 of file blocks.c.

References t, x, and xd.

00090 {
00091   if ( *flag == 0 ) xd[0]=sin(*t);
00092 }

void C2F() cosblk ( integer flag,
integer nevprt,
double *  t,
double *  xd,
double *  x,
integer nx,
double *  z,
integer nz,
double *  tvec,
integer ntvec,
double *  rpar,
integer nrpar,
integer ipar,
integer nipar,
double *  u,
integer nu,
double *  y,
integer ny 
)

Definition at line 124 of file blocks.c.

References i, nu, x, and y.

00128 {
00129 
00130   int i;
00131   for ( i=0; i < *nu ; i++)     y[i]= cos(u[i]);
00132 }

void C2F() dband ( integer flag,
integer nevprt,
double *  t,
double *  xd,
double *  x,
integer nx,
double *  z,
integer nz,
double *  tvec,
integer ntvec,
double *  rpar,
integer nrpar,
integer ipar,
integer nipar,
double *  u,
integer nu,
double *  y,
integer ny 
)

Definition at line 102 of file blocks.c.

References i, Max, Min, nu, x, and y.

00106 {
00107   int i;
00108   
00109   for ( i=0 ; i < *nu ; i++ ) 
00110     {
00111       if ( u[i] < 0 ) 
00112         y[i] = Min(0.00,u[i]+rpar[i]/2.00);
00113       else  
00114         y[i] = Max(0.00,u[i]-rpar[i]/2.00);
00115     }
00116 }

void C2F() gain ( integer flag,
integer nevprt,
double *  t,
double *  xd,
double *  x,
integer nx,
double *  z,
integer nz,
double *  tvec,
integer ntvec,
double *  rpar,
integer nrpar,
integer ipar,
integer nipar,
double *  u,
integer nu,
double *  y,
integer ny 
)

Definition at line 72 of file blocks.c.

References C2F, dmmul(), nu, x, and y.

00076 {
00077   integer un=1;
00078   C2F(dmmul)(rpar,ny,u,nu,y,ny,ny,nu,&un);
00079 }

Here is the call graph for this function:

typedef void ( scicos0_block   ) 

Definition at line 17 of file blocks.c.

References Abs, and i.

00031 {
00032   int i;
00033   for (i = 0 ; i <  *nu ; ++i ) y[i] = Abs(u[i]);
00034 } 


Generated on Sun Mar 4 16:11:52 2007 for Scilab [trunk] by  doxygen 1.5.1