00001 #include "machine.h"
00002 typedef signed char integer1;
00003 typedef short integer2;
00004
00005
00006 #define INSERT2(Type) {\
00007 Type *FROM;\
00008 Type *TO;\
00009 FROM=(Type *)from;\
00010 --FROM;\
00011 TO=(Type *)to;\
00012 --TO;\
00013 i1 = *mj;\
00014 for (j = 1; j <= i1; ++j) {\
00015 ljj = (indxj[j] - 1) * (*mr);\
00016 jj = (j - 1) * (*m3);\
00017 i2 = *mi;\
00018 for (i = 1; i <= i2; ++i)\
00019 TO[indxi[i] + ljj] = FROM[(i - 1 + jj) * (*inc3) + 1];\
00020 }\
00021 }
00022
00023 int C2F(geninsert2)(typ,mj,mi,indxj,indxi,to,mr,from,m3,inc3)
00024 integer *typ;
00025 integer *mi,*mj,*mr,*m3,*inc3;
00026 integer *indxi,*indxj;
00027 integer *from;
00028 integer *to;
00029 {
00030 integer i1, i2;
00031 static integer i, j, ljj,jj;
00032
00033 --indxi;
00034 --indxj;
00035
00036 switch (*typ) {
00037 case 1:
00038 INSERT2(integer1);
00039 break;
00040 case 2:
00041 INSERT2(integer2);
00042 break;
00043 case 4:
00044 INSERT2(integer);
00045 break;
00046 case 11:
00047 INSERT2(unsigned char);
00048 break;
00049 case 12:
00050 INSERT2(unsigned short);
00051 break;
00052 case 14:
00053 INSERT2(unsigned int);
00054 break;
00055 }
00056 return 0;
00057 }
00058