mswitch.c File Reference

#include "scicos_block.h"
#include <math.h>

Include dependency graph for mswitch.c:

Go to the source code of this file.

Defines

#define max(a, b)   ((a) >= (b) ? (a) : (b))
#define min(a, b)   ((a) <= (b) ? (a) : (b))

Functions

void mswitch (scicos_block *block, int flag)


Define Documentation

#define max ( a,
b   )     ((a) >= (b) ? (a) : (b))

Definition at line 5 of file mswitch.c.

#define min ( a,
b   )     ((a) <= (b) ? (a) : (b))

Definition at line 6 of file mswitch.c.


Function Documentation

void mswitch ( scicos_block block,
int  flag 
)

Definition at line 9 of file mswitch.c.

References i, scicos_block::inptr, scicos_block::insz, int, scicos_block::ipar, j, max, min, scicos_block::nin, and scicos_block::outptr.

00010 {
00011   int i,j;
00012   i=block->ipar[1];
00013   if (i==0) {
00014     if (*block->inptr[0]>0) {
00015       j=(int)floor(*block->inptr[0]);
00016     }else{
00017       j=(int)ceil(*block->inptr[0]);
00018     }
00019   }else if (i==1) {
00020     if (*block->inptr[0]>0) {
00021       j=(int)floor(*block->inptr[0]+.5);
00022     }else{
00023       j=(int)ceil(*block->inptr[0]-.5);
00024     }
00025   }else if (i==2) {
00026     j=(int)ceil(*block->inptr[0]);
00027   }else if (i==3) {
00028     j=(int)floor(*block->inptr[0]);
00029   }
00030   j=j+1-block->ipar[0];
00031   j=max(j,1);
00032   j=min(j,block->nin-1);
00033   for (i=0;i<block->insz[j];i++) {
00034     block->outptr[0][i]=block->inptr[j][i];
00035   }
00036 }


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