Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 114e4322 authored by hhakim's avatar hhakim
Browse files

Fix 2 minors bugs in Palm4MSA c++ and pyfaust wrappers occurring only with a complex input matrix.

- init_facts weren't initialized as complex matrices in FaustCorePy.
- useless conjugate() calls in Palm4MSA::compute_grad_over_c() (it's managed directly in gemm() with a 'H' flag for transconjugate instead of a conjugate()+ 'T').
parent cc2e7f59
No related branches found
No related tags found
No related merge requests found
...@@ -152,7 +152,6 @@ Faust::Palm4MSA<FPP,DEVICE,FPP2>::Palm4MSA(const Faust::ParamsPalm<FPP,DEVICE,FP ...@@ -152,7 +152,6 @@ Faust::Palm4MSA<FPP,DEVICE,FPP2>::Palm4MSA(const Faust::ParamsPalm<FPP,DEVICE,FP
isCComputed = false; isCComputed = false;
check_constraint_validity(); check_constraint_validity();
} }
template<typename FPP,Device DEVICE,typename FPP2> template<typename FPP,Device DEVICE,typename FPP2>
...@@ -324,10 +323,6 @@ sprintf(nomFichier,"error_1_%d_device.tmp",cmpt);*/ ...@@ -324,10 +323,6 @@ sprintf(nomFichier,"error_1_%d_device.tmp",cmpt);*/
} }
} }
//false is for disabling evaluation (because the transpose does it later)
LorR.conjugate(false);
RorL[m_indFact].conjugate(false);
if (idx==0 || idx==2) // computing L'*error first, then (L'*error)*R' if (idx==0 || idx==2) // computing L'*error first, then (L'*error)*R'
{ {
if (!isUpdateWayR2L) if (!isUpdateWayR2L)
......
...@@ -1097,7 +1097,7 @@ cdef class FaustFact: ...@@ -1097,7 +1097,7 @@ cdef class FaustFact:
cpp_params.init_fact_sizes[i*2+0] = p.init_facts[i].shape[0] cpp_params.init_fact_sizes[i*2+0] = p.init_facts[i].shape[0]
cpp_params.init_fact_sizes[i*2+1] = p.init_facts[i].shape[1] cpp_params.init_fact_sizes[i*2+1] = p.init_facts[i].shape[1]
else: else:
tmp_mat_cplx = p.init_facts[i] tmp_mat_cplx = p.init_facts[i].astype('complex')
cpp_params_cplx.init_facts[i] = &tmp_mat_cplx[0,0] cpp_params_cplx.init_facts[i] = &tmp_mat_cplx[0,0]
cpp_params_cplx.init_fact_sizes[i*2+0] = p.init_facts[i].shape[0] cpp_params_cplx.init_fact_sizes[i*2+0] = p.init_facts[i].shape[0]
cpp_params_cplx.init_fact_sizes[i*2+1] = p.init_facts[i].shape[1] cpp_params_cplx.init_fact_sizes[i*2+1] = p.init_facts[i].shape[1]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment