genimpl.c File Reference

#include "machine.h"

Include dependency graph for genimpl.c:

Go to the source code of this file.

Defines

#define IMPL2(Type)
#define IMPL3(Type)
#define IMPL2DIM(Type)
#define IMPL3DIM(Type)

Typedefs

typedef signed char integer1
typedef short integer2

Functions

int C2F() genimpl2 (integer *typ, integer *first, integer *last, integer *res)
int C2F() genimpl3 (integer *typ, integer *first, integer *step, integer *last, integer *res)
int C2F() genimpl2dim (integer *typ, integer *first, integer *last, integer *res)
int C2F() genimpl3dim (integer *typ, integer *first, integer *step, integer *last, integer *res)


Define Documentation

#define IMPL2 ( Type   ) 

Value:

{\
Type FIRST = (Type)*((Type *)first);\
Type LAST  = (Type)*((Type *)last);\
Type *RES  = (Type *)res;\
Type j;\
    i = 0;\
    for (j=FIRST;j<=LAST;j++){\
      RES[i++]=j;\
    }\
}

Definition at line 6 of file genimpl.c.

Referenced by genimpl2().

#define IMPL2DIM ( Type   ) 

Value:

{\
Type FIRST = (Type)*((Type *)first);\
Type LAST  = (Type)*((Type *)last);\
     *res = (integer)(LAST-FIRST)+1;\
}

Definition at line 40 of file genimpl.c.

Referenced by genimpl2dim().

#define IMPL3 ( Type   ) 

Value:

{\
Type FIRST = (Type)*((Type *)first);\
Type STEP  = (Type)*((Type *)step);\
Type LAST  = (Type)*((Type *)last);\
Type *RES  = (Type *)res;\
Type j;\
    FIRST=(Type)*((Type *)first);\
    LAST=(Type)*((Type *)last);\
    STEP=(Type)*((Type *)step);\
    RES=(Type *)res;\
    i = 0;\
    if (STEP<(Type)0) {\
      for (j=FIRST;j>=LAST;j+=STEP){\
        RES[i++]=j;\
      }\
    }\
    else if (STEP>(Type)0) {\
      for (j=FIRST;j<=LAST;j+=STEP){\
        RES[i++]=j;\
      }\
    }\
}

Definition at line 17 of file genimpl.c.

Referenced by genimpl3().

#define IMPL3DIM ( Type   ) 

Value:

{\
Type FIRST = (Type)*((Type *)first);\
Type STEP  = (Type)*((Type *)step);\
Type LAST  = (Type)*((Type *)last);\
Type j;\
   i = 0;\
   if (STEP<(Type)0) {\
     for (j=FIRST;j>=LAST;j=j+STEP) {i++;}\
   }\
   else if (STEP>(Type)0) {\
     for (j=FIRST;j<=LAST;j=j+STEP) {i++;}\
   }\
   else {\
    i=-1;\
   }\
   *res = i;\
}

Definition at line 45 of file genimpl.c.

Referenced by genimpl3dim().


Typedef Documentation

typedef signed char integer1

Definition at line 2 of file genimpl.c.

typedef short integer2

Definition at line 3 of file genimpl.c.


Function Documentation

int C2F() genimpl2 ( integer typ,
integer first,
integer last,
integer res 
)

Definition at line 63 of file genimpl.c.

References i, IMPL2, and typ.

00064 {
00065   static int i;
00066 
00067   switch (*typ) {
00068   case 1:
00069     IMPL2(integer1);
00070     break;
00071   case 2:
00072     IMPL2(integer2);
00073     break;
00074   case 4:
00075     IMPL2(integer);
00076     break;
00077   case 11:
00078     IMPL2(unsigned char);
00079     break;
00080   case 12:
00081     IMPL2(unsigned short);
00082     break;
00083   case 14:
00084     IMPL2(unsigned int);
00085     break;
00086   }
00087   return 0;
00088 }

int C2F() genimpl2dim ( integer typ,
integer first,
integer last,
integer res 
)

Definition at line 117 of file genimpl.c.

References IMPL2DIM, and typ.

00118 {
00119 
00120   switch (*typ) {
00121   case 1:
00122     IMPL2DIM(integer1);
00123     break;
00124   case 2:
00125     IMPL2DIM(integer2);
00126     break;
00127   case 4:
00128     IMPL2DIM(integer);
00129     break;
00130   case 11:
00131     IMPL2DIM(unsigned char);
00132     break;
00133   case 12:
00134     IMPL2DIM(unsigned short);
00135     break;
00136   case 14:
00137     IMPL2DIM(unsigned int);
00138     break;
00139   }
00140   return 0;
00141 }

int C2F() genimpl3 ( integer typ,
integer first,
integer step,
integer last,
integer res 
)

Definition at line 90 of file genimpl.c.

References i, IMPL3, and typ.

00091 {
00092   static int i;
00093 
00094   switch (*typ) {
00095   case 1:
00096     IMPL3(integer1);
00097     break;
00098   case 2:
00099     IMPL3(integer2);
00100     break;
00101   case 4:
00102     IMPL3(integer);
00103     break;
00104   case 11:
00105     IMPL3(unsigned char);
00106     break;
00107   case 12:
00108     IMPL3(unsigned short);
00109     break;
00110   case 14:
00111     IMPL3(unsigned int);
00112     break;
00113   }
00114   return 0;
00115 }

int C2F() genimpl3dim ( integer typ,
integer first,
integer step,
integer last,
integer res 
)

Definition at line 142 of file genimpl.c.

References i, IMPL3DIM, and typ.

00143 {
00144   static int i;
00145 
00146   switch (*typ) {
00147   case 1:
00148     IMPL3DIM(integer1);
00149     break;
00150   case 2:
00151     IMPL3DIM(integer2);
00152     break;
00153   case 4:
00154     IMPL3DIM(integer);
00155     break;
00156   case 11:
00157     IMPL3DIM(unsigned char);
00158     break;
00159   case 12:
00160     IMPL3DIM(unsigned short);
00161     break;
00162   case 14:
00163     IMPL3DIM(unsigned int);
00164     break;
00165   }
00166   return 0;
00167 }


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