-
- Downloads
Make Palm4MSA and HierarchicalFact. algos compatible with complex matrices (C++, Matlab, Python).
Faust now manages to factorize complex matrices in the C++ core and wrappers are bound to it. The results for real matrices are not changed at all: unit tests still return the exact same relative error between the original matrix and its approximate by factorization. - For C++ core: * Adapting the Palm4MSA class/algorithm: in calculation of gradient, transpose ops are replaced by conjugate-transpose. * Adding a template parameter FPP2 to be able to instantiate StoppingCriterion with a different template parameter than for example MatDense. Before the template type was shared and obviously when the MatDense scalar type is complex we don't want the StoppingCriterion to become complex for the error treshold (that must remain a real value). This new template parameter type is passed through Palm4MSA, Hierarchical, Params, ParamsPalm classes and some functions. It is also used for ConstraintFPP because again we don't want a complex type (used for MatDense) to set the norm-based constraints (it must remain a real). * Generate (cmake) new unit tests for hierarchicalFactorization test_palm4MSA faust_multiplication to test complex<float> and complex<double> (however the matrix tested remains a real matrix taken as complex matrix ; imaginary part is the zero matrix). * ConstraintGeneric is not a template class anymore. The reason is that it's needed to know FPP2 when down-casting from ConstraintGeneric to ConstraintFPP and it makes the code a bit complicated when using a collection of ConstraintGeneric. (But maybe this modification is to rolli-back later). To replace template class ConstraintGeneric, some member functions of that class become template functions. Consistently, ConstraintType also receives the new template parameter type FPP2. - For Matlab: * Update cmake script for compilation of mex files mexPalm4MSA.cpp, mexHierarchical_fact.cpp for complex. * New unit tests for complex versions of Palm4MSA and HierarchicalFact in FaustFactoryTest.m. - For Python: * New unit tests, equivalent to matlab's.
Showing
- CMakeLists.txt 1 addition, 0 deletionsCMakeLists.txt
- misc/test/CMakeLists.txt 22 additions, 11 deletionsmisc/test/CMakeLists.txt
- misc/test/src/C++/faust_matdense_conjugate.cpp.in 48 additions, 0 deletionsmisc/test/src/C++/faust_matdense_conjugate.cpp.in
- misc/test/src/C++/hierarchicalFactorization.cpp.in 7 additions, 7 deletionsmisc/test/src/C++/hierarchicalFactorization.cpp.in
- misc/test/src/C++/test_palm4MSA.cpp.in 10 additions, 9 deletionsmisc/test/src/C++/test_palm4MSA.cpp.in
- misc/test/src/Matlab/FaustFactoryTest.m 68 additions, 1 deletionmisc/test/src/Matlab/FaustFactoryTest.m
- misc/test/src/Matlab/hier_fact_test.m 1 addition, 1 deletionmisc/test/src/Matlab/hier_fact_test.m
- misc/test/src/Python/test_FaustPy.py 71 additions, 0 deletionsmisc/test/src/Python/test_FaustPy.py
- src/algorithm/constraint/faust_ConstraintFPP.h 6 additions, 6 deletionssrc/algorithm/constraint/faust_ConstraintFPP.h
- src/algorithm/constraint/faust_ConstraintFPP.hpp 24 additions, 24 deletionssrc/algorithm/constraint/faust_ConstraintFPP.hpp
- src/algorithm/constraint/faust_ConstraintGeneric.cpp 40 additions, 0 deletionssrc/algorithm/constraint/faust_ConstraintGeneric.cpp
- src/algorithm/constraint/faust_ConstraintGeneric.h 51 additions, 46 deletionssrc/algorithm/constraint/faust_ConstraintGeneric.h
- src/algorithm/constraint/faust_ConstraintGeneric.hpp 87 additions, 114 deletionssrc/algorithm/constraint/faust_ConstraintGeneric.hpp
- src/algorithm/constraint/faust_ConstraintInt.h 2 additions, 2 deletionssrc/algorithm/constraint/faust_ConstraintInt.h
- src/algorithm/constraint/faust_ConstraintInt.hpp 4 additions, 4 deletionssrc/algorithm/constraint/faust_ConstraintInt.hpp
- src/algorithm/constraint/faust_ConstraintMat.h 3 additions, 3 deletionssrc/algorithm/constraint/faust_ConstraintMat.h
- src/algorithm/constraint/faust_ConstraintMat.hpp 4 additions, 4 deletionssrc/algorithm/constraint/faust_ConstraintMat.hpp
- src/algorithm/constraint/faust_ConstraintType.h 4 additions, 4 deletionssrc/algorithm/constraint/faust_ConstraintType.h
- src/algorithm/factorization/faust_HierarchicalFact.h 9 additions, 9 deletionssrc/algorithm/factorization/faust_HierarchicalFact.h
- src/algorithm/factorization/faust_HierarchicalFact.hpp 31 additions, 31 deletionssrc/algorithm/factorization/faust_HierarchicalFact.hpp
Loading
Please register or sign in to comment