Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 3645ab9d authored by hhakim's avatar hhakim
Browse files

Fix C++ mex/tests occurred because of function signature chnage since new MHTP.

parent f772b58b
Branches
No related tags found
No related merge requests found
......@@ -123,11 +123,13 @@ int main(int argc, char* argv[])
vector<StoppingCriterion<Real<FPP>>> sc = {30,30};
// sc.push_back(30);
// sc.push_back(30);
auto th = Faust::hierarchical(whtmat, sc, fac_cons, res_cons, lambda, isUpdateWayR2L,
isFactSideLeft, use_csr, packing_RL,
MHTPParams<FPP>(),
/* compute_2norm_on_array*/ false,
norm2_threshold,
norm2_max_iter);
norm2_threshold,
norm2_max_iter);
cout << "lambda=" << lambda << endl;
// th->multiply(FPP(lambda));
th->display();
......
......@@ -122,7 +122,7 @@ int main(int argc, char* argv[])
else if(meth == 2)
{
cout << "use impl2" << endl;
Faust::palm4msa2<FPP,Cpu>(data, constraints, facts, lambda, sc, is_update_way_R2L, use_csr, packing_RL, compute_2norm_on_array, norm2_threshold, norm2_max_iter, false, FAUST_PRECISION, on_gpu);
Faust::palm4msa2<FPP,Cpu>(data, constraints, facts, lambda, sc, is_update_way_R2L, use_csr, packing_RL, MHTPParams<FPP>(), compute_2norm_on_array, norm2_threshold, norm2_max_iter, false, FAUST_PRECISION, on_gpu);
}
#ifdef USE_GPU_MOD
else if(meth == 3)
......@@ -130,7 +130,7 @@ int main(int argc, char* argv[])
cout << "use impl3" << endl;
Faust::MatDense<FPP,GPU2> gpu_data(data);
TransformHelper<FPP,GPU2> gpu_facts;
Faust::palm4msa2<FPP,GPU2>(gpu_data, gpu_constraints, gpu_facts, lambda, sc, is_update_way_R2L, use_csr, packing_RL, compute_2norm_on_array, norm2_threshold, norm2_max_iter, false, FAUST_PRECISION, on_gpu);
Faust::palm4msa2<FPP,GPU2>(gpu_data, gpu_constraints, gpu_facts, lambda, sc, is_update_way_R2L, use_csr, packing_RL, MHTPParams<FPP>(), compute_2norm_on_array, norm2_threshold, norm2_max_iter, false, FAUST_PRECISION, on_gpu);
gpu_facts.display();
gpu_facts.tocpu(facts);
}
......
......@@ -119,6 +119,8 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
Faust::MatDense<SCALAR,Cpu> gpu_matrix(matrix);
auto *params = mxArray2FaustParams<SCALAR,FPP2>(matlab_params);
Faust::MHTPParams<SCALAR> mhtp_params;
mxArray2FaustMHTPParams<SCALAR>(matlab_params, mhtp_params);
FPP2 lambda = params->init_lambda;
......@@ -133,7 +135,7 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
// gpu_matrix.Display();
std::vector<Faust::StoppingCriterion<Real<SCALAR>>> sc = {params->stop_crit_2facts.get_crit(), params->stop_crit_global.get_crit()};
// cout << "gpu_fac_cons.size():" << gpu_fac_cons.size() << endl;
auto th = Faust::hierarchical<FPP2, GPU2>(gpu_matrix, sc, gpu_fac_cons, gpu_res_cons, lambda, params->isUpdateWayR2L, params->isFactSideLeft, params->use_csr, params->packing_RL, compute_2norm_on_arrays, params->norm2_threshold, params->norm2_max_iter, params->isVerbose, params->isConstantStepSize, params->step_size);
auto th = Faust::hierarchical<FPP2, GPU2>(gpu_matrix, sc, gpu_fac_cons, gpu_res_cons, lambda, params->isUpdateWayR2L, params->isFactSideLeft, params->use_csr, params->packing_RL, mhtp_params, compute_2norm_on_arrays, params->norm2_threshold, params->norm2_max_iter, params->isVerbose, params->isConstantStepSize, params->step_size);
auto th_times_lambda = th->multiply(lambda);
delete th;
......
......@@ -101,6 +101,9 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
// creation of parameters
auto params = mxArray2FaustParamsPALM4MSA<SCALAR,FPP2>(prhs[0], presentFields); //Cpu world
Faust::MHTPParams<SCALAR> mhtp_params;
mxArray2FaustMHTPParams<SCALAR>(prhs[0], mhtp_params);
if(params->isVerbose) params->Display();
SCALAR lambda = params->init_lambda;
......@@ -136,7 +139,7 @@ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
auto inMat = Faust::MatDense<SCALAR,GPU2>(params->data);
Faust::palm4msa2<SCALAR,GPU2>(inMat, noconst_cons, *F, lambda, params->stop_crit, params->isUpdateWayR2L,
params->use_csr, params->packing_RL, /* compute_2norm_on_array */ false, params->norm2_threshold,
params->use_csr, params->packing_RL, mhtp_params, /* compute_2norm_on_array */ false, params->norm2_threshold,
params->norm2_max_iter, params->isConstantStepSize, params->step_size);
Faust::MatDense<FPP2,Cpu> mat1x1Lambda = Faust::MatDense<FPP2, Cpu>(1, 1, &lambda);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment