00001 #include "machine.h"
00002 #include "genscal.h"
00003 typedef signed char integer1;
00004 typedef short integer2;
00005
00006
00007 #define SCAL(Type) {\
00008 Type *DX;\
00009 Type *DA;\
00010 DX=(Type *)dx;\
00011 --DX;\
00012 DA=(Type *)da;\
00013 for (i = 1; i2 < 0 ? i >= i1 : i <= i1; i += i2) {\
00014 DX[i] = (*DA) * DX[i];\
00015 }\
00016 }
00017
00018 int C2F(genscal)(integer *typ, integer *n, int *da, int *dx, integer *incx)
00019 {
00020 static integer i, i1, i2, nincx;
00021 if (*n <= 0 || *incx <= 0) return 0;
00022 nincx = *n * (*incx);
00023 i1 = nincx;
00024 i2 = *incx;
00025
00026 switch (*typ) {
00027 case 1:
00028 SCAL(integer1);
00029 break;
00030 case 2:
00031 SCAL(integer2);
00032 break;
00033 case 4:
00034 SCAL(integer);
00035 break;
00036 case 11:
00037 SCAL(unsigned char);
00038 break;
00039 case 12:
00040 SCAL(unsigned short);
00041 break;
00042 case 14:
00043 SCAL(unsigned int);
00044 break;
00045 }
00046 return 0;
00047 }
00048