gensum.c

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