genadd.c File Reference

#include "machine.h"

Include dependency graph for genadd.c:

Go to the source code of this file.

Defines

#define ADD(Type)

Typedefs

typedef signed char integer1
typedef short integer2

Functions

int C2F() genadd1 (integer *typ, integer *n, int *dx, integer *incx, int *dy, integer *incy)


Define Documentation

#define ADD ( Type   ) 

Value:

{\
Type *DX;\
Type *DY;\
    DX=(Type *)dx;\
    --DX;\
    DY=(Type *)dy;\
    --DY;\
    if (*incx == 1 && *incy == 1)\
       for (i = 1; i <= nv; ++i) \
         DY[i] = DX[i] + DY[i];\
    else {\
      ix = 1; iy = 1;\
      if (*incx < 0) ix = (-nv + 1) * *incx + 1;\
      if (*incy < 0) iy = (-nv + 1) * *incy + 1;\
      for (i = 1; i <= nv; ++i) {\
        DY[iy] = DX[ix] + DY[iy];\
        ix += *incx; iy += *incy;\
      }\
    }\
}

Definition at line 6 of file genadd.c.

Referenced by genadd1().


Typedef Documentation

typedef signed char integer1

Definition at line 2 of file genadd.c.

typedef short integer2

Definition at line 3 of file genadd.c.


Function Documentation

int C2F() genadd1 ( integer typ,
integer n,
int dx,
integer incx,
int dy,
integer incy 
)

Definition at line 27 of file genadd.c.

References ADD, i, ix, n, nv, and typ.

00034 {
00035   static integer i, ix, iy, nv;
00036   nv=*n;
00037   if (nv <= 0) return 0;
00038 
00039 
00040   switch (*typ) {
00041   case 1:
00042     ADD(integer1);
00043     break;
00044   case 2:
00045     ADD(integer2);
00046     break;
00047   case 4:
00048     ADD(integer);
00049     break;
00050   case 11:
00051     ADD(unsigned char);
00052     break;
00053   case 12:
00054     ADD(unsigned short);
00055     break;
00056   case 14:
00057     ADD(unsigned int);
00058     break;
00059   }
00060   return 0;
00061 }


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