genbitops.c File Reference

#include "machine.h"

Include dependency graph for genbitops.c:

Go to the source code of this file.

Defines

#define BIT2(Type, Op)
#define BIT1(Type, Op)

Typedefs

typedef signed char integer1
typedef short integer2

Functions

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


Define Documentation

#define BIT1 ( Type,
Op   ) 

Value:

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

Definition at line 27 of file genbitops.c.

Referenced by genbitops().

#define BIT2 ( Type,
Op   ) 

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] Op 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] Op DY[iy];\
        ix += *incx; iy += *incy;\
      }\
    }\
}

Definition at line 6 of file genbitops.c.

Referenced by genbitops().


Typedef Documentation

typedef signed char integer1

Definition at line 2 of file genbitops.c.

typedef short integer2

Definition at line 3 of file genbitops.c.


Function Documentation

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

Definition at line 44 of file genbitops.c.

References BIT1, BIT2, i, ix, n, nv, op, and typ.

00052 {
00053   static integer i, ix, iy, nv;
00054   nv=*n;
00055   if (nv <= 0) return 0;
00056 
00057   switch (*op) {
00058   case 57:
00059     switch (*typ) {
00060     case 1:
00061       BIT2(integer1,|);
00062       break;
00063     case 2:
00064       BIT2(integer2,|);
00065       break;
00066     case 4:
00067       BIT2(integer,|);
00068       break;
00069     case 11:
00070       BIT2(unsigned char,|);
00071       break;
00072     case 12:
00073       BIT2(unsigned short,|);
00074       break;
00075     case 14:
00076       BIT2(unsigned int,|);
00077       break;
00078     }
00079     break;
00080   case 58:
00081     switch (*typ) {
00082     case 1:
00083       BIT2(integer1,&);
00084       break;
00085     case 2:
00086       BIT2(integer2,&);
00087       break;
00088     case 4:
00089       BIT2(integer,&);
00090       break;
00091     case 11:
00092       BIT2(unsigned char,&);
00093       break;
00094     case 12:
00095       BIT2(unsigned short,&);
00096       break;
00097     case 14:
00098       BIT2(unsigned int,&);
00099       break;
00100     }
00101     break;
00102   case 61:
00103     switch (*typ) {
00104     case 1:
00105       BIT1(integer1,~);
00106       break;
00107     case 2:
00108       BIT1(integer2,~);
00109       break;
00110     case 4:
00111       BIT1(integer,~);
00112       break;
00113     case 11:
00114       BIT1(unsigned char,~);
00115       break;
00116     case 12:
00117       BIT1(unsigned short,~);
00118       break;
00119     case 14:
00120       BIT1(unsigned int,~);
00121       break;
00122     }
00123     break;
00124   }
00125   return 0;
00126 }


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