00001 #include "machine.h"
00002 typedef signed char integer1;
00003 typedef short integer2;
00004
00005
00006 #define CUPROD(Type) {\
00007 Type *W;\
00008 W=(Type *)w;\
00009 t = 1; kk = 0;\
00010 for (k = 0; k < *n; ++k) {\
00011 t *= (integer)W[kk];\
00012 W[kk] =(Type)t;kk += (*iw);\
00013 }\
00014 }
00015
00016
00017 int C2F(gencuprod)(typ,n, w, iw)
00018 integer *typ, *n, *w, *iw;
00019 {
00020 integer k, kk, t;
00021
00022 switch (*typ) {
00023 case 1:
00024 CUPROD(integer1);
00025 break;
00026 case 2:
00027 CUPROD(integer2);
00028 break;
00029 case 4:
00030 CUPROD(integer);
00031 break;
00032 case 11:
00033 CUPROD(unsigned char);
00034 break;
00035 case 12:
00036 CUPROD(unsigned short);
00037 break;
00038 case 14:
00039 CUPROD(unsigned int);
00040 break;
00041 }
00042 return 0;
00043 }
00044