   }
   matrixMult_cuBlas(handle, tmpC3, a1, b1, d_aS, d_bS, tmpTransferLongToGMP,
 		    tmp, sizeMatrix, realExpMatrix, signMatrix, d_prodRes, d_res,
-		    nr_rowsA, nr_colsA, nr_colsB, prec);
+		    nr_rowsA, nr_colsA, nr_colsB, whatOrder);
   for(int i = 0; i < nr_colsA; ++i){
     for(int k = 0; k < nr_rowsA; ++k){
       a1[i *  nr_rowsA + k] += 3 * (a2[i *  nr_rowsA + k] + a3[i * nr_rowsA + k]); 

				 - tmpC3[i * nr_rowsA + j] / 4 + tmpC4[i * nr_rowsA + j] / 8 
				 - 2 * tmpC5[i * nr_rowsA + j]);
  
      tmpC2[i *  nr_rowsA + j].get_mpf_t()->_mp_exp -= sizeA;
      tmpC3[i *  nr_rowsA + j].get_mpf_t()->_mp_exp -= 2 * sizeA;
      tmpC4[i *  nr_rowsA + j].get_mpf_t()->_mp_exp -= 3 * sizeA;
      tmpC5[i *  nr_rowsA + j].get_mpf_t()->_mp_exp -= 4 * sizeA;
      
      C[i *  nr_rowsA + j] = (tmpC1[i *  nr_rowsA + j] + tmpC2[i *  nr_rowsA + j] 
			      + tmpC3[i *  nr_rowsA + j] + tmpC4[i *  nr_rowsA + j] 
			      + tmpC5[i *  nr_rowsA + j]);
    }

const int INT64L = 64;
const int DOUBLE_MANT = 53;

mpf_class *tmpC1, *tmpC2, *tmpC3, *tmpC4, *tmpC5;

int getSign(const mpf_class a) {
  if((a.get_mpf_t()->_mp_size) < 0) {return -1;}
  else {return 1;}
