gentril.c

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

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