 		config.N_out_elements_k_only *= kdims[i];
 		config.N_out_elements *= odims[i] * kdims[i];
 
-		config.triv_strides_dilation &= 
+		config.triv_strides_dilation &=
 				(   (config.istrs_odims[j] == istrs[i])
 				 && (config.istrs_kdims[j] == istrs[i]));
 


		cuFloatComplex tmp = src[i];

		for (int kz = 0; kz < config.kdims[2]; kz++)
		for (int ky = 0; ky < config.kdims[1]; ky++)
		for (int kx = 0; kx < config.kdims[0]; kx++) {

			int oz = iz - kz;
			int oy = iy - ky;
			int ox = ix - kx;

			long offset_z = config.N_out_elements_k_only * config.odims[0] * config.odims[1] * oz + config.NC * config.kdims[0] * config.kdims[1] * kz;
			long offset_y = config.N_out_elements_k_only * config.odims[0] * oy + config.NC * config.kdims[0] * ky;


		cuFloatComplex result = dst[i];

		for (long kz = 0; kz < (long)config.kdims[2]; kz++) {

			long oz = (long)iz - kz;

			if ((0 > oz) || ((int)config.odims[2] <= oz))
				continue;

			long offset_z = config.N_out_elements_k_only * config.odims[0] * config.odims[1] * oz + config.NC * config.kdims[0] * config.kdims[1] * kz;

			for (long ky = 0; ky < (long)config.kdims[1]; ky++) {

				long oy = (long)iy - ky;

				if ((0 > oy) || ((int)config.odims[1] <= oy))
					continue;

				long offset_y = config.N_out_elements_k_only * config.odims[0] * oy + config.NC * config.kdims[0] * ky;

				for (long kx = 0; kx < (long)config.kdims[0]; kx++) {

					long ox = (long)ix - kx;
					long offset_x = config.N_out_elements_k_only * ox + config.NC * kx;
					long index = c 	+ offset_x + offset_y + offset_z;

