 
 	sample = (float *) malloc(sizeof(float) * samples);
 	blocksize = 100;
+
+	dblock_CA = m_new(blocksize, MatrixA.cols);
+	dblock_samples = m_new(blocksize,1);
+	dMatrixA_pow = m_new(MatrixA.rows, MatrixA.cols); // BLOCKDIAGMATRIX
+	dstate1 = m_new(2 * filters, 1);
+	dstate2 = m_new(2 * filters, 1);
 
 	block_CA = m_new(blocksize, MatrixA.cols);
 	block_samples = m_new(blocksize,1);

#endif
		}
	//	statetmp = m_multiplyblockdiag(MatrixA_pow,state,2);
		MatrixMultiplyKernel<<<dimGridA, dimBlockA>>>(dMatrixA_pow, dstate, dstate);
	//	state = statetmp;
		i = i + blocksize;
	}

	SF_INFO info;
	info.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;

	Matrix MatrixCA;
	Matrix statetmp;

	Matrix dMatrixA_pow, dblock_CA, dstate1, dstate2, dstatetmp, dblock_samples;

	MatrixCA = m_multiply(MatrixC, MatrixA);

