genprod.c

Go to the documentation of this file.
00001 #include "machine.h"
00002 #include "genprod.h"
00003 typedef signed char integer1;
00004 typedef short integer2;
00005 /*     Copyright INRIA */
00006 
00007 #define PROD(Type) {\
00008 Type *DX;\
00009  DX=(Type *)dx;\
00010  --DX;\
00011  if (*incx == 1) {\
00012    for (i = 1; i <= *n; ++i) dtemp *= (integer)DX[i];\
00013  }\
00014  else {\
00015    i1 = *n * *incx;i2 = *incx;\
00016    for (i = 1; i2 < 0 ? i >= i1 : i <= i1; i += i2) dtemp *= (integer)DX[i];\
00017  }\
00018 }
00019 
00020 integer C2F(genprod)(integer *typ, integer *n, integer *dx, integer *incx)
00021 {
00022     integer  i1, i2;
00023     static integer i, dtemp;
00024 
00025 
00026     dtemp = 1;
00027     if (*n <= 0) return dtemp;
00028 
00029     switch (*typ) {
00030     case 1:
00031       PROD(integer1);
00032       break;
00033     case 2:
00034       PROD(integer2);
00035       break;
00036     case 4:
00037       PROD(integer);
00038       break;
00039     case 11:
00040       PROD(unsigned char);
00041       break;
00042     case 12:
00043       PROD(unsigned short);
00044       break;
00045     case 14:
00046       PROD(unsigned int);
00047       break;
00048     }
00049     return dtemp;
00050 }
00051 
00052 

Generated on Sun Mar 4 15:03:57 2007 for Scilab [trunk] by  doxygen 1.5.1