⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 convolution.c

📁 su 的源代码库
💻 C
📖 第 1 页 / 共 3 页
字号:
		x0 = x[ifx];		x1 = x[ifx+1];		x2 = x[ifx+2];		x3 = x[ifx+3];		x4 = x[ifx+4];		x5 = x[ifx+5];		x6 = x[ifx+6];		x7 = x[ifx+7];		x8 = x[ifx+8];		x9 = x[ifx+9];		x10 = x[ifx+10];		x11 = x[ifx+11];		x12 = x[ifx+12];		x13 = x[ifx+13];		x14 = x[ifx+14];		x15 = x[ifx+15];		x16 = x[ifx+16];		x17 = x[ifx+17];		x18 = x[ifx+18];		x19 = x[ifx+19];		x20 = x[ifx+20];		x21 = x[ifx+21];		x22 = x[ifx+22];		x23 = x[ifx+23];		for (i=ilow; i<=ihigh-1; i+=2) {			ya = y[i+1-ifx];  z1 = x0*ya;			yb = y[i-ifx];  z0 = x0*yb;  z1 += x1*yb;			ya = y[i-ifx-1];  z0 += x1*ya;  z1 += x2*ya;			yb = y[i-ifx-2];  z0 += x2*yb;  z1 += x3*yb;			ya = y[i-ifx-3];  z0 += x3*ya;  z1 += x4*ya;			yb = y[i-ifx-4];  z0 += x4*yb;  z1 += x5*yb;			ya = y[i-ifx-5];  z0 += x5*ya;  z1 += x6*ya;			yb = y[i-ifx-6];  z0 += x6*yb;  z1 += x7*yb;			ya = y[i-ifx-7];  z0 += x7*ya;  z1 += x8*ya;			yb = y[i-ifx-8];  z0 += x8*yb;  z1 += x9*yb;			ya = y[i-ifx-9];  z0 += x9*ya;  z1 += x10*ya;			yb = y[i-ifx-10];  z0 += x10*yb;  z1 += x11*yb;			ya = y[i-ifx-11];  z0 += x11*ya;  z1 += x12*ya;			yb = y[i-ifx-12];  z0 += x12*yb;  z1 += x13*yb;			ya = y[i-ifx-13];  z0 += x13*ya;  z1 += x14*ya;			yb = y[i-ifx-14];  z0 += x14*yb;  z1 += x15*yb;			ya = y[i-ifx-15];  z0 += x15*ya;  z1 += x16*ya;			yb = y[i-ifx-16];  z0 += x16*yb;  z1 += x17*yb;			ya = y[i-ifx-17];  z0 += x17*ya;  z1 += x18*ya;			yb = y[i-ifx-18];  z0 += x18*yb;  z1 += x19*yb;			ya = y[i-ifx-19];  z0 += x19*ya;  z1 += x20*ya;			yb = y[i-ifx-20];  z0 += x20*yb;  z1 += x21*yb;			ya = y[i-ifx-21];  z0 += x21*ya;  z1 += x22*ya;			yb = y[i-ifx-22];  z0 += x22*yb;  z1 += x23*yb;			ya = y[i-ifx-23];  z0 += x23*ya;			z[i+1] = z1;			z[i] = z0;		}	} else if (lx==25) {		x0 = x[ifx];		x1 = x[ifx+1];		x2 = x[ifx+2];		x3 = x[ifx+3];		x4 = x[ifx+4];		x5 = x[ifx+5];		x6 = x[ifx+6];		x7 = x[ifx+7];		x8 = x[ifx+8];		x9 = x[ifx+9];		x10 = x[ifx+10];		x11 = x[ifx+11];		x12 = x[ifx+12];		x13 = x[ifx+13];		x14 = x[ifx+14];		x15 = x[ifx+15];		x16 = x[ifx+16];		x17 = x[ifx+17];		x18 = x[ifx+18];		x19 = x[ifx+19];		x20 = x[ifx+20];		x21 = x[ifx+21];		x22 = x[ifx+22];		x23 = x[ifx+23];		x24 = x[ifx+24];		for (i=ilow; i<=ihigh-1; i+=2) {			ya = y[i+1-ifx];  z1 = x0*ya;			yb = y[i-ifx];  z0 = x0*yb;  z1 += x1*yb;			ya = y[i-ifx-1];  z0 += x1*ya;  z1 += x2*ya;			yb = y[i-ifx-2];  z0 += x2*yb;  z1 += x3*yb;			ya = y[i-ifx-3];  z0 += x3*ya;  z1 += x4*ya;			yb = y[i-ifx-4];  z0 += x4*yb;  z1 += x5*yb;			ya = y[i-ifx-5];  z0 += x5*ya;  z1 += x6*ya;			yb = y[i-ifx-6];  z0 += x6*yb;  z1 += x7*yb;			ya = y[i-ifx-7];  z0 += x7*ya;  z1 += x8*ya;			yb = y[i-ifx-8];  z0 += x8*yb;  z1 += x9*yb;			ya = y[i-ifx-9];  z0 += x9*ya;  z1 += x10*ya;			yb = y[i-ifx-10];  z0 += x10*yb;  z1 += x11*yb;			ya = y[i-ifx-11];  z0 += x11*ya;  z1 += x12*ya;			yb = y[i-ifx-12];  z0 += x12*yb;  z1 += x13*yb;			ya = y[i-ifx-13];  z0 += x13*ya;  z1 += x14*ya;			yb = y[i-ifx-14];  z0 += x14*yb;  z1 += x15*yb;			ya = y[i-ifx-15];  z0 += x15*ya;  z1 += x16*ya;			yb = y[i-ifx-16];  z0 += x16*yb;  z1 += x17*yb;			ya = y[i-ifx-17];  z0 += x17*ya;  z1 += x18*ya;			yb = y[i-ifx-18];  z0 += x18*yb;  z1 += x19*yb;			ya = y[i-ifx-19];  z0 += x19*ya;  z1 += x20*ya;			yb = y[i-ifx-20];  z0 += x20*yb;  z1 += x21*yb;			ya = y[i-ifx-21];  z0 += x21*ya;  z1 += x22*ya;			yb = y[i-ifx-22];  z0 += x22*yb;  z1 += x23*yb;			ya = y[i-ifx-23];  z0 += x23*ya;  z1 += x24*ya;			yb = y[i-ifx-24];  z0 += x24*yb;			z[i+1] = z1;			z[i] = z0;		}	} else if (lx==26) {		x0 = x[ifx];		x1 = x[ifx+1];		x2 = x[ifx+2];		x3 = x[ifx+3];		x4 = x[ifx+4];		x5 = x[ifx+5];		x6 = x[ifx+6];		x7 = x[ifx+7];		x8 = x[ifx+8];		x9 = x[ifx+9];		x10 = x[ifx+10];		x11 = x[ifx+11];		x12 = x[ifx+12];		x13 = x[ifx+13];		x14 = x[ifx+14];		x15 = x[ifx+15];		x16 = x[ifx+16];		x17 = x[ifx+17];		x18 = x[ifx+18];		x19 = x[ifx+19];		x20 = x[ifx+20];		x21 = x[ifx+21];		x22 = x[ifx+22];		x23 = x[ifx+23];		x24 = x[ifx+24];		x25 = x[ifx+25];		for (i=ilow; i<=ihigh-1; i+=2) {			ya = y[i+1-ifx];  z1 = x0*ya;			yb = y[i-ifx];  z0 = x0*yb;  z1 += x1*yb;			ya = y[i-ifx-1];  z0 += x1*ya;  z1 += x2*ya;			yb = y[i-ifx-2];  z0 += x2*yb;  z1 += x3*yb;			ya = y[i-ifx-3];  z0 += x3*ya;  z1 += x4*ya;			yb = y[i-ifx-4];  z0 += x4*yb;  z1 += x5*yb;			ya = y[i-ifx-5];  z0 += x5*ya;  z1 += x6*ya;			yb = y[i-ifx-6];  z0 += x6*yb;  z1 += x7*yb;			ya = y[i-ifx-7];  z0 += x7*ya;  z1 += x8*ya;			yb = y[i-ifx-8];  z0 += x8*yb;  z1 += x9*yb;			ya = y[i-ifx-9];  z0 += x9*ya;  z1 += x10*ya;			yb = y[i-ifx-10];  z0 += x10*yb;  z1 += x11*yb;			ya = y[i-ifx-11];  z0 += x11*ya;  z1 += x12*ya;			yb = y[i-ifx-12];  z0 += x12*yb;  z1 += x13*yb;			ya = y[i-ifx-13];  z0 += x13*ya;  z1 += x14*ya;			yb = y[i-ifx-14];  z0 += x14*yb;  z1 += x15*yb;			ya = y[i-ifx-15];  z0 += x15*ya;  z1 += x16*ya;			yb = y[i-ifx-16];  z0 += x16*yb;  z1 += x17*yb;			ya = y[i-ifx-17];  z0 += x17*ya;  z1 += x18*ya;			yb = y[i-ifx-18];  z0 += x18*yb;  z1 += x19*yb;			ya = y[i-ifx-19];  z0 += x19*ya;  z1 += x20*ya;			yb = y[i-ifx-20];  z0 += x20*yb;  z1 += x21*yb;			ya = y[i-ifx-21];  z0 += x21*ya;  z1 += x22*ya;			yb = y[i-ifx-22];  z0 += x22*yb;  z1 += x23*yb;			ya = y[i-ifx-23];  z0 += x23*ya;  z1 += x24*ya;			yb = y[i-ifx-24];  z0 += x24*yb;  z1 += x25*yb;			ya = y[i-ifx-25];  z0 += x25*ya;			z[i+1] = z1;			z[i] = z0;		}	} else if (lx==27) {		x0 = x[ifx];		x1 = x[ifx+1];		x2 = x[ifx+2];		x3 = x[ifx+3];		x4 = x[ifx+4];		x5 = x[ifx+5];		x6 = x[ifx+6];		x7 = x[ifx+7];		x8 = x[ifx+8];		x9 = x[ifx+9];		x10 = x[ifx+10];		x11 = x[ifx+11];		x12 = x[ifx+12];		x13 = x[ifx+13];		x14 = x[ifx+14];		x15 = x[ifx+15];		x16 = x[ifx+16];		x17 = x[ifx+17];		x18 = x[ifx+18];		x19 = x[ifx+19];		x20 = x[ifx+20];		x21 = x[ifx+21];		x22 = x[ifx+22];		x23 = x[ifx+23];		x24 = x[ifx+24];		x25 = x[ifx+25];		x26 = x[ifx+26];		for (i=ilow; i<=ihigh-1; i+=2) {			ya = y[i+1-ifx];  z1 = x0*ya;			yb = y[i-ifx];  z0 = x0*yb;  z1 += x1*yb;			ya = y[i-ifx-1];  z0 += x1*ya;  z1 += x2*ya;			yb = y[i-ifx-2];  z0 += x2*yb;  z1 += x3*yb;			ya = y[i-ifx-3];  z0 += x3*ya;  z1 += x4*ya;			yb = y[i-ifx-4];  z0 += x4*yb;  z1 += x5*yb;			ya = y[i-ifx-5];  z0 += x5*ya;  z1 += x6*ya;			yb = y[i-ifx-6];  z0 += x6*yb;  z1 += x7*yb;			ya = y[i-ifx-7];  z0 += x7*ya;  z1 += x8*ya;			yb = y[i-ifx-8];  z0 += x8*yb;  z1 += x9*yb;			ya = y[i-ifx-9];  z0 += x9*ya;  z1 += x10*ya;			yb = y[i-ifx-10];  z0 += x10*yb;  z1 += x11*yb;			ya = y[i-ifx-11];  z0 += x11*ya;  z1 += x12*ya;			yb = y[i-ifx-12];  z0 += x12*yb;  z1 += x13*yb;			ya = y[i-ifx-13];  z0 += x13*ya;  z1 += x14*ya;			yb = y[i-ifx-14];  z0 += x14*yb;  z1 += x15*yb;			ya = y[i-ifx-15];  z0 += x15*ya;  z1 += x16*ya;			yb = y[i-ifx-16];  z0 += x16*yb;  z1 += x17*yb;			ya = y[i-ifx-17];  z0 += x17*ya;  z1 += x18*ya;			yb = y[i-ifx-18];  z0 += x18*yb;  z1 += x19*yb;			ya = y[i-ifx-19];  z0 += x19*ya;  z1 += x20*ya;			yb = y[i-ifx-20];  z0 += x20*yb;  z1 += x21*yb;			ya = y[i-ifx-21];  z0 += x21*ya;  z1 += x22*ya;			yb = y[i-ifx-22];  z0 += x22*yb;  z1 += x23*yb;			ya = y[i-ifx-23];  z0 += x23*ya;  z1 += x24*ya;			yb = y[i-ifx-24];  z0 += x24*yb;  z1 += x25*yb;			ya = y[i-ifx-25];  z0 += x25*ya;  z1 += x26*ya;			yb = y[i-ifx-26];  z0 += x26*yb;			z[i+1] = z1;			z[i] = z0;		}	} else if (lx==28) {		x0 = x[ifx];		x1 = x[ifx+1];		x2 = x[ifx+2];		x3 = x[ifx+3];		x4 = x[ifx+4];		x5 = x[ifx+5];		x6 = x[ifx+6];		x7 = x[ifx+7];		x8 = x[ifx+8];		x9 = x[ifx+9];		x10 = x[ifx+10];		x11 = x[ifx+11];		x12 = x[ifx+12];		x13 = x[ifx+13];		x14 = x[ifx+14];		x15 = x[ifx+15];		x16 = x[ifx+16];		x17 = x[ifx+17];		x18 = x[ifx+18];		x19 = x[ifx+19];		x20 = x[ifx+20];		x21 = x[ifx+21];		x22 = x[ifx+22];		x23 = x[ifx+23];		x24 = x[ifx+24];		x25 = x[ifx+25];		x26 = x[ifx+26];		x27 = x[ifx+27];		for (i=ilow; i<=ihigh-1; i+=2) {			ya = y[i+1-ifx];  z1 = x0*ya;			yb = y[i-ifx];  z0 = x0*yb;  z1 += x1*yb;			ya = y[i-ifx-1];  z0 += x1*ya;  z1 += x2*ya;			yb = y[i-ifx-2];  z0 += x2*yb;  z1 += x3*yb;			ya = y[i-ifx-3];  z0 += x3*ya;  z1 += x4*ya;			yb = y[i-ifx-4];  z0 += x4*yb;  z1 += x5*yb;			ya = y[i-ifx-5];  z0 += x5*ya;  z1 += x6*ya;			yb = y[i-ifx-6];  z0 += x6*yb;  z1 += x7*yb;			ya = y[i-ifx-7];  z0 += x7*ya;  z1 += x8*ya;			yb = y[i-ifx-8];  z0 += x8*yb;  z1 += x9*yb;			ya = y[i-ifx-9];  z0 += x9*ya;  z1 += x10*ya;			yb = y[i-ifx-10];  z0 += x10*yb;  z1 += x11*yb;			ya = y[i-ifx-11];  z0 += x11*ya;  z1 += x12*ya;			yb = y[i-ifx-12];  z0 += x12*yb;  z1 += x13*yb;			ya = y[i-ifx-13];  z0 += x13*ya;  z1 += x14*ya;			yb = y[i-ifx-14];  z0 += x14*yb;  z1 += x15*yb;			ya = y[i-ifx-15];  z0 += x15*ya;  z1 += x16*ya;			yb = y[i-ifx-16];  z0 += x16*yb;  z1 += x17*yb;			ya = y[i-ifx-17];  z0 += x17*ya;  z1 += x18*ya;			yb = y[i-ifx-18];  z0 += x18*yb;  z1 += x19*yb;			ya = y[i-ifx-19];  z0 += x19*ya;  z1 += x20*ya;			yb = y[i-ifx-20];  z0 += x20*yb;  z1 += x21*yb;			ya = y[i-ifx-21];  z0 += x21*ya;  z1 += x22*ya;			yb = y[i-ifx-22];  z0 += x22*yb;  z1 += x23*yb;			ya = y[i-ifx-23];  z0 += x23*ya;  z1 += x24*ya;			yb = y[i-ifx-24];  z0 += x24*yb;  z1 += x25*yb;			ya = y[i-ifx-25];  z0 += x25*ya;  z1 += x26*ya;			yb = y[i-ifx-26];  z0 += x26*yb;  z1 += x27*yb;			ya = y[i-ifx-27];  z0 += x27*ya;			z[i+1] = z1;			z[i] = z0;		}	} else if (lx==29) {		x0 = x[ifx];		x1 = x[ifx+1];		x2 = x[ifx+2];		x3 = x[ifx+3];		x4 = x[ifx+4];		x5 = x[ifx+5];		x6 = x[ifx+6];		x7 = x[ifx+7];		x8 = x[ifx+8];		x9 = x[ifx+9];		x10 = x[ifx+10];		x11 = x[ifx+11];		x12 = x[ifx+12];		x13 = x[ifx+13];		x14 = x[ifx+14];		x15 = x[ifx+15];		x16 = x[ifx+16];		x17 = x[ifx+17];		x18 = x[ifx+18];		x19 = x[ifx+19];		x20 = x[ifx+20];		x21 = x[ifx+21];		x22 = x[ifx+22];		x23 = x[ifx+23];		x24 = x[ifx+24];		x25 = x[ifx+25];		x26 = x[ifx+26];		x27 = x[ifx+27];		x28 = x[ifx+28];		for (i=ilow; i<=ihigh-1; i+=2) {			ya = y[i+1-ifx];  z1 = x0*ya;			yb = y[i-ifx];  z0 = x0*yb;  z1 += x1*yb;			ya = y[i-ifx-1];  z0 += x1*ya;  z1 += x2*ya;			yb = y[i-ifx-2];  z0 += x2*yb;  z1 += x3*yb;			ya = y[i-ifx-3];  z0 += x3*ya;  z1 += x4*ya;			yb = y[i-ifx-4];  z0 += x4*yb;  z1 += x5*yb;			ya = y[i-ifx-5];  z0 += x5*ya;  z1 += x6*ya;			yb = y[i-ifx-6];  z0 += x6*yb;  z1 += x7*yb;			ya = y[i-ifx-7];  z0 += x7*ya;  z1 += x8*ya;			yb = y[i-ifx-8];  z0 += x8*yb;  z1 += x9*yb;			ya = y[i-ifx-9];  z0 += x9*ya;  z1 += x10*ya;			yb = y[i-ifx-10];  z0 += x10*yb;  z1 += x11*yb;			ya = y[i-ifx-11];  z0 += x11*ya;  z1 += x12*ya;			yb = y[i-ifx-12];  z0 += x12*yb;  z1 += x13*yb;			ya = y[i-ifx-13];  z0 += x13*ya;  z1 += x14*ya;			yb = y[i-ifx-14];  z0 += x14*yb;  z1 += x15*yb;			ya = y[i-ifx-15];  z0 += x15*ya;  z1 += x16*ya;			yb = y[i-ifx-16];  z0 += x16*yb;  z1 += x17*yb;			ya = y[i-ifx-17];  z0 += x17*ya;  z1 += x18*ya;			yb = y[i-ifx-18];  z0 += x18*yb;  z1 += x19*yb;			ya = y[i-ifx-19];  z0 += x19*ya;  z1 += x20*ya;			yb = y[i-ifx-20];  z0 += x20*yb;  z1 += x21*yb;			ya = y[i-ifx-21];  z0 += x21*ya;  z1 += x22*ya;			yb = y[i-ifx-22];  z0 += x22*yb;  z1 += x23*yb;			ya = y[i-ifx-23];  z0 += x23*ya;  z1 += x24*ya;			yb = y[i-ifx-24];  z0 += x24*yb;  z1 += x25*yb;			ya = y[i-ifx-25];  z0 += x25*ya;  z1 += x26*ya;			yb = y[i-ifx-26];  z0 += x26*yb;  z1 += x27*yb;			ya = y[i-ifx-27];  z0 += x27*ya;  z1 += x28*ya;			yb = y[i-ifx-28];  z0 += x28*yb;			z[i+1] = z1;			z[i] = z0;		}	} else if (lx==30) {		x0 = x[ifx];		x1 = x[ifx+1];		x2 = x[ifx+2];		x3 = x[ifx+3];		x4 = x[ifx+4];		x5 = x[ifx+5];		x6 = x[ifx+6];		x7 = x[ifx+7];		x8 = x[ifx+8];		x9 = x[ifx+9];		x10 = x[ifx+10];		x11 = x[ifx+11];		x12 = x[ifx+12];		x13 = x[ifx+13];		x14 = x[ifx+14];		x15 = x[ifx+15];		x16 = x[ifx+16];		x17 = x[ifx+17];		x18 = x[ifx+18];		x19 = x[ifx+19];		x20 = x[ifx+20];		x21 = x[ifx+21];		x22 = x[ifx+22];		x23 = x[ifx+23];		x24 = x[ifx+24];		x25 = x[ifx+25];		x26 = x[ifx+26];		x27 = x[ifx+27];		x28 = x[ifx+28];		x29 = x[ifx+29];		for (i=ilow; i<=ihigh-1; i+=2) {			ya = y[i+1-ifx];  z1 = x0*ya;			yb = y[i-ifx];  z0 = x0*yb;  z1 += x1*yb;			ya = y[i-ifx-1];  z0 += x1*ya;  z1 += x2*ya;			yb = y[i-ifx-2];  z0 += x2*yb;  z1 += x3*yb;			ya = y[i-ifx-3];  z0 += x3*ya;  z1 += x4*ya;			yb = y[i-ifx-4];  z0 += x4*yb;  z1 += x5*yb;			ya = y[i-ifx-5];  z0 += x5*ya;  z1 += x6*ya;			yb = y[i-ifx-6];  z0 += x6*yb;  z1 += x7*yb;			ya = y[i-ifx-7];  z0 += x7*ya;  z1 += x8*ya;			yb = y[i-ifx-8];  z0 += x8*yb;  z1 += x9*yb;			ya = y[i-ifx-9];  z0 += x9*ya;  z1 += x10*ya;			yb = y[i-ifx-10];  z0 += x10*yb;  z1 += x11*yb;			ya = y[i-ifx-11];  z0 += x11*ya;  z1 += x12*ya;			yb = y[i-ifx-12];  z0 += x12*yb;  z1 += x13*yb;			ya = y[i-ifx-13];  z0 += x13*ya;  z1 += x14*ya;			yb = y[i-ifx-14];  z0 += x14*yb;  z1 += x15*yb;			ya = y[i-ifx-15];  z0 += x15*ya;  z1 += x16*ya;			yb = y[i-ifx-16];  z0 += x16*yb;  z1 += x17*yb;			ya = y[i-ifx-17];  z0 += x17*ya;  z1 += x18*ya;			yb = y[i-ifx-18];  z0 += x18*yb;  z1 += x19*yb;			ya = y[i-ifx-19];  z0 += x19*ya;  z1 += x20*ya;			yb = y[i-ifx-20];  z0 += x20*yb;  z1 += x21*yb;			ya = y[i-ifx-21];  z0 += x21*ya;  z1 += x22*ya;			yb = y[i-ifx-22];  z0 += x22*yb;  z1 += x23*yb;			ya = y[i-ifx-23];  z0 += x23*ya;  z1 += x24*ya;			yb = y[i-ifx-24];  z0 += x24*yb;  z1 += x25*yb;			ya = y[i-ifx-25];  z0 += x25*ya;  z1 += x26*ya;			yb = y[i-ifx-26];  z0 += x26*yb;  z1 += x27*yb;			ya = y[i-ifx-27];  z0 += x27*ya;  z1 += x28*ya;			yb = y[i-ifx-28];  z0 += x28*yb;  z1 += x29*yb;			ya = y[i-ifx-29];  z0 += x29*ya;			z[i+1] = z1;			z[i] = z0;		}	}	if (ihigh>=ilow && (ihigh-ilow)%2==0) {		ilow = ihigh;		jlow = ifx;		jhigh = ilx;		for (i=ilow; i<=ihigh; ++i) {			for (j=jlow,sum=0.0; j<=jhigh; ++j)				sum += x[j]*y[i-j];			z[i] = sum;		}	}		/* ROLLING OFF:  ily+ifx < i <= ily+ilx */	ilow = ily+ifx+1;  if (ilow<ifz) ilow = ifz;	ihigh = ily+ilx;  if (ihigh>ilz) ihigh = ilz;	jlow = ilow-ily;	jhigh = ilx;	for (i=ilow; i<=ihigh; ++i,++jlow) {		for (j=jlow,sum=0.0; j<=jhigh; ++j)			sum += x[j]*y[i-j];		z[i] = sum;	}		/* OFF RIGHT:  ily+ilx < i */	ilow = ily+ilx+1;  if (ilow<ifz) ilow = ifz;	ihigh = ilz;	for (i=ilow; i<=ihigh; ++i)		z[i] = 0.0;}#endif#ifdef TESTstatic void conv1 (int lx, int ifx, float *x,	   int ly, int ify, float *y, 	   int lz, int ifz, float *z){	int ilx=ifx+lx-1,ily=ify+ly-1,ilz=ifz+lz-1,i,j,jlow,jhigh;	float sum;		x -= ifx;  y -= ify;  z -= ifz;	for (i=ifz; i<=ilz; ++i) {		jlow = i-ily;  if (jlow<ifx) jlow = ifx;		jhigh = i-ify;  if (jhigh>ilx) jhigh = ilx;		for (j=jlow,sum=0.0; j<=jhigh; ++j)			sum += x[j]*y[i-j];		z[i] = sum;	}}#include "cwp.h"main(){	int lx,ly,lz,ifx,ify,ifz,i;	float *x,*y,*z,*z1;		/* loop over tests */	while(1) {			/* make parameters */		lx = 1+100*franuni();		ly = 1+100*franuni();		lz = 1+100*franuni();		ifx = -100+200*franuni();		ify = -100+200*franuni();		ifz = -100+200*franuni();				/* allocate space */		x = alloc1float(lx);		y = alloc1float(ly);		z = alloc1float(lz);		z1 = alloc1float(lz);					/* fill x and y arrays */		for (i=0; i<lx; i++)			x[i] = i+1;		for (i=0; i<ly; i++)			y[i] = i+1;		/* convolve and check */		conv1(lx,ifx,x,ly,ify,y,lz,ifz,z1);		conv(lx,ifx,x,ly,ify,y,lz,ifz,z);		for (i=0; i<lz; ++i)			if (z[i]!=z1[i]) break;		if (i<lz) {			printf("%10d %10d %10d %10d %10d %10d\n",				lx,ifx,ly,ify,lz,ifz);			printf("z1[%d]=%g != z[%d]=%g\n",				i+ifz,z1[i],i+ifz,z[i]);			pp1d(stdout,"simple",lz,ifz,z1);			pp1d(stdout,"optimized",lz,ifz,z);			exit(-1);		}						/* free space */		free1float(x);		free1float(y);		free1float(z);		free1float(z1);	}}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -