 			printf("%f, ", sample[i+j]);
 #endif
 		}
-	//	statetmp = m_multiplyblockdiag(MatrixA_pow,state,2);
-		MatrixMultiplyKernel<<<dimGridA, dimBlockA>>>(dMatrixA_pow, dstate1, dstate2);
+	//	statetmp = m_multiplyblockdiag(MatrixAp,state,2);
+		MatrixMultiplyKernel<<<dimGridA, dimBlockA>>>(dMatrixAp, dstate1, dstate2);
 		dstatetmp = dstate1;
 		dstate1 = dstate2;
 		dstate2 = dstatetmp;

	}


//	m_print(MatrixA_pow);

	SF_INFO info;
	info.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16;

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

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


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