 
 	dblock_CA = m_new(blocksize, MatrixA.cols);
 	dblock_samples = m_new(blocksize,1);
-	dMatrixA_pow = m_new(MatrixA.rows, MatrixA.cols); // BLOCKDIAGMATRIX
+	dMatrixAp = 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);
-	MatrixA_pow = m_new(MatrixA.rows, MatrixA.cols); // BLOCKDIAGMATRIX
-	m_identity(MatrixA_pow);
+	MatrixAp = m_new(MatrixA.rows, MatrixA.cols); // BLOCKDIAGMATRIX
+	m_identity(MatrixAp);
 
 
 	for(i = 1; i <= blocksize; i++) {
-		block_CA_line = m_multiply(MatrixC, MatrixA_pow);
+		block_CA_line = m_multiply(MatrixC, MatrixAp);
 		for(j = 0; j < block_CA_line.cols; j++) {
 			m_set(block_CA, i-1, j, m_get(block_CA_line, 0, j));
 		}
 		m_free(block_CA_line);
-		MatrixA_powtmp = m_multiplyblockdiag(MatrixA_pow, MatrixA, 2);
-
-		m_free(MatrixA_pow);
-		MatrixA_pow = MatrixA_powtmp;
+		MatrixAptmp = m_multiplyblockdiag(MatrixAp, MatrixA, 2);
+
+		m_free(MatrixAp);
+		MatrixAp = MatrixAptmp;
 	}
 
 
-	//MatrixA_pow.setBlocksize(2);
+	//MatrixAp.setBlocksize(2);
 
 #if DEBUG == 3
 	printf("MatrixA");

	dim3 dimGridCA(state.cols / dimBlockCA.x, block_CA.rows / dimBlockCA.y);

	dim3 dimBlockA(1, 1);
	dim3 dimGridA(state.cols / dimBlockA.x, MatrixA_pow.rows / dimBlockA.y);


	for(i = 0; i < samples;) {

		MatrixMultiplyKernel<<<dimGridCA, dimBlockCA>>>(dblock_CA, dstate1, dblock_samples);

#if DEBUG == 4
		m_print(MatrixAp);
		m_print(block_samples);
		m_print(state);
#endif
