Version 3.41.0:


Version 3.41.0a2:

970e6c9ee CMake script: fix uninstalled fdb submodules (#343, !1).

Version 3.41.0a1:

7353f3624 Fix gpu_mod submodule version (gpu_mod@163439ad).
62ee20f10 merge fast-deformable-butterfly review
83a623808 pyfaust.fact.fdb: reorganize imports, minorly change doc, reformat code, replace deprecated np.float_ (!1).

Version 3.41.0a0:

9d905a693 fdb function works for non power of 2 matrix dimensions now + clean commented code
69225b9b3 Merge branch 'main' into fast-deformable-butterfly
690ce1706 add more tests + fix a bug in hierarchical_order='balanced'
33b84518a Merge branch 'main' into fast-deformable-butterfly
aa4c92437 add bit-reversal permutations to the fdb notebook.
a4b74b3c6 add bit_rev_perm argument to fdb function
9347725ae comment unused functions
23f40c471 add first attempt of a notebook about fdb function
877838c23 setup.py: add pyfaust.fdb subpackage to pyfaust (fixing whl pkg).
db1fe0b3b Fix doctest/nbtest_pyfaust ci job error of missing fdb subpkg (#337).
1bbd9ee80 format docstring + remove unused function
ef6673046 add benchmark of fdb backend
5f09f81cf Add backend argument to fdb function + more documentation + more tests
243a2caeb add tests to fast-deformable-butterfly factorization function
0f57ba1f9 add fast-deformable-butterfly (first attempt)

Version 3.40.2:

761182d5a cholesky test: temporary fix next to scipy 1.14 update (#341).
8e6237227 pyfaust.circ: fix deprecated scipy H attribute (#339).

Version 3.40.1:

3685ca474 Minorly update docstring examples next to NumPy 2 update.

Version 3.40.0:

e2f5cda2b Move to numpy >=2.0.0 (#338).

Version 3.39.25:

4e4aec91d matfaust/pyfaust.toeplitz: fix out of memory error (large array + diag_opt, #335).

Version 3.39.24:

f2f9537ea Enhance sphinx/doxygen doc compatibility + python code formatting (pyfaust.py).
f6a2e0015 Doxygen doc: enable navigation side bar.

Version 3.39.23:

26df64102 Update README install information.
dedcff699 Update poly docstring examples (#332).
83f901908 Remove explicitly the conda environment in case of failure during anaconda pkg upload.
c90f2d53d Fix typo in pyfaust.Faust.density def doc.

Version 3.39.22:

b216acf44 Display the F_CONTIGUOUS __matmul__ warning only once (#328) + add a related warning in doc.
a095b9adf Handle erroneous matrix size in Python butterfly() before C++'s (#331).

Version 3.39.21:

2b14d0d78 Re-enable conda pkg building jobs for python3.12 (#327).
bd5a4974a Update CDash domain name after server migration.
c62258383 Add notebook automatic tests + doctest udpate in ci job.

Version 3.39.20:

e3055f21d Update Zenodo archive of FAµST misc data (Faust opt. notebook arrays).
20d34ce4c Migrate pyfaust.demo.get_data_dirpath from depracated pkg_resources to importlib.resources.
1f4428b1f Add Faust opt. notebook mat-files in pyfaust/data local directory.
290e75aa5 Fix poly docstring examples that failed doctest when passing from scipy 1.11.* to 1.12.*.
21aa76928 Review of poly module tutorials with minor changes.
05723db25 Minor change in sys pkg installer doc.
12ccadb9d Switch to python3.12 for doctest_pyfaust ci job.
c67eaeac4 Increase pkg_linux and pkg_linux_purepy_rev expiration time of ci job artifacts.

Version 3.39.19:

6881e5998 Fix pkg_win* ci job artifact path.
6fc7435b5 Disable temporarily conda pkgs for py3.12 (issue #327)
59b8d6cff Fix inconsistency of python versions between windows .exe and wheel pkgs release ci jobs.

Version 3.39.18:

3093741f0 Fix python revision pkg version that is not compliant with new versions of setuptools (PEP440).
62d274d16 Ignore temporarily cython warning about IF-ELSE (issue #326).
e1b84251d Move to py3.12 (py3.11 maintained, py3.10 dropped).
7a6a76f98 Move misc data archive to Zenodo.
50a55736f Simplify pyfaust.Faust.average and complete unit test for avg on both axes.
a27d4184b Fix a bug in mul of CPU Fausts in which right op is sliced.
437597f69 Add unit test for pyfaust.Faust.imshow.
b4d74732b Add unit tests for pyfaust.Faust.__pos__/__neg__.
db7aca6e4 Reformat pyfaust.Faust.pruneout and complete unit test.
98d225651 Ignore non-std broadcasting array/Faust to a Faust (numpy compliance).
db1e5475d Add minor fixes in pyfaust.Faust.__add__ + complement of unit test.
9f9d28864 Add a complementary unit test for pyfaust.poly.invm_multiply and reformat its docstring.
211249d23 Complete pyfaust.poly.expm_multiply unit test.
63516272b Refactor/secure/document/test concatenation private functions in pyfaust.poly.
12f81cc61 Review pyfaust.factparams.ParamsPalm4MSAFGFT._set_init_D and add its unit test.
3bde57733 Fix ParamsFact.factor_format_int2str/str2int error handling + add corresponding unit tests.
a39b7fff8 Add a unit test for ConstraintName.str2name_int, name_int2str.
251d09611 Test also UpdateCholeskySparse and take it into account in coverage calculation.
3ccde7e70 Extend TestPoly._test_poly to cases where L is a Faust.
8be6abe93 Apply fixes in pyfaust.poly.
4110f65e6 Add a unit test for pyfaust.faust_logo and pyfaust.logo.draw_faust.
d6183f474 Add a unit test for pyfaust.poly.poly python impl.
f21bc7468 Factor test_basis and test_basis_py into verif_basis.
ee4c05a16 Add a test for poly.basis(impl=py).

Version 3.39.17:

d649a9dd9 Add ctest logs as gitlab artifacts for ctest_nightly* jobs.
fcef84729 Enhance resolution of pypi logo.
28d5c3831 Fix loss of pyfaust coverage info.

Version 3.39.16:

3544a9c50 Test also the recursive method of pyfaust.concatenate in testConcatenate unit test.
68ba738d0 Update pyfaust concatenate code.
861819b89 Test also thread parallel version of elementwise Faust mul + update doc about elementwise ops.

Version 3.39.15:

3e50a5d41 Add a test for pyfaust.Faust._eltwise_mul and a fix in its parallel code.
9bc218c10 Reduce logo size for pipy.org.

Version 3.39.14:

a2832bbcb Update pypi pyfaust desc with new logo and link to coverage report.
9a182a274 Run pyfaust.datadl as entry point for a better coverage rate.
1e5633f3a Suggest to add tests in contributing doc.
9d8b772fc Update to gpu_mod@163439a.
2300b927a Mention Inria portal for external accounts.

Version 3.39.13:

dbc6f3f19 Fix palm4msa/hierarchical_constends example + use backend 2020 + safer handling of lambda.
5b0648955 Fix URL encoding of C++ test coverage badge.
006aa9e92 Increase timeout for MATLAB_FAUST_FACTORY_UNIT_TESTS (1h30).
cddec6648 Set titles to bold in pyfaust.Faust.imshow.

Version 3.39.12:

ad818d7a7 Update contributing, ci and main readme.
3e4933358 Add pyfaust.logo and change the documentation's logo.
7b497890e Complete pyfaust.Faust.replace/insert with stricter argument checking, exception doc and unit tests.
9848d73cd Increase timeout on MATFILE_MULTIPLICATION_VISAGE_G7_<FPP> test because of slow Windows VMs.
92fe81fa0 Move coverage computation ci jobs to nightly schedule pipeline (for cpp it is still enabled for revision git-pushes).
7e97e6588 Set to normal pipeline doctest ci jobs for pyfaust and matfaust (were previously nightly scheduled ci jobs).
217278883 Increase again PALM4MSA lambda error tolerance of MATLAB_FACT_MEG_MEX test (for macOS this time).
2260ad84c Fix svdtj tests for complex<float> on macOS.

Version 3.39.11:

b612dbf18 Update setup.py with new classifiers + format long desc + add badge for py versions + other project URLs.

Version 3.39.10:

b07920c00 Enforce clang 9 in macos ctest nightly ci job.
6d812e7f6 Fix possible inconsitent python version classifier in Windows wheel package.
3a7d84132 Re-enable macOS nightly ctest with multithreading.
4894b7f06 Upgrade version of clang used to build macOS .pkg (v8 to v9).
5d9bdb0bc Fix generation of python version classifier (wrong cmake variable used).
ac4aa0193 Minor changes in python finding cmake scripts.
15869b6b9 Increase again timeout limit of several tests after VM trespassing.
a1556bfe4 Prevent MEG factorization heavy tests to run in parallel with others + increase parallel level of ctest for windows nightly tests.
cdaa22001 Widen matfaustcov badge.
c514e0d1d Lower the number of ctest test jobs for Windows VMs which are quicly overwhelmed (with nightly slow tests).
ebfaa023b Fix cmake script: set called instead of set_tests_properties + double timeout for the test + fix typos.
31d04d8fa Simplify/Speed up MATLAB_DEMO_INSTALL test.
e783c3b03 Fix two bugs in hadamard speedup demo: waitbar using if no jvm + too heavy calculations.
66651f537 Update hadamard demo to new constraint API.
a528982e5 Change directory to fix possible permission error in MATLAB_DEMO_BUILD test.
ddb840f6d Increase tol on lambda error for MATLAB_FACT_MEG_MEX.
4b7a44ba8 Increase test timeout.
0bebb8a11 Enable multithreading (OpenMP) in ctest_nightly_win10 to fix faust_transform_omp tests and speed up the tests.
bddf5939c Increase tol error on palm4msa lambda to pass two tests both on Windows and Linux.
980aada65 Update pyfaust/matfaust license.
b47e770c9 Fix a segfault in EigTJParallelSparse C++ test.
3d23639a1 Increase error tol in multiple tests because of false positives on Windows.
f20037c5c Specify which config to use for ctest (fix ctest_nightly_win10).
435e8738b Move MatType enum from default namespace to Faust namespace.
f636e0867 Adjust cpp tests building for Win VS.
420cf76ae Adjust VS version 2019 and remove VS non-compatible flag for // building.
c464658f2 Fix Windows Visual Studio that refuses to use for and simd OpenMP directive together.
a6323f9c8 Use C++ string and vector instead of C char* and array.
62de472a0 Move M_PI preproc const from EigTJ to EigTJGen (other subclasses need it).
2c0c94b88 Remove useless old CMakeLists.txt archive.
20361bf21 Remove deprecated pdf guide and mention deprecation in tex source.
d05f54cca Fix indicated Python minor version in setup.py and anaconda guide.
e1a0b8b95 Delete outdated dev todolist.
fb568cc0e Add a bit of GPU code in matfaust test coverage calculation.
d34b0133c Add new sections + review of tests/CI doc.
27f4b5b46 Add mention of proxy fork + other minor changes.
e949e9a36 Get back ctest* ci jobs to failure of pipeline in case of configure/build error.

Version 3.39.9:

3acc7099d Clarify the license type + add Pascal to author list.
3a52a581e Enable GPU python/matlab tests in linux/win10 pkg test ci jobs if the gitlab-runner is cuda tagged.
5425f0c03 Set different number of jobs for ctest building of C++, python or matlab tests.
19f7d02ad Always run C++ tests in revision pipeline to keep track of test coverage.
b6b73b2f7 Add an example for pyfaust hierarchical_py exp code.
285343802 Fix minor bug in pyfaust.fact.svdtj2 exp code + example.
ee1369a03 Set pyfaust whl rev pkg to py3.11 (previously to py3.10) -- pkg_linux_purepy_rev ci job.
fa70918bb Externalize pyfaust_test_code_coverage ci job into pyfaust_coverage.sh script + run more tests (more dtypes and GPU tests if CUDA available).
c2244f90e Minor fixes in matfaust doxygen doc formatting.

Version 3.39.8:

859f17f7f Fix duplicates in pyfaust doxygen doc.
cbfa23970 No parallel building for ctest_matlab.
d5c1ce18e Update VS Studio version in CDash config (fix for ctest_nightly).
f39fa0b3c Add sanity checks on report files of ctest* ci jobs + other checkings.
c62a6ac69 Fix minor bugs in GPU tests + update to gpu_mod@4408485.
4ef366438 Enable GPU C++ tests if the gitlab-runner has the cuda tag + refactor gpu_mod building in a specific script + parallel building.
52f6d6cb1 Add matfaust.Faust.insert/replace.
e28e98ba3 Minor changes.
11564806c Replace gcovr invocation in ctest ci job by an extern script.
45dab9b35 Add pyfaust.Faust.insert/replace.
75493775f Fix pkg_macos.sh undefined variable MACOS_PKG_STORE_PATH.
17a591b4e Set strict mode in script: not defined variable, nonzero exit/pipeline code raise an error.
67506834d Limit gcov flags to ctest ci job (C++ tests).
70a95dde5 Minor change.
84d93bbbd Fix exp code example in pyfaust.fact.hierarchical_constends.
4010972c4 Minor change.
eaa373362 Add C++ test coverage badge in the README.
565a44554 Fix cpp test report path issue.
93ac249d9 Minor corrections in code doc.
cc2025b25 Fix coverage cmd and add the output dir to the job's artifacts + increase ctest timeout.
27b1e8532 Add C++ ctest coverage with gcovr in ctest ci job.
98725a4a1 Fix GPU Matdense mul, multiplyLeft(MatSparse) tests and update to gpu_mod@47ad960.

Version 3.39.6:

905a5f671 Replace static changelog file by a script generator triggered in pages ci job.
f5b3cee3a Fix GPU batched SVD test in case of complex matrix.
0a81d1bce Fix GPU2 MatButterfly/MatPerm tests in case of double scalar type.
28b24fbbf Fix a memory leak in Transform<FPP,GPU2>::tocpu.
36d00858f Fix MatSparse<FPP, GPU2>::tocpu(MatSparse<FPP, Cpu>&) in case of zero MatSparse.
cdd4f1ee3 Enhance MatDense<FPP, Cpu>::operator=(MatSparse&) in case of zero MatSparse.
deccea43b Fix unit tests of Vect<complex<double>, GPU2>.
03c046a31 Fix BSR block sizes in test_dynprog_mul_gpu.cpp.in.
a0063c3fd Fix GPU2 MatGeneric::to_string wrong use of Cpu parameter for MatBSR.
b9ffc73e3 Update to gpu_mod@ef3d005.
62b98e15f Correct Vect::equality prototype, the precision is always real.
3bfcccec6 Add unit tests Vect<FPP, GPU2>.
7b9ae8091 Fix function init_params_from_matiofile not found.
d98517f33 Update to gpu_mod@24ba075.
da72b2f48 Add commit sha in cdash build name.
c7156e7ea Ignore skipped status for pipeline badge and remove badges in anaconda pkg desc.
0e539ceef Minor fixes in READMEs titles + automatic TOCs.

Version 3.39.5:

91e0e7cc0 Remove erroneous preprocessing END keyword.
02f75df8f Integrate coverage badges and FAµST logo on pypi, readme and anaconda descriptions.

Version 3.39.4:

cd07405ad Integrate coverage badges and FAµST logo on pypi, readme and anaconda descriptions.
b02fbf50f Fix minor errors in doc string examples of pyfaust.fact.hierarchical_constends/palm4msa_constends.
77ba25ec4 Add a contributing guide + update other READMEs consequently.
0bc49813f Re-enable cdash report submission but with token auth.
7fc9306b9 Add gitlab coverage regex in pyfaust/matfaust code coverage ci jobs.

Version 3.39.3:

858e7a7f2 Update many things mostly around Faust scalar types conversions + wrapper building.
ad4557c10 Replace GPU2 MatSparse::resize test by a resize+set test (more assertions verified).
b0a38a7cb Fix multiple bugs in GPU matfaust.Faust.real/imag/double/single for Faust SPARSE matrices.
cb6e53eac Fix multiple bugs in GPU matfaust.Faust.real/imag/double/single for Faust dense matrices.
400ce8cc5 Fix GPU pyfaust.Faust complex to real conversion.
705cb5379 Update README.developer.
122331378 Add build pyfaust path to PYTHONPATH before sphinx doc generation.
e97fa4dc3 Add a dependency to pages ci job because it needs pyfaust shared lib to generate sphinx doc.

Version 3.39.2:

0f9cd71d6 Add dependendy to pages ci job because it needs pyfaust shared lib to generate sphinx doc.

Version 3.39.1:

5c86db480 Set pyfaust version in sphinx doc.

Version 3.39.0:

67a92d609 Add a concurrent sphinx API doc for pyfaust and link it on the doxygen doc.

Version 3.38.23:

d0e52a736 Ease copy of examples in online API doc (chevrons and outputs are excluded from selection).
03446221e Minor fixes in two ci jobs.

Version 3.38.22:

1b8728a45 Add mul_perm option in matfaust/pyfaust.fact.butterfly.
195fe71d3 Replace py3.9 by py3.10 in package generations.
004b23f88 Update copyright years.

Version 3.38.20:


Version 3.38.21:

6ed3016d8 Fix issue #323 about libomp conflict between pyfaust and mkl.
5adaa57ee Set a docker image (for linux) and doc to ease pyfaust building.
46ab1494d Remove the cloning part of the README now that the default way for cloning is ok (issue #294).
169be7be5 Fix matfaust_test_code_coverage ci job that now needs to download data before proceeding.
c01d7b475 Fix missing faust_quick_start.mat for matlab cmake configuring by launching the download automatically.

Version 3.38.19:

62c9c0713 Fix pyfaust_test_code_coverage ci job that now needs to download data before proceeding.
966ddaa9a Cmake BUILD_TESTING defaultly OFF but ON in CDash/ctest config.
a1202218b Add a script to download misc/data instead of relying on local data.
6139886c5 Fix a bug in pyfaust.Faust.__getitem__().
77699a6a3 Complete README part about C++ tests.
1f1a7aa29 Renable nighly ctest ci job for Linux and Windows.
3d8cbc596 Update svdtj doc about experimental status and order of singular values.
6b330addc Disable by default the benchmark part of MatBSR tests because ctest runs them in parallel so the times are biased on VMs.
e21e26cfa Use the proper error and increase tol in svdtj tests.
2ac09cdba Update SVDTJ on stopping criteria.
fe79d902c Increase test timeout to fix MatBSR tests.
b311e9a6f Set different error tolerances for each scalar types in MatBSR tests.
c04130551 Fix missing cases for typeA/B == 'H' in gemm_core.
40d20acb1 Fix return ref to local value in BSRMat::operator().
1a00262ed Fix faust_butterfly/perm_mat tests which were not compatible with real matrices because of FFT.
0b1e8d036 Fix config .mat filepath error.
8e982f999 Fix buffer overflow in MatSparse(MatDiag&) ctor.
1f72d16e8 Fix failed EigtJ test on MatSparse Laplacian because of default enable_large_Faust == false.
4dbfe5536 Fix faust_multiplication ctest add without needed arguments and remove its complex versions.
c260f72ed Set fixed seed.
03367de58 Add missing cpp tests to ctest.
800ae2af8 Enhance slightly error tol on ParamsPalm4msaWHT example.
6aac71c1d Document in FAQ the SafetyError warning when installing pyfaust with conda.
703c721ca Review/correct/update FAQ entries.
13fbe2b91 Ease use of faust data downloader script by creating the output directory if it doesn't exist.

Version 3.38.18:

638ab14c1 Update/Correct system pkg installation guide.
a3fb0d1bb Correct runner tags of test_macos_purepy_release* ci jobs (no need of macos tag if macos_pip_pkg_tester is set).

Version 3.38.17:

7e2c881b9 Build python wrapper cpp files independently to speed up/parallelize building.
d89545d6c Correct macos SZIP lib path (more standard).

Version 3.38.16:

dbe56ccda Add a specific tag for pip pkg ci jobs on macos because of _clock_gettime missing symbol on older macOS (10.9).
0df0b3e09 Add separate SZIP static lib path (to fix macos new link issue).
40a87f001 Parallelize more make calls with 4 or 8 jobs.
e14c9b67b Remove recursive strategy for submodule in macos jobs (don't need gpu_mod).
dcd0545bc Fix errors in numpy min/max uses with numpy version 1.25.
4d74feee7 Fix paths for only:changes rule.
8a8f6d64c Fix faust_transform_omp_mul test (OMP/C++ threads Faust-matrix mul. parallel reduction).
21f77fd84 Replace clang 8 by clang 9 on macos gitlab-runners + correct typo into build dir of ctest_matlab.
9d81f9b1a Avoid Xcode's clang to be confused with gcc in matlab/mex matching test.
209a3622a Update doc for cpp tests/ci.
2a4498fe7 Update the script/guide for Mac OS X VM install.
2590093c6 Fix return ref to local variable in MatButterfly/MatPerm.
7c5750ab1 Increase error tol in EigTJ test.
4e5d2fa35 Fix EigTJComplexSparse test that was failing because of enable_large_Faust defaultly to false.
d54296341 Skip doctest of matfaust hierachial fact of MEG matrix (too long).
fa73e2d7a Fix build dir pattern.
ab8948f91 Replace git command by only-changes gitlab ci rules.
9bd8d51f6 Minor change (std prefix).
9599a692c Remove mention to py2.7 and adjust note about pygsp linking the notebook.
adb0f4940 Exclude matfaust_test_code_coverage ci job of scheduled pipelines.
58c0e3aef Increase tolerance of test in float case.
7d9b94756 Add junit test report to ctest (cpp tests) ci job and refactor junit2html generation for all ctest_* jobs.
b9e189731 Add a note about matfaust test coverage and GPU code tests.
72467501e Add a hint about matlab savepath in install guide.
39b17330c Remove linux pkg download from matfaust_test_code_coverage ci job.
9969a1231 Add matfaust test coverage ci job (using MOCov).
ac709a525 Filter <p/> html tag from matfaust inline doc blocks.

Version 3.38.15:

885c9a755 Fix testGetItem test that rarely failed.
5503e8319 Increase error tol from machine epsilon to 1e-15.
fced1cbc4 Complete afeba5b0 to fix file conflict between parallel/sequential tests.
843365242 Fix missing hdf5 lib in macOS pkg and replace install path /usr by /opt
4d9005413 Update readme with test coverage info.
947003ace Delete possible pre-existing file with the same name.
c0e896757 Take doctest into account in the pyfaust code coverage.
4ff7ecd80 Add a test code coverage ci job for pyfaust.

Version 3.38.14:

f8cc25d0d Add a README about ci tests and pkg release (to complete).
3b7ad5f62 Remove old link to lazylinop notebook.
2a2f467bb Fix matfaust doctest loop (exit on first test).
1988c3406 Minor change in unit tests: complex case and tol in cmp.
59a17687d Add BitReversalPermutation.m to install dir/package, it's needed for fact.butterfly.
269093f8d Fix doctest bug of experimental m-files by removing experimental tags/comments if EXPERIMENTAL_PKG=ON.
8403c7f5c Fix butterfly optimization segfault on already optimized Faust.
98539b6c9 Review/doctest matfaust.demo and add it to doctest ci job.
7ac304f29 Add matfaust.fact and .tools to doctest ci job.
9b06ea80a Review/doctest matfaust.tools.
5f05531ec Review/doctest matfaust.fact.
68867a5f8 Fix missing std namespace.
24344391b Fix tolerance problem in matlab FaustTest.testcat.
8196441a1 Review/doctest matfaust.fact.butterfly and add it to doctest ci job.
c9d914132 Review/doctest matfaust.factparams and add it to doctest ci job.
cc73164fe Review/doctest matfaust.poly and add it to doctest ci job.

Version 3.38.13:

435c733cc Fix Windows filename too long error on.
f6dac72c0 Fix conda-build error on libomp patching, it fails libomp loading and so the package test.

Version 3.38.12:

253203e6c Filterout doxygen blocks from m-files of classes too and ensure it happens after doxygen doc gen.
b525332ff Add an env var to disable libomp loading in pyfaust.
cafe77c55 Review/doctest matfaust.proj and add to doctest ci job.

Version 3.38.11:

5c09c76f1 Enlarge a little bit the error tolerance for matlab testFourier.
c922719b0 Add pyfaust.is_gpu_mod_working as in matfaust.
10354d4d1 Add matfaust.is_gpu_mod_working + Fix matfaust.device/clone doctest when CUDA is installed but no device is available (typically happening on VM).
c58b89c70 Fix missing function matfaust.rand_bsr after doxygen docstring filtering.
9ca97bfef Fix doc examples of matfaust.Faust.power_iteration/mtimes.
73a48f143 Add note in Faust/concatenation doc about use of LazyLinearOp to encapsulate a Faust.
f799dc860 Fix CPack .deb/.rpm generation error without failing the gitlab pipeline.
3d035a25f Delete cmake script part for installing project embedded matio 1.5.7 (it was deleted long time ago).
2dd1795e9 Delete object files asap in pkg_linux*/pkg_purepy ci jobs (limiting disk space consumption).
b34c075da Delete artifacts.zip after unzip and unzipped directory 'build' after rpm install (limiting disk space consumption).
0fc807ec4 Reduce make/bdist_wheel cmd output log to error/building/linking message in pkg_purepy, pkg_linux, pkg_linux_release, pkg_linux_release_static ci jobs.
8265037ce Remove -nojvm matlab flag for doctest.
178ac49b0 Set BUILD_FLOAT_MEX=ON for matfaust doctest.
1e3b4842e Add nightly ci job for matfaust doctest.
959d792f4 Disable error prone ctest report submission to inria cdash.
60e0034e3 Remove again junk in output (matfaust test report was still too large: 30Mb).
fb17d5659 Output test report link in ci job log of ctest_matlab/python
e8fb5f0cf Fix false negative in matlab FaustTest.testNormalize unit test (NaN issue).
0ecf9151c Fix the unit test of matfaust.proj.spsymm and correct the doc part about k and the image nnz.
bbc714b9a Label all matfaust unit tests and remove junk output to lighten test reports.
439734913 Fix memcpy error in mex code faust_optimize_time.hpp for dense matrices.
01d18e46f Fix matfaust.dst complex(sparse_matrix) error for older versions of Matlab.
746b0b909 Fix minor error in (matlab) FaustTest.testDensity.
0f85566b9 Fix pyfaust.circ bug occurring if len(v) == 4.
808363fa8 Fix file conflict between test_matlab_faust.m MATLAB_FAUST_CONFIG_* tests which occurs because ctest might run them in parallel.
ca69db1ed Add missing ParamsHierarchicalDFT.m.
3d4a4caec Make ctest_matlab ci job even stricter: even a unit test failure stops the pipeline.
1a0a18330 Fix minor error in matfaust optimize_time unit test.
456052956 Fall back to Faust.load because load_native doesn't handle BSR matrices (failing test testSaveBSRFaust).
c15c539fc Fix matfaust.Faust.mtimes_trans and tests MATLAB_FAUST_CONFIG*, MATLAB_FAUST_SPEED.
ee6abf674 Add -nodisplay to speed up the matlab launch by ctest.
266c58e20 Finish doctest of matfaust.Faust.
c93747567 Adapt matlab inline doc gen script to not interfere with octave-doctest.
bd10602e4 Set up allow_failure in ctest_python/ctest_matlab in case of punctual need of more tolerant test (failure accepted).
fcb0c9c3c Almost complete the doctest review of matfaust.Faust.
cf717ca37 Add seed argument to matfaust.rand.
587f90af6 Fix ctest_python/matlab ci job status code in case of all tests passed.
cc5513d5c Make ctest_python/matlab ci jobs capable to fail the pipeline if unit tests are not all passed.
342f29790 Update ctest_matlab/python ci job to upload the test report whether the job fails or not.
7c1afe021 Partially review matfaust.Faust with doctest (to continue).
183fdfc8e Upload ctest report for matfaust as gitlab artifact.
1115ed73b Undo 0ae1252b and replace by libomp preloading.
5de531e88 Make ctest_python ci job fail on gitlab if any (unit) test have failed.
7500fb614 Enable float scalar in ctest_python ci job.
ab526c744 Fix MatPerm::multiply in transpose case.
f55c9296e Add adjoint test for DFT diag_opt=True and rand_butterfly.
04f4c5e7a Fix TransformHelperGen::factors transpose case bug.
6c21c9b64 Set/document min version of cmake needed.
6bdfdfecd Fix MatPerm/Butterfly::to_dense.
ac43be3ae Add a JUnit XML format output for ctest and, upload it as HTML to gitlab as artifact.
8479d4824 Fix recent regression (fc3b0ec6) in complex scalar addition/subtraction to a real Faust.
89ca27dbe Use default compiler (gcc) for running tests (ctest).
381415d87 Make tests compatible with float32 dtype.
7b1e8d813 Secure/Simplify scalar detection and correct multiple dtype issues (float32).
6833bb039 Minor simplifications.
7dd8443b3 Fix pyx code of polyCoeffs and polyGroupCoeffs: bad dtype of output array if poly dtype is float32.
ae492bcb1 Fix Faust.average bug for float32 dtype (inconsistency between Faust and weights dtypes).
383b0c9aa Run ci job pkg tests on complex in addition to double scalars.
ac32b2cd5 Fix pyfaust expm_multiply unit test.
ceff7fe23 Fix minor error in venv name (since move from py310 to py311).

Version 3.38.10:

70f7096db Remove version in rpm/deb package install prefix.
3db8af8db Replace old HTML tutorial using_gpu_matfaust by a real mlx matlab live script.
7cff526cf Add a note about Faust deletion in live script.
57ff917b8 Fix issue #256.
134238c1b Add a note about Faust deletion in jupyter notebook.
5b89c89c1 Add matfaust.Faust.uminus and pyfaust.Faust.uplus overloads.
c69f8ef83 Simplify the CUDA install note for win10.

Version 3.38.9:

5d77c1029 Set priority of CUDA versions in gpu_mod lib loading.
f218a10c1 Refactor windows gpu_mod building into script and fix interference between CUDA versions.
3bd79a2bd Remove libgm symlink from wheel/pip package.
cd9184292 Remove pylops from pyfaust dependencies.

Version 3.38.8:

010223b11 Enable cuda12.1 for windows packages.

Version 3.38.7:

ef1876c0e Update doc about CUDA/matio versions, contributors and teams.

Version 3.38.6:

6dcd8699d Upload package to gitlab package registry instead of gitlab-pages + update links in download page.

Version 3.38.5:

46c8c969d Limit CUDA pypi classifiers to cuda major version.
e61d042b9 Enable cuda 12.4 in Linux packages.
9fe0fa4a4 Disable cuda-9.2 support for gpu_mod.
e4abdcd4d Update linux library versions of matio and its deps to the latest ones.
fc0ace114 Update Matlab-gcc versions matching.
1459c3482 Adjust MatSparse::toMatIOVar to matio >= 1.5.18.

Version 3.38.4:

ae9f298a0 Set numpy version specifier to >=1.23.

Version 3.38.3:

fa5bcb0a0 Fix deprecated uses of matplotlib in pyfaust.demo module + fix output of examples for doctest.
25b382ad4 Add needed sudo for rm.
d037bc9e9 Fix erroneous/old use or * instead of @ for Faust-matrix mul.
8a54ce24c Fix doctest ci job for pyfaust.fact module.

Version 3.38.2:

2f278954a Update doctest ci job to test latest dev version instead of published pip pkg.
5ec8d8807 Fix correctness of poly module functions and display of Fausts they produce.
f8a6c1440 Complete sptriu/tril/symm tests and precise the sparsity of spsymm in doc when k is odd.
5515d464d Add scheduled ci job for pyfaust doctesting.
cc876e907 Add missing exit code.
a3b28f2c1 Remove conda env after successful upload.
957a6b813 Link Faust.pinv doc to fact.pinvtj's.
53a11a696 Clean up use of Faust namespace in EigTJ modules.
46f0a6129 Make optional (disabled by default) the copy of RPM/DEB pkg in /home/hinria.
c21cf426d Rename all givens_fgft to eigtj in matlab/python intermediate wrapper functions.
fceb010f2 Rename all C++ classes/files *GivensFGFT* to EigTJ.
e10cf343a Rename mexsvdtjReal to mexsvdtjdouble and mexsvdtjRealFloat to mexsvdtjfloat because both of them handle complex too.
8a2e8a71c Add unit tests for matfaust/pyfaust svdtj.
a0a1242a7 Fix macos sed command on meta.yaml.

Version 3.38.1:

de9f6fdc5 Fix license path in conda meta.yaml (relative to root dir project).

Version 3.38.0:

34becc6b3 Add a note in svdtj doc about error calulation two-times strategy.
02011e285 Rename TRIL_SP, TRIU_SP and SYMM_SP to SPTRIL, SPTRIU and SPSYMM.
93463f27e Fix svdtj mex missing symbol with float type.
4b35430ee Remove old import to lazylinop.
2c7a472ef Set EXPERIMENTAL_PKG variable for rpm/deb static matio release packages.
9f546cc49 chmod +x script.
e9884994f Add matfaust wrappers to TRIL_SP, TRIU_SP and SYMM_SP projectors.
f088404ce Add doc for shape argument of pyfaust.proj classes.
afae76244 Fix missing attributes in copy/assignment operator overload of StoppingCriterion.
1c18e7c62 Document SIGINT stop of palm4msa and hierarchical in matfaust/pyfaust.
cac637ade Add SIGINT (CTRL-C) handler in PALM4MSA 2020 to stop on manual user interruption.
b3fc0b7f1 Fix format of brief line of pyfaust.proj.spcol API doc.
b1412aeb0 Remove the lazylinop module from matfaust + remove associated unit tests.
35832b626 Remove from pyfaust the lazylinop module, its unit tests and notebook.
d0dbb82f3 Add explicitly the license file in conda package.
84441c1bf Fix typo.
6d3f75dd6 Fix conda multiline description and misleading license name.
cd900bff5 Fix #319 (compilation issue on Windows VS).
02fd11661 Secure SVDTJ two-errors strategy in case of very large tol or zero matrix sum.
b68577ec8 Update findEigenLib for Windows: find eigen3 locally instead of using an embedded archive.
3365331ec Add matfaust.fact.pinvtj and update svdtj doc.
20792b506 Add pyfaust.fact.pinvtj and update svdtj doc (error/tol changed).
ec1ce6308 Implement optional pseudoinverse error in C++ svdtj.
f02287d42 Implement two-stage error strategy in SVDTJ c++ code.
3ec1c20fb Add a doc reference about the error calculation of eigtj in C++ code.
127b6d7ee Update verbose mode of SVDTJ (clearer msg on error + U/V tag of eigtj factor).
caa35c870 Add err_period argument to matfaust eigtj.
e09837bb3 Add err_period argument to pyfaust eigtj.
95e3c3ba9 Minor change in C++ SVDTJ: more information on error of U and V in verbose mode.
65d78e336 Add err_period attribute to GivensFGFTGen classes.
077340df6 Modify svdtj c++ step mode to stop when the singular values become worse (error increases of one order of magnitude or more).
92a68a0f0 Update matfaust svdtj.
00fc5f98a Fix FaustVec2mxArray complex case.
599c15530 Add pyfaust.fact.svdtj err_period argument.
082086ff6 Fix Faust::prox_symm_sp comparison to zero in case matrix scalar type is complex<T>.
d63ebafab Extend pyfaust svdtj to set different nGivens, nGivens_per_fac for U and V + update doc with examples + update C++ unit tests.
8e7f44dab Clarify svdtj singular values are always in descending order (doing as matlab / numpy).
528596cf1 Fix triu_sp, tril_sp and symm_sp wrong super call and erroneous examples.
151e00b1e Fix prox_tri_sp and prox_symm_sp in GPU code.
cb8c3678d add symm_sp constraint, add missing semicolon
2599439ce add generic code for triu_sp and tril_sp constraints
12dcef08b add tri_sp constraint
679bcef42 Defaultly use only scipy.signal.convolve2d in lazylinop.convolve2d.
efc967ded Update convolve2d to be exactly the flattened Simon's notebook version and adjust fft2 consistently + add Simon's check_op function to validate a LazyLinearOp.
4fc094d9c Fix Visual Studio build errors with numeric_limits::max.
a1c040d20 Update matfaust.svdtj: remove old square matrix restriction and fix S shape in case of rectangular M.
b6edf52cd Fix symbol conflict (stop_crit attribute and stop_crit macro).
0b7ee5ace Add ci job script for static matio rpm/deb release packages + use it to simplify .gitlab-ci.yml.
87363af3d Update release rpm/deb generation ci job script: concise output (with full log in /tmp), var. env. sanity check, temporary cpack files deletion.
47b20e206 Replace deprecated np.float by np.float64 in tests.
7a108316c Update test_svdtj.cpp: fix SVD error calculation in case of ascending order singular values, refactoring + debug info.
21693f269 Avoid useless extra ordering in the end of SVDTJ + handle ascending order in addition to descending order.
881be9fed Add opt. argument order in GivensFGFTGen::get_ord_indices and fix missing initialization of D_order_dir attribute in ctor.
4c68c41b4 Renew the SVDTJ algorithm: more accurate error stopping criterion and other enhancements.
c502359fe Add argument for inplace transpose, conjugate and adjoint in TransformHelper.
2277d646f Minor add in Transform assignment operator.
1c176a043 Add a FAQ entry about glibc confusing error when installing pyfaust in conda without conda-forge channel.
76691745f Add StoppingCriterion.erreps in matfaust to parameterize PALM4MSA/hierarchical 2020.
2cb44ec4c Update cpp StoppingCriterion: add copy ctor, assignment operator overload and integrate erreps in to_string().

Version 3.37.13:

3f695e3d3 Fix missing new line in matfaust.Faust.disp output due to a recent change in C++ to_string (c647a625).
908bd6b98 Fix a regression side effect bug in FaustCore copy of factors due to b2d3fe85 (as_faust arg of matfaust.Faust.factors).
0db4d29bb Minor fix in pyfaust.fact.eigtj doc: swallowing of @ python mul operator by cmake @ variable parsing.
a0d39cec4 Add StoppingCriterion.erreps in pyfaust to parameterize PALM4MSA/hierarchical 2020.
0e07e4045 Update pyfaust install in anaconda.
118b08359 Remove pygsp from pyfaust dependencies and add a hint for pip install in the related notebook.

Version 3.37.12:

74d59eda6 Add optional argument use_pylops to pyfaust.lazylinop.kron and zpad and enablediag_opt optimization in pyfaust.dft call of lazylinop.convolve2d.
8ab4a9298 Fix compilation issue of mexPALM4MSA2020 (constness of StoppingCriterion) due to previous change in PALM4MSA2020 cpp impl.
ed06bfc5a Enable StoppingCriterion epsilon error change to 1e-6 by default in PALM4MSA 2020 implementation.
16956364b Add the epsilon on error change for Faust::StoppingCriterion.
6e77e55f4 Add scale arg in pyfaust.lazylinop.fft2 doc.
37eb0d2b5 Fix issue #308 (GPU2 compilation error).
a1f2ba671 add relative change stopping criterion

Version 3.37.11:

df3da55f4 Add pyfaust.lazylinop.convolve2d + doc.
d95e6396b Fix minor errors in pyfaust.lazylinop hstack/vstack related code.

Version 3.37.10:

b95dcc479 add numpy.get_include() to setup include_dirs
6b953b109 Update pyfaust.Faust.__mul__ and add Faust._eltwise_mul to allow elementwise mul of two Fausts or a Faust and a matrix.
34ff4214d Change the impl. of pyfaust.lazylinop.zpad, it is more similar to pylops.Pad now.
8352c2ae0 Update cmake finding of Eigen (version 3.4 is required).

Version 3.37.9:

2b79b2217 Minor change in conda pkg gen. script (error msg).
0ec12982e Fix cmake script consistency issues about NO_MATIO and BUILD_READ_MAT_FILE options.
0c6c99bd1 Enable conda generation pkg for py3.11 on macOS in ci job.
70f557be7 Add pyfaust.lazylinop.fft2 + doc.
0422c6d67 Minor fix in pyfaust.lazylinop.zeros.
5c48e20f1 Add pyfaust.lazylinop.fft + doc.

Version 3.37.8:

10998bddf Switch windows packages from py3.10 to py3.11.
9ea7e067b Specify CUDA is optional.
09f1303ee Add LINUX_DEFAULT_COMPILER_FOR_PYTHON cmake option + doc.
62f22646a Fix typo on CUDA issue.
3061b52c2 Update the README with deps, cloning and build information.
14a308445 Add NO_MATIO CMake option to make MAT-IO library optional.
135376a17 Add matfaust.lazylinop.zpad + doc.
feb4eb215 Fix matfaust.lazylinop.horzcat multiplication (exceeding row dimension of operand).
e046a993c Shorten ci job commands using PYVER variable.
4da99eb41 Fix dimensions check in n-dimensional case of pyfaust.lazlinop.zeros mul.
2c5218fdd Fix matfaust LazyLinearOp.pagemtimes: falling back to mtimes if op is two dimensional.
fe81bd3df Add matfaust.lazylinop.zeros + doc.

Version 3.37.7:

bd71f7813 Correct PYVER variable and help scipy/matplotlib install on macOS (ci job).
df5ffbc6e Update to gpu_mod@1fbd46f.
5629aeb68 Pin versions of matplotlib and scipy only for macosx pip package tests.
82e85f635 Update to gpu_mod@7a176f11.
75a71fc01 Undo e2644968 and ad4b9a47 (forced matplotlib and scipy versions in tests).
3328cbafe Change extra python version of macOS packages from 3.10 to 3.11.
f4f014342 Change on numpy version.
6e92ad52a Make possible to set independent versions of python for macOS and linux system packages.
4c3b0106d Add lazylinop.zpad + doc.
19f794f9d Add lazilinop.zeros + doc.

Version 3.37.6:

f5dd789a0 Pass linux ci jobs from py3.10 to 3.11.

Version 3.37.5:

f9b2d6a31 Config packages to numpy >=1.24.
ac93899a0 Remove np.float, np.complex, np.long and np.int occurrences as they are deprecated in newer versions of numpy.
c4ea9d72b Implement cpp anticirculant projector/constraint and add it in matfaust and pyfaust.
d01955558 Doctest review of pyfaust.proj + minor reformatting in pyfaust.factparams.StoppingCriterion.
41c23307b Simplify the C++ code of circ projector.
cde95f8ae Doctest review of pyfaust.factparams.

Version 3.37.4:

ba74007b8 Fix dtype issue #298: lazylinop mul functions in complex case when a numpy array is initialized with np.empty (float64 default dtype).
05093b5d9 Fix issue #299 (LazyLinearOperator call with dtype).
d5ac35820 Fix issue #301 (test_svdtj linking error for complex<float>).

Version 3.37.3:

d016277fd Add doctested example for pyfaust.fact.svdtj.
35a385a16 Add a C++ unit test for svdtj.
5e7429303 Fix minor bug in ParamsHierarchicalRectMatNoResCons (missing parameter P).
6a00e6e78 Add verbosity level 2 in pyfaust.fact.svdtj2.
f3345886d Fix buggy svdtj cases in C++ code (rect matrix and empty Fausts).
e8e1d5ccf Display input configuration if verbosity level > 1 in GivensFGFT(Parallel)Gen C++ code.
e352d7242 Document the light git-clone (issue #294).
42de8d724 Update the project README.md.

Version 3.37.2:

bd2b148d4 Fix pyfaust.fact.svdtj2 which wasn't able to factorize a rectangular matrix properly.
ce31cea70 Update pyfaust.svdtj2 exp code to remove deprecated use of * for Faust-matrix product.
874dbd9ce Doctest review of pyfaust.fact examples.
e76d520ab Add non regression unit test for #296.
89e0842f7 Fix issue #296 (Faust conjugate multiplication error).

Version 3.37.1:

bef20f48b Move doctest verification of pyfaust from pages job to pkg_linux_purepy_release.
2b2db19ff Review/Validate with doctest all examples of pyfaust.lazylinop.
8ef8ef371 Review/Validate with doctest all examples of pyfaust.tools.
fdec065d5 Add doctest verification in pages ci job.
17f710648 Review/Validate with doctest all examples of pyfaust.* (excluding other modules).
10ddd687a Reformat the displaying of a Faust (C++).
c69eb4108 Remove the memory address of Matrix output (as it was before).
1a1e1ef0d Bind C++ Faust::seed (faust_prng) into the python wrapper (pyfaust.seed).
b7488c352 Externalize initialization of Faust PRNGs in a specific module (faust_prng).
ca5de7110 Add seed argument to C++ randFaust and bind it into pyfaust.rand.
b3559e2d7 Add matfaust.aslazylinearoperator shape optional argument and document it.
c49cbf2c1 Add pyfaust.aslazylinearoperator shape optional argument and document it.
79fd77e9a Update matfaust.Faust.factors/left/right with new as_faust argument + doc.
430117fbd Update pyfaust.Faust.factors/left/right with new as_faust argument + doc.
d2a3c207e Minor doc change in matfaust.Faust.
fcbe6a839 Update pyfaust.factors equivalently to 59baec41 + minor doc changes.
244c63cb2 Add missing GPU2 overloads in mex faust_factors.* (matfaust.factors).
70a879972 Update matfaust.Faust.factors/left/right and mex code to handle retrieving factors as Faust.
f3f6826fa Add TransformHelper<FPP,DEV>::factors() to get a subset of factors as a Faust::TransformHelper without copies.
00c10a471 Add conversion CPU MatButterfly/MatPerm on the fly conversion to MatSparse in mex code of matfaust.factors.
dd5bfbc9e Update pyfaust.factors/left/right cpp code to convert MatButterfly and MatPerm to scipy csr matrices.
67e4369eb Set identity flag to false in MatPerm/Butterfly<FPP,Cpu>::toMatSparse.

Version 3.37.0:

4397ff5e2 Fix issue #293 (win compilation error).
def96aec0 Fix ctorMatButterfly(const MatSparse<FPP, GPU2> &factor, int level)
61f1e455c Add a new overload of MatSparse<FPP, GPU2>::tocpu.
e0a4a29d2 Enable GPU diag_opt (butterfly optim.) for matfaust.circ/anticirc/toeplitz.
7f566a14f Remove TransformHelperButterfly_gpu.h/hpp and all references to it as it not used anymore.
e23033db5 Specify the absolute path for cwd in matfaust.enable_gpu_mod.
bb18f6874 Enable pyfaust.toeplitz gpu and diag_opt features.
43b0df439 Remove TransformHelperButterfly<FPP, GPU2> use in cpu to gpu Faust cloning of python wrapper cpp code.
4c4f3eda3 Rewrite TransformHelper<FPP, GPU2> fourierFaustOpt and optButterflyFaust without using TransformHelperButterlfy<FPP, GPU2>.
e289a6a72 Fix Transform<FPP, GPU2> update_total_nnz wrong const attribute and add an optional argument to scalarMultiply (for selecting the multiplied factor).
fc703c99a Fix TransformHelper<FPP, GPU2>::multiply(MatDense<FPP, GPU2>) test (the CPU Faust wasn't the same).
7b2d28219 Rewrite all remaining members of Transform<FPP, GPU2> except slice/indexMultiply to be independent from gpu_mod.
9bf36fe49 Rewrite Transform<FPP, GPU2>::to_string/Display to be independent from gpu_mod + refactor all GPU matrices Display/to_string in MatGeneric parent.
3e477c4b2 Rewrite Transform<FPP, GPU>::get_total_nnz independently from gpu_mod and remove multiply(const FPP&) duplicate of scalarMultiply.
c6debcf30 Add Transform<FPP, GPU2>::adjoint and rewrite power_iteration and spectralNorm to be independent from gpu_mod.
1b935afbe Add MatDense<FPP, GPU2>::setRand.
c5c6e5a97 Fix MatDense<FPP, GPU2>::multiply(MatDense<FPP, GPU2>& other, const char) const
9259c70af Update Transform<FPP, Cpu>::get_product replacing uncomplete downcasting by generic to_dense call.
57174f0a0 Add MatSparse<FPP, GPU2>::spgemm unit test.
41f04ccf6 Fix MatSparse<FPP, GPU2>::spgemm when C is non-initialized or wrongly dimensioned.
a8bd4d316 Implement to_dense (MatGeneric abstract method) in all subclasses both on GPU and CPU.
535a566dd Add a unit test for Transform<FPP, GPU2>::multiply(const FPP&).
36ef436ad Rewrite Transform<FPP, GPU2> getNbRow/Col, size, multiply(const FPP&) to be independent from gpu_mod.
7ea21feb6 Add operator*=(const FPP&) overload in MatGeneric<FPP, GPU2> (abstract method) and implement it in child classes.
e80c8a80a Move non needed template Transform function specializations into template functions (from .cpp.in to hpp).
b10ca7304 Rewrite Transform<FPP, GPU2>::multiply(MatDense<FPP, GPU2>, ...) without relying on gpu_mod + add its unit test.
de45fab9d Add abstract "MatGeneric<FPP, GPU2>::multiply(MatDense<FPP, GPU2>&, const char) const" and a fix of its overload in MatDense<FPP, GPU2>.
60867b667 Fix outdated sliceMultiply cpp test.
da4e10717 Fix in MatButterfly missing default ctor call needed for a proper ini.
89c61d605 Fix use of deleted CPU TransformHelperButterfly in cpp unit tests.
ed62343a5 Fix error: invalid use of incomplete type ‘class Faust::MatPerm<double, (FDevice)1u>’ when compiling error: invalid use of incomplete type ‘class Faust::MatPerm<double, (FDevice)1u>’
ee90109dc Enable on GPU the butterfly optimization of pyfaust.circ and anticirc.
35f438632 Add CPU MatButterfly level getter.
d1cd3b463 Add GPU2 MatButterfly new ctors and a getter.
33d2c89a1 Fix GPU2 MatButterfly dtor.
154404b3a Add GPU2 MatPerm new ctors.
d2ab8f187 Fix GPU2 MatPerm dtor segfault.
87381e101 Integrate GPU2 MatPerm in TransformHelperButterfly to replace old code.
8c92b28eb Add full MatPerm<FPP, GPU2> implementation and its unit tests.
bc3147b4d Fix missing transpose copy in assignment operator overload of MatButterfly<FPP, GPU2>.
62e81648c Remove ButterflyMat from TransformHelperButterfly<FPP, GPU2> and use the new independent MatButterfly<FPP, GPU2> instead.
305a43928 Add copy and default ctor, assignment overload + getter and multiply overloads in GPU2 MatButterfly.
cfa2968c7 Add GPU2 MatButterfly get_gpu_mat_ptr, conjugate, adjoint, Display and unit tests.
dab3da470 Add GPU2 MatButterfly::getNonZeros()/transpose() and unit tests.
71d4408ab Add GPU2 MatButterfly::get_cols/rows, norm, clone and their unit tests.
3f42c1201 Add GPU2 MatButterfly::toMatSparse and its unit test.
60c4a73fe Add GPU2 MatButterfly::multiply(MatSparse<FPP, GPU2>, const char) and its unit test.
3f1dcf52a Add GPU2 MatButterfly getNbRow/Col/getType and unit tests.
e7821d102 Add skeleton for GPU2 MatButterfly + multiply(MatDense), setZeros(), getNBytes() and corresponding unit tests.
0ed8e01c6 Fix use of undefined type 'Faust::TransformHelperButterfly<FPP,GPU2>' in mexFaustGPUCplx (issue #292).
b7d1e6730 Delete TransforHelperButterfly<FPP, Cpu> which is not used anymore.
06054e035 Fix TransformHelper<FPP,GPU2>::fourierFaustOpt.
2625bf180 Minor correction in lazylinop.ipynb.

Version 3.36.0:

517cebe26 Choose a specific version of scipy in test_unix_purepy_pkg (fix macos scipy building error by using older wheel packages).
4defe4fa2 Minor change in matfaust.opt_butterfly.
1bcf2a5ba Complete unit tests of matfaust.circ/anticirc/toeplitz for the diag_opt optional argument (butterfly matrix opt.)
3c87bc01b Enable butterfly matrix optimization in matfaust.toeplitz.
b7a972886 Enable butterfly matrix optimization in matfaust.anticirc.
699dee5ba Enable butterfly matrix optimization in matfaust.circ.
bddf85f9d Enable MatButterfly/MatPerm composed Faust in matfaust.opt_butterfly_faust wrapper (instead of using TransformHelperButterfly).
8809daedc Enable MatButterfly/MatPerm composed Faust in matfaust.dft wrapper (diag_opt option).
61ae92c84 Update lazylinop notebook: add a listing of available structure LazyLinearOp-s, a pointer to pylops and minor corrections.
6e09bcbc3 Complet unit test of pyfaust.circ/anticirc/toeplitz for diag_opt=True (butterfly structure opt.).
3fa4c0a09 Fix in MatButterfly::toMatSparse the bug found on pyfaust.circ().toarray().
c312ac7fc Fix ambiguous conj call compilation error.
9d556920f Update C++ unit test of TransformHelperButterfly::fourierFaust replaced by TransformHelper::fourierFaustOpt.
f3b34dfa9 Enable butterfly diagonal optimization in pyfaust.anticirc and toeplitz.
1959b188a Disable virtualslicing/indexing on TransformHelper/Faust when they contain non-MatDense/MatPerm matrices (not yet supported).
b53d395a4 Optimize pyfaust.circ when diag_opt=True (4 factors merged into one butterfly matrix) and refactor the function to simplify the case diag_opt=False.
b99990817 Refactor CPU fourierFaustOpt using optButterflyFaust and add its GPU2 version.
6ac69808e Bind pyfaust.opt_butterfly_faust to TransformHelper::optButterflyFaust and add a (not yet implemented yet) GPU2 version of this function.
a7f0a56b1 Add TransformHelper::optButterflyFaust to implement pyfaust.opt_butterfly_faust without TransformButterfly.
00f7af822 Extend Faust::gemm_gen to MatButterfly/MatPerm.
c3713d363 Add a unit test for MatButterfly::adjoint.
ea7a1c35f Fix MatButterfly::conjugate (transpose state wasn't handled).
6d98c9871 Fix call to real in faust_conj.cpp.
89f7e1b0f Add MatPerm::isPerm.
a3bdf0a90 Enable butterfly and permutation optimizations of the dft in pyfaust.circ (diag_opt arg.).
91ca514a7 Replace the use of TransformHelperButterfly::fourierFaust by TransformHelper::fourierFaustOpt in pyfaust wrapper cpp code.
31a41511d Add TransformHelper::fourierFaustOpt and tweak TransformHelper::multiply(FFP* v, ...) to benifit of this optimization on Faust-vector mul too.
2a368fece Make two Transform::multiply functions compatible with MatPerm and MatButterfly.
40aaa28d0 Update MatGeneric::to_string for MatPerm and MatButterfly compatibility.
6cd0367d3 Add missing std namespace qualifiers.
9846a76f8 Integrate MatPerm use in TransformHelperButterfly.
bcdc34f00 Fix wrong call to update_dim in MatSparse::nonzero_indices (862cff77).
fb12d4630 Add MatPerm default ctor.
63f9a0438 Add unit tests for Faust::MatPerm.
8466f4905 Compress the sparse matrix to nonzeros before enumerating them in MatSparse::nonzeros_indices.
f163f8f9a Add a sanity check on indices in MatButterfly::operator(), remove/add TODOs.
b3e97a569 Add a new matrix type: Faust::MatPerm.
7cab5aa09 Integrate MatButterfly use in TransformHelperButterfly and remove old ButterflyMat first prototype.
d6862e1da Fix std::conj calls in MatButterfly functions (the return type can't be always complex it must be the same type as input here).
9c8752a12 Add a generic conj function that returns the same type as in input contrary to std::conj.
d31e9e043 Add a unit test for MatButterfly::faust_gemm.
4b1447e94 Fix bugs in MatButterfly::faust_gemm and implement a conjugate argument to multiply prototypes.
699b17d77 Implement MatButterfly::faust_gemm.
88dd27e38 Add a unit test for MatButterfly::normL1.
a97d03c6e Set optional MatButterfly::normL1 transpose argument and fix a bug on MatSparse size of MatButterfly::toMatSparse.
f35a7f4d4 Implement MatButterfly::get_col(s)/row(s) and normL1.
db136edf0 Add a unit test for MatButterfly::nonzero_indices.
e3a8e4226 Add a tol(erance) argument in MatGeneric::nonzero_indices and make the change in subclasses definitions.
6951a9ccd Implement MatButterfly::nonzero_indices.
38c05d7fc Implement MatButterfly::setZeros.
22fc70e19 Implement MatButterfly::containsNaN and its unit test.
150231357 Implement MatButterfly:operator(i, j) (item access) and its unit test.
166286903 Implement MatButterfly::toMatSparse along with its unit test.
694ada4da Impl. MatButterfly::norm() with its unit test.
7493b1b44 Add Butterfly in enum of matrix types.
719455b5f Add unit tests for MatButterfly getType and operator*=(FPP) + refactor equality tests in functions.
722728d9b Implement MatButterfly::operator*=(FPP).
326440ae9 Add a unit test for MatButterfly::getNonZeros and getNBytes().
1804fc405 Implement MatButterfly::getNonZeros() and getNBytes().
fbf26f8ee Add more unit tests for MatButterfly::transpose.
23edad793 Fix a bug on transpose case of MatButterfly multiplication and impl. conjugate and adjoint member functions.
420c548b4 Add unit test for MatButterfly::transpose and refactor clone unit test in its own function.
22149efab Implement MatButterfly::transpose with a cache mechanism.
1ddbb4ccc Add a unit test for MatButterfly::Clone.
bca1cd0bc Add MatButterfly copy ctor and assignment operator and implement the Clone member function.
c42a0e417 Add a unit test for MatButterfly-MatSparse multiplication.
310da14c7 Add MatButterfly::multiply definitions (by a MatDense/MatSparse).
ce9b80ec5 Make MatGeneric::getNbRow/NbCol virtual in order to override them in MatButterfly.
320f11bb4 Minor correction in notebook.
603d05cfc Add a C++ unit test for MatButterfly-vector multiplication.
baef45a6a Minor change.
faaf8b20c Add missing prototypes and fix constness in multiply(Vect) of MatButterfly.
756540a91 Start impl. of MatButterfly as a MatGeneric child class.

Version 3.35.18:

3ed52bbf8 Add a unit test for matfaust LazyLinearOp.pagemtimes.
2c3cd2a14 Implement matfaust LazyLinearOp pagemtimes and add error for array of N > 2 dimensions in mtimes.
5cf7f454e Minor change in doc of matfaust LazyLinearOperator.
8bad959b9 Add a unit test for pyfaust LazyLinearOp matmtul by a numpy ndarray.
049e884bb Add pyfaust LazyLinearOp support of matmul by a multidimensional numpy array (nd greater than 2).

Version 3.35.17:

eda6ac6ae Add MatDense<FPP, Cpu>::setRand.
f50a60c62 Fix pyfaust LazyLinearOp indexing by just an int (eg. lop[0]).
301bd00bb Verify consistency of dimensions in pyfaust.lazylinop add and sum.
c03ca844c Add unit tests for matfaust.lazylinop.sum.
521c54b0d Add unit tests for pyfaust.lazylinop.sum.
a9e497c6e Add unit tests for matfaust.lazylinop.blkdiag.
dd2df41ff Fix matfaust.lazylinop.blkdiag for transpose/adjoint case and block offsets.
a4b9acdf8 Add unit tests for pyfaust.lazylinop.block_diag.
29b4776ca Ensure blocks passed to block_diag can be LazyLinearOp-s.
c75d6e411 Fix two bugs in pyfaust.lazylinop.block_diag.
351612eb5 Remove old matfaust asLazyLinearOp function and document new aslazylinearoperator function.
f4412dd35 Add matfaust.lazylinop.sum with its doc.
ca6711d30 Add matfaust.lazylinop.blkdiag with its doc.
c34884f1c Minor changes in pyfaust.lazylinop.block_diag.
4ac0c4f51 Add pyfaust.lazylinop.block_diag with documentation.
5c585c638 Add pyfaust.lazylinop.sum with documentation.

Version 3.35.16:

9713ce7cc In pyfaust.lazylinop fix eye when m==None and add doc for eye and diag.
2a4493c2b Add examples to matfaust.lazylinop.eye.
fd1274483 Minor change in matfaust.lazylinop.diag doc example.
0b08e4e47 Update Doxygen config for matfaust.lazylinop doc.
9aec580c4 Add an example in matfaust.lazylinop.diag doc.
c40954272 Add unit tests for matfaust.lazylinop.diag.
a3d0d56cc Add matfaust.lazylinop.diag.
fe2f0d753 Fix pyfaust.lazylinop.diag case k == 0.
fb0181ff2 Add doc for matfaust.lazylinop.eye + fix of matfaust.lazylinop brief desc.
625d42c77 Add unit tests for matfaust.lazylinop.eye.
bf488ea23 Replace optional key-value arguments by optional arguments in matfaust.lazylinop.eye.
9475a753e Add matfaust.lazylinop.eye.
acecb3913 Minor fixes in option parsing of member functions of matfaust LazyLinearOp.
38a78b12d Add unit tests for pyfaust.lazylinop.diag.
97878f421 Add unit tests for pyfaust.lazylinop.eye.
2ce29ce09 Fix pyfaust.lazylinop.eye in case k=0.
319668fbf Make np.ndim(x) work on x a Faust/LazyLinearOp.
cf26c3fce Update pyfaust.lazylinop.diag.
8af7dc126 Add pyfaust.lazylinop.diag (not handling mul to another LazyLinearOp yet).
e4c524558 Add pyfaust.lazylinop.eye with doc.
f19f84c69 Minor fix in compute_XY_on_gpu.
fd363b17e Minor fix in pyfaust.proj.blockdiag doc.
db486bcf2 Add time measurement in test and optional GPU module initialization.
9f218e61f Integrate the GPU batched SVD in butterfly right/left factorization C++ impl.
421e4e19b Add set_row/col_coeffs overloads in Faust::MatDense<FPP, Cpu>.
0e5349076 Fix GPU code of butterfly balanced facto.
2c3ef12b5 Update c++ test of butterfly balanced factorization for GPU use.
05feacb67 Integrate the GPU batched SVD in butterfly balanced factorization C++ impl.
5ded8fa14 Lower level prototypes of submatrix member function in MatDense and MatSparse (Cpu).
960891179 Update to gpu_mod@ce1c816.
1eb0c3d69 Add a unit test for the GPU partial svd (batched_svd).
90ae7a464 Add another prototype of GPU batched_svd and copyBufBlock function in MatDense<FPP, GPU2>.
4c5f1c5d4 Add MatDense::print_mat utility function
ba963ef0e Add a test of GPU batched SVD.
bcd227faf Add GPU batched_SVD updating to gpu_mod@4bfc92d

Version 3.35.15:

5f252c1f6 Update to gpu_mod@a33c81e.
4e3ce547c Update lazylinop jupyter notebook.
71857df52 Update matfaust.lazylinop multiplication by scalar to be less costly.
3cde8cdff Switch to column-major order eye in pyfaust.lazylinop.LazyLinearOp.toarray to be compliant with Faust __matmul__.
e9875d56e Fix pyfaust LazyLinearOp.imag ; it must be real.
4d08e24c6 Update to gpu_mod@009f116.
a542befab Udpate to gpu_mod@42c82e7.

Version 3.35.14:

ce5dac34f Update matfaust.lazylinop doc and minorly pyfaust.lazylinop'.
5d28c3173 Update matfaust.lazylinop.kron to fit the new implementation of LazyLinearOp and update related unit tests.
97f6a6f09 Fix matfaust.lazylinop.LazyLinearOp.mtimes in case the operands are reversed like in M * L (where M a matrix and L a LazyLinearOp).
dbdb334e8 Minor change in lazylinop.py kron error message.
f0603505f Add matfaust.lazylinop.LazyLinearOperator ctor and update unit tests consequently.
869ea0059 Add matlab unit tests for LazyLinearOp defined from functions (here fft).
4b1f95802 Re-implement matfaust.lazylinop.LazyLinearOp with multiple lambdas (as done for pyfaust) + update unit tests + add aslazylinearoperator function.
a4cf611ea Fix lazylinop.LazyLinearOp.imag multiplication lambda.
208e0288e Minor changes and fix in lazylinop.py.

Version 3.35.13:

26508f317 Fix missing lambdas for conjugate LazyLinearOp in create_from_op and create_from_funcs functions (pyfaust).
94f0ea56a Update pre-rendered version of the pyfaust lazylinop notebook.
141f38dc0 Exclude some symbols of pyfaust.lazylinop from public doc.
f45fd8f74 Update doc of pyfaust.lazylinop.

Version 3.35.12:

92e4dec05 Update the lazylinop notebook with explanations on creation with matmat/matvec functions and an example based on scipy fft.
35cc5c42b Minor change in pyfaust LazyLinearOperator doc.
451f8a6a3 Fix a bug in LazyLinearOperator occurring when applying to a 1d vector a lazy op defined upon a matvec function.
ec69f3231 Update the lazylinop notebook in the next to the new impl.
952848b67 Update unit tests of LazyLinearOp to handle the switch to the new impl. by default.
b9db4ab49 Replace previous LazyLinearOp impl. by the new one (renaming LazyLinearOp2 to LazyLinearOp).
2ec6613bd Add pyfaust.lazylinop.kron2 (based on LazyLinearOp2 instead of LazyLinearOp) and associated unit tests.
17faaefb5 Make pyfaust LazyLinearOp * a synonym of @ except if the operand is a scalar (following scipy LinearOperator behaviour).
cd73786ad Add pyfaust.LazyLinearOperator and aslazylinearoperator.
013aae0dd Add general indexing support to pyfaust LazyLinearOp2
7ba6a066a Add unit tests for pyfaust LazyLinearOp2.
27aa848ee Add a new lazy linear op impl.: LazyLinearOp2.

Version 3.35.11:

89421c48e Update: same as 1eeee543 for matfaust.
7869f54c6 Update pyfaust circ/anticirc for arbitrary length vector + associated unit tests.
d87df8fc6 Add SVD alternative analytical solution for rank-1 approximation.

Version 3.35.10:

6cfb1e53b Reduce the size of the tested Faust in lazylinop notebook.
9f34f5323 Add best_low_rank2 and replace Eigen JacobiSVD by BDCSVD.
036efa6c9 Enable openmp in solveDTO.

Version 3.35.9:

e00599f42 Update lazylinop notebook.
495a26329 Fix regression 4615e5c6.

Version 3.35.8:

5d985225f Add a link to LazyLinearOp jupyter notebook on the main page of doxygen doc.
189afc945 Update the lazylinop jupyter notebook.
d21db77fd Minor correction in F_CONTIGUOUS conversion of complex operand in pyfaust.Faust.__matmul__.
0cee041ef Update pyfaust LazyLinearOp: use .T.conj() instead of .H for larger compatibility (fix for scipy svds).
36c9af01f Update pyfaust LazyLinearOp ctor: verify that the starting object has two dimensions (only one is forbidden).
004e9a6f1 Complete matfaust LazyLinearOp.mtimes unit tests, in particular for the LazyLinearOp * sparse matrix case that must be computed.
fd7a701ee Update matfaust LazyLinearOp(/Kron).mtimes to evaluate the result of this * op if of is a sparse matrix (as made for op a full array).
39a21e170 Update pyfaust.Faust.__matmul__ to handle coo_matrix and bsr_matrix (by conversion to csr).
776286c4f Complete pyfaust LazyLinearOp.__matmul__ unit tests, in particular for the LazyLinearOp @ scipy matrix case that must be computed.
4068e6264 Update pyfaust LazyLinearOp.__matmul__ to evaluate the result of self @ op if op is a scipy matrix (as made for op a np.ndarray).
742d23eb9 Add a unit test for pyfaust rand_butterfly/opt_butterfly_faust and complete the unit test for the dft butterfly opt (transpose case).
cc8facbbf Implement (C++) transpose case of butterfly Faust optimization on CPU.

Version 3.35.7:

456e82fc8 Fix missing link in lazylinop jupyter notebook.
71b4aedb8 Simplify gitlab-runner tags for pages ci jobs.

Version 3.35.6:

c92375b1f Add lazylinop module jupyter notebook and pre-rendered html version.

Version 3.35.5:

042dc39e2 Parallelize pyfaust.lazylinop.LazyLinearOpKron.__matmul__ when multiplying a X with multiple columns and add an option (disabled by default) to force the evaluation (just for comparison).
925ea7a88 Document matfaust/pyfaust.lazilinop kron and LazyLinearOpKron.
08ce0556c Add unit tests for matfaust LazyLinearOpKron.
cd3e66347 Implement matfaust LazyLinearOpKron and matfaust.lazylinop.kron.
0abe924ee Fix matfaust.Faust errors in cat [matrix; Faust], [matrix, Faust] and addition/subtraction matrix +/- Faust (in this order).
4f031db97 Update pyfaust LazyLinearOp and LazyLinearOpKron:
63e06fe74 Complete unit tests for pyfaust.lazylinop.LazyLinearOpKron/kron.
f6c005cd0 Add pyfaust.lazylinop.kron and LazyLinearOpKron associated class.

Version 3.35.4:

a4665048e Replace tux_packager ci job tag by rpm_deb_release.
d644e9725 Fix root classes of pyfaust not showing up in the doc + typo.

Version 3.35.3:

e4aac8b2d Document matfaust.lazylinop and update pyfaust.lazylinop doc.
6e82921f8 Update pyfaust LazyLinearOp vstack hstack and concatenate to handle any number of arrays.
8cf6d20f8 Review pyfaust.lazylinop doc.
af3efeea8 Add unit tests for matfaust LazyLinearOp.
81cd2ea8c Update matfaust LazyLinearOp.
ed1ad836e Impement mafaust lazylinop module: LazyLinearOp class and related functions.
5f94d597d Warn of beta status of pyafust LazyLinearOp.
b7ea74394 Update pyfaust LazyLinearOp ctor and transpose/getH functions.

Version 3.35.2:

0a2f2e920 Fix LazyLinearOp.__add__/__sub__ and __getitem__
c20f8ffdb Add pyfaust.lazylinop.vstack/hstack and their unit tests.
e884e3cc6 Add dev argument to matfaust/pyfaust circ, anticirc and toeplitz functions.
22cf1c275 Extends scipy LinearOperator into pyfaust.lazylinop.LazyLinearOp.
de318fc69 Add pyfaust.lazylinop.asLazyLinearOp and its unit test.
670c55270 Add FaustLazyLinearOp.imag and its unit test.
dd747d97f Add FaustLazyLinearOp.real and its unit test.

Version 3.35.1:

494a35c57 Fix pyfaust.LazyLinearOp.concatenate resulting shape and complete the corresponding unit test.
924edd602 Fix pyfaust.LazyLinearOp.__getitem__ infinite recursion and add a unit test.
f91f1d951 Review/harmonize matfaust/pyfaust circ, anticirc, toeplitz, dct, dst, dft.
eb4a3fd2f Raise matfaust/pyfaust.dst an error if n is not a power of 2.
ce3b81d35 Add unit tests for pyfaust.LazLinearOp.
18daf38a6 Update pyfaust.LazyLinearOp

Version 3.35.0:

ae351eec2 Restrain the matplotlib versions in test_unix_purepy_pkg (fix macos matplotlib building error by using older wheel packages).
77431e5d4 Add pyfaust.lazylinop to namespace filtering (doxypypy).
92e4e15c8 Fix make-install command.
66646f532 Correct variable name for the matio static lib path in linux pip package jobs.
7ecc3ddab Fix two dimensions slicing bug (issue #285).
8e60c1333 Update to gpu_mod@062c29d.
2fdc55ebf Add Faust.__ifloor___ (not supported) and fix __imul__, __isub__ and __iadd__ error.
9b5bfd940 Add (undocumented, experimental) LazyLinearOp.
5fb627dca Update pyfaust.concatenate to handle scipy matrices and numpy matrices (with or without Faust(s)) concatenation and Fix pf.concatenate((M, F)) that recursed indefinitely.
ca58d19d2 Correct pyfaust.Faust in-place operations (iadd, isub, imul, imatmul).
db72ef86a Optimize ButteflyMat<FPP, GPU2>::multiply by using a dedicated kernel (gpu_mod@837684f).
8970c50dd Fix the script shebang.
8f8ebfc03 Update to gpu_mod@5e2a81b.
db91ef423 Refactor pkg_macos_release and pkg_macos ci jobs into a unique script.
4fed8d59c Fix multiple errors in TransformHelperButterfly<FPP, GPU2> (wrong buffer size, forgetting the Faust scale factor, and other minor errors).
435a57927 Add copy and assignment operator overload to Faust::TransformHelperButterfly<FPP, GPU2>.
3d7c63985 Set multiply member functions to virtual in order for the TransformHelperButterfly (GPU2) redefinitions to be called.
7b87dee17 Fix Vect<FPP, GPU2>::operator= (the source vector hasn't to be of the same size for the copy to work.
0f7f5ae13 Refactor static library paths for macos and linux into environment variables.
1211fb8b7 Implement GPU Butterfly Faust optimization in the C++ core.
4919663d6 Implement elementwise multiplication with arbitrary element order (MatDense<FPP, GPU2>::eltwise_mul) + its unit test (test_eltwise_mul_ids_vec).
ef1755509 Fix test_eltwise_mul_vec unit test + update to gpu_mod@4dafb3a
c24493cee Overload + operator for matfaust/pyfaust.Faust class
bd3bdca68 Add GPU elementwise multiplication for MatDense and a unit test.
d534cc088 Implement diag_opt option for matfaust.fact.butterfly.
5bfb26f92 Implement diag_opt option for pyfaust.fact.butterfly.
0dc2d39bd Make optional to multiply the permutation to the last butterfly.
72998d8fc Move bitrev from tools module to pyfaust root as it was done for bitrev_perm.
7646dd026 Update to gpu_mod@befc138
ccd0bdc36 Minor fix in fgft_palm Faust call ctor.
b08a1f9c8 Move/alias bitrev_perm in matfaust/pyfaust package root and document it.

Version 3.33.5:

6eb6e8b69 Update test pip wheel package ci job: upgrade pip before testing.
ed8271cb8 Clean conda cache after pyfaust pkg upload.

Version 3.33.4:

069cce0a3 Redefine TransformHelperButterfly::to_string to show butterfly opt flag.
54ed29165 Add diag_opt option to pyfaust/matfaust.rand_butterfly.
4116ac228 Add the wrapper matfaust.opt_butterfly_faust to optimize any butterfly Faust (in addition to the DFT).
c2185ab08 Fix 6c8419af that filters all the tests instead of only faust_butterfly_transform.
daeb6b4af Fix GPU faust core compiling error due to missing TransformHelperButterfly<FPP,GPU2>::optFaust function (implemented only on CPU).
e3d8a1601 Add the wrapper pyfaust.opt_butterfly_faust to optimize any butterfly Faust (in addition to the DFT).
202eebc38 Add the c++ function TransformHelperButterfly::opt_faust to optimize any Faust with butterfly factors.

Version 3.33.3:

f233c2028 Add a python unit test for the diagonal optimization of DFT (with or without normalization).
338cc41e2 Add a matlab unit test for the diagonal optimization of DFT (with or without normalization).
6a67f8cb1 Replace the workaround in FaustCore by a copy argument and use it in butterfly, hierarchical and palm4msa.
33ec1ac00 Minor change in faust_fourier.hpp mex dft wrapper (specify std C++ namespace and init ptr to nullptr).
5a04b8f81 Change the return type of TransformHelperButterfly<FPP,Cpu>::fourierFaust to parent TransformHelper (does'nt change anything).

Version 3.33.2:

ecc3f47a8 Fix normalization issue of pyfaust/matfaust.dft when diag_opt is True (#275).

Version 3.33.1:

3a12594a7 Fix old license in header.
b69d99504 Update matfaust.eye to rename dtype argument to class (more matlab compliant).
40b0f2593 Set the field argument as deprecated in pyfaust.rand and ensure field an dtype consistency.
40d14079a Ensure all compatible dtype synonyms support in pyfaust with utility function pyfaust.tools._sanitize_dtype (issue #273).
00fc54722 Enable float support for GPU pyfaust.eye/wht.
e99e3719b Replace pyfaust.eye t argument by more standard dtype argument.
41f68f70e Fix pyfaust.circ for size = 2 and 4 (bug introduced by 16b900fb).
11b8ddcd0 Update matfaust.circ/anticirc/toeplitz API docs.
b1663611f Optimize matfaust.circ by merging intermediate permutation and diagonal factors.

Version 3.33.0:

a028ff3d2 Fix test built for unforseen real/complex types.
8003c82d8 Fix compilation error: reference to ‘ButterflyMat’ is ambiguous.
57db852fd Fix type genericity break.
1272b4905 Fix preprocessor directive and eigen macro call.
3b73b6af9 Add (disabled) pythonic (pythran) code for the Faust-vector multiplication in TransformHelperButterfly code + disable use of Eigen::placeholders::all for old eigen versions.
8611c5d64 Minor change in pyfaust.dft doc.
fd1d1f546 Add butterfly diagonal optimization option (diag_opt) to matfaust.dft.
bec3943e1 Add unimplemented GPU2 TransformHelperButterfly and undo 23347c5e.
4a1b8651e Optimize pyfaust.circ by merging permutation factors into the following factor and update doc of circ/anticirc/toeplitz.
4189f6f43 Review pyfaust.circ/anticirc/toeplitz doc.
4fc1f1235 Remove kwargs from pyfaust.circ prototype (the diagonal factor is always multiplied).
73fb851d7 Fix issue #280 on MatDiag multiply (adjoint case) and add a unit test for it.
814122da1 Fix auto-ref in doc of pyfaust.rand_butterfly;
6617901ad Exclude pyfaust.tools.bitrev from doxygen doc as bitrev_perm is and also because matfaust API doesn't expose these functions.
df2a03c6c Document pyfaust.tools.bitrev and bitrev_perm.
987da1f9e Handle class argument in matfaust.dct/dst.
4dc598c17 Fix matfaust.Faust.single regression due to a e2a04b60 workaround.
d4b9f9caa Rename dst.butterfly utility function to butterfly_ to avoid confusion with matfaust.fact.butterfly and filter out this function from API documentation.
ef6a6e7ad Add dtype argument to pyfaust.dct/dst.
732363436 Fix wrong call of TransformHelperButterfly::fourierFaust from python wrapper GPU code (it is not supported on GPU).
2467267d8 Show the Faust density in example of pyfaust/matfaust.dct/dst.
91134fa0a Update matfaust.dct/dst unit tests to handle/check normed argument.
25ae82c9c Add normed argument to matfaust.dct/dst + fix swapped examples.
9c0caa522 Use eigen DiagMat for D1, D2 etc., stuck to omp-loop for multiplying vectors but use eigen for multiplying matrices (faster).
2f3e20e50 Handle adjoint case in MatDiag::multiply.
a09027b73 Add normed argument to pyfaust.dct/dst and update doc and unit tests consequently.
d1857042f Fix pyfaust.dft and matfaust.dft doc.
a1f9d4806 Update the wrapper an add a diag_opt argument to pyfaust.dft for using the TransformHelperButterfly product.
af99ab907 Implement TransformHelperButterfly multiplication by MatSparse.
15bd4284e Add multiply(MatDense) to TransformHelperButterfly.
d7a794880 Integrate a new kind of Faust to optimize Butterfly Faust - vector multiplication.
70b6ea913 Minor fix in fft_factors (missing std namespace).
e23510d26 Add minor todos and code doc in CPU TransformHelper.
bd2439572 Add ButterflyMat::Display function in butterfly opt test.
1a6469608 Add in tests AVX, OpenMP SIMD, Eigen (template exps) to the ways of computing the Faust DFT-vector product using diagonal opt.
47f44bfe3 Compute the elementwise multplication manually (without eigen) using OpenMP to parallelize and avoiding to reorder the multiplied vector (rather indexing it).
f7a494eee Add a simple test of the implementation of DFT/Butterfly faust product optimization (#275).
795d9963a Refactor pkg_linux and pkg_linux_release ci jobs into a bash script.
b6fc39b79 Refactor pkg_win and pkg_win_release ci jobs into a batch script.

Version 3.32.5:

3a013d76f Fix dtype error in Faust pyx ctor part for bsr_matrix factors.
36ca81839 Update to gpu_mod@da4f843.

Version 3.32.4:

6e148bf38 Avoid useless copies of A and B matrices in GPU2 spgemm and bsrgemm.
a03a4d3a9 Fix non-initialized pointers in GPU2 gemm_gen.
28807c6ac Disable test_win_pkg_release ci job mistakenly re-enabled before.

Version 3.32.2:


Version 3.32.3:

000c1e2a1 Fix symlink loop on gpu_mod shared library which occurs if cmake is ran two times in a row.

Version 3.32.1:

9fe5e7890 Set the pkg_win_release ci job as a need of pages ci job.

Version 3.32.0:

a11b49c0f Remove erroneous USE_MATIO_STATIC_LIBS option from pkg_win_realease ci job + add MATIO_LIB_FILE option for python build cmake too.
8a1042f86 Re-enable windows release ci jobs.
6d5153a0a Add a Faust::bsrgemm GPU2 unit test.
c1e9b12e9 Fix possible erroneous size of C (output) in MatBSR<FPP,GPU2>::bsrgemm.
e4ba4c82d Update to gpu_mod@d76e343.
69150528c Adjust the python name (python3 is python) for Windows in the workaround needed in case no python has been set (when BUILD_WRAPPER_PYTHON=OFF).
f12fea0de Update pkg_win and pkg_win_release jobs to make the python version used consistent to their pkg_win_purepy ci job counterparts (WIN_PY_VER).
9256df0bd Rely on matio standalone static library instead of simple matio + dependencies static libraries for matlab wrappers too.
ea7971dcd Stop relying on HDF5 and SZIP (matio dependencies) objects for compiling matfaust mex-s (as did for pyfaust in 52915f27).
5b81962d8 Update about windows matio library and openmp (details below)
ac0bffb78 Pass explicitly the BUILD_CONFIG variable in cmake commands of win pkg ci jobs (because the CMakeLists.txt for the python wrapper used the value of CMAKE_BUILD_TYPE).
cab381a21 Enhance the building of the python wrapper for Windows.
62f3d8f21 Remove pruneouts from pyfaust.Faust.real/imag (too costly: e.g. 44s instead of 63ms without it in real).
6cad64a4a Handle charset detection in post_docgen_html_tags_filter.py to avoid error reading non utf8 files.
15eed53a1 Fix matlab cpp compilation error in faust_optimize_time_prod (GPU version).
3840a7ebb Rely on generated header of gpu_mod for CUDA 11.4 in faust_linear_operator module.
71849edfe Update win installer script since CUDA9.2 support has been removed.
9caa4a4ee Implement TransformHelper<FPP,GPU2>::optimize_multiply (only for DEFAULT_L2R and DYNPROG) and refactor TransformHelper::optimize* functions in parent TransformHelperGen (for CPU and GPU) + minor fixes in cpp python wrapper of optimize* functions.
962ecc104 Remove from CMake script the cuda version 9.2 if windows (forgotten in e8e7fd3fca06e96fe498694779bfd04120e8b84a).
55bcfa69d Lighten matio, zlib and hdf5 Windows library paths (all in one folder named faust_libs).
72cf3eaa0 Remove flag detection for outdated C++0x and make optional the success of that of C++11 (the compiler should be up to date).
07ec94a21 Update matio linking on Windows with HDF5 dll auto-loading from pyfaust wrapper.
0fa63b6c6 Drop support of Visual Studio 14 2015, use now only Visual Studio 16 2019 (#218).
98228a1ce Drop CUDA 9.2 support for gpu_mod build on Windows.
3d736c93d Enable DYNPROG Faust product (Faust.toarray()) for GPU.
9376f0a7e Move TransformHelper<FPP, Cpu>::set_FM_mul_mode to the parent class TransformHelperGen to use in TransformHelper<FPP,GPU2> too.
f7f3aa084 Integrate BSR matrix in GPU2 gemm_gen using bsrgemm.
486e8b27d Add a BSR Faust test in dynprog_mul c++ test.
6e193ade8 Implement bsrgemm in faust_linear_algebra GPU2 module.
528ac10ff Implement MatBSR<FPP, GPU2>::bsrgemm and update to gpu_mod@a1dd1ad.
b85f96fda Fix GPU2 MatDense move ctor, undue freeing.
c477df16d Implement GPU2 spgemm prototypes as on CPU and use them to implement gemm_gen for GPU2 + update to gpu_mod@0f2c75e.
3ed7504a3 Fix missing gpu_mod loading in test_dynprog_mul_gpu and updade to gpu_mod@48c6b03.
b3e4b105c Fix missing HTML anchor for cuda installer Q&A in doxygen doc FAQ + slight rewriting.
7a2963382 Add GPU test for cpp dynprog_multiply.
032d9dec5 Update set real generic code in faust_prod_opt_gen by using FDevice enum instead of specific Cpu value.
1a5fd0782 Add MatBSR<FPP, GPU2> getNbBlockRow/Col and getNBlocks functions + update to gpu_mod@1488445.
9edb74f74 Move dynprog_multiply and cost computation functions from faust_prod_opt to the new module faust_prod_opt_gen (intended to be generic, for cpu and gpu).
319d600ec Add a unit test for (faust_prod_opt) dynprog_multiply C++ function.
99ef5d23e Update MatGeneric::to_string to print the factor memory address of CPU matrices as done already for GPU.
73d1b403e Fix minor bug in C++ Faust::TransformHelper::randFaust: from a cpp prog. the number of factors was always the same for the first Faust generated (even if the seed was initialized to current time).
0193d68e0 Update macosx pkg license file with 3-clause BSD and scipy license.
5c98d8e7d Add scipy license to pyfaust pip package.
2dfb541b9 Use scipy license file (code used here ./src/utils/faust_scipy.h*).

Version 3.31.6:

2ccabcecf Temporarily disable win release pkgs.
968689a30 Fix pyfaust rand_butterfly doxygen doc error (the brief description must fit into one line.

Version 3.31.5:

dd1ad91af Update matfaust/pyfaust wht, dft, dct, dst, rand_butterfly API doc.

Version 3.31.4:

b6a4b4d36 Iterate again on matfaust/pyfaust butterfly doc (minor changes) + add references to wht, dft and rand_butterfly.
ce2728255 Add two tests scripts to fully test matfaust and pyfaust butterfly function (hadamard, random butterfly matrices with no permutation, with random (transpose or not) permutation and bit-reversal permutation.)

Version 3.31.3:

08329d267 Minor changes in the doc of pyfaust/matfaust butterfly function.
b1f17086b Add in mat/pyfaust butterfly doc a note about converting permutation matrix <-> permutation list of indices.
e9744a664 Add matfaust.rand_butterfly to the doxygen doc.
fc25889a0 Update matfaust/pyfaust.fact.butterfly doc to point out the BP structure.
892b8f021 Correct permutation matrix to indices conversion in pyfaust and matfaust wrappers.

Version 3.31.2:

182fb4f13 Fix matfaust unit tests of dct, dst, toeplitz, circ/anticirc.
a4c6e3b1c Fix a memory bug of Faust created from different mex shared lib than the main ones (mexFaustReal/Cplx/Float).

Version 3.31.1:

566c0182b Review the matfaust/pyfaust.fact.butterfly doc after Rémi's comments.
106bc1874 Fix matfaust/pyfaust butterfly unit tests of DFT factorization (it needs the perm='bitrev' argument now).
1b6a88e78 Add unit tests for pyfaust/matfaust rand_butterfly.
e7bb053c8 Add paper reference for the 8 default permutations of matfaust/pyfaust.fact.butterfly.

Version 3.31.0:

fac21fa72 Update pyfaust/matfaust.fact.butterfly: add 'bitrev' option for perm argument and complete the doc.
85c82b313 Add matfaust.rand_butterfly.
3ff17375d Update C++ Faust::butterfly_hierarchical
a1667bbfd Add pyfaust.rand_butterfly.
e96ae67ad Refactor the bitrev_perm matfaust function to its own file in tools.
28e49ca10 Fix butterfly factorization: stop adding the permutation to the support, rather multiply the matrix M to factorize by P at start then multiply the resulting Faust by P.T.

Version 3.30.0:

79b5b41b2 Enable Faust::TransformHelper lazy indexing on GPU.
68a39e964 Fix Windows VS compilation issue of Transform<FPP, GPU2>::indexMultiply casting issue (#272).
4dfcc4206 Update to gpu_mod@b5966c7 (fix).
90fe65d4f Fix pyfaust.tests launching melting field and dtype.
5faf85244 Fix TransformHelper<FPP, GPU2>::indexMultiply X_nrows initialization.
358493ec7 Remove a multiplication test using the old GPU implementation (deleted before).
40c737831 Add a script helper to launch manually a gitlab-runner on macOS.
2d64aa03c Update to gpu_mod@0aff3aa.
f0fe457df Make indexMultiply available in pyfaust GPU wrapper.
733be5e17 Implement Faust::TransformHelper<FPP, GPU2>::indexMultiply.

Version 3.29.1:

93216a541 Update gpu_mod@c815fd3

Version 3.29.0:

fd8cfb523 Fix of TransformHelper<FPP, GPU2>::sliceMultiply in case of nullptr out buffer + update to gpu_mod@c815fd3.
f2d972ce1 Enable lazy slicing for TransformHelper<FPP,GPU2> and special optimizations (with sliceMultiply) for Faust-vector/matrix multiplication from wrapers.
605a32b82 Add missing slicing/indexing evaluation in Faust::TransformHelper get_total_nnz update member functions.

Version 3.28.12:

494d31979 Fix TransformHelper<FPP, GPU2>::sliceMultiply (X_nrows wasn't right).
7b3803263 Set Slice::display to const.
8a5d5aebd Fix missing gpu test faust_gpu_mod.
d31781935 Refactor sliceMultiply in C++ code of the python wrapper to make it available for GPU too.
195df8697 Add a cpp test for TranformHelper<FPP, GPU2>::sliceMultiply.
25d1ebbdc Handle the case of nullptr out buffer in TransformHelper<FPP, GPU2>::sliceMultiply.
d764dbde1 Set TransformHelperGen::is_row_sliced and is_col_sliced to const.
71d4d973a Filter out utility function of matfaust.fact.butterfly from doxygen doc.
27aa8306e Correct butterfly permutation feature to obtain a F that approximate M instead of M*P
ef26d2391 Add TransformHelper<FPP,GPU2>::sliceMultiply and update to gpu_mod@f6f99e4.
45a7038bb Remove conjugate and transpose optional arguments from TransformHelper*::multiply functions.

Version 3.28.10:

b2c2e3fa2 Fix a bug introduced by beb43d26 in pyfaust.Faust.imag.
5c996ec22 Fix zip command in faust data archiving cmake script.

Version 3.28.9:

8ea2b2a62 Stop passing transpose flag argument from matfaust.Faust.mtimes* to C++ core.
1a20325ea Remove conda virtual environment after uploading the package.
be0f54c16 Minor fix in matfaust.Faust.real unit test.
14bd37e7a Add analytical formula in DCT/DST doc.

Version 3.28.8:

0af953024 Add cmake script to generate the FAµST data archive and modify the gitlab ci pages job to host it automatically on gitlab-pages when tag is pushed.
5906c2276 Replace in matfaust/pyfaust.Faust.real/imag the [I_n ; 0_n] factor by a column slicing F[:, :n].
ce48a1505 Exclude *cplx2real_op symbols from doxygen doc.
c0e6e89c7 Complete pyfaust.Faust.astype for complex to float32 dtype conversion using Faust.real.
d66297fbd Add unit tests for matfaust.Faust.real/imag.
7529f3025 Rewrite matfaust.real/imag as done for pyfaust in e2139a44.
40aa33c13 Add unit tests for pyfaust.Faust.real/imag.
6ab93b63e Rewrite pyfaust Faust.real/imag functions to obtain a real dtype and set these functions as properties (update DST and DST consequently).

Version 3.28.7:

584ad61d0 Update pyfaust.fact.butterfly doc and code according to the previous commit on matfaust.fact.butterfly.
4c7c517fc Document matfaust.fact.butterfly and correct the permutation case in which F is an approximation of M*P.
3fe8d6014 Add the default_8 option (8 deft permutations) to matfaust.fact.butterfly.
d0f7bf054 Implement matfaust.fact.butterfly option to evaluate the factorization on mutliple permutation and keep the best.
bdb5e5d41 Update matfaust.fact.butterfly to optionally pass one permutation to the mex code.
87d55588e Adjust mex butterfly code for complex type case.
b5dc5030a Add mex code for permutation argument of matfaust.fact.butterfly.

Version 3.28.6:

ab20e3c89 Fix constness inconsistency (between decl and def) of permutation argument of butterfly_hierarchical.
52fd0b9ce Allow to try multiple permutations in butterfly and keep the best corresponding approximation Faust + documentation and examples.
567c6b8fe Remove erroneously added butterfly symbol to EXCLUDE_SYMBOLS list of Doxygen (it was removing butterfly from the doc).
1ea9cb39e Add perm argument to pyfaust.fact.butterfly and update the wrapper accordingly.
7ab8672cb Add permutation argument to C++ butterfly_hierarchical.
90fb1aa7a Fix a bug in a MatSparse ctor ; dimensions inconsistency against eigen internal matrix.

Version 3.28.5:

0085daf1c Optimize matfaust/pyfaust.anticirc: permutation matrix set to sparse.
bffe47b2d Optimize pyfaust.Faust.__add__: last Faust factor was in dense format for no reason, set it to csr.
091e26b78 Refactor bit_reversal_factor functions and add a permutation parameter to butterfly_support function.

Version 3.28.4:

4008fc9fc Document pyfaust.toeplitz/circ/anticirc with examples.
9f053a46b Filter out internal functions from API doc.
1ebbe7204 Document matfaust.antircirc and hide internal outputs.
fc3cd5dd0 Verify that c argument of matfaust.circ is a numerical vector.
281d8dfca Document matfaust.circ with an example.
527f0b9f5 Complete matfaust.toeplitz doc with an example.
4ca01cc2b Verify matfaust.toeplitz r and c arguments and allow to pass indifferently a row-vector or a column-vector.
a579cbde1 Verify matfaust.toeplitz r and c arguments and allow to pass indifferently a row-vector or a column-vector.
999ecd412 Fix missing matfaust version in fourth livescript.

Version 3.28.3:

7d21f2724 Fix conda pkg build ci job for Windows, it wasn't waiting for the process to finish.

Version 3.28.2:

0ad6cf8bb Minor fix in URL parsing of wheel package in conda pkg building script.
0c15037d8 Avoid downloading unnecessary artifacts in conda_*_pub jobs.
3b9c51981 Optimize matfaust/pyfaust.dst and dct by buiding only sparse matrices.
078fb6a15 Complete the matfaust/pyfaust.dct/dst API doc.

Version 3.28.1:

2adfe1b36 Add conda pkg building and uploading ci jobs.
7730a31a1 Add matfaust.dst + its unit test (minor changes in pyfaust.dst too)
7d69e57b8 Minor fix in matfaust.dct
eb655ac8a Add matfaust.Faust.real/imag.

Version 3.28.0:

06a6e4a92 Add another fix to libomp not loaded for macOS pyfaust python package (using install_name_tool)
b2f05a22d Add Faust.real(), Faust.imag() and update pyfaust.dst/dct/Faust.astype with real.
bef8d5625 Add pyfaust.dst and its unit test.
1e1d2f539 Add matfaust.dct + its unit test.
92a5bc0f6 Update conda pkg build & upload script for Windows.
c9aa155a5 Add some precisions in system package install guide.
bd9f04340 Update pyfaust install in virtual environment guide for Anaconda packages.
fb2d930d2 Fix windows too long filepath bug introduced by cc5488f1 (issue #270).
7c82d4c53 Fix missing dvp.m and normalizeCol.m utility scripts in macOS and linux pkgs (mandatory for the BSL demo).
939db99f8 Update/Review 'Using the FAµST API in Algorithms' livescripts and notebook.
f8b4438e8 Add conda pkg building and uploading script.
c48d62723 Review/Update Faust manipulation livescript and notebook.
f2acc84e4 Hide output in matfaust.Faust.conj.
9ea1de183 Add a unit test for pyfaust.dct.
dd3c1db53 Add pyfaust.dct.
eaab198a9 Update/Correct the 'Faust creation' live script.
85259cae3 Correct grammar error (information is uncountable) and other minor change.
a8df125ee Add unit tests for matfaust.circ/anticirc/toeplitz.
b7d44dd62 Add matfaust.toeplitz + related changes in matfaust/pyfaust doc.
946b8b323 Add matfaust.circ/anticirc functions, to the doxydoc too and update their code code in pyfaust too.
6a1fa04af Prefix filename by parent package for matfaust modules/functions to avoid conflict (e.g. same function names in two different matfaust sub-packages).
c099fda2f Add pyfaust.toeplitz and its unit test.
2c3a45465 Hide sliceMultiply and indexMultiply from doxygen doc as they shouldn't be used directly by users.
d2fdc06b1 Add pyfaust.circ and anticirc along with their unit tests.
55599cc4c Complete the pyfaust.Faust.right/left unit tests with transpose and ajdoint cases.
39bd6a0df Fix TransformHelperGen::left/right functions in transpose and conjugate cases.

Version 3.27.2:

a45c9eb80 Fix the link of tomp.mlx in html rendering of 'Using the FAµST API in Algorithms' live script.

Version 3.27.1:

ce69f1af4 Mention the FAQ entry about F[I, J] in the pyfaust notebook part about slicing and indexing + other note about column-major order of matrices in FAµST.
62a4cbcbe Add a FAQ entry about F[I, J] operation that is not supported in pyfaust.
9272413a5 Minor correction in faq entry.

Version 3.27.0:

e3bbc207a Fix erroneous assertions in TransformHelperGen::init_fancy_idx_transform.
04649f576 Add a FAQ entry about Segmentation Fault error when using pyfaust and torch in the same script on Mac OS X.
0a3492332 Add new unit tests for pyfaust lazy slicing/indexing.
f309e53bd Fix regression due to d99715f8 which prevent F[::step, J] or F[::step, I] to be handled in pyfaust.
11551f377 Set python3.9 for default version of revision/release whl packages and 3.10 for extra version.
3de9589c2 In the next to d99715f8 optimization, manage the case of a partial slicing of a Faust on one dimension combined to indexing on the other dimension.
39017bf24 Add Slice assignment operator.
8de9a16fd Prevent trying to compile TransformHelper::indexMultiply/sliceMultiply and MatSparse::eigenIndexMul when the Eigen version is used is older than 3.4.
75cf8d047 Add scipy namespace.
3bd15f2d8 Update MatSparse::get_rows with the scipy method to be consistent with get_cols last update.
8ac7844f6 Optimize MatSparse::get_cols using scipy method for slicing columns (as it works faster).
d92ae5af5 Don't allocate two buffers in Transform::multiply if the Faust has only one factor.
1c8a89aa3 Optimize Faust row/column indexing by avoiding to convert a full slice ':' into indices.
d315ff270 Do not use sliceMultiply if the Faust is multiplied by a matrix and is composed by only one factor (fallback to previous method with eval_sliced_Transform).
d0b1f4b36 Fix issue #263 compiling error of TransformHelper GPU2.
cf5be2459 Display a warning when the numpy array to multiply is not in column-major order.
834f30db5 Add TransformHelper::indexMultiply prototype that avoid copies by writing directly in the output buffer (update the pyfaust wrapper consequently).
34ca4e723 Fix Faust::TransformHelper::<FPP, GPU2>::init_fancy_idx_transform (issue #262).
2e465ed26 Fix issue #260 Windows compiling error because of older Eigen version (doesn't know Eigen::placeholders, Eigen::all).
bb1a5d114 Add unit tests for lazy slicing/indexing with pyfaust and fix three bugs it helped to find in TransformHelperGen::copy_fancy_idx_state/init_fancy_idx_transform/init_sliced_transform.
2a60bfed9 Implement Faust lazy row/column indexing with indexMultiply optimization in case of dense CPU Faust.
f6989772c Handle Faust-matrix mul in TransformHelper::indexMultiply (in addition to Faust-vector mul.) and update the pyfaust wrapper consequently.
45e9e6330 Update pyfaust.Faust.indexMultiply wrapper to handle both dimensions in indexing.
391108cba Update TransformHelper:::indexMultiply (wasn't complete in 69a988c6).
635f0fcd8 Fix MatDense::eigenIndexMul (mixup of cols_ids and row_ids)
dc0a3702e Manage indexing for the two dimensions in TransformHelper::indexMultiply and fix bugs in MatSparse::eigenIndexMul.
0331c9c9a Add MatSparse::eigenIndexMul.
e5e185097 Add MatDense::eigenIndexMul.
c8183a979 Update indexMultiply in pyfaust wrapper and C++ core to index only the Faust columns (not the vector).
e1ca07330 Fix a bug introduced by 5676f1 in TransformHelperGen::eval_sliced_Transform.
654bad84d Reduce the number of copies in TransformHelper::multiply (for Faust-vector mul).
9266ea7b9 Update Vect::multiplyLeft to handle adjoint matrix case.
95ad86dc5 Add the indexMultiply C++ def (yet to implement) in the pyfaust wrapper.
0e0d10814 Use the optimized def of eval_sliced_Transform for GPU too (but lazy slicing is left for later).
7d155e21b Handle complex conjugate and adjoint in sliceMultiply C++ core and pyfaust wrapper.
1b987e23e Update sliceMultiply in C++ core and pyfaust wrapper to reduce the number of copies.
a60461538 Handle successive virtual slices made in a row.
e839ca5c3 Update sliceMultiply to handle mul. by matrix (and the pyfaust wrapper consequently) and optimize TransformHelper::multiply by vec and matrix (DEFAULT_L2R meth. only) by using sliceMultiply without evaluating the Faust slice.
3c9509867 Modify sliceMultiply to take the vector as is (without vector slicing, the callee must send a vector of the proper size).
5071aff0c Add Slice::size().
f4a257442 Update the pyfaust wrapper of sliceMultiply next to 04a157b6 modifications.
3e1dea1bb Generalize sliceMultiply to handle the case when a slicing of the Faust is made on both dimensions.
ee2b0c4ae Implement lazy slicing for TransformHelper<FPP, Cpu>.
aa127e10d Simply/Optimize eval_sliced_Transform for the CPU case.
8f26223cf Add Slice::display().
5d107ed81 Add python wrapper to TransformHelper::indexMultiply/sliceMultiply into pyfaust.Faust.
3368b4acc Add TransformHelper::indexMultiply.
2b2907c15 Add TransformHelper::sliceMultiply.
1eb69e8ec Document matfaust.Faust attributes.
f96d49e28 Review Faust.rcg and Faust.pinv API doc.

Version 3.26.7:

44821b991 Update/review Faust.optimize/optimize_memory/optimize_time/pruneout API doc.
b87c789a6 Debug Faust.pruneout C++ function: when a pruned out sparse factor was followed by a dense one, the dense one wasn't pruned out, leading to inconsistent dimensions in the Faust.
02ef9229a Review/Update matfaust.Faust.numel/numfactors (also add alias length) and pyfaust.Faust.size/numfactors (which already has its len alias).
00003970f Review/Update Faust.normalize doc and remove debug outputs in mex code.

Version 3.26.6:

2c73a6eb5 Minor typo.
1d2cd5b2a Document and implement matfaust.Faust.double wrapper with its mex C++ code.
bf54d2e8b Review/update doc of Faust.nbytes, Faust.nnz_sum.
baeac4a36 Fix matfaust.Faust.factors when the factor is a single (precision) sparse matrix.
acddaccb5 Fiter out <code> tags in matlab inline doc.
8507ae96d Update/review pyfaust.faust.__matmul__, __mul__, __rmul__ doc and remove deprecated code.
5e42fbc6f Review/update matfaust.Faust.mtimes doc.
37b0caa9f Review/update Faust.+ Faust.- doc.
80870101e Review/update pyfaust.Faust.matvec doc.
754c6e049 Review/Update Faust.save/load/load_native functions doc.
60e38727b Review/Update Faust.left/right functions.
01a64f026 Review/Update matfaust.Faust.isreal doc. Rename isReal attribute to is_real to avoid confusion with function in doc gen.
303e1e716 Update/Review Faust.issparse doc. and make possible to consider BSR matrices as sparse matrix too.
953f7edc2 Review/Update Faust.isdense doc.
7e10ccf82 Fix matfaust.Faust.imagesc (deprecated matlab suptitle function) and review its doc as well as pyfaust.Faust.imshow'.
3247533d4 Document matfaust.Faust.get_handle.
d214998a1 Review/Update pyfaust.Faust.toarray/todense, matfaust.Faust.full doc.
dcf6685a6 Review/update Faust.factors doc.
e2cf41675 Review/Update matfaust.Faust.end.
d12fbf981 Review/update pyfaust.Faust.display.
f23edadaf Review/Update Faust.device doc.
766c4d53d Review/Update Faust.density doc.
bb4b23ecd Review/Update matfaust.Faust.single/complex doc and add an error msg when F in complex(F) is in single precision (only double real F can be converted to double complex -- single complex isn't supported).
0facdb802 Review/update pyfaust.Faust.astype doc.
835149fb7 Review/Update Faust.clone doc and argument parsing.

Version 3.26.5:

ecbc3f065 Review pyfaust dtype and matfaust class functions.
61c694ad0 Review Faust constructor API doc.
cf1d15552 Fix issue #253: is_gpu_mod_enabled symbol conflict with Faust package.
a2a8f95ee Review matfaust.create_bsr().
ae3ea9c8f Review matfaust/pyfaust.dft doc.
6f6e033b8 Review matfaust/pyfaust.eye doc.
83507e9dc Replace use of deprecated class matfaust.ParamsHierarchicalSquareMat by ParamsHierarchicalWHT in ParamsFactFactory.
14e81fadd Add missing matfaust.is_enable_gpu an update doc in both pyfaust and matfaust.
05a4dd997 Review isFaust doc.
8bdadf480 Minor change in license files.
1d57e5183 Minor fix in pinv code and doc.
25045f206 Update/enhance matfaust/pyfaust.rand doc and options parsing.
faa8038b7 Add sanity checks, warnings and review the doc of rand_bsr.
37dc9af10 Exclude symbols about libomp loading in pyfaust from doxygen doc.
613c99759 Review Faust concatenation functions doc.

Version 3.26.4:

346761b80 Review wht doc.
a50013524 Add pyfaust/lib/libomp* to the list of installed files (it is needed for macosx).
68a0545f3 Set pyfaust package to numpy==1.22.
b49071d6d Disable .dmg package creation in pkg_macos_release ci job.
ec809c2af Update parameter parsing and doc of ParamsHierarchicalRectMat + fix missing ceil in matfaust structure.
109425a83 Remove matlab files .m form feed character filter (added by 9938837) by correcting the bug at its source in gen_matlab_inline_doc_from_doxy_blocks.sh.
c1fae8227 Enforce same version of python for pkg_macos_purepy_pkg and test_macos_purepy_release jobs.

Version 3.26.3:

8efc7c27d Update the doc of ParamsHierarchicalRectMat with a picture defining the sparsity of the resulting Faust and other details to clarify a bit.

Version 3.26.2:

264f32204 Update macosx setup script about dot, python and matio install/config.
42c1572f9 Update TransformHelper::pruneout to remove 0x0 factors and optimize_multiply to keep the transposition config in the new Faust.
89ef3e4aa Stop generating class diagram and using graphviz dot in doxygen doc.
606cc72e6 Update/Fix TransformHelperGen::optimize_memory.
9188c1d77 Disable doxygen doc generation in pkg_*purepy* jobs (the doc is not included in the .whl packages anyway).
40e1dcffc Update macosx vm setup script for libomp config.

Version 3.26.1:


Version 3.26.1rc0:


Version 3.26.1rc1:

067dfcc81 Python3.10 building pip whl pyfaust release on macos.

Version 3.26.0:

4c3d4e2e7 Re-enable pypub and pages jobs for publishing release packages.
ca1677f91 Add ParamsHierarchicalRectMatNoResCons.m to doxydoc gen.
4eb1e49f0 Integrate GPU BSR matrices into matfaust.rand_bsr.
d9694198e Fix MS VS compilation error due to min/max macros.
3df1e0061 Enable GPU Fausts for pyfaust.rand_bsr_faust.

Version 3.26.0rc0:

4c5414498 Update CMake script to add faust_MatBSR_gpu.cpp.in files to the building process (missing commit).
8c6ca58de Fix GPU2 MatBSR::setZeros, the def is a template specialization not a template function.
64c24abb3 Temporarily disable pypub and pages jobs for testing release packages without publishing.
3539cf4b9 Implement TransformHelper<FPP,GPU2>::push_back bsr factor prototype.
9568ff61d Update Transform<FPP, GPU2>::to_cpu for MatBSR<FPP, GPU2> and update to gpu_mod@1ec8077.
72bc17798 Add MatBSR<FPP,GPU2>::to_dense and its unit test.
0636f2984 Implement GPU2 TransformHelper::randBSRFaust + its unit test and modify push_back to handle BSR factors appending.
3e654bb3d Move MatSparse<FPP, GPU2> from .cpp.in to hpp file because it's not a template specialization.
31ff52ec4 Implement MatBSR::clone/Clone, ctor copy and add their unit tests.
b2147f1b9 Implement MatBSR<FPP, GPU2>::get_nrows/get_ncols and add their unit tests.
0b8575dd2 Implement MatBSR<FPP, GPU>::getNbRow/getNbcol/getNonZeros/getNBytes/getDevice/norm/setZeros and their unit tests.
f5a7f4494 Fix MatBSR<FPP, Cpu>::transpose for complex case (it was adjoint instead of transpose).
2ad805e44 Implement MatBSR<FPP, GPU>::adjoint, conjugate and add their unit tests.
f5d6c44f0 Implement MatBSR<FPP, GPU>::transpose and add its unit test.
56dd04038 Minor changes in MatBSR<FPP, CPU> (MatBSR::print_bufs and std::move in BSRMat::rand return).
afe154b45 Add MatSparse<FPP,GPU2>::to_bsr and an associated unit test.
2decb3c5b Add a default ctor to MatBSR<FPP, GPU2> and implement set_gpu_mat_ptr.
a4829ee25 Add MatBSR<FPP, GPU2>::to_sparse and its unit test.
772816940 Update to gpu_mod@d7cb67c.
8ba17fa5c Implement MatBSR<FPP,GPU2>::multiply(Vect<FPP, GPU2>&) and add a unit test.
b8f56d2bb New ctor Vect<FPP,GPU2>(Vect<FPP,Cpu>&) (copy from CPU vector).
6c14bf7e8 Fix Vect<FPP,Cpu>::mean_relative_error: avoid nan when zero is encountered in both vectors.
d2a1ee2cc Fix MatBSR<FPP,Cpu>::multiply: the resulting vector wasn't resized.
5ccef30fa Add MatBSR<FPP, GPU2>::multiply(MatDense<FPP, GPU2>) and its unit test.
e9dbefaae Fix non-declared symbol (BSRMat) in Faust::Transform<FPP,Cpu>::multiply.
e6d9ea510 Add GPU MatBSR CPU-GPU round trip test.
41106267a Add GPU MatBSR (class skeleton + few implementations: instantiation and tocpu func.).
e93f86ee6 Integrate BSR GPU(_MOD) function structure initializations and getters into faust_gpu_mod_utils module and update to gpu_mod@e37ee8a.
608071e27 New constructors to MatBSR and buffer read-only access member functions.

Version 3.25.10:

bbc8e6d64 Complete the documentation of matfaust.fact.hierarchical with examples of factorization withouth constraints on residual factors (proj_id).
909af32db Add matfaust.factparams.ParamsHierarchicalRectMatNoResCons and integerate it to ParamsFactFactory.
12631ecb8 Minor changes in matlab doxydoc gen scripts.
4e0a79f2b Simplify pyfaust.ParamsHierarchicalRectMatNoResCons by refactoring in parent class.
2d1bb4c38 Increase test timeout time (macOS VM can be very slow).
d67b36826 Add matfaust.factpararms.ParamsHierarchicalWHTNoResCons and adjust pyfaust counterpart doc.
999a03f1b Fix ConstraintMat::project, is_constraint_name_mat() and get_equivalent_constraint() about identity projector/constraint.
fc6baab24 Add matfaust.factparams.HierarchicalParamsNoResCons with doc and example.
aced5639e Add matfaust.ParamsFact.get_constraints (equivalent to pyfaust get_constraints).
1cfba84a6 Fix minor bug typo in matfaust.ParamsHierarchical.to_mex_struct.
f21d637ab Add matfaust.proj.proj_id.
1f2779fe5 Rename pyfaust *ConsSimple* params class to *NoResCons* (more explicit).
8c8f1e018 Add/use ParamsFact.get_constraints to simplify/unify pyfaust.proj.proj_gen to pyfaust.factparams.ConstraintGeneric in ParamsHierarchical and ParamsPalm4MSA.
72815a6d8 Change the way the pyfaust ConstraintMat is passed to C++ core when there is no matrix to copy (eg. proj_id), it will be simpler for potential new ConstraintMat in this case.
86bc266a6 Fix pyx code to copy pyfaust ConstraintGeneric to C++ equivalent class, the _cons_value attribute is not mandatory (eg proj_id.constraint doesn't have one).

Version 3.25.9:

255d58b8e Disable Faust::TransformHelper matrix chain optimization when the Faust is only one factor long (it fixes by the way some error on GREEDY_* methods).
41a2f9668 Fix hierarchicalFactorization_double/float C++ test (lambda value).
3c2fc13b6 Fix TransformHelperGen::get_fact_type which was buggy in case of transpose Faust.
2baef6047 Fix test_pyFaust_time.py.
41b6da160 Fix test_pyFaust.py and pyfaust.demo.quickstart, pyfaust does not permit to use int dtype.
186299d5b Remove float32 part of Faust.load_native unit test because this type is not enabled in revision builds.
2bb16f4d0 Matlab test scripts.
fd07cf24a Fix C++ complex sparse matrix copy from matio var.
9e65c4225 Fix a bug in mex code of matfaust.Faust.factors which caused a segmentation fault when the Faust is complex and the factor to get back is sparse.
36db4f1f7 Fix complex MatDense data reading from matio variable.
d78b418fd Fix a bug in matfaust: get_fact for complex dense array, transformFact2FullMxArray buffer wasn't initialized before using (this dates from the move to the complex interleaved API).
80998e6ab Fix MatDense::from_matio_var bug on complex date.
4a616ffdf Fix tested error messages in test_matlab_faust2.m.
200eb5ddf Fix hierar_fact_test old test script/mex API (new constraint attributes needed -- pos and normalized).
e58ebd648 Fix one-factor-loading from .mat file (C++ Transform::get_mat_file_type error).
29655663e Return to HTTPS for CTest-CDash (because HTTP doesn't work) but stop verifying (at least temporarily) the certificates to use HTTPS (curl options).
681ec31ce Fix matfaust Faust-matrix multiplication in case of tranpose Faust.
9f59d9644 Fix three bugs in Faust-vector matrix.
a93e3caa1 Fix TransformHelper<float>::pack_factors() unit test.
a99ab70d2 Fix C++ prox_blockdiag unit test.
b9f0fe5c7 Fix issue #251: windows compilation error because of a double-to-enum cast.
80b2f4b2c Fix several matfaust factorization algorithms unit tests.
76030b50a Fix matfaust fgft_palm: ignored normalized and pos parameters for constraints and also step_size and grad_calc_opt_mode.
8900eeee1 Handle missing parameter grad_calc_opt_mode in matfaust ParamsHierarchical and associated mex code for the hierarchical algorithm.
ca122d913 Display used parameters in HierarchicalFactFGFT ctor if verbosity enabled.
00fe90282 Fix syntax error in matfaust.factparams.ConstraintMat.
e71bcc609 Fix matfaust.Faust testProdOpt unit test.
ac2f46dad Update researchers contributors list.
997bc7a5d Fix pyfaust.Faust.__add__ when the Faust is complex (test_Faust.testPlus/testMinus tests are green).
4d1082f7f Fix unit tests about pyfaust.proj.* and pyfaust.factparams.ParamsPalm4MSA.
7e73fbb02 Fix a bug in pyfaust.fact.fgft_palm caused by fa991b69.
50a94e93b Fix issue #250, matio helper functions not found because of recent move of them to the Faust namespace + one typo.
33a38c44b Fix issue #249: Windows VS linking error, missing symbol faust_matio_read_variable (located in src/utils/matio/* modules).
5098dadf0 Integrate matfaust.Faust.load_native for loading .mat files (using C++ recent code instead of matlab Faust.load).
23c656533 GPU code compatibility for read_mat_file in C++ core and pyfaust wrapper pyx code.
0d9bfd76b Update Transform::read_from_mat_file the Faust nnz after reading the factors in .mat file.
923707147 Add a unit test for pyfaust.Faust.load_native().
de660bc13 Add pyfaust.Faust.load_native (wrapper to load a Faust from a .mat).
a27e0f675 Faust::Transform(Helper)::get_mat_file_type.
264f0afd8 Add fix float real sparse matrix read in .mat + exception instead of exit in case of error.
9f46fb4b0 Unit test for Faust::Transform(Helper)::read_from_mat_file().
a57e97259 Implement Faust::Transform(Helper)::read_from_mat_file().
5060abc7f Add faust matio module in include directories of the python wrapper building script.
062941a19 Add C++ .mat backup/restore test of MatDense and MatSparse.
f58068f84 Implement MatSparse::from_matio_var, read_from_mat_file and save_to_mat_file.
8b6c02929 Switch temporarily to HTTP because cdash-ci.inria.fr certificate has expired.
69315a051 Refactor matio module.
cb5f4912b Implement MatDense::from_matio_var, read_from_mat_file, save_to_mat_file and update Mat*::toMatioIOVar to allow specifying a matrix variable name.
6dfbe0ee2 Minor fix in pyfaust unit tests (hierarchical and skperm) because of recent changes (default argument values etc.).
7ac3684fb Fix _palm4msa_fgft (unit test green).
9758944f9 Remove unused C++ constructor in Faust::Params.

Version 3.25.8:

9adbf6eb4 Add matfaust.factparams.ParamsPalm4msaWHT (same as the one added for pyfaust by 7add1321).
e4627a9a5 Modify the pyfaust.proj.* default values of normalized and pos arguments to be consistent with the PALM4MSA C++ default ones (this commit is a missing part of 9d333b42).
79c916efa Update matfaust.factparams.ParamsHierarchical to take into account the pos and normalized parameters when setting the hierarchical algorithm configuration (it allows to not follow the default configurations of proxs).
68c905091 Update cpp ConstraintGeneric Display and add pos/normalized getter.
c03826798 Update matfaust.fact.palm4msa to pass the pos and normalized attributes of constraints/projs instead of using the default values of C++ implementations (2016, 2020).
c02dbdf34 Handle more uniformly/generically the setting of normalized and pos attributes of matfaust.factparams.Constraint* classes
0fae63ec1 Add pyfaust.factpararms.ParamsPalm4msaWHT to factorize a Hadamard matrix using SKPERM and add the Tung paper reference in the doc.
200d3a817 Update PALM4MSA 2020: it is not an error to have L.norm() or R.norm() to zero on first iteration respectively if is_update_way_R2L == false or is_udapte_way_R2L == true.

Version 3.25.7:

cbfc66aaf Fix SKPERM infinite loop (issue #248).

Version 3.25.6:

5db6d40c0 Add unit tests for pyfaust proj_id, circ, toeplitz and hankel projectors + another test to verify consistency of default values of normalized and pos for ConstraintGen and proj_gen classes.
b51b989d2 Update pyfaust.fact.palm4msa and hierarchical and C++ core to take into account the pos(sitivity) and normalized attributes of pyfaust.proj.proj_gen.
d928fe840 Enhance pyfaust.proj.* and pyfaust.factparams.Constraint*
e5c977eb8 Specify key argument names to avoid confusion between arguments of ConstraintMat ctor (especially since the recently added shape optional argument).

Version 3.25.5:

7881f5bcf Minor change in formatting of fact.py.
add40fd30 Fix regression provoked by 39b96491: the constraint mat wasn't properly converted in pyx code which made fail the hierarchical factorization of DFT matrix.
ea0d434b4 Update PALM4MSA2020 to defaultly init factors as eyes + zero (zero for the first factor to update in PALM4MSA, eyes for the other)
0ddeb2a13 Stop on fatal error if PALM4MSA 2020 descent step is zero because of zero 2-norm of L or R factors.
7a8253ccc Change the reference paper for butterfly and the default type argument to bbtree.
5bcdc1010 Minor change in power_iteration (warning message).

Version 3.25.4:

0c6176be1 Workaround the eigen BDCSVD bug for double (2^14)^2 Hadamard factorization using exceptionally JacobiSVD.
6303f25ac Minor fix in butterfly factorization cpp tests.
5a7bd55a2 Add RefManager::print_refs().
9bb967de6 Add a minor sanity assert in row_nonzero_inds.
4f9ec9053 Update butterfly factorization functions.

Version 3.25.2:

c7f0390fc Update butterfly bbtree factorization to use sparse factors for factors too (not only for supports).
cb0e3a10b Add MatSparse::submatrix.

Version 3.25.1:

135cdb7f5 Update butterfly factorization to use sparse supports instead of dense ones (it speeds up the execution a lot).
61a180e7f Add MatSparse::col_nonzero_inds, row_nonzero_inds.

Version 3.25.0:

4fff39b59 Update bbtree butterfly factorization algorithm C++ impl. to use the lifiting method instead of DTO.

Version 3.24.2:

0c9d77ca0 Remove ConstraintGeneric::get_type definition (really messy for nothing) and set the function as pure virtual for simple implementations in subclasses.
2db31be70 Add matfaust mex wrappers bsr_mat_to_sp_mat functions.
68d8961f9 Minor fix in API doc of pyfaust/matfaust.

Version 3.24.1:

da1d4480c Fix several inconsistent floating types in pyx python wrapper code for palm4msa and hierarchical.

Version 3.24.0:

2fa6ebaf4 Add simplified pyfaust.fact.hierarchical parameterization structures: ParamsHierarchicalSimple, ParamsHierarchicalWHTSimple, ParamsHierarchicalRectMatSimple and the related documentation.
751754c57 Bind the C++ prox_id into pyfaust.proj.proj_id + doc.
74101a38d Minor change.
8ddb83877 Add prox_id for CPU, GPU in default and MatGeneric versions.
33b0445d7 Fix experimental pyfaust hierarchical_py/palm4msa_py to handle the is_fact_side_left=True (typically for the MEG matrix) that wasn't managed before.
864074a62 Fix typo in pyfaust.fact.butterfly doc.
55d164e94 Add a unit test for ParamsHierarchical.are_constraints_consistent (sucess and error cases).
d9feb1c23 Add a unit test for ParamsPalm4MSA.are_constraints_consistent (sucess and error cases).
a7493c238 Add pyfaust.factparams.ParamsHiearchical.are_constraints_consistent and use it in pyfaust.fact.hierarchical as it was done for PALM4MSA by 043de22d.
6231eab5b Avoid a pyfaust PALM4MSA runtime crash when the constraint/projector list is not consistent (a constraint to another one or to the matrix to factorize).
9b65ac324 Add a sanity check of the doc generation stage in gitlab pages release ci job to avoid a respawn of the bug fixed by 08d2a0a6.
afa81eb71 Apply more properly the BUILD_EIGTJ_SVDTJ cmake option by ignoring related pyx code in python wrapper compilation.

Version 3.23.2:

2be2c9012 Fix missing doxygen doc of pyfaust and matfaust due to removed/undefined CMake variable FAUST_BIN_CMDLINE_SRC_DIR used in Doxyfile that leads to a field in INPUT which seemingly makes all the following inputs to be ignored (python and matlab wrapper directories).
4d2def112 Update MatBSR::BSRMat::rand() to generate complex matrix with nonzero imaginary part when the scalar type is complex.
aaa148fd7 Update matfaust.Faust.factors to handle BSR matrix retrieval (converting it to a sparse matrix because matlab doesn't support BSR matrices).

Version 3.23.1:

9b68582a8 Avoid to compute the spectral norm of a zero Faust::Transform (directly return zero), add Transform(Helper)::is_zero and modiffy power_iteraiton in that goal.

Version 3.23.0:

36f670b83 Add a test for pyfaust.Faust.factors when the Faust contains BSRMat-s.
3dcc8abdf Add get_fact_bsr_info and get_fact (for MatBSR) into GPU2 TransformHelper just to allow generic code to compile and raise an exception if used (MatBSR are not yet supported on GPU)
80dfd2ebb Fix two bugs in MatBSR: in copy_bdata and BSRMat::operator=.
2fee72ebd Implement Faust.factors for returning scipy bsr_matrix (update in pyx/C++ core code).
ae2021274 Decrease the release packages ci expiration time to 1 year.
5f369543d Update GPU2 C++ core to follow CPU TransformHelper/MatDense/Matsparse::to_real changes made by 4fa8fbf9.
9b80a4121 Add a new FAQ entry about using single/float sparse matrices in Matlab which doesn't support them natively.
71f0ea951 Implement matfaust.Faust.single to convert double Faust to float/single Faust.
f20801282 Add more information when MatBSR matrix is displayed: size and number of nonzero blocks.
4a8add512 Remove old unused PALM4MSA 2020 implementation (cf. issue #244).
72be77061 Update Faust::power_iteration to workaround Faust::Transform<float> NaN eigenvalue (due to zero eigenvector approximate) by recomputing the power_iteration in double precision.
6dbf00f89 Remove now useless called regarding deleted old_matlab tests/directory in cmake files.
e14b697f4 Remove wrapper/cmdline but keep matio module in src/utils/matio, update CMake scripts accordingly.
3719c3adb Remove wrapper/matlab/old_matlab (Luc's PALM4MSA/hierarchical pure matlab impls) and update tests accordingly.
cde62bc40 Update Faust::power_iteration by defaultly using random vector initialization and always the same seed for reproducibility.
a5a58eacd Remove embedded libxml and matio archives for unix, they are easily installable directly from this type of OS.
86ab27f56 Fix issue MSVC compiling error (issue #243): out of space memory. Using older version of eigen (3.2.8 instead of 3.4.0).
8616f34a0 Fix issue #232 M_PI not defined on MSVC.
de303a417 Remove OpenBLAS windows binary package in the next to linux removal (49079e78).
52784b4c3 Remove repo. embedded Eigen library zip for Windows, download it if needed (updating by the way to 3.4.0).
1233256b2 Remove 7z embedded binary for windows and replace CMake direct calls to 7z by CMake file(ARCHIVE_EXTRACT) sub-command to extract archives (available since CMake 3.18).
ef25da679 Update Faust::dynprog_multiply to handle BSR matrices with specific product cost calculation.

Version 3.22.0:

7cd7ca508 Fix issue #241 VS C++ compiling error (std::iota not found).
90c624d9e Bind the randBSRFaust C++ function into the pyfaust and matfaust wrappers (cf. documented matfaust/pyfaust.rand_bsr).

Version 3.21.0:

c2ca5d6e2 Fall back to truncated SVD for the butterfly factorization (it has proved practically to be more efficient).
ccdbbbdaa Enhance sigma sign determination in MatDense::approx_rank1.
113541dc0 Update matfaust/pyfaust butterfly documentation with article reference.
2f8bda263 Replace truncated SVD by a rank-1 approximation using power iteration in butterfly solveDTO.
606e0789e Add MatDense::approx_rank1.
39b82d57e Add optional arguments to power_iteration: output buffer for copying the eigenvector and a boolean for random initialization.
ffbea0dca Fix issue #239 (butterfly C++ compiling error on MS VS).
0a1627c41 Update butterfly matfaust and pyfaust wrappers to handle the bbtree kind of factorization + documentation.
bb5d26401 Add C++ of balanced binary tree butterfly factorization + C++ tests.

Version 3.20.0:

ccbac4952 Optimize matfaust Faust-matrix product when Matlab interleaved API is used (MATLAB_2017_API=OFF) by avoiding two copies (the input matrix and the output matrix).
af9b2a876 Add template function helperCreateNumMxArray to refactor FaustVec2mxArray and FaustMat2mxArray.
3b4dbdd80 Disable pytorch-Faust class experimental code by default (new cmake option to enable/disable it un pyfaust).
7ce649e21 Fix two bugs in matfaust.susbref (getitem part) due to a past refactoring and since getitem (through slicing) optimization.
045c68780 Strengthen the matfaust.Faust constructor handling of different type (real/complex) and precision (single/double) of input factors.
fa22f1f4c Fix mex newMxGetData added in cd72e390.
43a48e298 Enforce index buffer types of matfaust BSR matrix cell to int32 (as in C++).
41911a168 Ensure that matfaust hierarchical constraints matrices passed as parameters are in the same field (complex, real) and the same precision (double, single) as the matrix to factorize otherwise raise an error.
dc2132f01 Minor fix in matfaust.factparams.StoppingCriterion.display.
1a919b684 Add an help function to access mxArray data in FaustMat2mxArray when interleaved complex API (R2018a) is enabled (#3).
1d5cc2806 Add matfaust PALM4MSA 2016/2020 unit tests.
bb39efc20 Ensure that matfaust PALM4MSA init_facts and constraints matrices passed as parameters are in the same field (complex, real) and the same precision (double, single) as the matrix to factorize.
57d08b132 Add alternative mex code compatible with R2018a interleaved complex API (#13).
f05149a4e Add MATLAB_2017_API CMake build option (disabled by default) to possibibly configure the API version used especially for complex matrices (#13).

Version 3.19.0:

7fe18e4db Add C++/Python/Matlab unit test for BSR Faust save in .mat file.
57f5a6cd4 Add matfaust.Faust.load to create a Faust from .mat file and handle BSR matrices too + fix in Faust constructor related to BSR and class/type of Faust.
572660a36 Minor change in matfaust.create_bsr.
c75d57066 Fix mex new_faust wrong size of created MatBSR browptr buffer.
905c8412e Fix typo on class type in MatDense::toMatIOVar (introduced by 6224728).
5b4d0c159 Add pyfaust.Faust.load to refactor .mat file Faust loading from ctor and handle BSR matrices.
c9b9ef492 Write a MatBSR::toMatIOVar that allows to store the matrix as a matlab cell array of its buffers instead of converting it to a MatSparse.

Version 3.18.1:

2b0fd98f2 Add a unit test for matfaust.create_bsr and matfaust.Faust(mat_bsr).
80efa41b4 Add a pyfaust unit test of a single factor BSR Faust.
340a38184 Integrate Rémi's review of create_bsr doc and complete the BSR input verifications.
6f1ded0eb Complete the doc of pyfaust.Faust with BSR Faust examples.
3c847b85e Fix BSR data dimension sizes order in pyx Faust ctor.

Version 3.18.0:

108c5d756 Fix GPU2 mex error in BSR Faust creation.
d2f33478e Add the BSR matrix support to matfaust.
77cc63c10 Fix multiple errors in gemm_gen function which was modified recently to handle MatBSR A or B arguments.
d2ad6ca76 Update pyfaust.Faust ctor doc, primarily to mention bsr_matrix support.
063ab5a88 Authorize to define a pyfaust.Faust with COO sparse matrices (auto-converted to CSR matrices).
dbe44ab9f Update the push_back functions in pyfaust wrapper and C++ core (CPU and GPU) in order to remove one avoidable copy for array/MatDense factor addition in a Faust.
fb24cd0de Clarify/Refactor the code of TransforHelper/Transform::push_back when it comes to conjugate, transpose or transconjugate a matrix before adding it as a Faust factor.

Version 3.17.0:

134546a2f Update the FAQ fifth entry.
d89f2cf2b Update credits section of the doc.
c709c0359 Fix typo in FAQ.
03383b116 Add BSR pyfaust benchmark script to the doc to make them public.
8b6568543 Add benchmark and plot scripts for BSR Fausts.
851750ce6 Add a pyfaust unit test for BSR Fausts.
f4471fcd7 Undo 0d3341fe experimental change of power_iteration.
4966213e8 Fix pyfaust pyx ctor by converting the scipy BSR matrix blocks organized in a row-major order contrary to FAµST BSR blocks organized in a column-major order.
1dd6fae3e Update Faust::Transform<FPP,Cpu>::multiply(const FPP* A,...) (multiply without operand copy) to be compatible with BSR Fausts.
a78b05768 Add BSRMat::apply_op to factorize adjoint and transpose methods.
90909b470 Update the pyfaust wrappers to allow scipy BSR matrices in Fausts.
5717763ec Fix stack variable reference returned in MatBSR::operator(int,int).
a02313277 Fix multiple details in MatBSR and unit tests to allow non square BSRMatrix and non square nonzero blocks.
caf0a023d Fix MatBSR::containsNaN unit test and re-enable MatBSR::operator(int,int) unit test.
ffa51e146 Fix MatBSR::operator(int,int).
79065943d Add a new unit test for randBSRFaust and benchmark pure BSR Faust compared to pure Sparse/Dense Faust.
6af46c9fd Fix BSRMat::to_sparse.
6c10a869b Update Faust::TransformHelper (CPU): new random generation randBSRFaust, update convertToDense/Sparse for BSR matrices and refactor getNBytes by using MatGeneric::getNBytes.
ec0b97bff Update gemm_gen to handle MatBSR too.
ce8e8d2a5 Add MatDense<FPP, Cpu>::update_dim.
7642d3c86 Add a first test of a Faust containing a MatBSR.
476e00fff Add MatBSR unit tests for get_cols, get_rows, containsNaN, operator(int,int) and to_sparse.
f20d12f8a Update MatBSR: new ctor, get_cols/rows signature fix (id type), new to_sparse function.
8377d3754 Correct the constness of MatGeneric/MatDense/MatSparse/MatDiag::containsNaN and simplify their defs by using eigen hasNaN.
df26aea1e Add unit tests for MatBSR::transpose, conjugate, adjoint, getNonZeros, getNBytes, operator*=(FPP), get_col.
3370290f0 New member functions for MatBSR: getNBlocks, getNbBlockRow/Col, getNbBlocksPerDim + fix get_col.
9967376c9 Add an option to avoid building eigtj/svdtj related cpp code in faust static library (to ease the process of build-and-test unit tests).
4101985c2 Add unit tests for MatBSR (multiply(MatDense), multiply(MatSparse), faust_gemm).
cd0a40ad7 Implement MatBSR::faust_gemm and fix MatBSR::multiplyRight.

Version 3.16.0:

f72df61f2 Patch the PALM4MSA 2020 C++ implementation to correct the float 2-norm resulting in NaN by recomputing them exceptionally using double precision.
3c7f798d4 Fix MatBSR::multiply(Vect&, char) signature (no optional argument) and implement 'Vect MatBSR::multiply(Vect&) + its unit test.
d8721629e Fix MatBSR::transpose signature and MatBSR::Clone + Add unit tests for MatBSR 1-norm, Clone, multiply(Vect).
666c1fd47 Add the new matrix type MatBSR with its uncompleted test (test_MatBSR).
dd40bbeaa Fix issue #235. VS linking error: multiple TransformHelper::real symbols.
814c67760 Fix issue #234 about GPU2 MatDense and MatSparse constructor calls ambiguity in faust_TransformHelper_gpu.hpp.
0c971655a Minor change: exception message for forbidden use of pyfaut.Faust * operator.
710a013c6 Implement TransformHelper<complex<double>,GPU2>::real and use it pyfaust.Faust.astype to copy real part of GPU complex Fausts to a GPU real Faust.
69d6c9492 Implement MatSparse<GPU2>::real, updating to gpu_mod@748e3c9.
6698f8770 Rename ParamsHierarchicalSquareMat to ParamsHierarchicalWHT but keep the former available (as a deprecated class) in matfaust and pyfaust (issue #208).

Version 3.15.0:

f552d4220 Fix issue #232, minor typo in ci job pkg_macos variable.
eec94ce72 Update hierarchical/palm4msa 2020 C++ test next to the new no_lambda parameter.
08b30e06f Add the no_lambda option to the C++ core and the python and matlab wrappers.

Version 3.14.1:

62512c63f Fix issue #231 in macOS pkg postinstall script.

Version 3.14.0:

556ca9bbc Disable temporarily the linux pyfaust-torch package gen ci jobs.
01f64a780 Fix issue #230 in postinstall script for deb/rpm pkgs (wrongly set PY_MAJOR_MINOR_VER variable when using python 3.10).

Version 3.14.0rc1:

ffc466c68 Fix issue #229. PY3_MINOR_VER wrongly set for python3.10.
36a30d457 Fix issue #228 (python3.10 pathlib install error).

Version 3.14.0rc0:

740b3f691 Replace python 3.8 by 3.10 in ci jobs (3.9 still supported).
1a713d4eb Fix openblas license embedded even if openblaso not enabled.
7da113fa8 Fix matlab wrapper env setup in faust NSI installer for Windows.
b7b5116a5 Embed OpenBLAS license into the pyfaust-openblaso package.

Version 3.13.0:

f2d09bc32 Add a ci job for testing pyfaust_openblaso whl package.

Version 3.13.0rc2:

30dc08177 Embed/load also libgfortran for OpenBLAS-OpenMP because the version can differ from a system to another.

Version 3.13.0rc0:


Version 3.13.0rc1:

39401037f Add a new gitlab CI job to generate an OpenBLAS-OpenMP enabled pyfaust whl release package.
50683f583 Manage new CMake option USE_OPENBLASO to build the pyfaust wrapper with OpenBLAS-OpenMP Eigen backend and embed the openblaso library in the pyfaust package.
9b6694362 Disable verbose mode of libomp loading.
14c096f7d Minor fix: update hierarchical calls in tests to follow (no_normalization) signature change.

Version 3.12.0:

cd5f4b29b Document the no_normalization PALM4MSA parameter in the FAQ.
af2bcc351 Update toch loading to run the install_name_tool only on macOS.
f4c371a3a Minor fix in enable_gpu_mod mex code to avoid a matlab error when cmake option USE_GPU_MOD is OFF.
5cfe7809b Add the new no_normalization option to matfaust.fact palm4msa and hierarchical (2020 backend only).
3d66a1587 Add the new no_normalization option to pyfaust.fact palm4msa and hierarchical (2020 backend only).
13d9c9e57 Integrate the no_normalization parameter into 2020 C++ implementations of PAL4MSA and hierarchical algorithm.
0ad299d9c Add and handle the no_normalization parameter in PALM4MSA and hierarchical algorithm C++ parameter structures.
40761840c Add the normalizing attribute to the Constraint class hierarchy along with an associated setter.
29b693d10 Disable the egg python package generation in ci jobs.

Version 3.11.1:

654a2b184 Restrain artifacts downloading for all ci jobs of stage pkg (to avoid consuming to much space disk with useless artifacts of pkg_purepy stage).
e6d53cc1e Specify the package name to install with the os name in .test_unix_purepy_pkg ci job.
d0312f80a Update the FAQ entry about pyfaust/OpenMP/Mac OS X as the libomp is now embedded in the package itself.
3a6121da2 Set the proper stage (pkg_purepy) to the ci jobs pkg_purepy_release and children.
24c074389 Update embed_sys_libomp_into_pyfaust.txt by searching libomp in (DY)LD_LIBRARY_PATH if defined.
6532df9cb Set the cmake target to embed libomp in the package as the default target.
7d36c31ca Avoid building the the python wrapper shared lib again if it already exists (it must be asked explicitely)
c241f731d Add a cmake target to embed the libomp of the building system into the pyfaust package (in its lib directory).
4ac97547a Fix bug about saved float Faust loaded as a double Faust from file.
2b08e8e09 Optimize ci jobs for revision packages by building only one time the python wrapper for each OS and sharing the binary between packages.
1d215f9a2 Add unit tests runs for float Faust in pre-release tests ci jobs.

Version 3.11.0:

f0a64b4ea Modify the pypi_pub ci job to ublish the pyfaust_torch package on pypi.
6743b1302 Temporarily limit the gitlab-runners capable to build py torch pkg for linux to this ci job only.
8e92d2b34 Fix no version number in macos pyfaust-torch and revision python whl package.
392181e96 Fix the bug of issue #141 (libtorch/openmp loading).

Version 3.11.0rc3:

3ba758cb9 Pass also to clang the ci jobs pkg_linux_purepy_release*.

Version 3.11.0rc2:

baf9fc10a Add a ci tag to limit the pyfaust torch whl package generation to specific gitlab runners.

Version 3.11.0rc:


Version 3.11.0rc0:


Version 3.11.0rc1:

f048a9bec Fix linux clang issue about not resolved openmp symbol (issue #215).
1c5cf78fa Update to gpu_mod@b98b78f and fix specialization after instantiation error in faust_Transform_gpu.cpp.in.

Version 3.10.0:

895940ea2 Re-enable gitlab pages and pypi pub ci jobs.
9590ef7d1 Optimize Faust item access for matfaust and pyfaust.
bb295ff88 Temporarily disable pypi pub. and gitlab-pages jobs.
f42927b0a Fix issue #225 by using python3 in the shebang instead of python in faust_data_downloader.py (pyfaust.datadl).
37d7727a7 Review/Update the GPU pyfaust jupyter notebook.
a3c189bc2 Add cmake option DISABLE_ALGO_PYX to speedup the python wrappers building if no need of algorithms (just Faust class).
5884d087e Update/Review MHTP algorithms jupyter notebook.
9efc183e1 Update cmake script to link torch libs to faust_torch test automatically.
7528836a7 Update/Review the jupyter notebook 'Using FAuST in Algorithms'.

Version 3.9.1:

34d006764 Update/Review Faust projectors jupyter notebook.
cc820941e Update/Review Faust factorizations jupyter notebook.
26dfb7d15 Update/Review Faust optimizations jupyter notebook.
6065c635d Update/Review Faust manipulation jupyter notebook.
be427ab9e Fix issue #224 by choosing explicitely the R2017b API to build the mex tools code.
eca6b81dc Review/Update Faust creation jupyter notebook.
97a761b29 Update FAQ entries about CUDA to take into account CUDA 11 (in addition to CUDA 9).
752525955 Switch default enable_gpu_mod to silent mode.
97e609893 Extend pyfaust.Faust.astype to support Faust conversion from/to float32 dtype.
f6e20a69d Update pyfaust.Faust.concatenate for dtype consistency.
ffc0d012f Update pyfaust.Faust ctor to handle missing Faust creation by float array list on GPU and secure Faust dtype consistency.
a2d748eed Add BUILD_FLOAT_MEX cmake option to set optional the float support of matlab wrappers and enable it for release packages in gitlab ci jobs.
f52a2030e Update matfaust.Faust ctor to auto-convert factors passed as arguments for type precision consistency (all factors must be of the same matlab class).
3efd830ca Hide matfaust.poly.calc_coeffs from doxygen doc as it's a private utility function.
39b8946e8 Add a note in matfaust.Faust.factors about the fact that float sparse matrices are not supported by Matlab.
5a9d3f640 Add a warning in matfaust.rand raised when a user tries to create a complex Faust in single precision (not yet supported, cf. #223).

Version 3.9.0:

3cc14b1eb Re-enable ctest/python/matlab stage in ci pipeline and reduce gitlab expiration time of pip whl release pkgs (because they are hosted on pypi.org anyway).
95ac184a2 Update matfaust.Faust.
26fa14cee Fix wrongly allocated nonzero array in transformFact2SparseMxArray.
11ea5eb8a Add code doc for dev (gpu) param of matfaust.dft.
ec598fd66 Update matfaust.eye to support CPU and GPU float type.
aa9f822f4 Update matfaust.wht to support CPU and GPU float type.
ce811c096 Update mexHierarchical2020_gpu2.cpp.in to support GPU float in matfaust 2020 hierarchical.
7c21e3b2e Add support of GPU float type to matfaust.fact.palm4msa.
b3ee387b9 Update Faust.complex to support GPU float Faust.
06b7e4351 Fix typo in matfaust.Faust.call_mex in mexFaustGPURealFloat call.
ba101df25 Fix dtype argument parsing of matfaust.rand.
b0346a910 Update matfaust.enable_gpu_mod function to manage multiple versions of gpu_mod (for cuda9.2 and cuda11.4).
834a83970 Update to gpu_mod@96cd28f.
e846f7f9a Support float scalar type for matfaust.poly.* functions.
c2395cb41 Add Faust.class method.
416840137 Support float scalar type for matfaust.proj.* functions.
4c9a700b8 Support float scalar type for matfaust.fact.palm4msa (2016 and 2020 backends), eigtj, svdtj and butterfly.
d634ebf93 Fix mexsvdtj (template) compiling error (issue #217).
77e4d815c Support the float scalar type for matfaust.Faust constructor, matfaust.rand and matfaust.fact.hiearchical (2016 and 2020 backends).

Version 3.8.0:


Version 3.8.1:

1881b0fda Fix pypi classifier error: CUDA 11.4 is not classified on pypi (so put only CUDA 9.2 in classifier list)
67d617114 Add a default library symlink to the gpu_mod library that support the most recent version of CUDA.
32aaa98d0 Re-enable release package hosting on pypi and gitlab.

Version 3.8.0rc7:


Version 3.8.0rc8:


Version 3.8.0rc9:

969a2e270 Use high level function _is_gpu_mod_enable() instead of checking the library handle is NULL (in pyx code).

Version 3.8.0rc6:

f40664058 Fix nullptr handle of gpu_mod library used for loading.

Version 3.8.0rc5:

480675da8 Patch pkg_win_release ci job to force using VS 2015 to build the python wrapper.

Version 3.8.0rc4:

f67bd4187 build gpu_mod for pkg_linux_release_static ci job too.
520ad7130 Secure libomp copying / erasing for macos ci jobs (avoiding losing macports version as it happenned sometimes).

Version 3.8.0rc3:

56fb88e35 Generate cuda 9.2 and 11.4 gpu_mod libraries for the linux release purepy packages too.

Version 3.8.0rc2:

36f4271dd Temporarily disable release package hosting on pypi or gitlab.
41784d082 Update to gpu_mod@8558039
4b6670d5e Disable temporarily the python wrapper compilation through clang (back to gcc) because the ci.inria.fr VMs are not properly configured with a recent enough version of clang.
87eedbd09 Fix erroneous gpu_mod library names in CMake script, setup.py and cython pyx code.
8c290f02b Solve conflicts of VS studio versions in cython extension building on Windows (we must use the same version of VS used to build libmatio).b
6dc021f33 Update ci jobs specifying which cuda toolkit to use for the build on Windows.
311b6cbb2 Update faust.nsi (win installer) to install cuda9.2 and cuda11.4 version of gpu_mod.
50731fd46 Integrate cuda (11.4, 9.2) multi-support in pyfaust/gpu_mod.
dbecefbf0 Use clang to build the pyfaust wrapper on Linux instead of gcc.
e2b02c6ea Fix in PALM4MSA 2020 1) the float MEG factorization warning/error 2) NaN in the numerator and denominator of lambda.
b79434132 Allow to normalize a MatDense through another norm than Frobenius + add MatDense::nonzerosToOnes function.
28e854494 Minor fix in lambda isnan check.

Version 3.7.2:

78f27a65f Add support of float32 dtype for projectors (of pyfaust.proj) and review the doc.
507a35c07 Document pyfaust fact and poly functions about the dtype that can be float32 or double/float64.
f276b5a0f Fix dtype error in pyx code of polyCoeffs and polyGroupCoeffs.
7b1fa8a32 Add containsNaN functions in MatGeneric<Cpu> and subclasses.
9137b9471 Connect the pyfaust wrapper functions svdtj, eigtj, poly.*, hierarchical/palm4msa 2016, to their float pyx code.
104426cb7 Re-enable ctest, ctest_python, ctest_matlab ci jobs and put back py3.9 as the default version of pip whl revision package for linux (was changed temporarily to test GPU pyfaust on PSMN which has no py3.9).
4ac319151 Update to gpu_mod@56a78ab.
8197677fa Support float/double alternative for GPU pyfaust.rand.

Version 3.7.1:

c004615be Fix GPU gemm in case where C is not initialized.

Version 3.7.0:

0b7e3cde6 Temporarily disable ctest ci job.
f817ec994 Fix uninitialized (to nullptr) gp_funcs_ pointer leading to partial failure of gpu_mod library loading of functions.
e0b0f6b00 Temporarily use py3.8 linux rev pkg and disable pkg_linux ctest_matlab/python jobs
2f6ba0917 Temporarily isable silent flag of enable_gpu_mod call in pyx.
45084e8e6 Fix compiling issue #214 on Windows VS.
a6fb389b9 Enable BUILD_FLOAT_PYX in pkg building jobs.
38505f3d6 Add to pyfaust the support of float on GPU (not tested yet).
347fe2b23 Minor change 2.4 FAQ entry.
b91582348 Adjust test_prod_opt/testProdOpt for pyfaust/matfaust because FaustMulMode.GREEDY constant has been deleted (the method is hidden).
dc591a4c3 Fix issue #213 (compilation error on Windows).
26ac24e23 Make float precision available to pyfaust algorithm wrappers but only on CPU.
2487f12da Update the faust_SVDTJ module for genericity.
8416d06a6 Add CUDA entries in the FAQ and reformat the document.
abd34faad Cast properly lambda/beta scalar argument in gemm calls to avoid non-consistent/non-defined calls mixing float and double types.
9d0fe010b Change the default template type parameter from float to Real<FPP> (more consistent).
b292ba9b9 Add advice to close Matlab before installing on Windows.
519f9ae1c Mention Inria RH in license.txt.
c5a337d92 Update install doc and add a faq entry.
119a57454 Enhance NSIS installer by using py launcher instead of python.
3c93d9414 Make float precision available for pyfaust.Faust.wht, eye and rand.
512aef61b Update MatGeneric::get_scalar_type_str to be more precise than 'real' specifying 'float' or 'double'.
493daf5b8 Add support to float in pyfaust.Faust wrapper (not algorithm) and the cmake option to enable it at build time (not enabled by default).

Version 3.6.4:

cb2d22478 Fix in NSIS installer the expfiltered directory present in matlab folder after install.
3c2cf22ca Remove old mention to python 2.7 in install guides (general part and windows specific part).
ff5d1d330 Update NSIS installer: try to uninstall previously installed Faust before installing the current version.

Version 3.6.3:

bc4011c63 Fix Debian package name delivered matio static library.

Version 3.6.2:

a122f0246 Add version footer in the new notebook and live script.

Version 3.6.1:

0f7fd0a0e Add 'Faust optimizations' jupyter notebook and matlab live script and integrate them in the doxydoc and zip archives.
21f8311e1 Update MacOS X VM setup script.
8a9117ae9 Minor change in matfaust.Faust.optimize_time (preventing mat output).
cd0343764 Minor changes in pyfaust code doc formatting.
97fb1c3fa Minor fix: rename FAµST to FAuST in some strings to avoid issues on windows (utf-8 error).
4b6f8c083 Add hidden options (through environment variables) in PALM4MSA 2020 (no_lambda_error, use_grad1).
923495946 Minor change in backend argument documentation of palm4msa and hierarchical.
881d32d07 Handle complexity of sparse products in DYNPROG method (removing from wrapper now almost always slower GREEDY method and disabling it in optimize_time).

Version 3.6.0:

892648557 Optimize C++ Transform::get_product (DEFAULT_L2R meth) and TransformHelper::get_product (for other methods).
38a28294f Fix dtype constraint in Faust.optimize_time constraint (F.dtype == M or S.dtype) and adjust the doc for matfaust and pyfaust.
a3c8870d9 Minor change in the MEG factorization C++ test (changing a preprocessor directive).
cf7ed28cc Update PALM4MSA 2020 C++ impl. to allow changing the product method (GREEDY, DYNPROG etc.) through an environment variable and change the default method from GREEDY to DYNPROG (because it is a bit faster for MEG matrix factorization).
4f9dd2787 Update the DYNPROG meth C++ code to compute the product cost taking the sparse format into account.

Version 3.5.5:

70a6cf450 Fix and optimize C++ optimize_storage.

Version 3.5.4:

c7b665315 Replace deprecated time.clock (removed in python 3.8) by time.process_time in pyfaust.demo.

Version 3.5.3:

b39bab2c8 Re-enable pages and pypi_pub job.

Version 3.5.3rc1:

feaa2e5fb Adjusting the pyfaust code doc to the new version of doxypypy.

Version 3.5.3rc0:

bbaee093e Replace switch from py3.7 to 3.8 for python wheel package (on macOS, Linux and Windows).

Version 3.5.2:

6f94fd66f Fix missing bracket (when FAUST_TORCH is on).
7eba59ef2 Update faust data archive URL.
ae950dd76 Print name instead of id for the best method chosen by optimize_time (C++).
51dc99fb0 Add matfaust unit tests of DYNPROG and GREEDY Faust product optimization methods and also for Faust.optimize_time.
af6ebe0dd Add python unit tests of DYNPROG and GREEDY Faust product optimization methods and also for Faust.optimize_time.
7feb16e9c Fix dynprog_multiply to handle the single factor Faust case.
28056aeef Add the mat argument to matfaust.Faust.optimize_time as c95a253c did for pyfaust.
b3b9fede5 Add a mat argument to pyfaust.Faust.optimize_time in order to run the benchmark on F@mat instead of F.toarray().
c75d035d0 Enable most of the Faust product optimization methods to Faust-MatSparse multiplication as it was already for Faust-MatDense multiplication.
319ca9018 Minor fix in faust_torch: raise an exception if a MatGeneric to multiply is neither a MatSparse or MatDense.
f81d4dd39 Delete get_Fv_mul_mode method and make related changes since 430188 disabled the Faust-vector mul alternative methods.
33aff8f53 Clarify FaustMulModeOpt Torch based methods and update their names and doc.
e53641043 Disable experimental GREEDY* methods in Faust optimize_time, keeping only GREEDY_ALL_BEST_GENMAT.
c438210d1 Rename enum constants of prod_opt_ module.
69ec731f4 Remove functions (C++, py/matfaust) related to Faust-vector product optimizations.

Version 3.5.1:

5b6027192 Fix missing version in pyfaust whl package for MacOS X. This bug was introduced by fce9ece8.

Version 3.5.0:

fc805db3e Fix a bug in optimize_time/multiply; the faust-vector mul was overridding the Faust.toarray() test.
2c4c43119 Fix compiling issue of Faust::gemm_gen on Windows MSVC (issue #211).
64e024dc5 Update/extend faust_prod_opt module and its use; mostly adding the DYNPROG method.
bc6cdd850 Extend faust_linear_algebra gemm_gen to support MatSparse-MatSparse multiplication and fix a bug in spgemm (dimensions computation when dealing with transpose/adjoint ops).
d645e6916 Fix MSVC min/max macro confusing with STL numeric_limits::max (issue #210) in faust_linear_operator target.
6fdf1f7ce Implement GPU MatDense::real() and add a unit test for it.
52c1efaea Implement Faust::TransformHelper::real on CPU and bind it into the pyfaust.Faust.astype (issue #183).
1dfdfdf05 Add MatSparse::real(MatSparse&) and MatDense::real(MatDense&) functions.
0408aa1ae Handle easily the excluding of faust_torch.cpp from cpp files to compile.
7a445c978 Update pkg_macos_purepy ci jobs to force using the MacPorts clang 8 instead of Apple clang 6 installed on the VMs.

Version 3.4.2:

586402f23 Fix cmake script to add Torch to includes of faust_linear_algebra target + reformat faust_torch.cpp and fix missing namespace.

Version 3.4.1:

c1b294a6c Fix ignoring faust_torch.cpp on setup.py for Windows. (when FAUST_TORCH is OFF).
c10ecc462 Fix MatSparse::get_cols, the column indices might be repeated through the list (it wasn't taken into account).
60246b8b6 Complete the matfaust.Faust.cat unit test for the concatenation of an arbitrary number of Fausts, arrays.
12ee8fa58 Fix multiple definitions of faust_torch module.

Version 3.4.0:

ebce23d62 Minor fix in pyfaust.Faust.concatenate and and a new unit test for the concatenation of arbitrary number of Fausts, arrays.
f4351f2b7 Minor fixes and simplifications in Faust::Transform::norm* and MatDense::normL1.
33969a032 Change the default config of batch_size and full_array in matfaust/pyfaust.Faust.norm and update the doc consequently.
d1d877757 Document the new full_array and batch_size arguments of the pyfaust/matfaust Faust.norm function.
902eaae7c Set in pyfaut/matfaust.Faust.norm the default configuration of full_array and batch_size parameters when the Faust is totally composed of sparse factors.
3e7f60c14 Add Faust C++ is_all_sparse/dense and pyfaust matfaust bindings issparse isdense.
cfcdc93f2 Bind new arguments full_array and batch_size into matfaust.Faust.norm wrapper function.
430d889ea Update the pyfaust wrapper to bind the Frobenius and Inf norms full_array and batch_size arguments.
f3a74f33e Add norm computation without full array for Inf-norm and Fro-norm.
8beb1ed1c Add new get_rows function overloads (refactoring others) in MatDense and normInf in MatDense and MatSparse.
327efe40a Check index of rows/cols in MatDense get_rows, get_cols functions.
5c045c5a3 Implement (in C++) a batch_size argument to compute the 1-norm of a Faust and bind it into the pyfaust wrapper.
ce83d7469 Optimize MatSparse::get_cols()/get_rows() by removing the MatDense conversion and writing pure MatSparse operations.
c9b910ca7 Add a new impl of Faust norm-1 that works column by column instead of computing the full array (the option full_array is available from pyfaust.Faust.norm()).
e41fdef02 Add an overload of MatSparse::get_col and refactor the other.
11658a8bf Review header documentation of pyfaust/matfaust.Faust class.
aa258e637 Update to gpu_mod@746033d.
dbeaadb9b Fix a bug in pyfaust.Faust.astype, the device must be preserved when the Faust is type converted.
ee6c839db Update to gpu_mod@23ea61a.
45d918d5b Update to gpu_mod@ba21999.
b3c901e0d Update the developer oriented README for the python wrapper next to the major reorganizing/refactoring of code in previous commits.
cb83a4880 Minor fix in pyfaust.tests sub-package.
f49a6a79f Refactor/rewrite the python wrapper (pyx, pxd, C++, cmake script) to make as generic as possible the CPU and GPU code parts.
d57ff9574 Replace FaustCore and FaustCoreCplx classes by a unique FaustCoreGen pyx class to enhance the genericity of the python wrappers (no code duplicates for complex and double).
15e0c4e61 Add a FaustAlgoGen pyx class to enhance the genericity of the python wrappers (no code duplicates for complex and double).
ab72ce31e Fix slowness of PALM4MSA 2020 on Hadamard factorization compared to 2.5.46.
34ae006b2 Modify simplified conf (ParamsHierarchicalSquareMat) for Hadamard factorization to set packing_RL to False by default (it is quickest with backend=2020 and is ignored with backend=2016).
453683e4e Add a module faust_linear_algebra with gemm and gemv (as in CPU equivalent module) relying on MatDense<GPU2> (now static) eponym methods.
f633a9a83 Use gemm_gen in palm4msa 2020 for computing the gradient.
f0eb6229e Add a new signature of multiply_order_opt_all_ends to work on MatGeneric.
ee44fc8b0 Add new signature of spgemm and gemm_gen functions to faust_linear_algebra.
6c160c5bb Fix a segfault in PALM4MSA2020 when packing_RL == false.
82b65a0c9 Reduce noise in TransformHelper<FPP,Cpu>::set_FM_mul_mode where silent argument default value changed from false to true.

Version 3.3.1:

f1cce5884 Add an example to hierarchical for the DFT factorization with matfaust or pyfaust.
9798d4448 Add two unit tests for matfaust and pyfaust DFT factorization (factparams.ParamsHierarchicalDFT).
b8350fce5 Add unit tests for matfaust.fact.palm4msa/hierarchical_mhtp.
170470773 Add a unit test for pyfaust.fact.hierarchical_mhtp.
caff9e8e0 Add a bash script to count C/C++, Python and Matlab lines of code (useful for APP deposit).
500889dfb Add a unit test for pyfaust.fact.palm4msa_mhtp.

Version 3.3.0:

396f41ee8 Add matfaust.factparams.ParamsHierarchicalDFT simplified parameter structure to factorize a DFT matrix with matfaust.fact.hierarchical.
76cf15173 Add pyfaust.factparams.ParamsHierarchicalDFT simplified parameter structure.
5f62b8dbc Minor changes in pyfaust.tools.omp.
449afc4e6 Remove experimental flag on pyfaust/matfaust.fact.butterfly.
0b84d70b3 Add support of complex matrices in matfaust for the 2020 versions of PALM4MSA and hierarchical algorithm (CPU & GPU).
72efe2ae4 Force the factor_format to 'dense' for palm4msa/hierarchical 2020 when the matrix is complex.
6a918fc20 Fix GPU python wrapper of hierarchical2020 compilation error (issue #207).
8038559ab Optimize update_lambda computing in C++ PALM4MSA 2020 by decreasing the number of matrix products needed to compute S full array.
f02508e52 Fix PALM4MSA2020 gradient computation in complex case: replace transpose ops by transconjugates, split gradient computation and applying to the factor (even if the all-in-once operation was correct it fails the DFT factorization with a large error).
48b7a96cd Minor changes in lambda and init_facts scalar type checking and conversion in palm4msa2020 and hierarchical2020 cython code.
f1890e07a Minor fix: calling the wrong wrapper of pALM4MSA if the numpy array is complex (2016 instead of 2020).
3680b4f01 Add support of complex matrices to hierarchical PALM4MSA 2020 (python wrapper and C++ core).
4fd095c91 Add support of complex matrices to PALM4MSA 2020 (python wrapper and C++ core).
c30970816 Minor change in GPU pyx code (remove unused dtype-s).
527bb1894 Remove now useless entry about the float128 undefined numpy dtype on Windows VS env (because it was fixed in 3.2.14).
e7b8188dd Minor change in the FAQ.

Version 3.2.14:

0c8c75955 Fix possible linking error in python shared library path to OpenMP library on macOS by editing it manually.
67009d6d7 Fix 2 minor bugs in complex part of the wrapper pyx code of hierarchical (2016).
e239f16a6 Add an entry in the FAQ (PALM4MSA failing on Windows when running on a complex matrix).
501d1e25a Split the pyx code of the python wrappers in real and complex parts. Make the support of complex optional with BUILD_CPLX_PYX new cmake building option.

Version 3.2.13:

4c6a5bab3 Fix a nullptr error in C++ MHTP module (due to 60524e31 update).
8b1edf2fe Modify the butterfly C++ to handle a matrix size program argument + keep using JacobiSVD (instead of BDCSVD) on Windows VS.
e057b18db Add fno-wrapv opion (disabling fwrapv opt. option) because it slows down the butterfly factorization.
36135ea4b Use BDCSVD instead of JacobiSVD in MatDense::best_low_rank() (the former is faster than the latter on large matrices).
0305a54a0 Optimize the butterfly C++ module. Pre-compute the supports for all the factorization to avoid computing twice the same product.
ac240786a Add unit tests for pyfaust and matfaust butterfly function.
dafc37f4d Document matfaust.fact.butterfly and add dir='left'|'right' argument.
9aab054f3 Document pyfaust.fact.butterfly and add dir='left'|'right' argument.
2aa7646de Support the factorization direction parameter for the C++ impl. of butterfly hierarchical factorization.
abc3c8988 Add pyfaust.__version__ in addition to pyfaust.version() (more standard).
42ea80a68 Update "Using the FAµST API in Algorithms" notebook with pyfaust version footer.

Version 3.2.12:

4a71c271c Fix an error in the optimized version of the C++ Faust by vector multiplication, in case the Faust is transposed.
251eaefbc Slightly update of several pyfaust jupyter notebooks.

Version 3.2.11:

a36d45de3 Add matio static RPM/DEB packages to the download page.
155f61a44 Ignore python2.7 in linux RPM/DEB post-install script (py2.7 is not longer supported).

Version 3.2.10:

866be969a Make more consistent the way the failed symlinks are counted in the RPM/DEB post-install script for pyfaust.
682872394 Upload also the static version of the RPM/DEB packages to gitlab-pages.
67339c3c7 Update test_linux_pkg_release to test also the static version of the RPM package.
c6fef1aaf Replace the use of Faust * by @ in (not all) tests (issue #161).
d3786ef29 Re-enable the Faust.power_iteration function on complex Fausts in matfaust and pyfaust.
443f30f9d Add wrapper matfaust.power_iteration and update pyfaust.power_iteration to be consistent.
16a9f256e Update the pyfaust.Faust power_iteration wrapper and make it public (both for CPU and GPU).
199e614a6 Add GPU TransformHelper::power_iteration support.

Version 3.2.9:

8e50a9b6c Fix a bug on normed parameter of matfaust.wht and dft and complete their unit tests.
7496f047d Remove complex scalar test in hierarchical butterly C++ test (because only hadamard factorization is tested).
e15bd5543 Update the C++ butterfly module to add the bit reversal permutation when the matrix to factorize is complex (a DFT matrix).
aae84ecb4 Add matfaust wrapper to C++ Faust::butterfly_hierarchical (for experimental pkg).
5033b6326 Adjust Faust::MatDense::submatrix for windows VS 14 which doesn't succeed to compile eigen3.4rc1 (slicing support).
6d1d850d4 Add pyfaust wrapper to C++ Faust::butterfly_hierarchical (for experimental pkg).
faf7d81be Complete and clean the solve_DTO function (butterfly module).
71463a960 Fix (issue #205) inability to compile faust_butterfly C++ module when BUILD_MUTLITHREADING is OFF.
dd6cb0b84 Fix issue #204 (compiling with complex<float>).
92d6bfe73 Add a C++ test for the butterfly hierarchical factorization (Hadamard factorization).
208d31f09 Add the butterfly factorization C++ module.
f2b765b5e Add member functions to MatDense: setNZtoOne, set_row_coeffs, set_col_coeffs, kron(ecker).
3d3d8d8d5 Add member functions to MatDense: eq_cols, eq_rows, sum_col, sum_row, best_low_rank, row_nonzero_inds, col_nonzero_inds, submatrix.
8a6d658db Update notebook/livescript (use_csr parameter replaced by factor_format).
7ebdc735d Fix ctest on MEG matrices factorization, the reference lambda value had to be changed because of different default parameters of the 2-norm.
6de2507da Fix unit test on TransformHelper::pack_factors by deleting useless overload of this function in TransformHelperGen.
69267e7fc Fix bug on unit test of MatSparse::vstack which was due to MatSparse::randMat() failure when FPP==float.
b1e8b1bf2 Update C++ tests since use_csr has been replace to factor_format.
e555f004e Fix inconsistent C++ decl. issue #203.
f8001b284 Add static member function pyfaust.factparams.ParamsFact.factor_format_int2str.
91ca664c8 Update matfaust and mex wrappers (of factorization algorithm) to support the new factor_format parameter (replacing old use_csr).
a9d2e69ae In PALM4MSA 2020 impl. if custom factors are defined at initialization, convert them to the configured FactorFormat (AllSparse, AllDense).
24f47cae4 Replace obsolete use_csr by factor_format in pyfaust test python scripts.
d0d2276c4 Replace the use_csr (boolean) parameter by the new factor_format (:='dense'|'sparse'|'dynamic') parameter everywhere it applies in the pyfaust package.
2ed2239c7 Update PALM4MSA 2020 impl. to allow dynamic output format in proximal operator.

Version 3.2.8:

dd03ef109 Try to fix issue #202 by using python os.system call instead of batch start/call.
778e63057 Change from 3.7 to 3.9 the python version used to build the pyfaust wrapper on macOS and linux system packages (pkg, rpm, deb).
581b43d87 Disable test_win_pkg_release because the call (or start) command blocks the job indefinitely. Renable the pypi_pub job.
3476db61d Adjust start use in test_win_pkg_release job.

Version 3.2.6:

c52f8f8a0 Add a test of the NSIS Windows installer.
797723056 Build an uninstaller for the windows NSIS installer.
cb0dd1a6d Add missing dynamic output CPU proxs (output: MatDense/MatSparse as MatGeneric). Update dynamic sp prox test.
eaa33a762 Set a default choice for MessageBox of NSIS installer when running in silent mode (non-interactive mode).
d45d67905 Update faust.nsi (NSIS installer script): don't edit matlabrc/startup.m if already configured for matfaust.
07f0e6046 Add a python version checking code in the windows NSIS installer (it must be the same minor version as the one used to compile the wrapper) and swap python default version (now 3.9) and extra version (now 3.7).
6870d1872 Move python requirements list into the main CMakeLists.txt to avoid undefined variable in faust.nsi (failing the install of dependencies by the generated windows installer).

Version 3.2.5:

556e2b14d Hide pyfaust.tests package from doxygen API doc.
8a216bfbc Update linux deb/rpm package matlab post-install script as already done for macos (by 37d9452b).
6d113fc6b Add a ci job to test the RPM FAµST package before uploading to gitlab-pages.
a6c55cc90 Fix include of deleted faust_gpu_mod.h cpp header in several tests.
a615e7594 Add unit tests for pyfaust.poly.poly and pyfaust.poly.expm_multiply.
516f4c5fc Simplify the code and fix a crash in TransformHelperPoly<FPP>::polyFaust(const FPP* coeffs).

Version 3.2.4:

cba4ca2a8 Fix typo in postinst_matlab.sh.in.
fbc4d50b9 Change packages order (in sys alphabetical order), limit sha256sum output to the hash.
b335e9591 Fix issue #201 (missing pyfaust.tests content).

Version 3.2.3:

da2798f30 Add a script to generate a package download page and call it in ci gitlab-pages job.
826e3af8b Modify macos pkg postinstall script: in matlab startup test that mexFaustReal is present to decide modifying the path (instead of matfaust.version).

Version 3.2.2:

63de996ab Re-enable pypi_pub ci job.
4fdb9329a Add a unit test for pyfaust.poly.basis used with a arbitrary T0.
ee16d72f6 Fix bugs in TransformHelperPoly occurring when the lazy instantiation is used and T0 is arbitary (false information were displayed).
73e77c403 Add TestPoly and inside a unit test for pyfaut.poly.basis.

Version 3.2.2rc3:

3f425f25f Upload packages on gitlab-pages (disabling pkg_upload job).
29e99c0c5 Refactor the pyfaust.tests module in a modular package in order to properly receive more tests.

Version 3.2.2rc0:


Version 3.2.2rc1:


Version 3.2.2rc2:

872dd655a Add a CI job to upload the release packages (except the whl/pip packages).
b27d83d0a Fix issue #200 (python wrapper compilation error for macOS clang).
9e4f3e161 Make possible to use ParamsPalm4MSA.init_facts for the 2020 implementation of matfaust.
0c1d3ecde Update step-by-step_palm4msa.py since it's now possible for the PALM4MSA 2020 impl. to use ParamPalm4MSA.init_facts (f78c96a3).
8c26b4223 Make possible to use ParamsPalm4MSA.init_facts for the 2020 implementation of PALM4MSA (of pyfaust).

Version 3.2.1:

9c2d92fd3 Remove experimental status of MHTP functions and structures (pyfaust/matfaust).

Version 3.2.0:

91b201e0a Fix MacOSX/Linux linking error with the function (in py wrapper) convPyxMHTPParams2FaustMHTPParams.
319ff6ef1 Add links to the MHTP tutorials in the doxygen main page + review of the doc (slight modifs).
0cf473a53 Add the pre-rendered HTML version of the MHTP live script.
a0d7c62e8 Add missing gpu argument in API doc for matfaust.fact.hierarchical.
291cb6343 Add a FAQ entry about running PALM4MSA in step-by-step mode with pyfaust.
f7d8e360a Add a step-by-step PALM4MSA test python script.
51b2857d5 Ensure in the python wrapper that the initial factors sent to PALM4MSA (2016) are in column major order or fail.
32d8a384e Add the live script about the MHTP algorithm.
94f78ac01 Add a notebook about the new MHTP algorithm/functions and a HTML pre-renrendered version.
2c715435f Update the MHTPParams.__repr__ function (displaying all attributes).
3645ab9d3 Fix C++ mex/tests occurred because of function signature chnage since new MHTP.
f772b58b0 Add matfaust.fact.hierarchical_mhtp (mex, matlab function and API doc).
dd50067ac Update Palm4MSA (2016 C++ impl.): adding functions get_RE() (relative error), and print_state().
650e45b3c Add matfaust.fact.palm4msa_mhtp (with underlying mex code and API doc).
606b2d823 Add matfaust.factparams.MHTPParams.
a5704842f Add pyfaust.fact.hierarchical_mhtp with its pyx and C++ code + Python doc.
bf96b5bf8 Document the MHTP C++ module and refactor some palm4msa2020/mhtp functions: perform_MHTP, update_fact, compute_n_apply_grad (limiting the number of arguments or reordering them), hide use_MHTP argument in pyfaust.factparams.
56394136d Add pyfaust.fact.palm4msa_mhtp (as experimental code), document this function and pyfaust.factparams.MHTPParams.
53a9aa396 Update/Refactor MHTP algorithm in its own module.
7900acf54 Update MHTPParams: refactoring the ctor in .hpp (initializing all the attributes), adding a to_string member function.
85c899cf7 Enable constant_step_size and step_size attributes of MHTPParams in PALM4MSA2020 (C++ code).
1caf51166 Add a MHTPParams structure both in pyfaust and C++ core (for all the MHTP algorithm parameters).
cf8e489de Implement MHTP in C++, accessible from pyfaust.
68a393259 Implement for matfaust.poly.expm_multiply the same extension (grouping several series of coeffs -- option group_coeffs) as the one already integrated in pyfaust.poly (c5496442) which was modified here to be auto used (group_coeffs=True) when tradeoff='time' (as matfaust does).
6ce2ec4b1 Fix issue #197 (windows compilation error introduced by c5496442).
62709c51b Fix two bugs in c5496442 (pyfaust.poly.poly extension to avoid round trips between wrapper and C++ core when computing the exp action on multiple tau/coeffs in expm_multiply) and manage missing case when X is a vector.
299bda955 Refactor pip requirements list into cmake script and add auto-install commands in Windows NSIS installer.
a6bbb72f4 Extend pyfaust.poly.poly to handle a group of coeffs (n*(K+1) coeffs) in order to implement a new method for expm_multiply (computing all the coeffs for each t beforehand and then calling the C++ core to compute the action for all given t in a row).
1c327a9c0 Minor changes in matfaust/pyfaust.poly code doc (dev argument) and useless 'if branch' (in pyfaust expm_multiply).

Version 3.1.3:

d16907ee4 Add the pre-rendered version of matfaust.poly live script, update the doc links and few things in pyfaust.poly notebook.
c75d1b944 Fix Windows NSIS installer: ignore the stage of install into python environment if python wasn't found.

Version 3.1.2:

f25e49526 Add matfaust.poly.FaustPoly to uniformize the API (with pyfaust) and cleanup matfaust.Faust of matfaust.poly related methods.
edf70bd3a Update to gpu_mod@9936424.
28c5bd586 Add a FAQ entry about matlab path update issue.
9b306b6ca Fix setup_FAUST.m in the case of Windows, visual studio when building with Release option put the mex files in mex/Release instead of mex, which made the addpath command fail.
961cc7fd8 Update GPUModHandler::get_singleton: switch silent argument default value from false to true to avoid flooding matlab with warning messages.
99aaaa041 Minor corrections in code doc (python and c++).

Version 3.1.1:

512d57748 Add matfaust.poly livescript and update pyfaust.poly jupyter notebook.

Version 3.1.0:

c5de45d5f Display the poly jupyter notebook in the doxydoc main page and integrate it the notebook zip archive.
51c997e84 Update the pyfaust.poly jupyter notebook and add the HTML pre-renredered version.
1fc4ddf22 Remove the experimental status of matfaust/pyfaust.poly module (except for invm_multiply that is still a wip regarding the performance / numpy-scipy).
9a4571749 Add pyfaust.poly jupyter notebook.

Version 3.0.19:

1285bb3db Mark poly modules as beta in pyfaust/matfaust doc.
bb4e6e03f Limit calls to astype in check_matrix/pyx code (to decrease the number of copies).
7bf2bee26 update setup.py by being explicit on the minimum numpy version needed to avoid ABI incompatibilities.
a1f56309e Add tradeoff argument to expm_multiply and invm_multiply both in matfaust and pyfaust.
abd3aed05 Optimize pyfaust expm_multiply by using the new out argument of poly.
b106c9861 Optimize pyfaust/matfaust.poly.expm_multiply: avoid recomputing T*B for each tau.
170616425 Refactor vector and matrix overloads TransformHelper::multiplyPoly_cpu(): now vector version depends on matrix versions while before matrix version depended on vector version (using OpenMP).
6c4a344ee Enable GPU in matfaust.poly/invm_multiply/expm_multiply and pyfaust.poly.invm_multiply/expm_multiply.
f8f26beef Enable matfaust.basis native GPU impl (argument dev).
c07ea42f8 Fix issue #196: Windows VS error on Faust::MatDense<FPP,GPU2>::MatDense multiple conversions of instantiations in Faust::TransformHelperPoly (error C2666)
c260d23fc Fix issue #193 (Windows VS bug on OMP TransformHelperPoly).
0d9145334 Fix issue #195 and factorize the two overloads of TransformHelperPoly::multiplyPoly_gpu.
f2503ac44 Implement GPU version of multiplyPoly -- F*X and linear combination at the same time with X a vector or a matrix.
abb3686c9 Update Faust::poly C++ function to be able to compute the polynomial linear combination on GPU and enable it in pyfaust.poly.poly.
bf7cf6c1d Implement the GPU version of the TransformHelperPoly Faust-matrix polynomial specialized multiplication.
324fa67f9 Implement MatSparse<GPU2>::multiply(MatDense<GPU2>), Matdense<GPU2>::multiplyLeft(MatSparse<GPU2>).
196d07079 Enable the C++ GPU implementation of the FaustPoly multiplication into the pyfaust.poly module (basis function).
0c034cbe8 Implement the TransformHelperPoly Faust-vector polynomial specialized multiplication on GPU.
cd61c0db0 Implement c++ Vect<FPP, GPU2>::multiplyLeft(MatSparse<FPP, GPU2>).
f8e8eb29d Update to gpu_mod@8260c08.
99a7a1523 Add matfaust.poly.expm_multiply with its documentation and other related minor changes.
c8881458a Add matfaust.poly.invm_multiply.
e5f22b9f3 Add the wrapper to multiplyPoly into matfaust.poly as done in 4fb300c1 for pyfaust.
27e97ad9f Update/optimize TransformHelperPoly and pyfaust.poly.poly wrapper to allow computing the multiplication F*X and the polynomial linear combination at the same time (use it in expm_multiply and invm_multiply).
407e2d831 Overload of slice in TransformHelperPoly.
56dbf3ea0 Optimize TransformHelperPoly::multiply(MatSparse) (Faust factor not created to compute the multiplication).
d8bdcab19 Optimize TransformHelperPoly functions: get_total_nnz, get_fact_nnz, get_fact_dim, to_string, getNbBytes (by avoiding the creation of factors calculating info. based on the known structure of the factors).
1758a35ba Refactor MatGeneric/MatDense/MatDiag/MatSparse to_string function with new static function and get_scalar_type_str.
2a5720b6e Fix a minor bug in Faust::TransformHelperPoly: in case of NOT lazy instantiation the is_fact_created vector wasn't initialized before use.
b7af8bf8d Switch to a simpler (eigen standard) but maybe less efficient version of MatSparse::vstack.
1fcbc9c5a Modify pyfaust.poly.expm_multiply to pass directly the time points as a list instead of a np.linspace style arguments.
df1684630 Minor fixes in pyfaust.poly.expm_multiply (among what: default time point is a negative value).
089101c46 Add Faust::TransformHelper::power_iteration and a pyx wrapper to it (not yet added in pyfaust itself).
d6234a702 Refactor to make TransformHelperPoly::next() and T0 arbitrary polynomial matrix consistent to lazy instantiation of factors.
98d73d276 Override the most part of the TransformHelper(Gen) member functions in TransformHelperPoly to implement a proper lazy instantiation.
79c442681 Refactor TransformHelperPoly::basisChebyshev to enable lazy instantiation and override getNbRow/Col() to return the proper size without instantiating the factors 0 and n-1 (it allows TransformHelperPoly::multiply to work without factor instantiation but it remains to override all factor-dependent member functions).
2f561b624 Remove use of deleted light/partial GPU impl. in 2020 PALM4MSA and hierarchical algorithms.
977d2a828 Add pyfaust.poly.invm_multiply and its doc.
9cf8cbf73 Add pyfaust.poly.expm_multiply and its doc.
4df876746 Minor fix of pyfaust.poly pyx (wrapper) code in case that basisX.ndim == 1.

Version 3.0.18:

610de11b5 Remove the light GPU implementation (aka FaustGPU) as it was an experimental implementation based on gpu_mod (while GPU2 is the full implementation).
b2a42ce55 Minor changes and fix in pyfaust.poly and C++ backend.
b0cbfddab Fix tocpu bug in TransformHelper<FPP,GPU2>::multiply(const FPP* cpu_x_buf, int x_ncols, FPP* cpu_out_buf, ..) and remove the workaround in pyfaust wrapper FaustCoreCpp.hpp

Version 3.0.17:

7953d7414 Fix windows compiling issue #191 (mexPoly.cpp.in).
6deaf83e4 Fix windows compiling issue #190.
31c5ebbd4 Fix GPU2 missing multiply signature (issue #189).
8d5269a89 Optimize C++ Faust*Dense-matrix especially for pyfaust.
6abda28bb Optimize TransformHelperPoly<FPP>::multiply(MatDense) avoiding 3 copies per iteration/column (using Eigen Map -- views)
c607c0c47 Hide pyfaust.poly.chebyshev (to do the same as matfaust), simplify the use of generator (return a Faust which is itself a generator instead of a tuple with a Faust and a generator).
03e2c9c88 Add matfaust.poly.next with its mex code (wrapper to Faust::TransformHelperPoly::next()).
823f63ab0 Handle T0 optional argument in matfaust.poly.basis, document it with an example added to pyfaust.poly.basis too. Fix a T0 size bug in pyfaust.poly.chebyshev.
453c4099e Add matfaust.poly.poly wrapper, update basis wrapper and add documentation for the both of them.
35960f497 Update pyfaust.poly doc, fix a minor bug in pyfaust.poly.basis (occurring when basis is a str) and verify that L is square.
225dcc81d Add chebyshevBasis matlab mex wrapper.
b5800ab3b Update MatSparse copy functions.
472d46aad Update TransformHelperPoly functions.
1e9280204 Implement T0 arg for native impl. of pyfaust.poly.Chebyshev.
db62c2432 Take into account pyfaust.poly in the doc filtering process (symbols excluded, namespace filtering).
ea64fcb12 Update pyfaust.poly doc, add examples and fix minor details in API/code.
a0c91a4e7 Minor change in Faust::TransformHelperPoly::polyFaust (variable name).
6f27de7b3 Use memcpy directly instead of eigen in MatSparse copy ctor and assignment operator= overload.
c58b40856 Update basisChebyshev and co. (don't skip the degree-0 polynomial anymore and modify all related functions in consequence).

Version 3.0.16:

3e79d1b20 Modify ci job test for windows whl pyfaust pkg (no need to specify the version when the virtual env. is already loaded).
4c8ff0612 Optimize again TransformHelperPoly::multiply() (by vector) and basisChebyshev.
a6b6ad97d Add MatSparse::conservativeResize() and fix a bug in vstack.
23bfd5a8e Fix a bug introduced by 0ac2f190 which happens when X (in F*X) has more than one column.
18fcab409 Update to gpu_mod@2097f63.
dfa55be89 Remove old GPU implementation (replaced by external gpu_mod project/shared lib and GPU2 binding implementation).
a6bd57e14 Implement generator mechanism for Faust::TransformHelperPoly and add it in the pyfaust wrapper.
48adedd9d Optimize Faust::TransformHelperPoly::poly through a zero copy approach using Eigen Maps (view) instead of Faust::Vect and Faust::MatDense.
b815e8d04 Update GPU2 C++ backend (Faust::TransformHelper and Vect) to conform to the new way of multiplying a Faust by a vector(implemented for CPU in previous commits).
72880940d Optimize Faust::TransformeHelperPoly::multiply(Vect) (F@x in python).
32d965ae0 Optimize Faust::Transform*::multiply(MatDense), multiply(Vect)
b4c6ee08a Add move and assignment operator= overload, Vect::operator=.
ad8d2fe61 Update pyfaust.poly with new wrappers of impls of C++ poly, uniformize all impls in single functions.
89024747b Update Faust::TransformHelperPoly.
c85f25691 Override C++ Faust mul by vector in the special case of the Chebyshev polynomial basis (class TransformHelperPoly).
d54f8bd62 Fix errors in Faust::Vect::operator-= functions (arg. vect or scalar).
a4d0843fb Add wrapper pyfaust.poly.basis_cpp and C++ implementation behind (for chebyshev).
cee71204e Fix memory bugs in MatSparse::vstack/hstack and add print_* functions.
0d8efda1d Minor corrections in using_gpu_matfaust/pyfaust tutorials.
e6436f664 Add MatSparse::vstack and MatSparse::hstack along with their unit tests.

Version 3.0.15:

4a4e7c623 Modify pyfaust.poly to be able to handle a L indifferently whether it's a csr_matrix or a Faust.
bd9d5dde5 Update pyfaust.poly function signatures and remove special case ChebyshevPhi.
2483283f4 Update pyfaust/matfaust GPU notebooks since the GPU performance is in fact better than indicated.

Version 3.0.14:

ef0d0902b Fix pyfaust.Faust.clone(), cpu to gpu conversion wasn't working.
46c4c661a Update macOS jobs (no need of the password anymore) and a note in macos setup script.
db173e4f9 Update things about C++ proxs.
619453431 Update to gpu_mod@8843946.
3252abb1b Update PALM4MSA/hierachical 2020 C++ impl.:
ae0b908e3 Update pure gpu splin, spcol, sp proxs tests (prog. arguments and output).
51b659dc5 Minor fix on MatSparse ctor: if nnz==0 can't build any triplet of row_id, col_id, value.
09c59b20e Update MacOS X VM setup script.
ae1d98549 Fix issue #185, minor error on prox_sp* GPU decls.
9d73e9ca6 Add prox_spcol and prox_splin pure GPU implementations along with a test/benchmark.
b242af8b7 Update to gpu_mod@f94b91b.
a3672b36c Add prox_sp GPU2 implementation with gpu_mod@422d2d7 and a test/benchmark (test_prox_sp_gpu).
49113b78f Update gpu_mod@70d319e.
a14d52f50 Update to gpu_mod@430e43c.
45ed33739 Add a new version of prox_sp that authorizes dynamically to output a MatSparse or MatDense image.
d754acb8e Secure input argument type in Cpu TransformHelper::update.
bee683e77 Add two new ctors to MatSparse.
c1e746420 Small fix in cmake script for experimental code filtering.
6776809eb Chebyshev polynomials as Fausts added a experimental module in pyfaust.

Version 3.0.13:


Version 3.0.13rc1:

e4be0be32 Enable py3.9 for win pyfaust pip packages(build and test for releases).
3f6eaac66 Inform macOS users when libomp is not found at pyfaust loading and explain how to install.

Version 3.0.12:

9741e7b5d Enable linux python 3.9 package pub to pypi in pypy_pub gitlab ci job.
e95bbbe77 Add new Q/A in the FAQ (about demos and tests).
81bf86913 Minor fix in pyfaust runtimecmp demo.
558574637 Update matfaust.quickstart.factorize_matrix demo to enhance the Faust speedup.
ce4a867b0 Fix matfaust.rand misuses in documentation examples and install guide (due to change in API).
ddd72bf26 Few changes in projectors (about splincol/skperm) and gpu nobtebooks.

Version 3.0.11:

5f0ebb058 Enable macos x python 3.9 package to pypi in pypy_pub gitlab ci job.

Version 3.0.10:

fa578bcd3 Double the jobs for macos x pyfaust pip package (build and test) to support two versions of python (3.7 and 3.9).

Version 3.0.9:

00afcb095 Publish and update matfaust GPU wrapper tutorial.

Version 3.0.8:

ac5034922 Minor change: update pypi project description formatting.
7b6c6af93 Fix hadamard demo that was in experimental mode and using bits of deprecated/outdated pyfaust API.
7c6cb3607 Add a tutorial to use GPU with matfaust (equivalent to the pyfaust jupyter notebook which was updated by the way).
4221793ab Add cpu <-> gpu support to matfaust.Faust.clone.
26a9fc51e Add matfaust.Faust.device function.

Version 3.0.7:

3692de496 Add pyfaust.tests module (old tests pyfaust_simple_test.py) and integrate it in the release pip package tests of gitlab ci.
fee124aaa Update pyfaust tests.
d08a1c442 Update pyfaust wrapper (details below).
abc01d1a0 Update to gpu_mod@66fe38a.

Version 3.0.6:

add893fc9 Add a simpler set of unit tests for pyfaust (easier to apply to GPU Fausts).

Version 3.0.5:

1be0d9a57 Fix a bug in GPU2 MatSparse tocpu() and secure GPU2 Transform tocpu().
de6d8c431 rename mex faust_prox.h* files to avoid confusion with C++ faust.prox.h*.
1ddd39731 Add GPU2 wrapper in matfaust for Faust functions: wht, dft, eye, isreal. Simplify mex generation (only one source file for both CPU and GPU2 wrappers).
57333754a Add GPU2 wrapper in matfaust for Faust functions: mul_faust, vertcat, horzcat, subsref, subsref_byvec.
ebfd87902 Add GPU2 wrapper in matfaust for Faust functions: nnz, optimize_time, optimize_storage, optimize, multiply.
3ab0cd33b Add matfaust.Faust.transpose/ctranspose/conj GPU2 wrappers.
63ad747f1 Add matfaust.Faust.save GPU2 wrapper.
09fec4fb0 Minor change: refactoring isConjugate in parent class TransformHelperGen.
9043c95a9 Add GPU2 wrapper in matfaust for functions: factors, numfactors, nbytes, disp, full, norm, normalize, size.
b02cbc77b Implement (partially) matfaust.Faust wrapper to GPU2 (ctor, dtor and disp).
fbe232a28 Minor fix Faust::TransformHelper ctor.
906aaa58b Implement set member function in CPU and GPU2 Faust::MatDense and GPU2 Faust::MatSparse (already defined for CPU's).
6766b1ff5 Fix deprecated use of matfaust.rand in FaustTest (due to update by 257f6643).
c779ccfe5 Refactor mexFaust new cmd into separate module new_faust.h(pp) and optimize the Faust creation (one useless copy per factor removed).
96a44290d Add matfaust wrapper for hieararchical factorization (2020 backend, tested on a CBP's GPU).
6a3fef3bd Finish PALM4MSA 2020 GPU2 wrapper for matfaust (tested on a CBP's GPU).
9d1bb8f95 Handle use_csr and packing_RL parameters in matfaust.fact.palm4msa (as it is already in hiearchical) for the 2020 impl.
c2784a750 Secure/Fix non-initialized pointers in GPUModHandler.

Version 3.0.4:

8fe207612 Update to gpu_mod@01a3977 to fix issue #181.
8e88e45e9 Adjust C++ test_transform_gpu_mod to test complex<double> too (in addition to double).

Version 3.0.3:

a29f7be4f Update pyfaust jupyter notebook about GPU (complex support).
37d4d55d8 Update the project README (license and other details).
4813a8169 Add support of GPU complex Faust in pyfaust.
fed57eb33 Adjust GPU2 Faust::MatDense, Faust::MatSparse and Faust::Vect to support complex scalars (updating to gpu_mod@3920c36).

Version 3.0.2:

646421113 Update to gpu_mod@ed251cf (1.2.6).

Version 3.0.1:

1a61db8e5 Automatize PYPI release on push-tag (only if whl pkg tests succeeded).
ec13288a8 Minor update in doc.

Version 3.0.0:

dd6b10628 Update pyfaust install guide (now that pyfaust is hosted on pypi).

Version 2.10.45:

6b898d287 Update GPU notebook and pyfaust factorization wrappers.

Version 2.10.44:

153e91c36 Update pyfaust.demo:
e7fb4cbc8 Fix forgotten conflict to solve in license.txt.

Version 2.10.43:

c7178aa1d Fix a bug on GPU2 imple. of PALM4MSA 2020 (after a538c8) and refactor the functions defined to compute factor gradient (useless arguments removed).

Version 2.10.42:

295fe88ea Update GPU pyfaust notebook (with Rémi's annotations).
59c7aba1b Minor fix in matfaust.Faust.clone().

Version 2.10.41:

9e55c46c3 Add matlab live scripts about factorization algorithms + update corresponding pyfaust notebook.

Version 2.10.39:

9406fe212 Temporarily re-establish the doc of Constraint* classes.

Version 2.10.37:


Version 2.10.38:

cd5c4084e Fill other info fields to publish on pypi repo. and update license to BSD 2.0.

Version 2.10.36:

089c7143c Update and re-publish the jupyter notebook about factorization but removing the part about PALM4MSA based GFT algo.

Version 2.10.34:


Version 2.10.35:

885b31bb2 Link livescripts about projectors in doxygen doc main page.

Version 2.10.33:

903bb975b Add matfaust projectors livescripts.
a4a4a82ce Minor fix in matfaust normcol/normlin output.

Version 2.10.32:

ff5b009d5 Missing matfaust files for projectors added in a65434aa.

Version 2.10.31:

3e3fc0988 Add livescript Use_of_Faust_objects_in_algorithms, integrate it in doc and zip archive.
0112a0b37 Update livescript to fill section 1.3 and set internal links (of toc).
3ec416123 Fix matfaust.Faust.imagesc.

Version 2.10.30:

88a597e3d Minor fixes in omp.m.
3ebe1b21f Minor Fixes in faust.nsi.
2b093554d Minor change in matfaust.Faust.

Version 2.10.29:

2a138c55c Minor correction in pyfaust install in venv guide.
7c7d58be6 Add a pip wheel install test for the windows version.

Version 2.10.28:

12c6930a3 Add a gitlab ci test job of pip wheel release package for linux (refactoring in a parent job the common part shared with macos equiv. job).
cfd5a5275 Update setup_macosx_for_faust.sh (jpeg dependency).

Version 2.10.27:

33b7923aa Add a gitlab ci test job of pip wheel release package for macOS (installing and executing a small pyfaust code).

Version 2.10.26:

0ebd7e2e2 Add matlab and python basic tests of resp. matfaust and pyfaust after macos pkg installation in the test_macos_pkg_release gitlab ci job.

Version 2.10.25:

2e01e8b70 Add a macos pkg test job.
1abcdd1c6 Fix macos libomp restoration in .gitlab-ci.yml.
b3c022e02 Delete all modules, uses and any references about OpenBLAS along with its packages embedded in the project.
6e42f0d24 Fix issue #177.
e3eb227fd Update MEG factorization test to compare 2016 and 2020 implementations.

Version 2.10.233:

cd73cbff3 Add/enable an alternative method (Faust::compute_n_apply_grad1()) to compute-apply the factor gradient in C++ PALM4MSA 2020 impl.
39cfb7dd8 Update TransformHelper*::pack_factors() and get_product() functions with a new argument to use a matrix chain product method from faust_prod_opt module (it is useful to optimize the PALM4MSA 2020 impl.).

Version 2.10.231:

7c1ae459f Add timers (enabled in verbose mode) for spectral norms and factor gradient computation in PALM4MSA 2016 C++ impl.
b885f461c Fix minor bug/typo in OpenBLAS trans* parameter.
2407659a8 Minor change: adding a note about matlab install and conf for gitlab-runner.

Version 2.10.24:

b6f4ca433 Add FAµST data download log output in macOS post-install script.

Version 2.10.23:

a3ca877dc Build in two times matlab and python wrappers because of different OpenMP libraries to use.

Version 2.10.22:

279b0cc5a Fix data URL (filename must be excluded).

Version 2.10.20:


Version 2.10.21:

ca30f89cb Update macos pkg matlab postinstall script: handle the case when matlab path is a symlink.

Version 2.10.18:


Version 2.10.19:

e00901d09 Add "Faust manipulation" matlab livescript and update equivalent pyfaust notebook, with link in doxygen doc and into zip archive.
c9fc361ba Minor change in matfaust.Faust.cat (removing output of local variables).
54a37faad Set macOS pkg post-install scripts more verbose.

Version 2.10.17:

8a151848c Add missing matfaust.Faust.nbytes function.
3683e14bd Minor fix in matfaust doc, matfaust.isFaust was missing in doxygen doc.

Version 2.10.16:

ad61cb2c5 Minorly update macos post-install script (print MATLAB_ variables).
c0be10386 Implement Faust::TransformHelper<FPP,GPU2> iterative concatenation functions and refactor CPU and GPU2 cat functions in separate files/modules.

Version 2.10.15:

b35f847ea Add a notebook to introduce GPU pyfaust API and integrate it in the doxygen doc and notebook zip archive.
b65bff62a Optimize gitlab pipeline by executing the ctest pipeline only if the C++ tests or the C++ library code changed.
2ea62d1c6 Using gitlab DAG to reduce pipeline times.

Version 2.10.14:

5588d2b6f Udpate 'Faust creation' jupyter notebook.
a312f7203 Add matfaust first livescript (Faust creation), update the doxygen website markdown to publish it and the cmake script to make the zip archive (as it is already for jupyter notebooks).

Version 2.10.13:

199f11c96 Change the matfaust.rand() prototype to be consistent with pyfaust.rand (key-value pair scheme for optional arguments.

Version 2.10.12:

53d53b567 Add a script to configure ci.inria.fr Mac OS X instances for FAµST building, testing, package generation.
0d63723f5 Remove pre-ADT ci test scripts (not used anymore).

Version 2.10.11:

4f8dc3337 Add dev argument to experimental 'pure' python hierarchical_py/palm4msa_py to possibily use gpu wrapper (not tested).
0bff26ba7 Make possible to use SPLINCOL or SKPERM in parameter structure pyfaust.factparams.ParamsHierarchicalSquareMat.
2bb1cc9e6 Fix mul by lambda on Faust returned by hierarchical2020_gpu2 wrapper (the bug came from update 710dab55).
0cda57869 Fix variable length arrays on stack by using arrays on heap (issue #173)
a3fe9b6a9 Disable python2 (option NOPY2 to ON) by default in cmake config.

Version 2.10.10:

ce290582b Minor change in pyfaust GPU documentation.

Version 2.10.9:

f41a81484 Auto-install gpu_mod library on gitlab-runner home after building (continuation of 2bb6295a).

Version 2.10.8:

37532c1bd Restrain gitlab-pages job execution to 'pages' tagged gitlab-runner.
a19e7442f Update to gpu_mod@c656d08 to fix issue #172 (windows VS14 linking error).
d8cea0291 Add a pyfaust wrapper function to check if gpu_mod is loaded properly and block dev='gpu*' argument use (exception) if not.
82539bce5 remove pyfaust.Faust._add_nonopt (only here for benchmarking).
71b0f2abd Optimize pyfaust.__add__ (all the arguments are added with the Faust in almost one C++ call instead of repeating the concatenation/addition for each one).

Version 2.10.7:

752cb38db Fix ignored 'silent' option in gpu_mod loading and update to gpu_mod@835083e (fixing a loading bug when cuda is not available).
3a45a9331 Modify GPU2 randFaust impl. as it was for Cpu impl. by 7b6287f2.
9b157d9b3 Optimize pyfaust concatenate (replacing recursive meth. by iterative meth to reduce the number of copies).
745e2c920 Change pyfaust/matfaust.rand() definition to be more alike to numpy and matlab rand functions.
bfecd50ce Warn user that matfaust.rand can hide matlab rand builtin.

Version 2.10.6:

0de3f86e8 Fix pyfaust.concatenate args.
e9526e0e7 Fix __array_ufunc__ to handle 'subtract' passing the args to Faust.__rsub__.

Version 2.10.4:

f4b7a7da1 Fix __array_ufunc__ to handle 'add' passing the args to Faust.__radd__.

Version 2.10.3:

a3a458566 Optimize gpu_mod use: don't compile the lib if already installed on the system.
f6e5b6897 Optimize cuMatArray mul by scalar for GPU2 -- smallest factor copied (issue #159).

Version 2.10.2:

d521ca101 Document pyfaust.Faust.astype and __str__.
b030a9184 Minor changes.
b8678008e Document pyfaust.Faust.swap_rows and swap_cols, change the default value of permutation argument to True.
56e36d099 Secure, fix minorly and document pyfaust.Faust.average.
80159a82b Fix pyfaust.Faust.sum, secure its args and document it.

Version 2.10.1:

91d0dcaf2 Filter pyfaust symbols from the doc.
ec714c257 Fix issue #165, python3 must be used by rpmbuild (not python2).
af944b0d1 Fix issue #164 (Visual Studio error C2131).
9fcb7472e Fix issue #163 (matlab deprecated API error for complex matrices).
193e90200 Fix #162 (missing getNBytes() functions in GPU2 backend.)
8728ba121 fix index out of bound error in min size factor research of Faust::Transform ctor.
00c441eb6 Add __array_ufunc__ to handle ufuncs functions.
7d696ee40 Update pyfaust.Faust ops (indexing, elt-wise mul., addition).
e4e5cee64 Fix minor bug introduced by f4fd45f0 in Faust::Transform ctor.
d575b3069 Add inplace pyfaust.Faust ops: +=, -=, *=, @=.
ecccf93db Add pyfaust.Faust inplace /= (by scalar), copy (alias to clone) and fix __getitem__ to be able to use np.ndarray as indices (in addition to list).
bf4c7f6dc Optimize Faust by scalar multiplication by copying-multiplying the smallest factor (wrt memory size).
b31af53f9 Add MatGeneric<FPP,Cpu>::getNBytes() and subclass impls + refactor TransformHelperGen::optimize_storage.
5721be1c7 Finish swap_rows/cols (with transpose handling) in Faust::TransformHelper and bind it into the wrapper.
d4d2d322d Optimize Faust.__add__ vector broadcasting over a Faust (use one mul. instead of multiple concatenation).
5e8270beb Add TransformHelper swap member function.
8161b1ab3 Update pyfaust Faust.__add__ to handle vector broadcasting from array (ndim==1) or Faust (whose one dim. size is 1), and add issparse.
5f36e6f2c Add pyfaust.Faust methods: average, asarray and astype.

Version 2.10.0:

9af7ad251 Merge windows and unixes extension compilation code in setup.py.in (issue #91).
978827a7c Refactor char2gm_Op into faust_gpu_mod_utils module.
e90645075 Try to fix issue #158 (windows, VS).
2bb51ccd4 Fix pyfaust.Faust functions that use FaustCoreGPU pyx type unconditionally (it makes the wrapper to crash if not compiled with GPU support) and remove an erroneous use of FaustCoreGPU type in pure CPU pyx FaustCore class (in multiply function).
ee48d3609 Add optimize_memory to the GPU pyfaust wrapper and update many dependent C++ functions behind (details below).
560f8cf9d Update to gpu_mod@7920c9a.
cc9b7879d Add support of the Faust-by-csr_matrix mul. to GPU pyfaust.
6e8d628e3 Add normalize() support to GPU pyfaust.Faust.
c008b3a34 Fix GPU2 TransformHelper vertcat/horzcat.
df5e23779 Fix GPU2 TransformHelper mul. by a scalar (a Faust is immutable, a new Faust is returned when multiplying).
b415e91bd Fix add of GPU Fausts.
b34c122df Fix support of CSR input matrices GPU pyfaust.Faust.
5738ec975 Add GPU support for Faust.save() in pyfaust wrapper.
d8b26d4c3 Add GPU Faust fancy idx support in pyfaust wrapper.
8ed1dfa44 Add GPU Faust slice support in pyfaust wrapper.
832a75a32 Refactor and make more consistent/reusable the state copy of TransformHelper<FPP,DEV> (transpose, conjugate, slice, mul. mode).
3fe98bd8c Add pyfaust.Faust.device property and cpp impl.
7e82b0ba7 Add GPU pyfaust.Faust wrappers for concatenate, vstack, hstack, clone.
970b840e7 Update to gpu_mod@d800359.
805db8cb3 Add GPU pyfaust.Faust wrappers for transpose, conjugate, pruneout.
46ce49d90 Implement GPU pyfaust.Faust.factors(), left(), right() functions and all their dependent operations in C++ core.
fe5b8e486 Minor fix: don't build mexPALM4MSA2020_gpu2 when USE_GPU_MOD is OFF.
a99be4727 Separate FaustCore and FaustCoreGPU in two pyx files, the same for corresponding pxd files. New pyfaust GPU2 wrapper functions: scalar mul, norm, nnz_sum.
335ffb4eb Update palm4msa_2020.cpp.in to disable GPU2 code when CMake variable USE_GPU_MOD is OFF.
2f460b41d Add mexPALM4MSA2020_gpu2.m.in (forgotten in a previous commit).
f37b9cb54 Add GPU pyfaust.Faust functions toarray(), Faust by Faust mul, nbytes.
9e21061f7 Implement GPU hadamardFaust, eyeFaust and add a device argument to pyfaust.eye,wht(dev=cpu|gpu).
66ab44af5 Implement GPU randFaust and add a device argument to pyfaust.rand(dev=cpu|gpu).
cd19248fb Start the GPU Faust class python wrapper with the Faust constructor (from numpy arrays), display function and multiply by a numpy aray.
b5ff23efc Prepare TransformHelper<FPP,GPU2> to the python wrapper (functions are defined but left to define later).
d237b12dd Add TransformHelper<FPP,GPU2>::push_back(const MatGeneric<FPP,Cpu>* M, const bool optimizedCopy/*=false* /, const int32_t dev_id/*=-1*/, const void* stream/*=nullptr*/) (copy to GPU then push).
1855ea8f6 Add optional parameter FDevice DEV to FaustCore as a step toward a GPU Faust class pyfaust wrapper.
5a07fdc62 Allow to use GPU2 impl. of palm4msa2020 in test palm4msa_2020.cpp.in.
a9535e3bc Add the matfaust wrapper to palm4msa2020 with GPU2 backend.
b0e1d5073 Update matfaust.enable_gpu_mod to load the library from current directory as a fallback solution.
d555f5821 Implement the pyfaust wrapper for the GPU2 palm4msa2020 algorithm.
89659f9b3 Implement the pyfaust wrapper for the GPU2 hierarchical algorithm (2020 backend).
e55f35dc5 Add functions to Transform(Helper)<FPP,GPU2>: tocpu, save_mat_file.
2aede5ceb Add test MEG_factorization (GPU2, FaustGPU and CPU).
432e773cf Allow to cut the execution of hierarchical2020 past n factorizations in tests hierarchical2020Hadamard and hierarchical2020Hadamard_gpu2.
91d4089da Fix is_fact_side_left==true in hierarchical 2020 and complete Params output (use_csr and packing_RL options).
2fb6ce0ae Fix memory leak in TransformHelper<FPP,GPU2>::pack_factors and useless copies in TransformHelper<FPP,Cpu>::pack_factors.

Version 2.9.3:

7744363dd Minor changes.
a542cdb15 Fix Visual Studio errors in GPU2.
393c6ba29 Update to gpu_mod@f1e6c96.
34e1cbfa3 Minor fixes in Faust::Vect<FPP,GPU2>.
5837e2743 Update to gpu_mod@2178bf0.
6dbccfaf2 Fix issue #154 (macOS linking error).
8fdbe781f Update to gpu_mod@af1104f.
f7cdf4bc6 Disable python2 in pkg_macos_release/rev ci jobs.
5dd657235 Allow pyfaust hierarchical wrapper to use skperm prox.
2f727ad5c Allow to use SKPERM or SPLINCOL in GPU2 test of hierarchical2020.
fc9c838b5 Allow using SKPERM prox in PALM4MSA by updating faust_ConstraintGeneric.* and faust_ConstraintType.h.
5ca7ee9c0 Minor changes.
cd000c8ff Add copy operator= in Faust::TransformHelper<FPP,GPU2>.
c07403f00 Fix a memory leak (affecting both GPU2 and Cpu impls) into palm4msa 2020.
0e58cc5f4 Fix misc issues about USE_GPU_MOD and BUILD_MULTITHREAD options for cpp tests and matlab wrapper.
cd82243cd Minor change about pack_factors in TransformHelper (GPU2 and Cpu) -- calling parent method.
ebd25f2b0 Fix documentation example code of matfaust.Faust.cat that induced a rendering bug in horzcat documentation.
ef1b5065d Minor fix in test_matsparse_gpu_mod.cpp.in (free memory in test_clone()).
9bae8277b Get use_csr option from environment in hierarchical2020Hadamard_gpu2.cpp.in.
1ac99d1e2 Minor update (for test purposes) of hierarchical2020_gpu2.cpp.in (updating to gpu_mod@dbf4133.
1be7f08c8 Free clone GPU matrix in test_clone() of MatDense<FPP,GPU2>.
1158ed0c5 Free explicitely gpu factors in test of Transform<FPP,GPU2> (it makes easier to diagnose GPU memory leaks).
6b46062e8 Copy GPU factors to avoid double-free corruption in test of TransformHelper<FPP,GPU2>.
fa5841449 Refactor minorly Faust::Transform (CPU) updateNonZeros (alias) and clear/operator=.
42e8ffa78 Add no_zero argument (default to true) in MatSparse<FPP,GPU2> ctor to allow not allocating defaultly a zero buffer (nrows+1 size) and avoids possible GPU memory leaks.
136423fce Minor fix in TransformHelper<FPP,GPU2>::pop_front.
a67daa58a Minor change: add getNbRow/getNbCol() in TransformHelper<FPP,GPU2>.
4e4e61bfe Manage GPU memory references with RefManager in Transform<FPP,GPU2>.
327322f4f New test for GPU2: misc/test/src/C++/hierarchical2020Hadamard_gpu2.
b8977c5c1 Update TransformHelperGen hierarchy for GPU2 (pack_factors, erase, insert functions).
28e8e75d3 Update GPU2 MatDense and MatSparse.
1a9cecea1 Cleanup headers of useless Faust:: prefixes and remove declaration of types (MatDense etc.) in default namespace.
bc3871680 Fix Transform<FPP,GPU2> is_fact_sparse/dense (copy is useless) and iterator::operator++ (recursive infinite call).
1e3a3b275 │Fix a bug in MatDense<FPP,GPU2>::tocpu and a memory leak in copy operator=, set constness of norm functions.
630795136 Add faust_prox_gpu.h/hpp (GPU2 light impl. -- using CPU prox) and include them in Constraint* files.
556ece737 Fix include directories for faust_linear_operator target (needing GPU_MOD).
46613a51d Update FAuST external data archive link (moving from gforge to gitlab).
6aaf25aab New test for hierarchical2020 with GPU2 backend/types instantiation.
b42c12dd8 Remove template type specialization to Cpu, keep FDevice DEVICE to allow both GPU2 and Cpu instantiations of palm4msa2020 and hierarchical2020.
124d451aa Add in MatDense<FPP,GPU2> trace() and copy ctor.
caae9a279 Update TransformHelperGen hierarchy and particularly TransformHelper<FPP,GPU2> (new methods).
042dcd6c5 New TransformHelper<FPP,GPU2> class and misc update in other GPU2 classes.
59467cfe0 Fix issue #153 (matlab wrapper build with gpu_mod).
f901fddc0 Update to gpu_mod@1fd7b2e.
d6927d4b0 Fix cpp files erroneously added to build when USE_GPU_MOD is OFF.
2c2864244 Add new class Vect<FPP,GPU2> that covers old Vect<FPP,Gpu> features, MatDense<FPP,GPU2> multiplication by a Vect<FPP,GPU2> (with its test).
93f387494 Add Transform<FPP,GPU2> functions and tests / MatGeneric<FPP,GPU2> methods.
4c4f0cfd4 Add class Transform<FPP,GPU2> (not fully impl.) with unit tests, update MatGeneric<FPP,GPU2> hierarchy.
765bc77e6 Add MatGeneric<FPP,GPU2> abstract parent class for MatSparse/Dense<FPP,GPU2> and implement getNbRow/Col() in child classes.
ec4c4f4fd Minor fix: remove old TODO about norm.
cfcc57ee1 Add to_string() and Display() methods to MatSparse<FPP,GPU2> and MatDense<FPP,GPU2> methods.
1a3996ebc Update/fix C++ and python wrappers to follow recent updates with gpu_mod interfaces (faust_gpu_mod_utils module).
44bf249a9 Add cuda current device set/switch/get, counting devices capabilities (faust_cuda_device module), update tests and MatSparse/Dense<FPP,GPU2>.
ec0714f22 Add GPUModHandler within the new module faust_gpu_mod_utils.h/cpp as the placeholder to gpu_mod library functions loading and access (removing prototype equivalent old code from FaustGPU, updating to gpu_mod@e4f1060).
853db464e Add MatSparse<FPP,GPU2>::add/sub with tests.
0c3532525 Add to MatSparse<FPP, GPU2> the member functions: operator=, operator==, operator/=, operator==, operator!=, operator*= (scalar mul.), setIdentity, move and related unit tests (update to gpu_mod@3f55a2f).
90ce47e2b Update to gpu_mod@aff4369 with the new MatSparse<FPP,GPU2> and unit tests for the implemented functions (through gpu_mod).
423c45328 Update to gpu_mod@a353f78 and add gemm function for MatDense<FPP,GPU2>.
e6ce2cf0a Add MatDense<FPP,GPU2>::operator*= (alias to scalarMultiply).
902b6b20e Update to gpu_mod@f813005, handle stream and multi-GPU capability for MatDense<FPP,GPU2>.
d4ccf15d8 Update to gpu_mod@1cd2516.
98c27ca57 Add MatDense<FPP,GPU2>::operator= overloads (from CPU or GPU2 MatDense or CPU MatSparse).
98dd2a577 Update to gpu_mod@1cd2516, new functions in MatDense<FPP,GPU2>: operator+=, sub, operator-=, multiplyRight, multiplyLeft, operator*= with corresponding tests.
f769d6caa Add MatDense<FPP,GPU2>::add(MatSparse<FPP,Cpu>) and a test (update to gpu_mod@862ed4d).
2d1487c44 Update to gpu_mod@bd7eced and add functions to MatDense<FPP,GPU2>: add, abs, normL1 with tests.
dfa708151 Update to gpu_mod@d9bda3c and add functions to MatDense<FPP,GPU2>: multiply(Vect<FPP,CPU>), scalarMultiply, transpose, adjoint, conjugate, spectralNorm, norm, normalize and associated tests.
c4f42d458 Update to gpu_mod@666a08a in order to add MatDense<FPP,GPU2>::resize, setOnes, setZeros, setEyes, clone.
3376b752e Update MatDense<FPP,GPU2>::multiply(MatSparse<FPP,Cpu> freeing gpug memory and add a new signature to output in MatDense<FPP,GPU2>.
2ac9f7baa Update to gpu_mod@a242b93.
a42f4b65a Add new signature for MatDense<FPP,GPU2>::multiply and update tests.
500667b8c Add test to MatDense<FPP,GPU2>::mutliply.
cf8679a7e Implement MatDense<GPU2,FPP>::multiply(MatDense<GPU2,FPP>).
be554a035 Mention the skperm projector in notebook about projectors.
575671686 Minor change.
9e237801c Start new MatDense<FPP,GPU2> impl. using GPU_MOD (to replace later MatDense<FPP,GPU>.
700297ace Update to gpu_mod@b0c110b.
ee20fd414 Update to gpu_mod@ee6c57c.
8eb41a20d Minor change.
f1a59a91a Update to gpu_mod@8e3bbe5.
d7c79e88c Update to gpu_mod@8f667ac.
b2742855e Update pyfaust.enable_gpu_mod to hide all messages by default (issue #151).
e5f05626c Fix missing file in gpu_mod (https://gitlab.inria.fr/faustgrp/faust/-/jobs/736345).
37a657808 Update to gpu_mod@2a3eed8.
7ab39667f Update to gpu_mod@1c14462, simplify a lot how the FaustGPU spectral norm is implemented (all is done by gpu_mod) and fix issue #140 by the way.
a0fed2938 Update GPU power iteration algorithm to support complex Faust.

Version 2.9.2:

2d57ef77a Minor change in matfaust.enable_gpu_mod doc.

Version 2.9.1:

307bc48d0 Minor change.

Version 2.9.0:

708df5a35 Add support for 'pos' and 'normalized' to skperm projector and update the API documentation.
654865396 Fix nbytes computation formula in TransformHelper::optimize_storage() and getNBytes() functions.
fdff24bdc Add FaustMulMode and set_FM_mul_mode/set_Fv_mul_mode in matfaust as it was added into pyfaust.
946de29d6 Minor change.

Version 2.5.62rc31:

aca472a87 Refactor again Faust::skperm, this time in a single implementation both for double/float and complex<double/float>.
f3e1e022b Add matfaust and pyfaust unit tests for the skperm projector.
f4c2ea3fd Add the matfaust wrapper to skperm.
07561723f Refactor Faust::prox_skperm into template specializations for double and complex<double> types because the algorithm for complex is not yet implemented (it returns an error).
20023ff03 Implement SKPERM projector and add its pyfaust wrapper too.
303533891 Fix tensor transfer to device in experimental FaustTorch class.
f0138d723 Update to gpu_mod@44023b2.

Version 2.5.62rc30:

2afdbe31d Fix pyfaust_torch C++ symbols error: missing _ZN3c105ErrorC1ENS_14SourceLocationERKSs.

Version 2.5.62rc29:

381bb0d05 Update gpu_mod@4a824ad.
c0db9a9f0 Minor changes in misc/test/C++ (comments and outputs).
b21c3cabe Minor changes related to eigtj.
8b560917c Minor change.
ea647bab5 Minor changes in code doc.
244d5b728 Fix FaustGPU::pop_front, FaustGPU::power_iteration2.
950987b6d Fix 2 particular bugged cases in Faust::multiply_omp.
e384097ea Minor change.
f2c2bdd05 Minor change.
43fd166a4 Minor change: adjust pyfaust ParamsHierarchical* displaying format/content.
c66cc996b Minor change: add a warning when pyfaust hierarchical2020/palm4msa2020 are gpu enabled.

Version 2.5.62rc28:

fd7031099 Fix bug https://gitlab.inria.fr/faustgrp/faust/-/jobs/712989.
e19566d92 Make norm2_max_iter, norm2_threshold available from pyfaust.factparams.ParamsPalm4MSA as it is for ParamsHierarchical and fix bug in checking dim. size in ParamsHierarchical.is_mat_consistent().
ffba7a80d Update matfaust.factparams.* code/API doc and a few in pyfaust.factparams too.
06d39154a Remove the mingw/cython build code in CMakeLists.txt (issue #91)
38b10b947 Add a unit test for pyfaust.factparams.ParamsPalm4MSA (issue #81).
c2a291f8c Add __repr__ functions to StoppingCriterion, ParamsHierarchical/Palm4MSA, ConstraintGen and function ConstraintName.name_int2str.
d105bb5fc Add Faust::StoppingCriterion::to_string() and reformat Display() output, update faust_Params, ParamsPalm to use it.
5cdd8d805 Remove duplicated C++ unit tests (forgotten by 49f58e61).

Version 2.5.62rc26:


Version 2.5.62rc27:

09e7f79a0 Use mathjax displayer for doxygen doc latex code.

Version 2.5.62rc25:

0c0c6a63d Update post-install scripts for matlab on macOS and Linux to frame the code injected by a warning identifying clearly faust.

Version 2.5.62rc24:

06fd191b3 Embed Faust projector notebook in doxygen the documentation and also in the pyfaust notebook zip archive.
028e739a8 Minor change: document the matfaust.fact.palm4msa optional backend argument.
e39a546c3 Increase timeout of slow tests.
835c9b31f Minor change: test lambda value after computing error.
365255d01 Update nightly test jobs.

Version 2.5.62rc23:

e64048e8b Update install guide doc (especially for matlab).

Version 2.5.62rc20:


Version 2.5.62rc21:


Version 2.5.62rc22:

8e880917e Update matlab post-install scripts for linux, macos and win to rehash toolbox as a last attempt to access the startup script, otherwise send the user to the doc.

Version 2.5.62rc18:


Version 2.5.62rc19:

a8c0126d3 Fix matlab/matfaust expfiltered folder being installed instead of ignored.

Version 2.5.62rc16:


Version 2.5.62rc17:

e87c8dfbf Remove from pkg post-install scripts the matlab userpath startup.m edition to avoid redundancy.

Version 2.5.62rc15:

e489ae2b0 Update post-install scripts (win, macos, linux) to add faust data dir in matlab path and to secure further the update of th e path for matlab.

Version 2.5.62rc10:


Version 2.5.62rc11:


Version 2.5.62rc12:


Version 2.5.62rc13:


Version 2.5.62rc14:


Version 2.5.62rc9:

f7fd5c9cd Fix matfaust.version displaying variable instead of the version.

Version 2.5.62rc8:

0fd86f94e Fix matlab non-member functions inline doc issue (visible doxygen syntax).
4c378e7c7 Fix faust_TransformHelper.hpp warnings.
ba31c61ce Fix warning about deleting of C++ object whose class ctor is non-virtual.
22c5ea31b Fix -Wreorder warning (C++ ctor arguments order).
405fc1d6d Minor change: add to the readme a troubleshoot to matlab non-default path issue.
1a274e3f3 Minor change: copyright year.

Version 2.5.62rc7:

3fbebe89e Accelerate macOS pkg post-install script in the research of matlab and fix the case in which matlab is not installed in /Applications.

Version 2.5.62rc5:


Version 2.5.62rc6:

84e4d83a5 Fix MacOS X pkg generation to include libomp pkg ect.

Version 2.5.62rc4:

32ffc9e19 Allow pyfaust.Faust ctor to receive a filepath as first non-keyword argument (issue #78).
778425356 Delete matfaust/pyfaust.fact.fgft_givens alias of eigtj (issue #120).
a812b7e88 Fix Faust::Transform::spectralNorm issue #111.
57f6377a9 Update/Add transpose/adjoint/conj methods of faust_MatGeneric class hierarchy.
688afd906 Refactor mex_params initialization for matfaust palm4msa and hierachical.
dfbe7a0b0 Update the doc and projectors notebook (after the change of blockdiag def.).
7c9b8b281 Simplify blockdiag proj. def. (issue #144).
3c6024de0 Set a default value for norm arg in matfaust/pyfaust normlin/col projecctors.
589f4b4fc Minor change: output message added to the formfeed filtering (c)make target.
e5466110c Secure normlin/normcol norm parameter to be >= 0 (otherwise an error is raised).
76db5504c Update prox notebook.

Version 2.5.62rc3:

d4226d4d7 Fix Visual Studio error C2131: expression did not evaluate to a constant.

Version 2.5.62rc1:


Version 2.5.62rc2:

4c687a4ff Make possible to call without recompiling Faust::multiply_omp and automatically if BUILD_MULTITHREAD is ON.
7d25350fc Fix MSVC error C2248 in FaustGPU
aa9d84299 Update to gpu_mod@6e39c0e.
4033aee42 Update doc/code about Faust product optimization (pyfaust and C++ core).
4018d3799 Update many things about projectors.
6779f65b1 Add directories in matlab path with a finer granularity to avoid conflicts with matlab built-ins eye, rand functions.
090158149 Set projectors normalized default argument to False and remove that argument and pos argument as well for normcol and normlin projectors.
376a2649a Minor change: change the way data files are accessed in pyfaust test.
99490e02e Fix issue #86.
0ff2ef60a Handle division by zero error in MatDense::Normalize().
98034e212 Minor change in README (indicates the preference for python3 instead of py2).
e8020553e First version of the pyfaust.proj jupyter notebook.
268aa1b04 Update the OMP/C++ Threads parallel reduction of the Faust-Matrix product to compare properly the calculation times as shown in issue #125.
528ff0ec1 Implement the spectral norm (operator L2 norm) using gpu_mod@7d259af.
4ba82adbc Minor change: correct constness for Slice arguments.
845186057 Refactor product optimization methods into a specific module.
475f88b92 Port hierarchical2020/palm4msa2020 to GPU for the multiplication.
695b587e5 Make palm4msa2020 (impl1) capable to do Faust/matrices muls on GPU.
156fed08e Minor change: refactor gpu factors loading/acquiring in TransformHelper.
5e29b843f Update FaustGPU: cpu_gpu_map is only used when RefManager is enabled.
403f3e977 Add RefManager::contains().
2fbb2a409 Make palm4msa2020 (impl2) capable to do Faust/matrices muls on GPU. Update the test for it.
e6aa48a2d Use (optionally) a RefManager into FaustGPU and update ctors and methods for the last update of gpu_mod.
149302626 Minor change (simplification): replacing Faust::Transform::delete callback def by a lambda expression passed directly to the RefManager.
136e98a07 Refactor palm4msa2020 by using MatDense::adjoint() and new function fill_of_eyes().
f7b45660c Add MatDense::adjoint().

Version 2.5.61rc5:

c49a46ec1 Update faust_gpu_mod: refactor Faust-Matrix mul. and rely on gpu_mod for the Faust-vec mul too (opt.: less copies on cpu memory).
b327fb346 Increase cpp test timeout including that of MATFILE_FACT_HIER_float.
c2357db0a Fix MatSparse::randMat() bug with FPP==float.
32f31f050 Make possible to run the pyfaust.demo.bsl on GPU (cuda).
cbb9e8542 Fix Faust::TransformHelper::optimize_multiply when in_place==true.
c02c0ffcb Minor fixes in FaustTransformHelper related to faust_gpu.
9af86e806 Add a TOC in faq doc page.
bc4221973 Secure input matrix major order in pyfaust hierachical wrappers (2016 and 2020).
055a6c349 Update to gpu_mod@1.1.2 and update faust_gpu_mod consequently
3945339d9 Update C++ gpu_mod wrapper to compute 'toarray' of transpose and adjoint of a Faust.
b4ceb2fb3 Add a new method Faust.clone() (matfaust and pyfaust).
d46c6964f Separate Faust-vector mul. optimization/method choice from that of Faust-toarray and bind the wrappers.
f5eb01b6e Add Faust::Vect::Rand/setRand().
6a93d7795 Minor change: modernize C++ in faust_MatDense by using nullptr instead of NULL.
073a84865 Minor change: updating Win and Linux post install scripts for the gpu_mod auto-loading to be silent for matfaust (as it is already for pyfaust).
97ae5fe2d Refactor enable_gpu_mod() (and by the way fix a bug occurring when libpaths is None) in pyfaust and update documentation in both wrappers.
83f7b7bf9 Minor fix on matfaust doc.

Version 2.5.61rc2:


Version 2.5.61rc3:

08e469bed Fix HTML anchor bug with doxygen 1.8.18.

Version 2.5.61rc0:


Version 2.5.61rc1:

5a08ce436 Make the (doxygen) doc target depend on matfaust files filtering targets to allow fix missing code doc (bed65cb6 regression).
89051fa4b Update .gitlab-ci.yml.
14e1eaf1b Replace uses of numpy.matrix by parent class numpy.ndarray (ndim == 2) to prepare pyfaust to the deprecation of numpy.matrix.

Version 2.5.60:


Version 2.5.60rc1:


Version 2.5.60rc2:

f4f855b4a Explicitely disable FAUST_TORCH in wheel pkgs for Linux et macOS.

Version 2.5.60rc0:

a6971eed0 Secure array format (col. major order) in FaustCore.pyx fact_palm4msa_gen.
aaec7a9bb Minor changes.
65da9d8d9 Fix a bunch of warnings in C++.
b8fc4bf96 Update FaustTorch class (pure py.) exprimental code with a new method totensor() and refactor __mul__ method in this goal.
782365a26 Uniformize cmake script for WIN32 mex building to finalize what was done for macOS/Linux in 1ea31014.

Version 2.5.59:

aeb159e6e Add pathlib pip dependency which is only useful when FAUST_TORCH is true.
199ea74b9 Minor change: disable gitlab ci job for generating py. wheel pkg for raspberry pi (as it's unavailable at the moment).
d6508c304 Minor fixes.
e28173bad Handle in set_path the matlab/matfaust name conflicts because of the way set_path is adding all subdirectories of +matfaust to the path (with eye, rand etc.).
9571ea94d Configure and integrate OpenMP library into macOS .pkg (release and rev.).
e2fa5a15e Patch cmake script for finding OpenMP on macOS/clang.
ab9acd243 Enable multithreading (OpenMP) in gitlab ci for tests and macOS packages.
f6721d74a Enhance cmake post-processing of matfaust scripts (experimental code filtering and inline doc generation).
ccae65d67 Modernize mex building cmake script and uniformize macOS/Linux code.
30b05e5a9 Enhance cmake code for BUILD_MULTITHREADING and refactor a bit cmake scripts.
9fc69e9b1 Minor change.

Version 2.5.58:

2ce11a900 Enable OpenMP for windows packages (both for matfaust and pyfaust).
358e3d721 Modify an old test to measure time on sparse factors Faust (instead of numpy dense arrays).

Version 2.5.57:

644f5ed26 Update faust.nsi: enhance matlab lookup (first try to find in PATH and R2018b to manual lookup), hide powershell windows and fix missing gm.dll copy.

Version 2.5.56:

f4d4ae2c0 Minor fix: protect PYTHON_PATH expansion from space issue in .gitlab-ci.yml

Version 2.5.53:


Version 2.5.54:

7c1799e40 Fix index out of bounds issue in Faust mul. optimized method 2.
a6ea289a1 Fix bug on hierarchical 2020 impl.

Version 2.5.52:


Version 2.5.55:

6c2fc7dd3 Fix for windows the experimental code filter script.
45fa6ae15 Set up gpu_mod auto-load in matfaust wrapper with function enable_gpu_mod().
f61be6148 Update generation of Windows packages to integrate gpu_mod and enable it in pyfaust wrapper.
84528ceb5 Update to gpu_mod@a2f16c9 (1.1.0).
184f5e77d Set all in place (for Linux systems) to load automatically libgm (gpu_mod) from pyfaust (whether it was installed from a pip package or a system package).
fd34bac08 Simplify CMake script for finding Eigen3 package (on UNIX systems) and specify the minor version needed according to issue #93.
a1901e2d9 Build and integrate libgm (gpu_mod) in package_linux and package_linux_purepy* gitlab ci jobs and pack.
17b36c4e8 Disable py2 in gitlab pipeline jobs for linux package generation.
48cd19234 Set gpu_mod submodule address as relative URI.
61c14f912 Handle the different configurations for python tests (py2 and py3 found and NOPY2 enabled).
a93103fb7 Fix test_palm4MSAFFT.cpp.
b84f435bb Disable Python2 in tests jobs and for Linux packages (as py2 is not supported anymore since january).
8f6e2779e Minor change.
c1b2a0e5e Integrate gpu_mod into Faust with tests for double and complex<double>. Faust optimize_time is capable to use gpu_mod.

Version 2.5.50:

95e4de465 Fix numeric_limits::max issue on Visual Studio 14.
690d3d3ee Minor fix/change.
3fe23c52d Fix bugged init_facts default initialization (when is_update_R2L is True) in FaustFact.fact_palm4msa_gen (_FaustCorePy.pyx).

Version 2.5.49:

09e650b33 Setup the gitlab pipeline and dynamic (down)loading of libtorch for pyfaust pip packages (macOS and linux x86-64).
f503aa6af Update cmake to set faust_torch module available by FAUST_TORCH cmake option both in C++ tests and pyfaust (if of course libtorch is installed).
b9b67cf56 Integrate faust_torch mul functions to optimize_time/mul. Temporarily change optimize_multiply (C++ backend to wrapper optimize_time) to measure time on toarray instead of Faust-matrix mul.
ca65e1b5d Minor changes in faust_torch module.
73a578558 Update faust_torch module.
4e6a1efbc Update faust_torch test.
5b1fd4127 Update faust_torch module.
eb82e4023 Optimize faust_torch module to avoid cloning data (by default) when possible.
f42fb075b Custom the faust_torch cpp test.
7869d1e14 Add the faust_torch C++ module for computing a Faust-Matrix product using torch CPU and a cpp test.
6b3dc4c92 Rename Device type to FDevice to avoid conflicts with torchlib (both Faust and libtorch use this name type out of namespace), remove also 'using namespace ...' in some headers (where they shouldn't be).
5bd062b1f Add pyfaust.FaustTorch class as experimental code.

Version 2.5.48:

df1473ce6 Refactor largely Faust::GivensFGFTParallel/GivensFGFTParallelComplex algorithms into a new class GivensFGFTParallGen and update unit tests.
8bbab83a7 Add argument nsamples to matfaust/pyfaust.Faust.optimize_time(). [skip ci]
6a8872272 Overload Faust::multiply_order_opt_all_best() and add a test (faust_mult2).
2d46f5fa6 Minor change: update doc.
2823274f7 Optimize pyfaust palm4msa as fd17c283 did for matfaust.
d2863e937 Optimize mex palm4msa output: avoid copying each factor when creating TransformHelper object and choose the proper storage format (sparse or dense) to save memory.
fc9a8a3f5 Hide pruneout npasses and only_forward arguments (in matfaust and pyfaust).

Version 2.5.47:

b18d6c138 Update the matfaust/pyfaust.Faust class doc, rename some functions (optimize_*), change minorly arguments of pyfaust.Faust.norm.
b3eb1c92a Fix pruneout bug due to use of not copying ctor.
085554a73 Add argument inplace (default to false) to Faust.optimize_mul.
fb55ef452 Minor change.
954438332 Optimize pyfaust.Faust.toarray() and C++ impl. TransformHelper::get_product() with the pre-existing opts used in TransformHelper::multiply(MatDense)

Version 2.5.46:

bc1103460 Document StoppingCriterion class in pyfaust and matfaust.
49a6edae3 Add unit tets for matfaust/pyfaust palm4msa2020 and hierarchical2020.
9aeeaf073 Add matfaust wrapper to palm4msa2020 and refactor 2016 palm4msa mex code.
fb6fd077c Fix compilation issue on Matlab R2018a,b.
b8dea6915 Add pyfaust wrapper to palm4msa2020.
b18bde645 Add support of error stopping criterion to palm4msa 2016 and 2020, renew StoppingCriterion structure to simplify choice of num_its or error as stopping crit and handle also relative error.
b21f4c241 Minor change.
a47996d9e Add an overload of Faust::hierarchical2020 to use Faust::Params the same parameter structure as Faust:HierarchicalFact(2016).
a2c12fb54 Make constant_step_size and step_size parameters available for hierarchical2020 (c++ core and w rappers).
3ffb44d8d Make verbose mode available for hierarchical2020 (cpp core and py/matfaust wrappers).
9d5912461 Define Faust::ConstraintGeneric::Display() and specialize the method in other constraint classes. Use these functions to refactor Faust::Params.Display().
b4f69d642 Update hierarchical2020 C++ core and wrappers to use 2 StoppingCriterion objects (local and global palm4msa) instead of only one number of iterations (identical for both palm4msa calls).

Version 2.5.45:

bd96eb575 Minor change: hierarchical wrapper doc. update.
5a41502d5 Fix palm4msa2020 error C2131: expression did not evaluate to a constant.
12dbcd7c0 Minor changes: typos in doc.
efcf6dac2 Minor fixes: typo in mx2Faust.hpp and reference values of tests (due to 2-norm default parameters change).
23e2627cb Add benchmark script to compare pyfaust hierarchical 2016, 2020, hierarchical_py and Luc Giffon (pyqalm) hierarchical Palm4MSA implementation.
13d145faa Update matfaust/pyfaust to premultiply output Faust by lambda with 2020 backend (as it's done with 2016 backend -- consistency).
a9103aa31 Simply/Optimize Faust::TransformHelper mul. by a scalar (avoid copying factors, only the one multiplied is copied).
c39925698 Rename faust_palm4msa.h/hpp to faust_palm4msa2020.h/hpp to avoid confusion with faust_Palm4MSA.h/hpp (especially on case insensitive systems).
45c5d7f23 Update Hierarchical/Palm4MSA about norm2_max_iter/threshold.
20b13b9a6 Re-enable missing test in 3e609ad2 and fix a small bug in test hier_fact_test arguments (CMakeLists.txt).
ee93c36ba Update matfaust tests as 4b3cc14f did for pyfaust (change in default norm2 parameters).
f84234f84 Handle use_csr, packing_RL and norm2_threshold/max_iter arguments for matfaust.fact.hierarchical in its params structures (wrapper code, mex and C++ core).
0ec0178d5 Add wrapper to hierarchical 2020 impl. into matfaust.
6d5b6b29c Exclude complex type from tests of palm4msa/hierarchical 2020 (not supported yet) and raise an exception in pyfaust wrapper when a complex matrix is passed with backend 2020.
2a6193637 Make the 2020 hierarchical implementation available from the same pyfaust.fact.hierarchical function as the 2016 impl. (with a new argument named backend).
94a2d5677 Modify slightly unit tests since the change of default value for norm2 threshold (1e-16 > 1e-6). Fix also nan issue in test_TH_pack_factors.cpp.in.
9ef906d3d Add argument packing_RL to hierarchical2020 and palm4msa2 in C++ core and pyfaust wrapper.
81902885e Minor fix: disable missing C++ test.
448e6c59e Fix matlab wrapper issue with TransformHelper variadic template.
a50df69a7 Add a py. wrapper pyfaust.fact.hierarchical2020 to Faust::hierarchical and modify parameter structures of wrappers pyfaust.fact.palm4msa and hierarchical to set any values of norm2 threshold and maxiter.
59bfa111e Add C++ tests (misc directory) for new implementations Faust::hierarchical, Faust::palm4msa and a new test to factorize Hadamard matrix with the 2016 implementation (Faust::HierarchicalFact) in order to compare with the new implementati on.
8e65979c4 Port palm4msa_py and hierarchical_py functions to C++ Faust::palm4msa Faust::hierarchical and implement in Faust::palm4msa2 an optimized version using factors packing in Faust::TransformHelper instances.
513ef38c9 Modify C++ Faust::Palm4MSA, Faust::HierarchicalFact and Faust::ParamsPalm, Faust::Params to allow setting norm2 threshold and max iter arbitrarily (default values changed faust_constant.h.in).
ef267ce4b Add optional arguments to hierarchical_py and palm4msa_py about norm2 computation and projected matrix storage format.
7d8d48fe9 Update TransformHelper::pack_factors() by using cleaner methods: insert, erase, resize, pop_front, pop_back, push_first (defined in Faust::Transform). New signature for get_product().
c0540d51f Add functions to pack factors in a Faust (multiply them to obtain a single matrix). TransformHelper::pack_factors() signatures (pack to the left, to the right, by index range or all TranformHelper factors).
a54a543f0 Optimize Transform and TransformHelper ctors (avoid copies).
403e8e4e1 Add a variadic template ctor for TransformHelper, add push_back_() related functions and a test.
c6d845315 Implement factor iterators in Faust::Transform(Helper) and hence foreach loop (with a unit test).
e54c65223 Add copy ctor and copy assignment to TransformHelper and corresponding unit tests to test also Transform copy ctor (refactored) and operator=.
77cb4be0c Rewrite in C++ left and right Faust functions (TransformHelper) and set them in pyfaust wrapper (add unit tests test_right/left), also add a __len__ override.
e297cee93 Minor change: simplify/refactor pyfaust __*mul__ ops, error handling and isinstance callseverywhere in the class.
765c2dabc Extend Faust::MatSparse::setEyes() to allow eye non square mat and simplify MatSparse::eye() static function by using setEyes().
bddcf30ea Fix error on csr_matrix*Faust and csr_matrix@Faust occurring because scipy optimizes naturally csr_matrix tranpose into csc_matrix which wasn't handled (C++ Faust works with csr matrix behind).
e394b9ac5 Modify power_iteration stopping criterion in order to fix issue #131.
681cd4b19 Patch palm4msa_py with an option compute_2norm_on_arrays that avoids the nan norm issue 131 (it occurs for example when trying to factorize a hadamard matrix of order 128 with hierarchica_py).
f62b54b99 Add unit tests for matfaust spcol/lin normcol/lin supp const sp and fix normlin error.

Version 2.5.43:

9f7fd0585 Enable multithreading for the linux builds by default.

Version 2.5.41:


Version 2.5.42:

386f1151d Update pyfaust.factparams.ParamsHierarchicalRectMat and pyfaust.fact.hierarchical doc and remove UML collaboration diags from doxydoc (quite useless).

Version 2.5.40:

b476506dc Minor doc update/fix in pyfaust ConstraintMat and supp proj.
ec72b5ff6 Minor change: doc example for ConstraintList.
c67d1b288 Adjust matfaust (including mex funcs) to support blockdia proj or constraint.
68c2e95d9 Make blockdiag constraint available in palm4msa algorithm.
91da2f42e Integrate BLOCKDIAG constraint as a ConstraintMat -- like CONST and SUPP (only for pyfaust for now) and correct some details about other ConstraintMat -- toeplitz and circ in C++ core.
3d8dc38ea Update the factorization jupyter notebook since the update of eitj wrapper.
dac94d878 Make pos and normalized options available for new projectors: toeplitz, circ, hankel and blockdiag (matfaust, pyfaust, cpp core), update the pyfaust doc.

Version 2.5.39:

5f586bdaa Update pyfaust palm4msa and hierarchical params doc.
224c92477 Bind wrapper to Faust::prox_blockdiag into matfaust.proj.blockdiag class/functor.
9518cbaa4 Exclude the raspberry pi package gen. job from revision pipeline (only for tags).
a09a3fe23 Bind wrapper to Faust::prox_blockdiag into pyfaust.proj.blockdiag class/functor.

Version 2.5.38:

885ed7c5d Fix version missing in pip package for raspberry pi.
6959cd87b Implement BLOCKDIAG proj in C++ and add a test.
85823db7e Add pure python prototype for BLOCKDIAG projector.

Version 2.5.32:


Version 2.5.33:


Version 2.5.34:


Version 2.5.35:


Version 2.5.36:


Version 2.5.37:

79d3897fa Add a gitlab ci job to generate a package on raspberry pi.
6d99d43bd Fix synchronization issue in Faust::multiply_par_run() (multithreaded product of N factors).
56878960d Minor change in Faust mul C++ test debug output.

Version 2.5.31:

92c9f1a11 Add examples for pyfaust projectors.

Version 2.5.30:

d5fbc9936 Fix pyfaust projectors unit tests (bugged because of bad import since the module change).
54e25f881 Review the doc and fix imports.
15e6582e6 Disable formfeed filtering when matlab wrapper is not built.

Version 2.5.29:

e532666c0 Enable projectors for palm4msa()/hiearchical() only supporting ConstraintGeneric/ConstraintList before. Update the doc (mostly for projectors).
80bd9e3ec Fix (at least on linux) the formfeed character issue occurring in latex section of doxygen matlab filter (which was provoking syntax errors even if located in comments).
ba36c34c2 Allow pyfaust ParamsHierarchical ctor to receive a list of pyfaust.proj.proj_gen.
c3c564e30 Add matfaust wrapper to TransformHelper::optimize_multiply() and fix VS14 specific error (C3863) into TransformHelper::optimize_multiply.
dd031ac44 Add the function TransformHelper::optimize_multiply() to refactorize TransformerHelper::optimize() which calls it, pyfaust wrapper for this new function and handle optimization for the transpose Faust (new function argument).

Version 2.5.28:

157fe9198 Minor changes/fixes.

Version 2.5.27:

b2cda15a2 Enable non-documented *faust class filtering in gitlabpages generation.
cd1d16ed2 Refactorize MatDense code to get/set diags/antidiags and fix toeplitz and hankel projs for rect. matrices.

Version 2.5.26:

18b9855e7 Minor change: update projectors doc.
61e229430 Minor change.

Version 2.5.25:

05199f8b6 Minor change.
68bcdae78 Move projectors in a specific package py/matfaust.proj.
2987c59ae Finish filtering of non-documented classes both for matfaust and pyfaust.
b92472b5d Filter excluded/non-documented classes from doxydoc (only for pyfaust).
76fb0c8e9 Add a CMake option to disable python2 support.
4d9e90424 Add the matfaust wrapper Faust.optimize.
8de83d82a Add the pyfaust wrapper Faust.optimize.
a3e33dc15 Add TransformHelper::optimize() and a C++ test: it does a pruneout + optimize_storage and choose the quickest method for the Faust-matrix product.

Version 2.5.24:

3b8495a99 Bind cpp optimize_storage() into matfaust.Faust and add Faust.nbytes attribute (as ndarray provides).
b8b61ba5f Add C++ hankel prox test.
66bd3edd2 Add pyfaust/matfaust wrappers for hankel prox.
b4971522f Add Faust::prox_hankel and Faust::MatDense::adiagonal().
670a35733 Fix the error VS14 C2131 issue (https://gitlab.inria.fr/faustgrp/faust/-/jobs/512998).
d7aeea57f Add to pyfaust wrapper the binding to Faust::TransformHelper::optimize_storage().
17a00d0ab Add circulant proj and a test, bind toeplitz and circ projs into matfaust and pyfaust.
0574cbdcd Write the toeplitz projector in C++ Faust namespace and add a unit test.
9f07b9b19 Add Faust::MatDense::diagonal().
b635b6462 Add Faust::Vect::mean().
92e38424f Minor fix.
d048198c6 Document pyfaust projectors.
4e87db82b Implement an optimization based on storage format of each factor with a criterion choice: time of matrix-vector mul or memory footprint.
744b4f618 Minor fix to VS14 compilation issues.

Version 2.5.23:

93b0ad24e Bind Faust::TransformHelper::pruneout() into matfaust and update doc.
332f33a30 Bind Faust::TransformHelper::pruneout() into pyfaust.Faust.pruneout().
141318351 Handle compiling issues with optional OpenMP (CMake scripts, setup.py, ...).
07e4e435c Finish pruneout C++ impl. for Faust::TransformHelper and add a unit test.
eba1278ab Start pruneout port to Faust C++ core.
3330d6f1d Implement a C++ threaded version of the previous OpenMP impl. of the parallelization of the Faust-matrix product.
d413efc4b Add in matfaust projector functors (sp, splin,...) as defined already for pyfaust.
ac2d6b214 Add pyfaust.Faust.matvec to be compliant with scipy.sparse.linalg.aslinearoperator.
9cc669414 Fix matlab mex compiling with openmp/gcc on *nix platforms (except macos).
2773c1529 Fix namespace issues due to the choice to avoid 'using namespace' in cpp headers.
836902ac9 Implement an OpenMP parallelization of the Faust-Matrix product (new test: faust_transform_omp_mul.cpp.in).

Version 2.5.22:

34f6a3e2f Update pyfaust eigtj/svdtj doc, undocument/hide verbosity argument for svdtj.
b63560965 Minor fix in pyfaust wrapper for svdtj (enable_large_Faust argument not passed for one function signature).
d2b3747f2 Minor fixes about C++ namespaces.
7c64228ec Implement pyfaust.fact.hierarchical_py (pure py version).
f29315d22 Change the mat product optimization boolean of the previous commit to a int in order to be able to choose one of the 3 optimization methods available and rename these methods.
97bf52a1d Add an option in Faust::TransformHelper to choose to optimize or not the Faust-matrix multiplication and bind this functionality into pyfaust.
d41cc07e3 Implement a C++ optimization of N matrices by choosing the best order of multiplications while cb82a735 optimized only for 3 factors.
2d889ec7e Minor change: wrong license indicated in setup.py.
a6e146506 Make available the grad_calc_opt_mode option in matfaust.factparams.ParamsFact. This option has been added in C++ core by 28f1510f.
5b3a67276 Implement an optimization on the multiplication of 3 factors in the most advantageous order as Palm4MSA does internally for and rewrite Palm4MSA::compute_grad_over_c() to allow the option (gradCalcOptMode) to use the external or the internal optimization. Set the external optimization as the default behaviour in pyfaust.fact.
97e044491 Add an enum GradientCalcOptMode and a boolean in Faust::Params* structures to decide to enable or not the multiplication optimization used in Palm4MSA::compute_grad_over_c and make this option available in pyfaust.factparams structures.
e0010b8ea Update pyfaust and matfaust unit tests in consequence of the fix bc7de9e1.
114e43227 Fix 2 minors bugs in Palm4MSA c++ and pyfaust wrappers occurring only with a complex input matrix.
cc2e7f59e Refactor the mexFaust function: the code blocks for hadamard, fourier and eye Faust are now in separated functions.
9e04ceb64 Avoid the warning about scalar mul of a Faust at creation stage when the creation is done internally (in the C++ backend).
fcb998be7 Simplify pyfaust.fact.palm4msa_py using functors from previous commits (no need of the dims argument anymore).
6911d6b02 Update pyfaust projectors sp, splin etc. to set them as real functors (callable objects), allowing to access the underlying constraint as an attribute.
df3c91dc8 Implement enable_large_Faust for matfaust.fact.svdtj (by using the C++ backend).
6916bba86 Update pyfaust.*.svdtj* as 70e4746e did for eigtj (large Faust limitation) with a big refactoring into faust_SVDTJ.h(pp) backend (more genericity between complex and float impls of GivensFGFTGen).
3b3ca784d Implement a new limitation for eigtj: if the nGivens value implies a size of transform that doesn't worth it in terms of complexity then the algorithm is stopped with a warning.

Version 2.5.21:

8ac1653d5 Update matfaust.fact.eigtj/svdtj doc (Rémi's review).
8ce1ba870 Add a "pure" python implementation of PALM4MSA as an experimental block of code (filtered out of release packages).
b72b0349a Minor change in pyfaust.Faust.norm (keyword argument handling -- spectral norm specific parameters).
7bb78ee56 Clean the code of complex type uses when floating type actually needed: norms, step size and lambda for PALM algorithms.
62b1c2e78 Complete pyfaust.factparams unit tests of projectors (spcol, splincol, normcol, normlin, supp, const).
2e18a3750 Continue the refactoring started with bb417591, this time refactor Faust::GivensFGFT by calling code from parent GivensFGFTGen instead of duplicating.

Version 2.5.20:

634c82131 Minor changes.

Version 2.5.19:

7f45dba70 Fix issues found with 6a34474c on projectors and add a pyfaust unit test for spcol.
f2bb23a9e Add the abstract class Faust::GivensFGFTGen parent of all classes GivensFGFT* (complex and float sub-classes). Main purpose: refactor the code and morever avoid duplicates.
6ef649823 Add a unit test for pyfaust.factparams.splin, fix a bug in matfaust.ConstraintGeneric and modify pyfaust projectors to be compatible with py2.7.
9e4d6938a Update minorly eigtj/svdtj related codes and doc (benchmark, matfaust, pyfaust, pyx and C++ backend).
7a5896f94 Change API of constraints/projectors and the C++ backend.
5455f779f Bind to matfaust the new proxs added by 5901bfca.
332dacc96 Add C++ missing non-normalized proxs for discrete sparsity and bind them into pyfaust(.factparams.ContraintInt).
90bfc17f4 Minor changes in eigtj C++ backend classes and related python unit tests.
5f2d117a8 Update doc of mat/pyfaust.fact.eigtj/svdtj, other guides and notebooks.
b669200ec Update matfaust.fact.eigtj as previous commit did for pyfaust, handle issue with absolute and relative errors.
fc4f85f8b Update pyfaust.fact.eigtj (and C++ backend): doc, fgft_givens is now an alias of eigtj instead of the way around, allowng undefined maxiter if error criterion is specified.
911f1588e Simplify/optimize GivensFGFT*::update_err().
80bd57a0f Update GivensFGFT C++ tests: refactor/document/simplify/reinforce with additional assert() calls.
bacb75905 Modify GivensFGFT classes to keep possible to undo the permutation (multiplied into the eigenvector transform's last factor -- 062edd06) by computing the inverse permutation beforehand when ordering the eigenvalues.
e9725b898 Optimize/Simplify and factorize the recomputation code of the 'Givens' coefficients in case of nonzero pivot image in GivensFGFTComplex/GivensFGFTParallelComplex.
2332fb6f9 Minor change (disable debug info.)
e4a6b08a8 Fix a bug in pyfaust.Faust.__rmatmul__ (lhs*Faust) and __rmul__ (Faust*rhs).
f8e8a5c14 Update how multiplication of Faust::Transform(Helper) (or computation of its full mat) is made when the Faust is conjugate, transposed, transconjugate.
3bfab31f7 Fix the non-zero pivot image of L(p,q) by choosing the good sign of theta2. The eigenvalues are the same with complex and real implementations of truncated jacobi.
41b857338 Bind complex svdtj into pyfaust.
ae67a66af Update svdtj() to request ordered eigtj eigenvector transforms to get order-consistent U and V transforms.
29b268ddc Remove the permutation factor from Truncated Jacobi Faust::Transform (replaced by a mul. of the last factor).
f5f2b66ed Add two unit tests for matfaust.Faust by sparse matrix mult.
8e1862449 Secure svdtj pyx function, the input matrix must be in fortran/column major order.
7d62e8c92 Support pyfaust.Faust-csr_matrix/dia_matrix multiplication for complex Faust/matrices and update related pyfaust unit tests.
7c701546d Minor change in MatSparse::multiply(MatSparse).
f04b34866 Fix a bug in Faust::MatDense::multiply(MatSparse) occurring when opthis==T and matrices are complex.
612a29459 Fix memory leak in C++ svdtj and update its matfaust doc.
84950f7df Add support to pyfaust.Faust-dia_matrix multiplication (issue #116).
7addac9a3 Optimize C++ Faust normalization (multiply the scaling factor instead of appending it) and handle Faust transpose situation.
1ccb995ba Adjust unit tests to follow the fix 52b80791 which changed slightly the measured error on eigenvector transform but kept pyfaust and C++ consistent with each other.

Version 2.5.18:

8f117682e Fix a bug in Parallel Truncated Jacobi algorithm (GivensFGFTParallel/Complex).
a2fd3abae Handle in gemv() the mul. A'*v with A a complex mat.
35dc155f9 Update C++ and mex code to make matfaust.fact.svdtj compatible with complex matrices.

Version 2.5.17:

8f2d968cd Update svdtj documentation with description from issue #95.
4e8a16323 Migrate to cdash-ci.inria.fr (cdash.inria.fr is deprecated).

Version 2.5.16:

e73f33bdf Update C++ svdtj: remove the last permutation factor from eigtj. Fix pyfaust pyrex svdtj (passing explicitely the array in column major order -- fortran array). Update sligthly the doc.

Version 2.5.15:

c036de0ad Undo the cmake FILE(REMOVE) for +factparams as we don't want it as experimental for the next release.

Version 2.5.14:

b0375acb8 Remove PALM based algos from exp. mode (temporarily for the next release).
f37ac29d7 New prototype of svdtj in pyfaust wrapper for supporting (sparse) csr_matrix.
a358fb02f Update svdtj to multiply directly the last eigenvector transform factor by the signed permutation matrix
51bcabece Fix minor error in pyfaust hpp svdtj definition (opt. args).
0c7eac280 Bind pyfaust.fact.svdtj() to C++ core impl. (only for dense real matrix).
9873ab78c Refactor mex svdtj function into Faust C++ core (in order to be reusable for pyfaust).
9b0eb8f26 Update C++ mex svdtj: add signed-permutation factor to U transform and permutation factor to V (the function is fully functional).
b6fb73e71 Update mex C++ svdtj to sort singular values in descendant order.
e34b939ba svdtj C++ version (WIP).
c04aaeae7 Faust-sparse matrix multiplication available also for matfaust.
fbb50cffd Fix missing identity default to false in MatGeneric deft ctor.
7ff3b0845 Implement in C++ the Faust-SparseMatrix multiplication and bind it into pyfaust.
78747ec60 Minor fix in MatDense (forgotten renamings).
6f9b5fc58 Update matfaust.eye and its mex code to bind them to the new C++ core impl. of Faust eye.
3b840f47f Implement the optimization of eye faust in C++ core and bind it into pyfaust.

Version 2.5.13:

fb33aea57 Set the experimental mode for revision packages and exclude all experimental code (and documentation) from the release packages.
28b5d5be8 Minor fix in benchmark_eigtj and rise of number of runs

Version 2.5.12:

7d3a990eb Minor update in doxydoc mainpage layout.
42f4b99d9 Update pyfaust.Faust.imshow() as asked by #102.

Version 2.5.11:

3ee8947ca Update matfaust.Faust.imagesc() as asked by #102.
507d5fc7a Update OMP notebook to remove the references to factorization notebook and integrate it to zip archive and doxydoc links.
d87e2198a Rewrite Faust::MatDense::abs() to enhance compiler compatibility.
04b0df456 Update wrapper eigtj doc and backend C++ code too.
79b14ce6f Minor fix in Faust::MatDense to satisfy Visual Studio.
dddb93afd Add forgotten test GivensFGFTComplexSparse.cpp.in.
8a03e5ea3 Fix two bugs related to the recent refactoring of matfaust.
ed5f50cfd Add a new error measure in benchmark_eigtj.py. The error is measured on the largest eigenvalue.
2c1f2c6ed Add a script for testing eigtj decomposition of a circulant symmetric matrix and comparing it to the DFT matrix.
07e9bdc6c Update benchmark_eigtj.py to test eigtj on Hermitian matrices built from real Laplacians by random phase multiplication.
d76a9944e Add a new benchmark script to compare complex truncated Jacobi algorithms to real versions.
3bd7075af Modify pyfaust/matfaust eigtj to return real part of eigenvalues array (removing the almost zero im. part).
229fcd017 Minor changes about hermitian prop. checking (eigtj) and doc.
d57ff3f38 Fix missing handling of sparse complex hermitian in both pyfaust and matfaust eigtj and disable S'LS product optimization of GivensParallelComplexFGFT because it gave bad results (full of NaN).
09c887d5c Make GivensFGFTComplex and GivensFGFTComplexParallel available in matfaust wrapper (fgft_givens/eigtj).
fb2e3f273 Add a non-functional C++ impl. of Parallel Truncated Jacobi for Hermitian matrix (GivensFGFTParallelComplex) and plug it to the pyfaust wrapper.
1cc35e154 Update GFT test script (next to the refactoring of FaustFactory into pyfaust.fact).
7dd4cad28 Add a test for GivensFGFTParallelComplex (upcoming code).
ba2302035 Fix several points and connect GivensFGFTComplex (C++) to pyfaust.
504a20001 WIP GivensFGFTComplex updates: correct S'*L*S and other details.
2ffbe9a18 WIP to implement complex (Laplacian) Truncated Jacobi.
43572089f Update FGFT pyfaust benchmark to compute errors on 'optimal' signed permutation of Uhat.

Version 2.5.10:

8b4ad5a15 Update experimental code filter added by ebc954ec and use it CMake scripts for pyfaust and matfaust.
83a12924e Modify order argument of eigtj to be 'ascend', 'descend' or 'undef'
f3a54328e Update pyfaust as d2991db9 did for matfaust.
690581768 Minor changes in doc.
f342cb1fa Add to matfaust eigtj/fgft_givens an order argument to define the eigenvalues sort.

Version 2.5.9:

9dc072089 Update matfaust to follow 037f674a, update svdtj, eigtj, fgft_givens API, doc and tests.
196d0b0f5 Update pyfaust eigtj (and fgft_givens) to respect the conventions established by numpy.linalg.eigh.
7378832a8 Make possible to use an absolute error in C++ GivensFGFT, change and document pyfaust eigtj and fgft_givens for a prototype similar to pyfaust.tools.omp.
3502b320b Update OMP notebook to measure more multiplications in ending benchmark.
cfffefd7f Attempt to optimize GivensFGFT(Parallel) for L residual being a MatSparse.
8bf4da621 Add a python script to filter out exprimental code in pyfaust and matfaust.
b6a2cd5aa Add unit tests for pyfaust/matfaust sparse versions of GivensFGFT(Parallel).
66f3bbb50 Make the direct use of sparse Laplacian available from matfaust.
efedd1e76 Make the direct use of sparse Laplacian available from pyfaust.fact.eigtj/fgft_givens.
dd7e8b329 Rename ParamsHierarchicalFact* structures to ParamsHierarchical* everywhere.
246971ef6 Update constraint table description by adding a new column for exactness guaranty.
45043b340 Minor fix in matfaust documented file list.
eb4d0478c Update notebooks and the API accordingly.
3c7f0bfd3 Re-enable faust_decompose.m filtered out from sys. packages by 8b182bcf for #64.
6ce51fae5 Update pyfaust.demo consequently to bf3ebccb.
fb81dfb3d Remove prefix fact_ in matfaust/pyfaust functions (and tests, doc).
bd5a643fb Delete file of abandoned class matfaust.FaustFactory.
10cb19825 Refactor pyfaust/matfaust.FaustFactory into a new module: pyfaust/matfaust.fact with all implications (tests, doc, doc gen).
31636d3cf Move functions dft, wht, eye and rand from FaustFactory to pyfaust package root, update tests, documentation and notebooks to respect this change.
e802a9b37 Move functions dft, wht, eye and rand from FaustFactory to pyfaust package root, update tests, documentation and notebooks to respect this change.
790f98366 Align MatDense to_string()/Display() with MatSparse's version.
cc0259589 Rename FaustCorePy to _FaustCorePy to hide from completion.
9dffca205 Implement pyfaust.Faust.left/right functions as requested by #69.
029044a63 Implement matfaust.Faust.left/right functions as requested by #69.
8794bde56 Add an alias matfaust/pyfaust.isFaust to matfaust/pyfaust.Faust.isFaust.
5392ef300 Rename get_factor() to factors(), get_num_factors() to numfactors() (hopefully) everywhere in pyfaust/matfaust, the doc, the notebook, tests...
5d0d3d2c8 Fix Windows Visual C++ issue: it needs fully qualified namespaces for MatDense and MatSparse.

Version 2.5.8:

df41d4386 Temporarily remove the third notebook (factorization) from the zip archive and from the doxydoc links.
ca82bdb27 Set public the access modifier of GivensFGFT::update_L() to fix clang-macOS (suprisingly) specific error of compilation.
e28f2bfb8 Finish updating GivensFGFT/GivensFGFTParallel to be compatible with a Sparse residual/Laplacian and add Sparse version of existing tests to validate the modifications.
d7d0e7c8a Add/implement nonzero_indices() in the whole MatGeneric class hierarchy.
0e58cde7e Fix reference return issue in MatSparse::operator().
7bacdd706 First try: convert L to MatGeneric which implies to declare in MatGeneric and implement in subclasses a bunch functions.
f8308fae7 Fix reference return issue in MatSparse::operator().
9aa63c316 Add new multiply Faust::MatSparse member functions and a unit test.
19d47b712 Fix #114: char encoding issue on Windows.
0dae13df6 Update calls to numpy.linalg.lstsq as indicated in the doc to silent warnings about precision.
b83f6879e Add a py script to filter out HTML tags in pyfaust modules and a CMake target to call it after doc generation.
a170b347a Remove unused matlab (tools) scripts from cmake install target as requested by #64.

Version 2.5.7:

7b56ccebd Execute pkgbuild with admin. rights.

Version 2.5.6:

a3a53458a Make doxygen doc generation depending on notebooks zip creation in makefile.

Version 2.5.5:

c6a5ac87f Implement/document matfaust.tools.omp for equivalency to pyfaust.tools.omp.
9932c96de Fix windows bug with getting the python3 minor version (added by f683704b).

Version 2.5.4:

42c16d9e0 Generate a zip file of published notebooks to be hosted on gitlab pages with the doc.
a3628944e Update the OMP notebook after Rémi's review along with the HTML pre-rendered version.
5b2f2445e Update the pyfaust.tools.omp prototype and the bsl demo to avoid altering results.
0ceb83601 Automatize the assignment of SUPPORTED_PY3 variable.
c5b1222e1 Update the notebook again for minor changes and the html version (with results).

Version 2.5.3:

901a8c44b Filter omp (from pyfaust.tools) in the namespace list of the API doc.
ff28d9177 Update the OMP notebook regarding the recent changes.
a369628b7 Update pyfaust.tools omp API: rename the function, update stopping criterion arguments, update and simplify the documentation, remove useless variables.
5fd6f6bcf Add the OMP Cholesky impl. of pyfaust (tools module) to the generated documentation.
bfb0ca397 Implement in C++ and enable in matfaust the default normalization for FaustFactory.dft().
6308c50a7 Implement in C++ and enable in pyfaust the default normalization for FaustFactory.dft().
610cadaa0 Enable default normalization in mataust.FaustFactory.wht() using C++ backend code (added by 7daa5b22).
715f46237 Integrate to pyfaust.FaustFactory.wht() the use of normalization by default (added to C++ core by 7daa5b22).
4bc3f337e Update the pyfaust bsl demo in particular because of an update of matplotlib which removes find().
e521fa1f7 Implement the optional normalization of Hadamard transform in the C++ backend (yet to use in wrappers).
8a819ef56 Update pyfaust.tools.py since e66ab87d removed conversion to numpy.matrix in Faust mul result (added before by 421e8251).

Version 2.5.2:

3d6fc5b58 Update the OMP notebook.
32b8ec1d3 Update matfaust dft and wht as 964b7776 did for pyfaust.
f1098fb42 Setup a workaround to the 2-norm normalization bug on complex Faust exclusively occurring on matfaust (pyfaust is ok).
b6e9cca0c Update pyfaust FaustFactory.wht and dft to be normalized transforms by default and change the meaning of argument n which was the power of two exponent and is now the power of two directly (error raised if not).
3acdc0c93 Add pyfaust.Faust.ndim as numpy.ndarray.ndim.
4e39c59c5 Make the Faust-by-vector multiplication return a 1D vector as numpy does (instead of a matrix with a dimension size at 1).
351380c6d Update the OMP jupyter notebook with a new section about Greedy OMP-Cholesky.
0086a7c9a Minor changes.
b23877609 Update the OMP notebook in order to simplify x0 choice of nz coeffs and to complete the last test (where nnz=98).
fa57c3a35 Add a test for pyfaust concatenate/hstack/vstack.
1fdfea2eb Update the notebook to use simpler hstack call instead of Faust.concatenate.
9f46afbaf Add in pyfaust the numpy-like functions hstack, vstack and concatenate.
8f7537bfe Optimize Faust Fro. norm computation in case of a Faust equal to Q1 Q2 ... QN S1 S2 ... SN where the Qi factors are orthogonal.
a5648dd93 Fix minor compiling error on macOS/clang 'faust_TransformHelper.hpp:582:14: error: invalid suffix 'd' on floating constant'.
c500b5e01 Update the OMP notebook after Rémi's review.
68b49f4ed First impl. of norm-2 optimization of Faust composed of sequence of orthogonal factors in their extremities.
cc31b0267 Optimize FaustFactory.wht() C++ backend; only one factor is really created in memory because all others are in fact the same.
74c0fe071 Add a test for pyfaust.tools.UpdateCholeskyFull() used by OMP-Chol.
aebf2f374 Add a fourth notebook to demonstrate the use of FAµST API to write algorithms like OMP.
e23a53337 Review jupyter notebooks.
4c9341243 Add matfaust.FaustFactory.fact_hierarchical_constends(), review fact_palm4msa_constends(), add examples.
a3387cf5d Add the matfaust version of FaustFactory.fact_palm4msa_constends().
0a6a6dbaf Make matfaust ConstraintList ctor accept ConstraintGeneric arguments as pyfaust version does.
9e5b93895 Fix 2 bugs on matfaust proxs: one concerning 'const' prox and the second all proxs but only for complex matrices.
a5c9c83ad Add an example for pyfaust.fact_palm4msa_constends() and avoid A to be multiplied (the lambda scalar).
1c2979a8e Add a package function pyfaust.pinv() to link Faust.pinv() and make it return a numpy.matrix instead of an array.
ec0395a87 Handle in pyfaust expressions like F[[1,2,3],] (equiv.to F[[1,2,3],:]) and fix a bug on fancy indexing-after-transpose operation.
af677be65 Add pyfaust.FaustFactory.fact_palm4msa_constends().
9ef1e5a2a Add pyfaust.FaustFactory.fact_hierarchical_constends(), partially documented and with a test example.
f72509d54 Enhance pyfaust.factparams.ConstraintList.
5168536e2 Fix typo bug in pyrex code (is_mat_constraint()).
db6cbeda9 Fix in pyfaust a possible bug because of non-same storage order between input and output of prox_const.
980314fc9 Refactor fact_hierarchical_gen into two different functions, one for real the other for complex numpy arrays.
d5cfd092b Add links to gitlab ci artifacts in README.md.

Version 2.5.1:

e35496812 Move postinst_py.sh (rpm/deb post-install scripts) to python 3.7.
9e925ade7 Minor changes.

Version 2.5.0:

cb20b461c Add pygsp in pyfaust pip/setup.py dependencies, a note about it in quick install guide and update windows installer guide section.

Version 2.4.21:

43f9d7418 Remove warning about buggy Faust indexing for Windows pyfaust (as 8fb4df1 6658f9a5 fixed it).

Version 2.4.20:

c96b108e0 Fix pyfaust.Faust slicing/fancy idx win10-py3.6-VS specific bug.

Version 2.4.19:

3fda17aed Fix pyfaust fancy idx bug on py2.7.

Version 2.4.17:


Version 2.4.18:

367568634 Update lightly the third jupyter notebook.

Version 2.4.16:

3626139c1 Update the fgft_palm() example in API doc and notebook.
3653f8964 Fix 2 pyfaust windows bugs.

Version 2.4.15:


Version 2.4.11:


Version 2.4.12:


Version 2.4.13:

3653f8964 Fix 2 pyfaust windows bugs.
3460cbcb3 Misc minor changes.

Version 2.4.14:

ea950c0a3 Fix pyfaust windows minor bug: occurring on not defined _NSI_INSTALL_PATH when pip package is used.

Version 2.4.10:

1b767a2cf Support op+F, op-F, op*F, op@F and norm(F,ord), dot(F,op) in pyfaust with op a scalar or a numpy.ndarray.

Version 2.4.9:

06aee3361 Misc updates.
d17e2d0de Simplify the script test_svd_rc_vs_err.py (used in notebook 2: Faust manipulation).
2bc667aad Fix issue #101 on pyfaust.Faust mul. by a ndarray of ndim == 1.
f7bd1ba84 Update the Jupyter notebooks and link the third one on doxydoc main page.

Version 2.4.8:

964587c4d Add a jupyter notebook about factorization wrappers.

Version 2.4.7:

4995cb0e5 Update Faust.normalize() doc. and jupyter notebook consequently.
dc3c733fa Implement pyfaut.Faust.__matmul__() (@ overload), dot() and change __mul__() to rely on @ when it applies.
5df55133c Update pyfaust.Faust.imshow() to limit the number of columns when there is too many factors (displayed modulo max_ncols).
a762484b6 Add a Jupyter notebook about Faust objects manipulation and link it from the main page of doxydoc.
208c7eb6e Minor fix.
844989a49 Update the python script plotting sparse faust size (bytes) versus RC.
4cdc56a09 Add pyfaust.Faust.conjugate() alias of conj() as it exists in numpy.
80b50a559 Update Paper references in doxydoc mainpage.
7844d97f1 Minor refactoring in matfaust.eigtj()/svdtj().

Version 2.4.6:

f6299b5b1 Fix 'desc' key value to 'descend' in sort() because Matlab R2016 doesn't want it

Version 2.4.5:

9de10cc74 Workaround memory issue in matfaust.Faust.svdtj().
795ff00ad Fix erroneous use of spdiag() coming from smallbox (replacing it by sparse(diag()).
e56ab7c0e Update few things in API doc and modify matfaust.Faust.imagesc()/pyfaust.Faust.imshow() in order to print titles.

Version 2.4.3:


Version 2.4.4:

fb426cc9c Add a Jupyter Notebook to introduce the different ways to create a pyfaust.Faust.
419d593c8 Misc minor changes.
5d595cb2b Configure faust.nsi to open online doc as a workaround to issue #99.
deb039b97 Add MatDiag::get_rows()/get_cols() (random rows specified by indices).
172039e25 Add MatDiag::get_rows() (for getting contiguous rows).
71d30c58b Add MatDiag::Clone(), norm functions, get_col(), get_cols().
a53ac1c24 Add MatDiag::multiply(MatDense), MatDiag::multiply(Vect), MatDiag::transpose(),conjugate(), ctor for non-square diag. matrix.
2ae7855ee Minor change.
256bf9a9b Continue the impl. of MatDiag.
88f53236b Add a FAQ with an explanation on how manually download faust external data.

Version 2.4.2:

4cd4d3520 Fix bad path in doc for Windows.
3df5d3a5b Replace FAµST by FAuST in all python pyfaust files to avoid charset issue on Windows doc.
8de4108c0 Try enhancing speed by adding more jobs for ctest.
686318dbe Specify charset UTF8 at make-install stage too (gitlab ci macOS package job).
7c0e43714 Add CMake option NOCPPTESTS (OFF by default) to do pure wrapper test in gitlab ci jobs ctest_python, ctest_matlab.
e4b9ccc6d Update windows nsis installer to download FAµST external data with powershell as a fallback solution when python was not found.
6ab7ab4fd Refactor data URL and filename into variables.
4de042280 Make the windows installer (nsis) able to download faust data.
97fefda38 Update gitlab and CMake build scripts to download data files in package post-install scripts.
137071047 Handle in pyfaust auto-downloading of FAµST remote data (only for pip package).
93675bdaa Add a python script for downloading and uncompressing FAµST package data.
eb363e61e Fix startup.m overwriting issue in package post-install script (linux/macos).
cc0a85094 Update faust.nsi to edit user's startup.m for faust path auto-setup at installation on Windows.
8cb6d9df0 Replace FAµST by FAuST in all matlab files to avoid charset issue #37.
89ba0e728 Minor change.
fb21f4521 Update macOS and linux post-install scripts to edit also user matlab startup script (not only system's).
6c2b5b0db Update doc links in quick start guide, making difference between local and online doc.
89a453577 Complete/Correct memory management of Faust::Transform by RefManager.
dcfee93d1 Update license headers and documents.
2a91a4c4a Update the guide for pyfaust install in virtual environments.
5c2b61d7a Add a skeleton for Faust::MatDiag (yet to implement) and a starting test.
7a5628629 Minor changes.
c994c303e Update matfaust API doc.
72931da03 Secure Faust::RefManager::release() by raising a runtime_error when an unknown pointer is asked to be removed.
b501d5917 Optimize memory usage for slicing and normalization by using Faust::RefManager added by b758c6a3
3fb9018da Add a first implementation and a basic test for the Faust::RefManager which will be dedicated to a memory optimization of Faust::TransformHelper.
2e97329fb Make threshold and max_num_its parameters available for matfaust/pyfaust.Faust.norm(2).
29a9211ed Refactor the duplicated Faust::power_iteration() codes into one function for all Faust::LinearOperator hierarchy of classes (CPU).
ed7ed28b5 Add a benchmark script for FGFT algos accuracy and execution time (box plots).
71a68eb7e Document pyfaust/matfaust.FaustFactory.svdtj and fix bug in case of non-square matrix.
cd26d18e1 Optimize algorithms Faust::HierarchicalFactFGFT and faust::Palm4MSAFGFT.
0b23bbd52 Undo one condition added by ce4d08ad in Faust::prox_sp() because MatDense::getNonZeros() is not optimized with caching.
f787849ca Update Faust::spgemm (faust_linear_algebra) to support computation on adjoint/transconjugate matrices.
ba9dbed85 Add pyfaust.FaustFactory.svdtj().
59bc398a6 Add matfaust.FaustFactory.svdtj().
f960e4d88 Try to optimize GivensFGFTParallel::update_L() by using OpenMP to parallelize the product of each parallel Givens matrix with L but it was unfruitful.
3acd33ab8 Optimize Faust::GivensFGFTParallel::update_L().
a7917acef Optimize Faust::GivensFGFT::update_L().
97c9d8b3b Minor change: rely rather on Eigen to compute addition in Faust::Vect += operator.
45fc99b15 Fix Faust::Vect += operator overridding, it was adding the vector to itself instead of adding the two vectors ('this' and operator right hand argument vector) together into 'this'.
d0585ef8c Replace use of MatSparse by Vect for D in Faust::GivensFGFT* algorithms.
1197fa327 Catch exception raised in (pyfaust) FaustFact.hpp when Palm4MSA or Hierarchical PALM algos fail on an infinite lambda.
0a718bc5f Add faust_WHT.h(pp) to move wht factors computation from faust_TransformHelper (Refactoring).
4d0b73432 Refactor fft_factors() code from faust_TransformHelper.h(pp) to algorithm/factorization/faust_FFT.h(pp).
cc7be7a72 Minor change: properly rename Faust::HierarchicalFactFFT to HierarchicalFactFGFT, Palm4MSAFFT to Palm4MSAFGFT and their params classes too.
ff1b04b20 Minor change.
7f4d5e521 Fix bug in pyfaust FaustFactGivensFGFT.hpp, t == 1 wasn't triggering the Givens algorithm but the parallel Givens algorithm.

Version 2.4.1:

1cda12956 Fix matfaust for missing return of diagonal eigenvalues arg in fgft_palm (and mex function) and update a API doc.
05a635dfe Add the alias eigtj() for matfaust fgft_givens() and the verbosity argument to these functions.
f5d02e59d Add verbosity argument to pyfaust fgft_givens() and eigtj() functions.
6ea4b6d3f Write matfaust wrapper to cpp Faust::GivensFGFT and GivensFGFTParallel with unit tests.
0a9631627 Minor changes related to GivensFGFT.

Version 2.4.0:

375ae80a4 Minor fix in pyfaust.FaustFactory.eigtj() code example.
39d5bd8b8 Update license notice and code headers for pyfaust (GNU AFFERO to INRIA license).
9654664bb Write the matfaust wrapper for C++ Faust::HierarchicalFactFFT and add a unit test.
9de703baa Simplify/Secure the mexHierarchical_fact function by reviewing the translation of matlab params struct to C++ Faust::Params equivalent.
5524052e1 Add compute time measure and plot in FGFT benchmarks.
8baeb1f56 Minor change.
0a8babdca Add FGFT error benchmark scripts (python and matlab) and a graph generation script using GSP matlab toolbox.
1e3301118 Unhide fgft_givens() in pyfaust, rename eig_palm to fgft_palm and document fgft_palm() and FaustFactory.
11bb527c6 Update documentation and API for pyfaust FGFT functions.
9abc0d4ad Hide pyfaust.FaustFactory.fgft_givens() and rename trunc_jacobi() to eigtj() with a new doc.
94626147e Fix matfaust product M*F (with M a matrix and F a Faust).
21d21ff63 Add a verbosity attribute in Faust::GivensFGFT.
fd37d5eea Minor change.
6f985cf3c Implement pyfaust wrapper FaustFactory.fact_hierarchical_fgft() and add a unit test to validate equivalence to C++.
372734a7c Add a pyfaust trunc_jacobi() alias for fgft_givens() and document it.
324a79d74 Implement pyfaust.FaustFactory.fact_palm4msa_fgft() wrapper to Palm4MSAFFT (aka FGFT) and a unit test (in test_FaustPy.py) to validate equivalency to C++ core.
06dae6485 Implement/Document/Unit-test pyfaust wrapper function fgft_givens() binding C++ core algos GivensFGFT and GivensFGFTParallel.
311459efb Add a TransformHelper ctor signature to authorize Transform object argument to be moved internally (instead of being copied).
0f5c9f0d3 Add move Transform ctor and move affectation operator overload with a unit test to check it's working.
df3fda376 Document the GivensFGFTParallel C++ class and update doc for GivensFGFT parent class.
7668db28a Update doxygen doc for GivensFGFT.
2bc8a1001 Update/Fix a few elements to validate GivensFGFTParallel C++ impl.
e1118da7f Add GivensFGFTParallel and a test (not validated yet).
e1d95ef12 Minor change.
0a10a2b16 Add MatDense::nonzeros_indices() and a unit test.
bf8d666fa Add MatDense::lower_tri()/upper_tri() and a small unit test.
e8ebf4bf2 Add (from FAµST 1.03) the matlab script implementing parallel Givens FGFT and also a test script as a baseline for the C++ impl.
a3cf00eda Add new function GivensFGFT::compute_fourier() to return the fourier matrix approximate.
d79875124 Fix MatDense compilation error occurring on Visual Studio by renaming min() to min_coeff().
379970a47 Modify GivensFGFT::get_D() with opt. bool arg. to make possible to get ordered D (in ascendant order of eigenvalues along the diagonal).
fbbc815af Add reference matlab impl. and test scripts for Givens Diagonalization.
771cacf33 Update GivensFGFT test: correction of Fourier matrix approximate, displaying pivot choices (c++ vs matlab).
6cd3f219f Update GivensFGFT::update_err() to calculate the error through the same formula matlab script uses and with a period of 100 iterations.
de96b7d12 Complete GivensFGFT test and add test data test_GivensDiag_Lap_U_J.mat.
4e63fb743 Implement substeps GivensFGFT::update_fact(), update_L(), update_D() and update_err().
d79e85511 Fix missing return in Faust::Vect<FPP,Cpu>::min().
d0396b893 Add MatDense::get_cols(vector<int>) and MatDense::setOnes().
661a37f2f Add MatSparse::setCoeff().
25469778a Implement substeps GivensFGFT::max_L_into_C(), choose_pivot() and calc_theta().
aeff8ace6 Add MatDense::get_row() with a test.
4174df308 Add MatDense::rowwise_min(), rowwise_min(int* col_indices), MatDense::min() and a test.
df6f1f1ef Add Faust::Vect::min() and min(int* index) with a unit test.
9d7cb4fcb Update GivensFGFT by adding the main loop calling the substeps with a generic function pointer.
1eebc177e Add GivensFGFT's getters.
2922fbe36 Update GivensFGFT skeleton.
d9c915269 Add C++ skeletons for Givens FGFT diagonalization algo. and a test.
4cd71d691 Update the pyfaust doc for SPLINCOL constraint and add an example.

Version 2.3.1:

1bcaebec7 Update HierarchicalFactFFT, Palm4MSAFFT and their tests.
0b54ea709 Update Palm4MSA and HierarchicalFact python/matlab/C++ tests since 64bbc2f0 modified Palm4MSA when running on a complex matrix.
b10edd22f Handle Hermitian matrix product in gemm_core() function (faust_linear_algebra) and use it in Palm4MSA(FFT) algos.
3fcf374f8 Fix constraints related bugs in pyfaust.factparams.
529d3e78a Add a first implementation of HierarchicalFactFFT (along with ParamsFFT and a test which compiles).
829b864b4 Update several elements to finish the Palm4MSAFFT impl.
7f9c00e08 Implement Palm4MSAFFT::compute_grad_over_c(). Fully implement Palm4MSAFFT (in waiting for validation).
a58590e6a Implement Palm4MSAFFT::compute_grad_over_c().
372729a19 Add a skeleton for Palm4MSAFFT with the two methods to override from parent class Palm4MSA: compute_grad_over_c() and compute_lambda().
a7fe01d44 Add MatDense::eye() static function.
c45e38623 Add a skeleton for ParamsPalmFFT.
2a862d9ef Minor fix.

Version 2.3.0:

a80857427 Minor change.
c9497455d Add a small note about Anaconda env. in doc.
13344ec70 Minor changes.
073c4dac1 Minor fix in matfaust.faust_fact().
0d77a4990 Set tag matlab to gitlab pages job.

Version 2.3rc18:

cf32849c7 Add a guide doc for installing pyfaust in python virtual environments.
9b05cf9ba Set the cython compiler directives with language_level attribute to avoid error with python 2.7.13.
3b701ea0d New gitlab job tags matlab and tux_packager.
ec52e5ce1 Delete test_wrapper stage, jobs moved to test stage to increase speed of gitlab ci pipelines.

Version 2.3rc17:

439032f9f Change macOS postinst. script (pkg) to open the doc mainpage instead of README.html like it's done for windows installer. Add a linux postinst script (rpm/deb) to display the path doc.
243dd6e9b Fix error on doxydoc generation for pyfaust on Windows and macOS.
59dad04eb Add a Windows sub-section in installation section of the quick start guide.
2969c461d Update constraint.png table, add its odt origin file and add the link into matfaust.factparams.ConstraintName API doc.
66293eefa Fix missing @staticmethod decorator for several functions in pyfaust.demo (it's mandatory for python 2.7).

Version 2.3rc16:

d8ba8c1a1 Document a little more pyfaust/matfaust.demo.runall().
07f17f300 Fix memory leaks in TransformHelper::eval_sliced_Transform() and eval_sliced_Transform().
ddbe6c764 Add a gitlab job for generating a pip package on Windows 10.
808ae0a6c Optimize eval_slice/fancy_idx_Transform() by removing in-heap arrays and fix by the way a bug introduced/revealed by 66166131.
cdf824f6a Update py wrapper cmake script and setup.py.in to compile the wrapper with VisualStudio (instead of MinGW).
657c6a754 Adjust cpp code because of Visual Studio.
2033b428b Minor fix.
2edfb4f64 Minor changes/fixes.
f1736f230 Add zlib and hdf5 licenses.
662804310 Fix a bug in pyfaust.demo due to deprecation in matplotlib.
7bce0a087 Correct error on CI_COMMIT_TAG variable used for windows pip pkg generation.
0e2cc8d02 Use matio static lib when compiling/linking for generation of macOS/linux wheel pip packages.
b09a43fff Strip and set optimization -O2 for py2,3 shared libs.
466037aec Update C++ license header: copyright year and authors.
84dd1f586 Add function pyfaust/matfaust.license() displaying FAµST license ref. and update copyright time etc.
51519b3a9 Automatize with cmake the insertion of license header in each *.py of pyfaust wrapper.
e29869845 Complete pyfaust.demo API doc and correct few things: function names, arguments by default...
bc53a014b Fix ctest_python gilab job failing on setup.py because of empty cpack version variable, undo workaround e1209bc9.
92cbad195 Add pyfaust.demo.runall(), pyfaust.demo.allfigs().
72629da9e Update doc output folder to always use the name last-doc (gitlab pages job).
4069ff64f Update pyfaust/matfaust.FaustFactory.fact_palm4msa() to optionally return the lambda scalar.
22f98f319 Call pyfaust.ConstraintGeneric.project() parent method in child class methods (for argument M checking).
a916c98da Update pyfaust.factparams API doc, in particular for the constraints/prox. ops.
bd5f048ea Include license files (Faust and matio) in pip packages and specify the type of Faust license in pip manifest.
0397ca812 Fix Faust.normalize() for the case: normalizing rows with 1-norm or inf-norm.
813df9385 Add utf8 encoding header in demo.py for handling non-ascii characters in python 2.7.
45d5e260b Fix a segfault bug located in c++ Faust::MatSparse::randMat() occurring on Faust addition py. unit test (because of randFaust()).
fdf3f5873 Update API doc by fulfilling all brief descriptions of matfaust/pyfaust modules and classes.

Version 2.3rc14:

cf0ab3a73 Add matfaust.factparams.ConstraintList in the same idea than previous commit did for pyfaust.
bc82167fd Introduce class pyfaust.factparams.ConstraintList in the ongoing effort to simplify facto. algorithm parametrization.
8443a17ed Fix last commit changes in factparams.py for py2.7 and set the pyfaust/matfaust.ConstraintGeneric class abstract.
d61c7b1cb Update pyfaust for handling correctly the simplified parametrization form ( ['rectmat', j, k, s], {'rho':.4, 'P':.7 }).
892e81c66 Add gitlab ci jobs for windows pip-wheel pkg generation and a custom setup.py.
4cf17b836 Update faust.nsi and pyfaust.demo to retrieve demo data folder in different situations: install from nsis package, install from pip package on windows.
38ff7991a Update setup.py to embed the demo data mat files in pyfaust wheel packages.

Version 2.3rc13:

c242598ef Add pyfaust wheel/egg release package jobs and refactor revision pkg jobs.
ee260469d Update pyfaust API doc (fact_hierarchical()).
970a3c845 Update matfaust API doc (fact_hierarchical()) and add ParamsHierarchicalFactSquareMat.m and ParamsHierarchicalFactRectMat.m to doxydoc parsing file list.
a08c510fe Add ci jobs for pyfaust egg/wheel revision packages generation.
a97e62c2c Allow temporarly the failure of ctest_python job without breaking the CI pipeline.
989eb180a Catch exception when Faust.save() fails in dynamic library to avoid python/matlab script to crash.
744c36ea7 Fix of minor bug introduced in pyfaust.FaustFactory.fact_hierarchical() by a514bcb5 or 68796c85.
3a8a43dfc Update API doc for matfaust.FaustFactory.fact_hierarchical().
9547f51e5 Add pyfaust/matfaust.faust_fact() as a shorthand for FaustFactory.fact_hierarchical().
4cdb3e057 Minor change.
d8ddeaa2a Return to caller the parameters used in FaustFactory.fact_hierarchical().
5472bc28b Prepare setup.py to generate eggs and wheels binary packages.
ab78d4dbe Bind into pyfaust the prox operators from cpp core.
a74ae436a Bind into matfaust the prox operators from cpp core.
903047b2e Minor change.
667dd0bfa Allow to get back lambda from (matfaust/pyfaust) FaustFactory.fact_hierarchical().
b1530d726 Add pyfaust/matfaust.factparams.ParamsFactFactory to build in transparency the simplified parameters (ParamsHierarchicalFactSquareMat/RectMat).
d8cb2db0b Impl. MEG/Rectangular matrix factorization simplified parameters.
6fd439a4f Impl. hadamard hierarchical factorization simplified auto-parameters.
6bb158a59 Do for pyfaust the same as the previous commit (f10ca9b3) did for matfaust.
6d3d5f65d Modify matfaust.factparams.ParamsFact and sub-classes to decrease the number of mandatory arguments.
688c6b34b Change expire duration for revision packages: from 6 months to 1 week.
818c03a6e Update pyfaust according to what the previous commit (78e526cd) did for matfaust and add function FactParams.is_mat_consistent().
c8b4bc5c8 Auto-infer matrix dimension sizes from constraints in matfaust.factparams.ParamsHierarchicalFact and secure the type of p argument passed to FaustFactory.fact_hierarchical() and FaustFactory.fact_palm4msa().
959366739 Add alt. signature to Constraint* constructors to ligthen instantiation code (pyfaut and matfaust).
413d61b7c Fix matlab fft demo: re-add add tool scripts erroneously deleted by eee2ad44.
034836b0d Minor change.

Version 2.3rc12:

96f20abe2 Filter out from API doc the signature Faust(varargin).
6c4ffc69b Add uncomplete doc for both pyfaust and matfaust Faust.normalize().
c3076ec4d Extend pyfaust.Faust.normalize() and add unit tests.
d6179842c Secure Faust.normalize(): avoid trying normalize zero vectors (kept to zero).
c63541fff Add a wide covering unit test for matfaust.Faust.normalize().
83da89f96 Extend matfaust.Faust.normalize() to other available norms than 2-norm and for row-based normalization.
d8f3b90c7 Add figure plotting of bsl demo distance to sources (in pyfaust).
7bd89fbb0 Add figure plotting of bsl demo time comparison (in pyfaust).
8dc6b370a Add figure plotting of bsl demo speedup (in pyfaust).
464c0b790 Port BSL matlab demo to python into pyfaust.demo.bsl class.
c8308d493 Add pyfaust/matfaust.Faust.normalize() (currently normalizing only with the 2-norm).
8a43cd211 Extend pyfaust/matfaust.Faust.get_factor() to return a Faust composed of a sub-sequence of another Faust factors.
51a4403d2 Fix minor bugs in pyfaust.demo.quickstart.run().
f0594586b Port the Greedy OMP Cholesky algorithm from Matlab to Python in module pyfaust.tools.
00cfde5da Enhance and secure FaustFactory.eye(), add doc.
397ba8464 Update pyfaust/matfaust API doc, in particular for Faust addition and substraction.
36957e8d9 Disable Faust constructor auto-opt. of factors by conversion to sparse from dense or inverse.
3da00f073 Add the function pyfaust/matfaust.Faust.isFaust().
493f1f7e5 Add the function pyfaust/matfaust.version().
e7870cfde Minor change.
6d97cd7a9 Add new function FaustFactory.eye() and modify/add/fix several things about concatenation, addition, substraction and real-complex conversion of Fausts.
8d0bfec80 Implement in pyfaust addition and substraction between Fausts or Faust and scalar.
4df8cd0db Implement in matfaust addition and substraction between Fausts or Faust and scalar. Add also unit tests.
8da6dd57c Impl. for pyfaust the division of a Faust by a constant, add also unit test and doxydoc.
9d0d57695 Impl. for matfaust the division of a Faust by a constant, add also unit test and doxydoc.
74c5f3686 Impl. for pyfaust the multiplication of a real Faust by a complex Faust and add a unit test.
87cd5fb9f Impl. for matfaust the multiplication of a real Faust by a complex Faust and add unit test.
b5c87e8f4 Impl. for matfaust the mul. of a real Faust by a complex scalar, add related unit test along with Faust.complex().
e597a1867 Impl. mul. of a real Faust by a complex scalar in pyfaust and complete mul. unit test.
bed5f630f Minor change in pyfaust unit tests.
64784b37f Fix bug raised by issue #66: mex code was inconsistent in the copy of matlab param struct to C++ world, leading to memory errors when accessing fields.
cb487b605 Add pyfaust.Faust.pinv().
b438ce6eb Add documented matfaust.Faust.mldivide() and pinv() functions.
f07e1ded6 Handle negative indices when slicing in pyfaust, add related unit tests.
ee0841dbd Update API doc and fix in matfaust.Faust the horzcat() and vertcat() functions (varargin wasn't set).
d10ec961c Minor change in pyfaust unit tests (same as 31fc9f9d).
0f0569e4e Block explicitely pyfaust.Faust fancy indexing when used in the both dimensions.
7ec7d55a5 Forbid slice step == 0 in pyfaust like numpy.
60b9005f4 Add pyfaust unit tests for 322c8533 (slicing with arbitrary steps).
5c6ecf881 Handle negative and >=1 slice steps in pyfaust and do the same as what 8db762bf did for matfaust.
2995b705a Minor changes in pyfaust slicing unit tests.
7d9ec3834 Block in matfaust the kind of Faust indexing that create empty Faust and fix by the way bug of issue #30.
b97bbaf0a Add matfaust.Faust unit tests for indexing by vectors and slicing with negative steps, fix by the way a bug.
992ba7841 Re-enable the slicing test using negative step thanks to e6faabc8.
1fc6e6d6f Add indexing by vector in matfaust.Faust.subsref() binding it to C++ core impl.
6966918a8 Simplify matfaust.Faust.subsref(): less lines same results with a loop (one ite. per dim.).
e3e8ac6d5 Add unit tests for pyfaust.__getitem__()/fancy indexing and fix a bug occurring for a 1-factor Faust fancy indexing.
a127751d1 Start implementing fancy indexing for pyfaust.Faust.__getitem__().
0bf0bd61f Add matfaust.Faust.imagesc() and pyfaust.Faust.imshow().
01ee148e6 Rename (py/mat)faust.demo.hadamardfact to (py/mat)faust.demo.hadamard.
1a5d7ce0f Rename in FaustFactory, hadamard() to wht(), fourier() to dft() (both for pyfaust and matfaust).

Version 2.3rc11:

a02d45e7e Transform matfaust.demo sub-namespaces into classes to be consistent with pyfaust organization.
ffb56c677 Add the plotting part of the norm hadamard pyfaust.demo.
0e0cc6b80 Port the computation part of matfaust.demo.hadamardfact.norm_hadamard() to pyfaust.demo.hadamardfact.
9857958a8 Fix a bug in matfaust.FaustFactory.fact_*() functions: the parameter is_update_way_R2L was ignored.
2a4e557b6 Update API doc.
91db967f3 Port matfaust.demo.speed_up_hadamard to pyfaust.demo.hadamardfact.
3371a7ade Disable unit test assuming an empty faust is authorized (because it's not since 097e9e43).
61dd93ce9 Update pyfaust/matfaust.Faust constructors to handle Faust(A) where A is a matrix/array and to forbid empty Faust creation.
8f5a9daf2 Complete pyfaust.demo.hadamard_fact with computation time gathering, result save and plotting/saving figure.
4e3ac8f19 Start the python port of demo_fact_hadamard.m into pyfaust.demo.hadamardfact class.
dea257d4e Fix a small bug in FaustFact.hpp: the switch case was missing SPLINCOL constraint type.
d0c51d28f Fix minor bug #67.
309b26592 Group factorization parameter classes into matfaust.factparams namespace.
80a4b818c Fix a bug in cmake ctest cmd for launching quickstart demo.
62ca98182 Merge pyfaust.params and pyfaust.constraints into one sub-module pyfaust.factparams in order to simplify pkg organization.
0ee027b92 Integrate python quickstart script into pyfaust.demo module.
b772ea996 Generate doxygen doc for pyfaust.constraints, pyfaust.params and pyfaust.demo and add a script to avoid fake namespaces generation.
078aa6338 Simplify pyfaust.demo old sub-package to a module with fft, runtimecmp old sub-modules being now classes.
24c7377de Add pyfaust demo scripts (ported from matlab: fft, runtimecmp).
efa484d8d Minor fix.
0629720b4 Add in pyfaust and matfaust.FaustFactory.rand() the possibility to set the density per row or per column of each factor.
b657e30d0 Add another signature randMat() for both Faust::MatDense and Faust::MatSparse in order to random-generate with a density per-row or per-column approach rather than a global density approach for the whole matrix.
c4bbdb8aa (Unit)test faustpy.Faust.concatenate() for more configs.
234693292 Change the boolean is_real argument of FaustFactory.rand() to str 'complex'/'real' (for both pyfaust and matfaust).
2294eb633 Reorganize the pyfaust module into a real package with submodules.
c7adcadd2 Minor change.
5791b17d2 Avoid creation in demo scripts of output or Figures folders if exist already.
fe228306b Minor change.

Version 2.3rc10:

8f08db70d Remove totally misc/demo folder with its cmake scripts since all the matlab demos and data are handled by wrapper/matlab/CMakeLists.txt.
5381d615b Fix memory leak in Faust::TransformHelper::randFaust() (issue #63).
a10e6a9e7 Move misc/demo/run_all_demo.m to +matfaust/+demo/runall.m and enable it for doxydoc parsing.
f96c6a533 Integrate runtime cmp matlab demo scripts into matfaust.demo namespace.
890a62d51 Integrate bsl matlab demo scripts into matfaust.demo namespace.
e5d58eec7 Integrate fft matlab demo scripts into matfaust.demo namespace.
46f207451 Automatize/simplify the listing of *.m files in +matfaust and their copying/parsing for matlab inline doc.
59dd549a2 Implement in matfaust.cat() the recursive concatenation of n Fausts/matrices and update the API doc.
f8934a6df Implement in pyfaust.concatenate() the recursive concatenation of n Fausts/matrices.
a089fa358 Enhance speed of continuous integration by removing dmg generation (macOS) and passing cmake option BUILD_TESTING=OFF for all packages.
06511ff6d Integrate quick start matlab demo scripts into matfaust.demo namespace.
63e408e71 Minor change.
1440351e1 Fixing issue about not visible brief descs of vertcat(), horzcat() (raised by issue #50).
4524fc931 Implement the sparse/full-matrix-to-Faust concatenation with on the fly matrix-to-Faust conversion.
66e900762 Disable display of Faust small factors by adding an optional-default-to-false argument to to_string() and Display() functions.
73d2fb955 Complete the hadamard fact. demos integration into +matfaust by changing filepath for output figures, creating the needed parent directory in run_all_demo.m and removing the original scripts in misc/demo/Hadamard_factorization.
ba835d3f9 Fix a bug in complex case of concatenation in matfaust.Faust.horzcat() and vertcat().
c9d4188de Minor change.
1d29dfec9 Add sub-namespace +matfaust/+demo/+hadamardfact with the demo scripts associated and integrate them to the doxydoc.

Version 2.3rc9:

98d960aef Fix a bug introduced by 68648185 into Faust::TransformHelper::fourierFaust().
8a7cbfeb1 Add to Windows build the conversion from doxy. doc to matlab inline doc.
ffd64df4d Convert doxy. doc. to matlab inline doc for all classes of matfaust namespace.
e60cbc51a Minor change in matlab inline doc generator.
19a43a67f Add code doc. for pyfaust.concatenate().
6d00170ba Minor change.
e86091f87 Secure the constructor matfaust.Faust(handle,isReal) to avoid inconsistent situations where the handle points to a real or complex Faust::TransformHelper while isReal is resp. false or true.

Version 2.3rc8:

65e2e0a69 Add code doc. for matfaust.Faust.cat()/horzcat()/vertcat().
541447c7e Remove a line about scale arg. in code doc. Should have been removed by 3b3f82e5.
27c2e5822 Manage out of memory errors for FaustFactory.fourier()/hadamard() and limit order to 2^31.
8e5075630 Add a unit test for pyfaust.Faust.concatenate().
67c6974af Add a unit test for matfaust.Faust.cat/vertcat/horzcat().
a64f11a69 Implement concatenation of Fausts in C++ and bind the wrappers py/matfaust to it.
464986511 Add new static function Faust::MatSparse::eye().
34caf175b Make the cmake option BUILD_TESTING useful by ignoring test compilation if set to ON.

Version 2.3rc7:

124204c04 Modify slicing part of old test script for pyfaust because of d6d75e96.
a971c28b5 Add unit tests for Faust mul. by a real scalar (pyfaust and matfaust).
4f28eb9da Add unit tests for pyfaust.Faust.size and equiv. matfaust.Faust.numel.
79dfc22d5 Fix a bug: pyfaust.Faust.__getitem__() returns a Faust when indexing an element F[i,j].
c408f913f Fix windows package missing demo. mat files.
9bc2e64fd Handle mul. of Faust by a cplx matrix in pyfaust and add unit tests.

Version 2.3rc6:

c70d22418 Update demo scripts to conform to last changes in API.

Version 2.3rc5:

2d2297405 Overload in matfaust.Faust the functions reshape, cat, horzcat, vertcat only for blocking their utilization clearly.
964f49708 Implement inf-norm for pyfaust/matfaust.Faust and validate with unit tests.

Version 2.3rc4:

aa3d3c7f9 Slightly modify unit test for matfaust.FaustFactory.fourier().
244bdbab7 Fix a bug and add related unit tests about slicing a Faust and then slicing again the sliced-Faust.
363e66a15 Update the API doc.
b01a39abe Enhance FaustCoreCpp initialization by avoiding to create an empty/useless Faust::TransformHelper() into the default constructor.
338f2fc75 Optimize Hadamard and Fourier Faust::TransformHelper initializations (avoiding to copy the factor matrices created, directly using them).
748bf0226 Hide scale argument in constructors matfaust/pyfaust.Faust() and display a deprecated warning if used.
a0f7bf439 Implement the commutativity in the mul. of a Faust by a scalar in matfaust.
bb0428fe0 Update quick start README and API doc.
ac1f3d009 Bind pyfaust to C++ impl. of Fourier Faust and add a py unit test for it.
518548219 Implement Cooley-Tukey in C++ and bind it into matfaust.FaustFactory.fourier(). Add a related unit test in FaustFactoryTest.m.
3ad43f824 Fix a bug in matfaust.Faust.get_factor() happening when the Faust is conjugate(-transpose).
2a4207e2f Add a unit test for matfaust.FaustFactory.hadamard() into FaustFactoryTest.
6b72c4610 Bind the C++ impl. of Hadamard-Faust into matfaust.FaustFactory.hadamard().
22b99e8a5 Add a unit test for pyfaust.FaustFactory.hadamard().
507f4700f Implement Hadamard-Faust in C++ and bind it into pyfaust.
4ca0b5701 Add a small unit test for pyfaust slicing.
d3d3cc211 Simplify the C++ impl. of Faust slicing and fix a mem. leak.
5eb914165 Implement multiplication by a scalar in pyfaust.Faust.__mul__().
612a88d6c Implement multiplication by a scalar in matfaust.Faust.mtimes.
4c160adf1 Fix a bug in Faust::Transform constructor: the first factor must be cloned when a lambda scalar is passed even if cloning_fact is false.
60edffa48 Update the doxygen doc's main page and the quick guide.
3d91797dc Rewrite Faust.get_factor() (for both pyfaust and matfaust) to firstly not altering the storage organization of the matrix copy of the factor (sparse or full) and secondly to optimize the function (fewer copies, etc.).
a870fb67f Minor change.
03dae3fae Minor change.

Version 2.3rc3:

80b0cbf15 Update the main doxydoc page and the quick guide README.
e0057a05d Fix a bug in matlab inline doc generator script.
335589fcf Erase build directory if exists before building for Windows installer generation.
3a99953b5 Specify automatically the exact python 3 major-minor version used in README doxygen/html doc.
3164e6a93 Add the README page (quickstart guide) in the top menu of doxy. mainpage ("Related pages" menu item) and integrate it more consistently in the web page layout.
7c0698b80 Make Palm4MSA and HierarchicalFact. algos compatible with complex matrices (C++, Matlab, Python).
9306b220e Update doc.
b5c89cb4b Add a new way to find python2 in cmake script.
263528aa7 Minor change.
b94130ffa Review slicing in pyfaust.Faust.__getitem__() and matfaust.Faust.subsref().
6e110ddd0 Change the default norm computed for a pyfaust.Faust to Frobenius norm.
18a1d95b3 Fix bug in mex cpp code for matfaust.Faust.display(): Windows version prints nothing in Matlab terminal.
de9cf834d Correct the matlab path to matfaust namespace in windows installer generator script.
65e53826f Add a gitlab yml job to generate a Windows installer for each git tag.
0e4fe8358 Update gitlab yml job and nsi script to generate API doc for each commit and deliver it into Windows installer.
f62a277f3 Modify slightly cmake scripts to be able to generate doxygen API doc on Windows.
e5b8387a5 Add a gitlab yml job to generate a Windows binary package for each commit.
ca3221043 Add NSI script for binary packaging of Faust on Windows platforms.
c3b106dbc Add pyfaust wrapper compilation support on Windows using MinGW.
41631fd6e Move above in the script the c++11 detection to fix a bug occurring with mingw compil. of faust (windows).
75caec5fa Reenable Windows nightly tests.
744f21894 Update cmake scripts for matio header inclusion and library linking for Windows.
3b2f0d5aa Simplify the bug fix made by 41312154.
b078abf7b Fix bug affecting MATLAB_ROOT path separator when using MinGW or gcc on Windows.

Version 2.3rc2:

8cecb7db0 Ensure to return sparse factors in Faust::Transform object resulting of Palm4MSA and HierarchicalFact for the two wrappers.
19b9be718 Add Faust::transform() constructor for definition by MatSparse factors and fix bug in scalarMultiply().
0a3386ace Block matfaust.Faust by sparse matrix multiplication and display error msg.
8ad075845 Fix bug in matlab wrapper unit tests launching.

Version 2.3rc1:

7244ac2a0 Add factorization algos unit tests.
64261b496 Separate constraints argument of Hierar. fact. in two args: factor and residuum constraints.
f6ba6b165 Remove from matlab doxydoc the function argument direction modifier: 'in'.
878f401f1 Verify pyfaust.StoppingCriterion construc. arguments consistency.
4d8dfac1e Minor change.
5b0123c15 Prevent explicitly complex matrix factorization.
f1660ddb8 Move totally Faust.rand() to FaustFactory.rand() and update API doc.
8dabef6eb Simplify the way init_facts is used/defined in both matfaust and pyfaust FaustFactory.
17c9d8bf7 Update pyfaust wrapper (constraint and param classes for facto.).
be9ec34c3 Add FaustFactory.rand() in pyfaust and matfaust. Update FaustFactory API doc.
1ca0c9f82 Add matlab wrapper for factorization algorithms (palm4msa and hierarchical fact.).
3f5f518d1 Add function Faust::StoppingCriterion::Display().
e8e874d06 Add py wrapper for factorization (both palm4msa and hierarchical fact.).
186df11e7 Complete the cpp unit test for PALM4MSA.
2741ed28c Add a new constructor to Faust::StoppingCriterion.
bb7699d12 Add a new constructor to Faust::TransformHelper.
9990db4ce Add the capability to do an optimized copy of factors to another Faust::Transform's constructor.
3730fd3f2 Fix cpp delete error.
cf7a3ee0d Minor change.
b2b682e4f Update gen_matlab_inline_doc_from_doxy_blocks.sh to make it work on macOS.
1029faafa Minor changes.
cd5394112 Minor changes.
3f3f06b24 Minor changes.
b9791a517 Update API doc (py/mat).
060f073d8 Change display function for a Faust.
10720cb90 Enhance random Faust generation.
3fd33fdf5 Disable gen_matlab_inline_doc_from_doxy_blocks.sh on macOS because currently the script works only on Linux.
fcdb75abb Add expire dates for packages sent to gitlab and keep a local copy of revision pkg for macOS.
bec686d87 Add equivalent functions matfaust.Faust.numel() and pyfaust.Faust.size().
74eef57fb Fix in cmake script a bug introduced by e92d4bc6.
c13a79c60 Fix missing namespace matfaust in matfaust.Faust.mtimes_trans() (next to 3f4d86cc).
270b16837 Update post-install script for py. wrapper (in next to edfcad65).
b6350ed50 Check that bounds are respected in matfaust.Faust.subsref().
7baa35132 Create a namespace for matlab wrapper: matfaust.
000aa27ea Add a script for editing Faust.m to generate a Matlab inline doc from doxygen code doc.

Version 2.2rc20:

ada0c0d64 Bind the C++ faust mul. (cb58f3a9) into matlab wrapper Faust.mtimes().
9a2a30518 Implement the mul. of two Fausts in C++ and bind py. wrapper to this impl.

Version 2.2rc19:

23e012dfe Bind matlab Faust.susbref() to the new impl. of slicing/subscript (c4c2c431).
96ec38f92 Minor change.
45fc79d4b Fix Faust::MatSparse::get_rows/cols(): nnz wasn't updated in submatrix.

Version 2.2rc18:

b6266a3bb Reimplement completely pyfaust.Faust.__getitem__(): now it returns a Faust object instead of a ndarray.
931956ae6 Update API doc.
f1e8f320e Rename module FaustPy to pyfaust.
7cf2e14d9 Replace FaustPy.Faust.isReal() by a dtype property.
a0c1e8e87 Add property decorated functions FaustPy.Faust.H() and FaustPy.Faust.T().
3df5a15aa Add postinst. script for macOS to open the readme automatically after installation.
b354a3d59 Set Faust.rand() more flexible in both wrappers by changing arguments (polymorphism).
687509f06 Temporarly disable Linux nightly tests.
743fe5d79 Rename matlab wrapper Faust.get_fact() to Faust.get_factor().
25149d10b Exclude Matlab wrapper functions mtimes_trans and subsasgn from doxygen doc.
39d662ae5 Rename Faust.todense() to Faust.toarray() and add a new Faust.todense() which returns a numpy.matrix.
ef586bb29 Update API doc.

Version 2.2rc16:

def1ee7a4 Rename FaustPy.Faust.get_nb_factors() to get_num_factors() and likewise for matlab wrapper get_nb_factor().
cd5da73e1 Modify the way identity matrix is initialized in cpp unit tests for mul.
62cc76a2d Fix wrong display of Faust transpose and update API doc.
89a1275a8 Override default __repr__() in Faust class and use it to refactor display().
bac3976e0 Add a new function to_string() in Faust::MatGeneric/MatSparse/MatDense/Transform to refactor their Display() functions and be able to get information string from a Faust without having to display it.
c5e67ca60 Delete FaustPy.Faust.get_nb_rows()/get_nb_cols().
23ac7a8a8 Rename FaustPy.Faust.size() to shape and use a property (decorator) instead of function.
1ab8e81c7 Rename nnz() to nnz_sum() (in matlab and py wrappers).
37ee5123a Minor fix in test script.

Version 2.2rc15:

0004e5b2d Rename RCG() to rcg() (matlab and py wrappers).

Version 2.2rc14:

7ba20186e Update guide doc.

Version 2.2rc13:

34692403d Add a new cmake option (and impl.) to generate a README with install. instructions for all systems.
86468b83a Install macOS release version into prefix /opt/local/faust like for linux (removing tag from folder name).

Version 2.2rc12:

1a901d585 Update readmes and their generation cmake script.

Version 2.2rc11:

58efd7731 Limit the gitlab-pages directory to doc/html (not the whole doc anymore).
71c830c36 Update doxygen mainpage.md
adaee7859 Update macOS installer readme.

Version 2.2rc10:

97fc14bd9 Send packages linux and mac to gitlab.
8fe7be478 Update API doc.
c060da2fa Add an option to pick operator norm or Frobenius to compute relative error. Calculate the norm directly with singular values instead of computing the approximate of M and then calculate the norm with it.
7ffaccb54 Update API/code doc.
d55e0ba5d Plot RC/density instead of RCG.

Version 2.2rc9:

0b037e093 Fix bug in Faust::Transform<FPP,Cpu>::updateNonZeros().
63bb1f160 Update API/code doc.
fd72d1b3a Fix python unit tests for RCG and density next to the fix c586c85b.
5fead3655 Fix constructor ignoring of multiplicative scalar when Faust obj. is constructed from a file (matlab wrapper).
f63d27b9e Add a faust test script showing how the .mat file size is related to RCG.
79230b492 Fix Faust.density() and RCG() for Py2.
f96697757 Implement multiplicative constant to apply to a Faust at initialization time.
129688d48 Handle also sparse matrices (csr_matrix) in list_factors argument of constructor Faust().
6aad9cc4b Minor change.
f606396ab Fix wrong index bug in one constructor Faust::MatSparse().
7d386c574 Add a script for showing truncated SVD accuracy versus the RCG.
a0acaa1eb Minor change.
9481bb034 Add gitlab pages with doxygen doc for each tag.
68e706134 Add pkg postinst. script to symlink matio if needed on debian/ubuntu sys.
a2950f2c0 Shorten the commit sha to its unique eight first digits in package names and versions.
fa923e9a2 Replace in doxygen doc the static date by the date of generation and display the cpack package version.

Version 2.2rc7:

751766fad Enhance deb/rpm post-installation script for matlab wrapper (more info and verifs).
56f48b0f9 Enhance deb/rpm post-installation script for python wrapper (more info and verifs).

Version 2.2rc6:

daa2823d1 Generalize matio static libs option to matlab in addition to python (143be5e4).

Version 2.2-rc5:

c6ba730ca Add a new package generation for linux using static libs for python wrapper.
207f423d9 Refactor raw coded data about matio from setup.py.in to CMakeLists.txt.

Version 2.2-rc4:

332abefab Compile and test for python2 even if python3 is found and likewise search the two versions of python and cython.
0e7ad1135 Minor changes.
178f31cb1 Minor change.
53dd03fd8 Add missing description for RPM package (based on debian pkg description).
2b2af0cab Minor change.
d1987824e Replace URL http://faust.gforge.inria.fr by http://faust.inria.fr in a lot of files.
4a9f2ea86 Minor change.

Version 2.2-rc3:

1ea25ea12 Avoid to exit in matlab postinstall script.
70f0ac5ac Add a new postinstall script specific to macOS.

Version 2.2-rc2:

bbd035827 Remove /opt from auto filelist for rpm package because it's a conflict with filesystem package.
a3820f88c Specify dependencies for rpm package and filter matlab's.
2fb2b58d3 Update py wrapper doc.
304d04d7b Filter more properly the doxygen doc when excluding C++ doc/static lib to keep only Python and/or Matlab wrapper doc.
a84a680b4 Add package postinstall script to automatize py wrapper setup.
67c8808aa Fix memory leak in Faust::MatSparse::randMat().
39ab8abb3 Add Faust.rand() to the matlab wrapper.
29666d981 Minor change.
54bd12555 Minor change.
281ebfe8f Update py. wrapper code doc.
765f513ca Minor change in Matlab unit tests.
f93d98693 Fix two randFaust() bugs on MacOSX/clang/py2.7.
f658f1e4b Fix bug in py wrapper display() occurring for complex Fausts.
cc6e1be12 Add a random faust generation method in cpp lib and py. wrapper.
6afed1933 Enable cmake code for C++ version detection and corresponding compiler flag setup.
80294b35c Implement Frobenius norm in cpp core lib. and bind py and matlab wrappers to it. Add related unit tests.
3ddb18150 Implement sparse matio/matlab file output for Faust factors with support of real and complex scalars, Faust's conjugate and transpose.
5c9d2cf09 Fix bug. Prevent save of empty Faust.
9fa87a55e Add L1-norm to core cpp lib, py. and matlab wrappers. Also add unit tests for this norm for py. and matlab.
0ce04cbbd Minor change.
c7814fb7d Fix matlab Faust destructor bug occurring when factors passed are invalid because of not matching dimensions and hence the Faust object is not really instantiated.
ce3646705 Implement Faust over complex field into Python wrapper and add related unit tests.
21b920f77 Minor changes.
cbb49a530 Add Matlab wrapper implementations of ctranspose() and conj() with associated unit tests. For Python wrapper add conj() and getH() (for conjugate transpose) but the unit tests are not relevant since we haven't yet the complex matrix support.
79a9fd03f Add unit tests for Faust deletion.
38d6bfd11 Move to a weak reference design pattern for Transform objects used in wrappers. Fix memory leaks for Transform.
3a41ff0d0 Add unit tests for Matlab wrapper Faust class.
48678a849 Slightly modify unit tests for norm(), __getitem__() and test params (num. of factors and dimension sizes).
9edf6d71c Handle save of complex or complex-transpose faust in Faust::MatDense::toMatIOVar().
058917e50 Handle save of a transpose Faust in Faust::Transform::save_mat_file() and Faust::MatDense::toMatIOVar()/Faust::MatSparse::toMatIOVar(). Allow py and matlab wrappers to access the transpose case by passing a boolean to core lib.
1c4dd74eb Add unit tests for not covered yet FaustPy.Faust functions.

Version 2.2-rc1:

32b5b9b47 Minor change. Simpler code and review error condition in mexFaust.cpp save() function.
05aa2ea80 Remove flag CMAKE_BUILD_TYPE=Release because it fails package generation for Linux.
779c8b825 Add matlab doxydoc if matlab wrapper is built.
c4b729394 Add post-installation scripts into packages for auto-setting matlab wrapper path into a matlab startup script.
8507413d5 Remove wrapper language specific code to save a Faust (Py and matlab).
13a79d038 Add doxygen code doc generation for the Matlab wrapper.
c0c5ac621 Add a Matlab unit tests class for Faust class defined in Faust.m.
58136e70f Fix and factorize Faust.delete().
65b16b8da Include licenses and README in MacOSX packages and doc directory at installation stage.
9fb1f2291 Set the linux package version accordingly to the git commit/tag.
0ad1bdcba Add a unit tests script for Python wrapper main class FaustPy.Faust.
8860f2dcd Fix bug into Faust::Transform::save_mat_file(), the number of faust factors saved was always two.
236f92ef3 Document the code by making profit of doxypypy and do other minor changes.
978e01038 Temporarly disable Windows nightly tests.
cd32e9393 Check that FaustCorePy.get_fact() index argument is in correct range.
aac413834 Add API generated documentation files to packages.
1c9780d12 Bind matlab wrapper to Faust::Transform::save_mat_file().
99cb43d34 Minor change.
3d53c54f8 Add libmatio dyn. lib. to MacOSX in ci package generation.
e7b20f22d Add in core cpp lib the capabililty to write a FAuST into a Matlab file and link the Py wrapper to it.
a50cb6a24 Minor changes.
373745358 Remove empty definitions of multiply() in MatGeneric and replace by virtual pure function members.
c28e7c3b5 Make also a package with pkgbuild for MacOSX.
a5f6f49f7 Add FaustPy doxygen doc. generation.
39950dc46 Fix Faust.get_factor() for the transpose case and add related tests into quickstart.py.
80e429fb0 Add functions in the Py wrapper: size(), get_factor(), save() and adapt the constructor to read a Faust from file.
7dc4cc620 Update README.
d94b5f02e Add ftp command to upload package for linux.
ebd3f5e1c Minor change.
b8fd76bbb Convert README from txt to Markdown.
3a70f2e01 Add methods to Py wrapper: nnz(), density(), RCG(), norm() and get_nb_factors(). These methods are already in Matlab wrapper.
0abc18d29 Install doxygen doc for core c++ API if core library's installed.
9a052a98b Strip binaries in Release build mode and optionally exclude core faust lib.
880ef58a6 Exclude git tags from non-related ci jobs.
34e8dd766 Reindent the code.
315f22fff Correct error in R2016a/gcc versions requirements.
9a365f4cb Add ci jobs for packaging when git tagging.
095540a1b Minor change.
cb5ae67b8 Exclude clang/llvm from gcc/matlab versions verification.
4e69d1b94 Add tags and except sections to ci job for linux packaging.
c1217fd4a Add a ci job for packaging faust on Linux (only rpm and deb).
607bc2bf2 Check gcc version matches with Matlab's, block compilation if not.
aae2e903a Update MacOS packaging job.
267001925 Exclude scheduled ci pipelines from revision packaging job and add the commit sha as a suffix to package name.
fb11c63ee Add switch to sudo in order to get pass from stdin.
5e3b8ff2f Add a new ci job for packaging faust on MacOS X.
0c009dade Avoid plotting faust time for py wrapper test when we are in test env. (with no display).
9adedc42b Fix bug with a matrix-vector product into py wrapper test.
6b4c5adfb Fix 2 minor warnings in cmake scripts.
ef94ad2dc Fix numpy array access bug, issue #9.
4920e0a8f Add gitlab ci job for Win7.
4877b2152 Update CDashConfScript.cmake for Windows.
f80cc738a Decrease ci test time and add specific jobs for macos and linux nightly tests.
d21522585 Change installation prefix directory for testing.
283612507 Update CDashConfScript.
517c5fe25 Remove useless command ctest_empty_binary_directory().
99359a0d3 Remove useless ci job tags.
12b8bf77a Rename CDashConfScriptLinux.cmake to CDashConfScript.cmake.
eda3a100a Separate gitlab ci jobs into quick and slow jobs and add job tags for win and macos.
3345b23b6 Fix clang compilation error in matlab wrapper.
a171b4354 Fix test related cmake error on Windows.
8fb7b2665 Fix matlab mex compilation error on Windows.
25f306329 Fix bug with matlab environment probing on Windows.
f77381ad7 Add python and matlab wrappers to linux tests.
d4c88fb9a Update in order to make python3 available.
fbd6f2533 Fix gcc/linux compilation errors for types uint32/64_t declared twice.
35db3ee7b Add CDash/CTest site name.
bf5425554 Add ci yml script and ctest/cdash script called by it.

Version version_2.1.0:


Version 3.39.7:

cbfa23970 No parallel building for ctest_matlab.
d5c1ce18e Update VS Studio version in CDash config (fix for ctest_nightly).
f39fa0b3c Add sanity checks on report files of ctest* ci jobs + other checkings.
c62a6ac69 Fix minor bugs in GPU tests + update to gpu_mod@4408485.
4ef366438 Enable GPU C++ tests if the gitlab-runner has the cuda tag + refactor gpu_mod building in a specific script + parallel building.
52f6d6cb1 Add matfaust.Faust.insert/replace.
e28e98ba3 Minor changes.
11564806c Replace gcovr invocation in ctest ci job by an extern script.
45dab9b35 Add pyfaust.Faust.insert/replace.
75493775f Fix pkg_macos.sh undefined variable MACOS_PKG_STORE_PATH.
17a591b4e Set strict mode in script: not defined variable, nonzero exit/pipeline code raise an error.
67506834d Limit gcov flags to ctest ci job (C++ tests).
70a95dde5 Minor change.
84d93bbbd Fix exp code example in pyfaust.fact.hierarchical_constends.
4010972c4 Minor change.
eaa373362 Add C++ test coverage badge in the README.
565a44554 Fix cpp test report path issue.
93ac249d9 Minor corrections in code doc.
cc2025b25 Fix coverage cmd and add the output dir to the job's artifacts + increase ctest timeout.
27b1e8532 Add C++ ctest coverage with gcovr in ctest ci job.
98725a4a1 Fix GPU Matdense mul, multiplyLeft(MatSparse) tests and update to gpu_mod@47ad960.
905a5f671 Replace static changelog file by a script generator triggered in pages ci job.
f5b3cee3a Fix GPU batched SVD test in case of complex matrix.
0a81d1bce Fix GPU2 MatButterfly/MatPerm tests in case of double scalar type.
28b24fbbf Fix a memory leak in Transform<FPP,GPU2>::tocpu.
36d00858f Fix MatSparse<FPP, GPU2>::tocpu(MatSparse<FPP, Cpu>&) in case of zero MatSparse.
cdd4f1ee3 Enhance MatDense<FPP, Cpu>::operator=(MatSparse&) in case of zero MatSparse.
deccea43b Fix unit tests of Vect<complex<double>, GPU2>.
03c046a31 Fix BSR block sizes in test_dynprog_mul_gpu.cpp.in.
a0063c3fd Fix GPU2 MatGeneric::to_string wrong use of Cpu parameter for MatBSR.
b9ffc73e3 Update to gpu_mod@ef3d005.
62b98e15f Correct Vect::equality prototype, the precision is always real.
3bfcccec6 Add unit tests Vect<FPP, GPU2>.
7b9ae8091 Fix function init_params_from_matiofile not found.
d98517f33 Update to gpu_mod@24ba075.
da72b2f48 Add commit sha in cdash build name.
c7156e7ea Ignore skipped status for pipeline badge and remove badges in anaconda pkg desc.
0e539ceef Minor fixes in READMEs titles + automatic TOCs.
91e0e7cc0 Remove erroneous preprocessing END keyword.
02f75df8f Integrate coverage badges and FAµST logo on pypi, readme and anaconda descriptions.
b02fbf50f Fix minor errors in doc string examples of pyfaust.fact.hierarchical_constends/palm4msa_constends.
77ba25ec4 Add a contributing guide + update other READMEs consequently.
0bc49813f Re-enable cdash report submission but with token auth.
7fc9306b9 Add gitlab coverage regex in pyfaust/matfaust code coverage ci jobs.
858e7a7f2 Update many things mostly around Faust scalar types conversions + wrapper building.
ad4557c10 Replace GPU2 MatSparse::resize test by a resize+set test (more assertions verified).
b0a38a7cb Fix multiple bugs in GPU matfaust.Faust.real/imag/double/single for Faust SPARSE matrices.
cb6e53eac Fix multiple bugs in GPU matfaust.Faust.real/imag/double/single for Faust dense matrices.
400ce8cc5 Fix GPU pyfaust.Faust complex to real conversion.
705cb5379 Update README.developer.
122331378 Add build pyfaust path to PYTHONPATH before sphinx doc generation.
e97fa4dc3 Add a dependency to pages ci job because it needs pyfaust shared lib to generate sphinx doc.
5c86db480 Set pyfaust version in sphinx doc.
67a92d609 Add a concurrent sphinx API doc for pyfaust and link it on the doxygen doc.
d0e52a736 Ease copy of examples in online API doc (chevrons and outputs are excluded from selection).
03446221e Minor fixes in two ci jobs.
1b8728a45 Add mul_perm option in matfaust/pyfaust.fact.butterfly.
195fe71d3 Replace py3.9 by py3.10 in package generations.
004b23f88 Update copyright years.
6ed3016d8 Fix issue #323 about libomp conflict between pyfaust and mkl.
5adaa57ee Set a docker image (for linux) and doc to ease pyfaust building.
46ab1494d Remove the cloning part of the README now that the default way for cloning is ok (issue #294).
169be7be5 Fix matfaust_test_code_coverage ci job that now needs to download data before proceeding.
c01d7b475 Fix missing faust_quick_start.mat for matlab cmake configuring by launching the download automatically.
62c9c0713 Fix pyfaust_test_code_coverage ci job that now needs to download data before proceeding.
966ddaa9a Cmake BUILD_TESTING defaultly OFF but ON in CDash/ctest config.
a1202218b Add a script to download misc/data instead of relying on local data.
6139886c5 Fix a bug in pyfaust.Faust.__getitem__().
77699a6a3 Complete README part about C++ tests.
1f1a7aa29 Renable nighly ctest ci job for Linux and Windows.
3d8cbc596 Update svdtj doc about experimental status and order of singular values.
6b330addc Disable by default the benchmark part of MatBSR tests because ctest runs them in parallel so the times are biased on VMs.
e21e26cfa Use the proper error and increase tol in svdtj tests.
2ac09cdba Update SVDTJ on stopping criteria.
fe79d902c Increase test timeout to fix MatBSR tests.
b311e9a6f Set different error tolerances for each scalar types in MatBSR tests.
c04130551 Fix missing cases for typeA/B == 'H' in gemm_core.
40d20acb1 Fix return ref to local value in BSRMat::operator().
1a00262ed Fix faust_butterfly/perm_mat tests which were not compatible with real matrices because of FFT.
0b1e8d036 Fix config .mat filepath error.
8e982f999 Fix buffer overflow in MatSparse(MatDiag&) ctor.
1f72d16e8 Fix failed EigtJ test on MatSparse Laplacian because of default enable_large_Faust == false.
4dbfe5536 Fix faust_multiplication ctest add without needed arguments and remove its complex versions.
c260f72ed Set fixed seed.
03367de58 Add missing cpp tests to ctest.
800ae2af8 Enhance slightly error tol on ParamsPalm4msaWHT example.
6aac71c1d Document in FAQ the SafetyError warning when installing pyfaust with conda.
703c721ca Review/correct/update FAQ entries.
13fbe2b91 Ease use of faust data downloader script by creating the output directory if it doesn't exist.
638ab14c1 Update/Correct system pkg installation guide.
a3fb0d1bb Correct runner tags of test_macos_purepy_release* ci jobs (no need of macos tag if macos_pip_pkg_tester is set).
7e2c881b9 Build python wrapper cpp files independently to speed up/parallelize building.
d89545d6c Correct macos SZIP lib path (more standard).
dbe56ccda Add a specific tag for pip pkg ci jobs on macos because of _clock_gettime missing symbol on older macOS (10.9).
0df0b3e09 Add separate SZIP static lib path (to fix macos new link issue).
40a87f001 Parallelize more make calls with 4 or 8 jobs.
e14c9b67b Remove recursive strategy for submodule in macos jobs (don't need gpu_mod).
dcd0545bc Fix errors in numpy min/max uses with numpy version 1.25.
4d74feee7 Fix paths for only:changes rule.
8a8f6d64c Fix faust_transform_omp_mul test (OMP/C++ threads Faust-matrix mul. parallel reduction).
21f77fd84 Replace clang 8 by clang 9 on macos gitlab-runners + correct typo into build dir of ctest_matlab.
9d81f9b1a Avoid Xcode's clang to be confused with gcc in matlab/mex matching test.
209a3622a Update doc for cpp tests/ci.
2a4498fe7 Update the script/guide for Mac OS X VM install.
2590093c6 Fix return ref to local variable in MatButterfly/MatPerm.
7c5750ab1 Increase error tol in EigTJ test.
4e5d2fa35 Fix EigTJComplexSparse test that was failing because of enable_large_Faust defaultly to false.
d54296341 Skip doctest of matfaust hierachial fact of MEG matrix (too long).
fa73e2d7a Fix build dir pattern.
ab8948f91 Replace git command by only-changes gitlab ci rules.
9bd8d51f6 Minor change (std prefix).
9599a692c Remove mention to py2.7 and adjust note about pygsp linking the notebook.
adb0f4940 Exclude matfaust_test_code_coverage ci job of scheduled pipelines.
58c0e3aef Increase tolerance of test in float case.
7d9b94756 Add junit test report to ctest (cpp tests) ci job and refactor junit2html generation for all ctest_* jobs.
b9e189731 Add a note about matfaust test coverage and GPU code tests.
72467501e Add a hint about matlab savepath in install guide.
39b17330c Remove linux pkg download from matfaust_test_code_coverage ci job.
9969a1231 Add matfaust test coverage ci job (using MOCov).
ac709a525 Filter <p/> html tag from matfaust inline doc blocks.
885c9a755 Fix testGetItem test that rarely failed.
5503e8319 Increase error tol from machine epsilon to 1e-15.
fced1cbc4 Complete afeba5b0 to fix file conflict between parallel/sequential tests.
843365242 Fix missing hdf5 lib in macOS pkg and replace install path /usr by /opt
4d9005413 Update readme with test coverage info.
947003ace Delete possible pre-existing file with the same name.
c0e896757 Take doctest into account in the pyfaust code coverage.
4ff7ecd80 Add a test code coverage ci job for pyfaust.
f8cc25d0d Add a README about ci tests and pkg release (to complete).
3b7ad5f62 Remove old link to lazylinop notebook.
2a2f467bb Fix matfaust doctest loop (exit on first test).
1988c3406 Minor change in unit tests: complex case and tol in cmp.
59a17687d Add BitReversalPermutation.m to install dir/package, it's needed for fact.butterfly.
269093f8d Fix doctest bug of experimental m-files by removing experimental tags/comments if EXPERIMENTAL_PKG=ON.
8403c7f5c Fix butterfly optimization segfault on already optimized Faust.
98539b6c9 Review/doctest matfaust.demo and add it to doctest ci job.
7ac304f29 Add matfaust.fact and .tools to doctest ci job.
9b06ea80a Review/doctest matfaust.tools.
5f05531ec Review/doctest matfaust.fact.
68867a5f8 Fix missing std namespace.
24344391b Fix tolerance problem in matlab FaustTest.testcat.
8196441a1 Review/doctest matfaust.fact.butterfly and add it to doctest ci job.
c9d914132 Review/doctest matfaust.factparams and add it to doctest ci job.
cc73164fe Review/doctest matfaust.poly and add it to doctest ci job.
435c733cc Fix Windows filename too long error on.
f6dac72c0 Fix conda-build error on libomp patching, it fails libomp loading and so the package test.
253203e6c Filterout doxygen blocks from m-files of classes too and ensure it happens after doxygen doc gen.
b525332ff Add an env var to disable libomp loading in pyfaust.
cafe77c55 Review/doctest matfaust.proj and add to doctest ci job.
5c09c76f1 Enlarge a little bit the error tolerance for matlab testFourier.
c922719b0 Add pyfaust.is_gpu_mod_working as in matfaust.
10354d4d1 Add matfaust.is_gpu_mod_working + Fix matfaust.device/clone doctest when CUDA is installed but no device is available (typically happening on VM).
c58b89c70 Fix missing function matfaust.rand_bsr after doxygen docstring filtering.
9ca97bfef Fix doc examples of matfaust.Faust.power_iteration/mtimes.
73a48f143 Add note in Faust/concatenation doc about use of LazyLinearOp to encapsulate a Faust.
f799dc860 Fix CPack .deb/.rpm generation error without failing the gitlab pipeline.
3d035a25f Delete cmake script part for installing project embedded matio 1.5.7 (it was deleted long time ago).
2dd1795e9 Delete object files asap in pkg_linux*/pkg_purepy ci jobs (limiting disk space consumption).
b34c075da Delete artifacts.zip after unzip and unzipped directory 'build' after rpm install (limiting disk space consumption).
0fc807ec4 Reduce make/bdist_wheel cmd output log to error/building/linking message in pkg_purepy, pkg_linux, pkg_linux_release, pkg_linux_release_static ci jobs.
8265037ce Remove -nojvm matlab flag for doctest.
178ac49b0 Set BUILD_FLOAT_MEX=ON for matfaust doctest.
1e3b4842e Add nightly ci job for matfaust doctest.
959d792f4 Disable error prone ctest report submission to inria cdash.
60e0034e3 Remove again junk in output (matfaust test report was still too large: 30Mb).
fb17d5659 Output test report link in ci job log of ctest_matlab/python
e8fb5f0cf Fix false negative in matlab FaustTest.testNormalize unit test (NaN issue).
0ecf9151c Fix the unit test of matfaust.proj.spsymm and correct the doc part about k and the image nnz.
bbc714b9a Label all matfaust unit tests and remove junk output to lighten test reports.
439734913 Fix memcpy error in mex code faust_optimize_time.hpp for dense matrices.
01d18e46f Fix matfaust.dst complex(sparse_matrix) error for older versions of Matlab.
746b0b909 Fix minor error in (matlab) FaustTest.testDensity.
0f85566b9 Fix pyfaust.circ bug occurring if len(v) == 4.
808363fa8 Fix file conflict between test_matlab_faust.m MATLAB_FAUST_CONFIG_* tests which occurs because ctest might run them in parallel.
ca69db1ed Add missing ParamsHierarchicalDFT.m.
3d4a4caec Make ctest_matlab ci job even stricter: even a unit test failure stops the pipeline.
1a0a18330 Fix minor error in matfaust optimize_time unit test.
456052956 Fall back to Faust.load because load_native doesn't handle BSR matrices (failing test testSaveBSRFaust).
c15c539fc Fix matfaust.Faust.mtimes_trans and tests MATLAB_FAUST_CONFIG*, MATLAB_FAUST_SPEED.
ee6abf674 Add -nodisplay to speed up the matlab launch by ctest.
266c58e20 Finish doctest of matfaust.Faust.
c93747567 Adapt matlab inline doc gen script to not interfere with octave-doctest.
bd10602e4 Set up allow_failure in ctest_python/ctest_matlab in case of punctual need of more tolerant test (failure accepted).
fcb0c9c3c Almost complete the doctest review of matfaust.Faust.
cf717ca37 Add seed argument to matfaust.rand.
587f90af6 Fix ctest_python/matlab ci job status code in case of all tests passed.
cc5513d5c Make ctest_python/matlab ci jobs capable to fail the pipeline if unit tests are not all passed.
342f29790 Update ctest_matlab/python ci job to upload the test report whether the job fails or not.
7c1afe021 Partially review matfaust.Faust with doctest (to continue).
183fdfc8e Upload ctest report for matfaust as gitlab artifact.
1115ed73b Undo 0ae1252b and replace by libomp preloading.
5de531e88 Make ctest_python ci job fail on gitlab if any (unit) test have failed.
7500fb614 Enable float scalar in ctest_python ci job.
ab526c744 Fix MatPerm::multiply in transpose case.
f55c9296e Add adjoint test for DFT diag_opt=True and rand_butterfly.
04f4c5e7a Fix TransformHelperGen::factors transpose case bug.
6c21c9b64 Set/document min version of cmake needed.
6bdfdfecd Fix MatPerm/Butterfly::to_dense.
ac43be3ae Add a JUnit XML format output for ctest and, upload it as HTML to gitlab as artifact.
8479d4824 Fix recent regression (fc3b0ec6) in complex scalar addition/subtraction to a real Faust.
89ca27dbe Use default compiler (gcc) for running tests (ctest).
381415d87 Make tests compatible with float32 dtype.
7b1e8d813 Secure/Simplify scalar detection and correct multiple dtype issues (float32).
6833bb039 Minor simplifications.
7dd8443b3 Fix pyx code of polyCoeffs and polyGroupCoeffs: bad dtype of output array if poly dtype is float32.
ae492bcb1 Fix Faust.average bug for float32 dtype (inconsistency between Faust and weights dtypes).
383b0c9aa Run ci job pkg tests on complex in addition to double scalars.
ac32b2cd5 Fix pyfaust expm_multiply unit test.
ceff7fe23 Fix minor error in venv name (since move from py310 to py311).
70f7096db Remove version in rpm/deb package install prefix.
3db8af8db Replace old HTML tutorial using_gpu_matfaust by a real mlx matlab live script.
7cff526cf Add a note about Faust deletion in live script.
57ff917b8 Fix issue #256.
134238c1b Add a note about Faust deletion in jupyter notebook.
5b89c89c1 Add matfaust.Faust.uminus and pyfaust.Faust.uplus overloads.
c69f8ef83 Simplify the CUDA install note for win10.
5d77c1029 Set priority of CUDA versions in gpu_mod lib loading.
f218a10c1 Refactor windows gpu_mod building into script and fix interference between CUDA versions.
3bd79a2bd Remove libgm symlink from wheel/pip package.
cd9184292 Remove pylops from pyfaust dependencies.
010223b11 Enable cuda12.1 for windows packages.
ef1876c0e Update doc about CUDA/matio versions, contributors and teams.
6dcd8699d Upload package to gitlab package registry instead of gitlab-pages + update links in download page.
46c8c969d Limit CUDA pypi classifiers to cuda major version.
e61d042b9 Enable cuda 12.4 in Linux packages.
9fe0fa4a4 Disable cuda-9.2 support for gpu_mod.
e4abdcd4d Update linux library versions of matio and its deps to the latest ones.
fc0ace114 Update Matlab-gcc versions matching.
1459c3482 Adjust MatSparse::toMatIOVar to matio >= 1.5.18.
ae9f298a0 Set numpy version specifier to >=1.23.
fa5bcb0a0 Fix deprecated uses of matplotlib in pyfaust.demo module + fix output of examples for doctest.
25b382ad4 Add needed sudo for rm.
d037bc9e9 Fix erroneous/old use or * instead of @ for Faust-matrix mul.
8a54ce24c Fix doctest ci job for pyfaust.fact module.
2f278954a Update doctest ci job to test latest dev version instead of published pip pkg.
5ec8d8807 Fix correctness of poly module functions and display of Fausts they produce.
f8a6c1440 Complete sptriu/tril/symm tests and precise the sparsity of spsymm in doc when k is odd.
5515d464d Add scheduled ci job for pyfaust doctesting.
cc876e907 Add missing exit code.
a3b28f2c1 Remove conda env after successful upload.
957a6b813 Link Faust.pinv doc to fact.pinvtj's.
53a11a696 Clean up use of Faust namespace in EigTJ modules.
46f0a6129 Make optional (disabled by default) the copy of RPM/DEB pkg in /home/hinria.
c21cf426d Rename all givens_fgft to eigtj in matlab/python intermediate wrapper functions.
fceb010f2 Rename all C++ classes/files *GivensFGFT* to EigTJ.
e10cf343a Rename mexsvdtjReal to mexsvdtjdouble and mexsvdtjRealFloat to mexsvdtjfloat because both of them handle complex too.
8a2e8a71c Add unit tests for matfaust/pyfaust svdtj.
a0a1242a7 Fix macos sed command on meta.yaml.
de9f6fdc5 Fix license path in conda meta.yaml (relative to root dir project).
34becc6b3 Add a note in svdtj doc about error calulation two-times strategy.
02011e285 Rename TRIL_SP, TRIU_SP and SYMM_SP to SPTRIL, SPTRIU and SPSYMM.
93463f27e Fix svdtj mex missing symbol with float type.
4b35430ee Remove old import to lazylinop.
2c7a472ef Set EXPERIMENTAL_PKG variable for rpm/deb static matio release packages.
9f546cc49 chmod +x script.
e9884994f Add matfaust wrappers to TRIL_SP, TRIU_SP and SYMM_SP projectors.
f088404ce Add doc for shape argument of pyfaust.proj classes.
afae76244 Fix missing attributes in copy/assignment operator overload of StoppingCriterion.
1c18e7c62 Document SIGINT stop of palm4msa and hierarchical in matfaust/pyfaust.
cac637ade Add SIGINT (CTRL-C) handler in PALM4MSA 2020 to stop on manual user interruption.
b3fc0b7f1 Fix format of brief line of pyfaust.proj.spcol API doc.
b1412aeb0 Remove the lazylinop module from matfaust + remove associated unit tests.
35832b626 Remove from pyfaust the lazylinop module, its unit tests and notebook.
d0dbb82f3 Add explicitly the license file in conda package.
84441c1bf Fix typo.
6d3f75dd6 Fix conda multiline description and misleading license name.
cd900bff5 Fix #319 (compilation issue on Windows VS).
02fd11661 Secure SVDTJ two-errors strategy in case of very large tol or zero matrix sum.
b68577ec8 Update findEigenLib for Windows: find eigen3 locally instead of using an embedded archive.
3365331ec Add matfaust.fact.pinvtj and update svdtj doc.
20792b506 Add pyfaust.fact.pinvtj and update svdtj doc (error/tol changed).
ec1ce6308 Implement optional pseudoinverse error in C++ svdtj.
f02287d42 Implement two-stage error strategy in SVDTJ c++ code.
3ec1c20fb Add a doc reference about the error calculation of eigtj in C++ code.
127b6d7ee Update verbose mode of SVDTJ (clearer msg on error + U/V tag of eigtj factor).
caa35c870 Add err_period argument to matfaust eigtj.
e09837bb3 Add err_period argument to pyfaust eigtj.
95e3c3ba9 Minor change in C++ SVDTJ: more information on error of U and V in verbose mode.
65d78e336 Add err_period attribute to GivensFGFTGen classes.
077340df6 Modify svdtj c++ step mode to stop when the singular values become worse (error increases of one order of magnitude or more).
92a68a0f0 Update matfaust svdtj.
00fc5f98a Fix FaustVec2mxArray complex case.
599c15530 Add pyfaust.fact.svdtj err_period argument.
082086ff6 Fix Faust::prox_symm_sp comparison to zero in case matrix scalar type is complex<T>.
d63ebafab Extend pyfaust svdtj to set different nGivens, nGivens_per_fac for U and V + update doc with examples + update C++ unit tests.
8e7f44dab Clarify svdtj singular values are always in descending order (doing as matlab / numpy).
528596cf1 Fix triu_sp, tril_sp and symm_sp wrong super call and erroneous examples.
151e00b1e Fix prox_tri_sp and prox_symm_sp in GPU code.
cb8c3678d add symm_sp constraint, add missing semicolon
2599439ce add generic code for triu_sp and tril_sp constraints
12dcef08b add tri_sp constraint
679bcef42 Defaultly use only scipy.signal.convolve2d in lazylinop.convolve2d.
efc967ded Update convolve2d to be exactly the flattened Simon's notebook version and adjust fft2 consistently + add Simon's check_op function to validate a LazyLinearOp.
4fc094d9c Fix Visual Studio build errors with numeric_limits::max.
a1c040d20 Update matfaust.svdtj: remove old square matrix restriction and fix S shape in case of rectangular M.
b6edf52cd Fix symbol conflict (stop_crit attribute and stop_crit macro).
0b7ee5ace Add ci job script for static matio rpm/deb release packages + use it to simplify .gitlab-ci.yml.
87363af3d Update release rpm/deb generation ci job script: concise output (with full log in /tmp), var. env. sanity check, temporary cpack files deletion.
47b20e206 Replace deprecated np.float by np.float64 in tests.
7a108316c Update test_svdtj.cpp: fix SVD error calculation in case of ascending order singular values, refactoring + debug info.
21693f269 Avoid useless extra ordering in the end of SVDTJ + handle ascending order in addition to descending order.
881be9fed Add opt. argument order in GivensFGFTGen::get_ord_indices and fix missing initialization of D_order_dir attribute in ctor.
4c68c41b4 Renew the SVDTJ algorithm: more accurate error stopping criterion and other enhancements.
c502359fe Add argument for inplace transpose, conjugate and adjoint in TransformHelper.
2277d646f Minor add in Transform assignment operator.
1c176a043 Add a FAQ entry about glibc confusing error when installing pyfaust in conda without conda-forge channel.
76691745f Add StoppingCriterion.erreps in matfaust to parameterize PALM4MSA/hierarchical 2020.
2cb44ec4c Update cpp StoppingCriterion: add copy ctor, assignment operator overload and integrate erreps in to_string().
3f695e3d3 Fix missing new line in matfaust.Faust.disp output due to a recent change in C++ to_string (c647a625).
908bd6b98 Fix a regression side effect bug in FaustCore copy of factors due to b2d3fe85 (as_faust arg of matfaust.Faust.factors).
0db4d29bb Minor fix in pyfaust.fact.eigtj doc: swallowing of @ python mul operator by cmake @ variable parsing.
a0d39cec4 Add StoppingCriterion.erreps in pyfaust to parameterize PALM4MSA/hierarchical 2020.
0e07e4045 Update pyfaust install in anaconda.
118b08359 Remove pygsp from pyfaust dependencies and add a hint for pip install in the related notebook.
74d59eda6 Add optional argument use_pylops to pyfaust.lazylinop.kron and zpad and enablediag_opt optimization in pyfaust.dft call of lazylinop.convolve2d.
8ab4a9298 Fix compilation issue of mexPALM4MSA2020 (constness of StoppingCriterion) due to previous change in PALM4MSA2020 cpp impl.
ed06bfc5a Enable StoppingCriterion epsilon error change to 1e-6 by default in PALM4MSA 2020 implementation.
16956364b Add the epsilon on error change for Faust::StoppingCriterion.
6e77e55f4 Add scale arg in pyfaust.lazylinop.fft2 doc.
37eb0d2b5 Fix issue #308 (GPU2 compilation error).
a1f2ba671 add relative change stopping criterion
df3da55f4 Add pyfaust.lazylinop.convolve2d + doc.
d95e6396b Fix minor errors in pyfaust.lazylinop hstack/vstack related code.
b95dcc479 add numpy.get_include() to setup include_dirs
6b953b109 Update pyfaust.Faust.__mul__ and add Faust._eltwise_mul to allow elementwise mul of two Fausts or a Faust and a matrix.
34ff4214d Change the impl. of pyfaust.lazylinop.zpad, it is more similar to pylops.Pad now.
8352c2ae0 Update cmake finding of Eigen (version 3.4 is required).
2b79b2217 Minor change in conda pkg gen. script (error msg).
0ec12982e Fix cmake script consistency issues about NO_MATIO and BUILD_READ_MAT_FILE options.
0c6c99bd1 Enable conda generation pkg for py3.11 on macOS in ci job.
70f557be7 Add pyfaust.lazylinop.fft2 + doc.
0422c6d67 Minor fix in pyfaust.lazylinop.zeros.
5c48e20f1 Add pyfaust.lazylinop.fft + doc.
10998bddf Switch windows packages from py3.10 to py3.11.
9ea7e067b Specify CUDA is optional.
09f1303ee Add LINUX_DEFAULT_COMPILER_FOR_PYTHON cmake option + doc.
62f22646a Fix typo on CUDA issue.
3061b52c2 Update the README with deps, cloning and build information.
14a308445 Add NO_MATIO CMake option to make MAT-IO library optional.
135376a17 Add matfaust.lazylinop.zpad + doc.
feb4eb215 Fix matfaust.lazylinop.horzcat multiplication (exceeding row dimension of operand).
e046a993c Shorten ci job commands using PYVER variable.
4da99eb41 Fix dimensions check in n-dimensional case of pyfaust.lazlinop.zeros mul.
2c5218fdd Fix matfaust LazyLinearOp.pagemtimes: falling back to mtimes if op is two dimensional.
fe81bd3df Add matfaust.lazylinop.zeros + doc.
bd71f7813 Correct PYVER variable and help scipy/matplotlib install on macOS (ci job).
df5ffbc6e Update to gpu_mod@1fbd46f.
5629aeb68 Pin versions of matplotlib and scipy only for macosx pip package tests.
82e85f635 Update to gpu_mod@7a176f11.
75a71fc01 Undo e2644968 and ad4b9a47 (forced matplotlib and scipy versions in tests).
3328cbafe Change extra python version of macOS packages from 3.10 to 3.11.
f4f014342 Change on numpy version.
6e92ad52a Make possible to set independent versions of python for macOS and linux system packages.
4c3b0106d Add lazylinop.zpad + doc.
19f794f9d Add lazilinop.zeros + doc.
f5dd789a0 Pass linux ci jobs from py3.10 to 3.11.
f9b2d6a31 Config packages to numpy >=1.24.
ac93899a0 Remove np.float, np.complex, np.long and np.int occurrences as they are deprecated in newer versions of numpy.
c4ea9d72b Implement cpp anticirculant projector/constraint and add it in matfaust and pyfaust.
d01955558 Doctest review of pyfaust.proj + minor reformatting in pyfaust.factparams.StoppingCriterion.
41c23307b Simplify the C++ code of circ projector.
cde95f8ae Doctest review of pyfaust.factparams.
ba74007b8 Fix dtype issue #298: lazylinop mul functions in complex case when a numpy array is initialized with np.empty (float64 default dtype).
05093b5d9 Fix issue #299 (LazyLinearOperator call with dtype).
d5ac35820 Fix issue #301 (test_svdtj linking error for complex<float>).
d016277fd Add doctested example for pyfaust.fact.svdtj.
35a385a16 Add a C++ unit test for svdtj.
5e7429303 Fix minor bug in ParamsHierarchicalRectMatNoResCons (missing parameter P).
6a00e6e78 Add verbosity level 2 in pyfaust.fact.svdtj2.
f3345886d Fix buggy svdtj cases in C++ code (rect matrix and empty Fausts).
e8e1d5ccf Display input configuration if verbosity level > 1 in GivensFGFT(Parallel)Gen C++ code.
e352d7242 Document the light git-clone (issue #294).
42de8d724 Update the project README.md.
bd2b148d4 Fix pyfaust.fact.svdtj2 which wasn't able to factorize a rectangular matrix properly.
ce31cea70 Update pyfaust.svdtj2 exp code to remove deprecated use of * for Faust-matrix product.
874dbd9ce Doctest review of pyfaust.fact examples.
e76d520ab Add non regression unit test for #296.
89e0842f7 Fix issue #296 (Faust conjugate multiplication error).
bef20f48b Move doctest verification of pyfaust from pages job to pkg_linux_purepy_release.
2b2db19ff Review/Validate with doctest all examples of pyfaust.lazylinop.
8ef8ef371 Review/Validate with doctest all examples of pyfaust.tools.
fdec065d5 Add doctest verification in pages ci job.
17f710648 Review/Validate with doctest all examples of pyfaust.* (excluding other modules).
10ddd687a Reformat the displaying of a Faust (C++).
c69eb4108 Remove the memory address of Matrix output (as it was before).
1a1e1ef0d Bind C++ Faust::seed (faust_prng) into the python wrapper (pyfaust.seed).
b7488c352 Externalize initialization of Faust PRNGs in a specific module (faust_prng).
ca5de7110 Add seed argument to C++ randFaust and bind it into pyfaust.rand.
b3559e2d7 Add matfaust.aslazylinearoperator shape optional argument and document it.
c49cbf2c1 Add pyfaust.aslazylinearoperator shape optional argument and document it.
79fd77e9a Update matfaust.Faust.factors/left/right with new as_faust argument + doc.
430117fbd Update pyfaust.Faust.factors/left/right with new as_faust argument + doc.
d2a3c207e Minor doc change in matfaust.Faust.
fcbe6a839 Update pyfaust.factors equivalently to 59baec41 + minor doc changes.
244c63cb2 Add missing GPU2 overloads in mex faust_factors.* (matfaust.factors).
70a879972 Update matfaust.Faust.factors/left/right and mex code to handle retrieving factors as Faust.
f3f6826fa Add TransformHelper<FPP,DEV>::factors() to get a subset of factors as a Faust::TransformHelper without copies.
00c10a471 Add conversion CPU MatButterfly/MatPerm on the fly conversion to MatSparse in mex code of matfaust.factors.
dd5bfbc9e Update pyfaust.factors/left/right cpp code to convert MatButterfly and MatPerm to scipy csr matrices.
67e4369eb Set identity flag to false in MatPerm/Butterfly<FPP,Cpu>::toMatSparse.
4397ff5e2 Fix issue #293 (win compilation error).
def96aec0 Fix ctorMatButterfly(const MatSparse<FPP, GPU2> &factor, int level)
61f1e455c Add a new overload of MatSparse<FPP, GPU2>::tocpu.
e0a4a29d2 Enable GPU diag_opt (butterfly optim.) for matfaust.circ/anticirc/toeplitz.
7f566a14f Remove TransformHelperButterfly_gpu.h/hpp and all references to it as it not used anymore.
e23033db5 Specify the absolute path for cwd in matfaust.enable_gpu_mod.
bb18f6874 Enable pyfaust.toeplitz gpu and diag_opt features.
43b0df439 Remove TransformHelperButterfly<FPP, GPU2> use in cpu to gpu Faust cloning of python wrapper cpp code.
4c4f3eda3 Rewrite TransformHelper<FPP, GPU2> fourierFaustOpt and optButterflyFaust without using TransformHelperButterlfy<FPP, GPU2>.
e289a6a72 Fix Transform<FPP, GPU2> update_total_nnz wrong const attribute and add an optional argument to scalarMultiply (for selecting the multiplied factor).
fc703c99a Fix TransformHelper<FPP, GPU2>::multiply(MatDense<FPP, GPU2>) test (the CPU Faust wasn't the same).
7b2d28219 Rewrite all remaining members of Transform<FPP, GPU2> except slice/indexMultiply to be independent from gpu_mod.
9bf36fe49 Rewrite Transform<FPP, GPU2>::to_string/Display to be independent from gpu_mod + refactor all GPU matrices Display/to_string in MatGeneric parent.
3e477c4b2 Rewrite Transform<FPP, GPU>::get_total_nnz independently from gpu_mod and remove multiply(const FPP&) duplicate of scalarMultiply.
c6debcf30 Add Transform<FPP, GPU2>::adjoint and rewrite power_iteration and spectralNorm to be independent from gpu_mod.
1b935afbe Add MatDense<FPP, GPU2>::setRand.
c5c6e5a97 Fix MatDense<FPP, GPU2>::multiply(MatDense<FPP, GPU2>& other, const char) const
9259c70af Update Transform<FPP, Cpu>::get_product replacing uncomplete downcasting by generic to_dense call.
57174f0a0 Add MatSparse<FPP, GPU2>::spgemm unit test.
41f04ccf6 Fix MatSparse<FPP, GPU2>::spgemm when C is non-initialized or wrongly dimensioned.
a8bd4d316 Implement to_dense (MatGeneric abstract method) in all subclasses both on GPU and CPU.
535a566dd Add a unit test for Transform<FPP, GPU2>::multiply(const FPP&).
36ef436ad Rewrite Transform<FPP, GPU2> getNbRow/Col, size, multiply(const FPP&) to be independent from gpu_mod.
7ea21feb6 Add operator*=(const FPP&) overload in MatGeneric<FPP, GPU2> (abstract method) and implement it in child classes.
e80c8a80a Move non needed template Transform function specializations into template functions (from .cpp.in to hpp).
b10ca7304 Rewrite Transform<FPP, GPU2>::multiply(MatDense<FPP, GPU2>, ...) without relying on gpu_mod + add its unit test.
de45fab9d Add abstract "MatGeneric<FPP, GPU2>::multiply(MatDense<FPP, GPU2>&, const char) const" and a fix of its overload in MatDense<FPP, GPU2>.
60867b667 Fix outdated sliceMultiply cpp test.
da4e10717 Fix in MatButterfly missing default ctor call needed for a proper ini.
89c61d605 Fix use of deleted CPU TransformHelperButterfly in cpp unit tests.
ed62343a5 Fix error: invalid use of incomplete type ‘class Faust::MatPerm<double, (FDevice)1u>’ when compiling error: invalid use of incomplete type ‘class Faust::MatPerm<double, (FDevice)1u>’
ee90109dc Enable on GPU the butterfly optimization of pyfaust.circ and anticirc.
35f438632 Add CPU MatButterfly level getter.
d1cd3b463 Add GPU2 MatButterfly new ctors and a getter.
33d2c89a1 Fix GPU2 MatButterfly dtor.
154404b3a Add GPU2 MatPerm new ctors.
d2ab8f187 Fix GPU2 MatPerm dtor segfault.
87381e101 Integrate GPU2 MatPerm in TransformHelperButterfly to replace old code.
8c92b28eb Add full MatPerm<FPP, GPU2> implementation and its unit tests.
bc3147b4d Fix missing transpose copy in assignment operator overload of MatButterfly<FPP, GPU2>.
62e81648c Remove ButterflyMat from TransformHelperButterfly<FPP, GPU2> and use the new independent MatButterfly<FPP, GPU2> instead.
305a43928 Add copy and default ctor, assignment overload + getter and multiply overloads in GPU2 MatButterfly.
cfa2968c7 Add GPU2 MatButterfly get_gpu_mat_ptr, conjugate, adjoint, Display and unit tests.
dab3da470 Add GPU2 MatButterfly::getNonZeros()/transpose() and unit tests.
71d4408ab Add GPU2 MatButterfly::get_cols/rows, norm, clone and their unit tests.
3f42c1201 Add GPU2 MatButterfly::toMatSparse and its unit test.
60c4a73fe Add GPU2 MatButterfly::multiply(MatSparse<FPP, GPU2>, const char) and its unit test.
3f1dcf52a Add GPU2 MatButterfly getNbRow/Col/getType and unit tests.
e7821d102 Add skeleton for GPU2 MatButterfly + multiply(MatDense), setZeros(), getNBytes() and corresponding unit tests.
0ed8e01c6 Fix use of undefined type 'Faust::TransformHelperButterfly<FPP,GPU2>' in mexFaustGPUCplx (issue #292).
b7d1e6730 Delete TransforHelperButterfly<FPP, Cpu> which is not used anymore.
06054e035 Fix TransformHelper<FPP,GPU2>::fourierFaustOpt.
2625bf180 Minor correction in lazylinop.ipynb.
517cebe26 Choose a specific version of scipy in test_unix_purepy_pkg (fix macos scipy building error by using older wheel packages).
4defe4fa2 Minor change in matfaust.opt_butterfly.
1bcf2a5ba Complete unit tests of matfaust.circ/anticirc/toeplitz for the diag_opt optional argument (butterfly matrix opt.)
3c87bc01b Enable butterfly matrix optimization in matfaust.toeplitz.
b7a972886 Enable butterfly matrix optimization in matfaust.anticirc.
699dee5ba Enable butterfly matrix optimization in matfaust.circ.
bddf85f9d Enable MatButterfly/MatPerm composed Faust in matfaust.opt_butterfly_faust wrapper (instead of using TransformHelperButterfly).
8809daedc Enable MatButterfly/MatPerm composed Faust in matfaust.dft wrapper (diag_opt option).
61ae92c84 Update lazylinop notebook: add a listing of available structure LazyLinearOp-s, a pointer to pylops and minor corrections.
6e09bcbc3 Complet unit test of pyfaust.circ/anticirc/toeplitz for diag_opt=True (butterfly structure opt.).
3fa4c0a09 Fix in MatButterfly::toMatSparse the bug found on pyfaust.circ().toarray().
c312ac7fc Fix ambiguous conj call compilation error.
9d556920f Update C++ unit test of TransformHelperButterfly::fourierFaust replaced by TransformHelper::fourierFaustOpt.
f3b34dfa9 Enable butterfly diagonal optimization in pyfaust.anticirc and toeplitz.
1959b188a Disable virtualslicing/indexing on TransformHelper/Faust when they contain non-MatDense/MatPerm matrices (not yet supported).
b53d395a4 Optimize pyfaust.circ when diag_opt=True (4 factors merged into one butterfly matrix) and refactor the function to simplify the case diag_opt=False.
b99990817 Refactor CPU fourierFaustOpt using optButterflyFaust and add its GPU2 version.
6ac69808e Bind pyfaust.opt_butterfly_faust to TransformHelper::optButterflyFaust and add a (not yet implemented yet) GPU2 version of this function.
a7f0a56b1 Add TransformHelper::optButterflyFaust to implement pyfaust.opt_butterfly_faust without TransformButterfly.
00f7af822 Extend Faust::gemm_gen to MatButterfly/MatPerm.
c3713d363 Add a unit test for MatButterfly::adjoint.
ea7a1c35f Fix MatButterfly::conjugate (transpose state wasn't handled).
6d98c9871 Fix call to real in faust_conj.cpp.
89f7e1b0f Add MatPerm::isPerm.
a3bdf0a90 Enable butterfly and permutation optimizations of the dft in pyfaust.circ (diag_opt arg.).
91ca514a7 Replace the use of TransformHelperButterfly::fourierFaust by TransformHelper::fourierFaustOpt in pyfaust wrapper cpp code.
31a41511d Add TransformHelper::fourierFaustOpt and tweak TransformHelper::multiply(FFP* v, ...) to benifit of this optimization on Faust-vector mul too.
2a368fece Make two Transform::multiply functions compatible with MatPerm and MatButterfly.
40aaa28d0 Update MatGeneric::to_string for MatPerm and MatButterfly compatibility.
6cd0367d3 Add missing std namespace qualifiers.
9846a76f8 Integrate MatPerm use in TransformHelperButterfly.
bcdc34f00 Fix wrong call to update_dim in MatSparse::nonzero_indices (862cff77).
fb12d4630 Add MatPerm default ctor.
63f9a0438 Add unit tests for Faust::MatPerm.
8466f4905 Compress the sparse matrix to nonzeros before enumerating them in MatSparse::nonzeros_indices.
f163f8f9a Add a sanity check on indices in MatButterfly::operator(), remove/add TODOs.
b3e97a569 Add a new matrix type: Faust::MatPerm.
7cab5aa09 Integrate MatButterfly use in TransformHelperButterfly and remove old ButterflyMat first prototype.
d6862e1da Fix std::conj calls in MatButterfly functions (the return type can't be always complex it must be the same type as input here).
9c8752a12 Add a generic conj function that returns the same type as in input contrary to std::conj.
d31e9e043 Add a unit test for MatButterfly::faust_gemm.
4b1447e94 Fix bugs in MatButterfly::faust_gemm and implement a conjugate argument to multiply prototypes.
699b17d77 Implement MatButterfly::faust_gemm.
88dd27e38 Add a unit test for MatButterfly::normL1.
a97d03c6e Set optional MatButterfly::normL1 transpose argument and fix a bug on MatSparse size of MatButterfly::toMatSparse.
f35a7f4d4 Implement MatButterfly::get_col(s)/row(s) and normL1.
db136edf0 Add a unit test for MatButterfly::nonzero_indices.
e3a8e4226 Add a tol(erance) argument in MatGeneric::nonzero_indices and make the change in subclasses definitions.
6951a9ccd Implement MatButterfly::nonzero_indices.
38c05d7fc Implement MatButterfly::setZeros.
22fc70e19 Implement MatButterfly::containsNaN and its unit test.
150231357 Implement MatButterfly:operator(i, j) (item access) and its unit test.
166286903 Implement MatButterfly::toMatSparse along with its unit test.
694ada4da Impl. MatButterfly::norm() with its unit test.
7493b1b44 Add Butterfly in enum of matrix types.
719455b5f Add unit tests for MatButterfly getType and operator*=(FPP) + refactor equality tests in functions.
722728d9b Implement MatButterfly::operator*=(FPP).
326440ae9 Add a unit test for MatButterfly::getNonZeros and getNBytes().
1804fc405 Implement MatButterfly::getNonZeros() and getNBytes().
fbf26f8ee Add more unit tests for MatButterfly::transpose.
23edad793 Fix a bug on transpose case of MatButterfly multiplication and impl. conjugate and adjoint member functions.
420c548b4 Add unit test for MatButterfly::transpose and refactor clone unit test in its own function.
22149efab Implement MatButterfly::transpose with a cache mechanism.
1ddbb4ccc Add a unit test for MatButterfly::Clone.
bca1cd0bc Add MatButterfly copy ctor and assignment operator and implement the Clone member function.
c42a0e417 Add a unit test for MatButterfly-MatSparse multiplication.
310da14c7 Add MatButterfly::multiply definitions (by a MatDense/MatSparse).
ce9b80ec5 Make MatGeneric::getNbRow/NbCol virtual in order to override them in MatButterfly.
320f11bb4 Minor correction in notebook.
603d05cfc Add a C++ unit test for MatButterfly-vector multiplication.
baef45a6a Minor change.
faaf8b20c Add missing prototypes and fix constness in multiply(Vect) of MatButterfly.
756540a91 Start impl. of MatButterfly as a MatGeneric child class.
3ed52bbf8 Add a unit test for matfaust LazyLinearOp.pagemtimes.
2c3cd2a14 Implement matfaust LazyLinearOp pagemtimes and add error for array of N > 2 dimensions in mtimes.
5cf7f454e Minor change in doc of matfaust LazyLinearOperator.
8bad959b9 Add a unit test for pyfaust LazyLinearOp matmtul by a numpy ndarray.
049e884bb Add pyfaust LazyLinearOp support of matmul by a multidimensional numpy array (nd greater than 2).
eda6ac6ae Add MatDense<FPP, Cpu>::setRand.
f50a60c62 Fix pyfaust LazyLinearOp indexing by just an int (eg. lop[0]).
301bd00bb Verify consistency of dimensions in pyfaust.lazylinop add and sum.
c03ca844c Add unit tests for matfaust.lazylinop.sum.
521c54b0d Add unit tests for pyfaust.lazylinop.sum.
a9e497c6e Add unit tests for matfaust.lazylinop.blkdiag.
dd2df41ff Fix matfaust.lazylinop.blkdiag for transpose/adjoint case and block offsets.
a4b9acdf8 Add unit tests for pyfaust.lazylinop.block_diag.
29b4776ca Ensure blocks passed to block_diag can be LazyLinearOp-s.
c75d6e411 Fix two bugs in pyfaust.lazylinop.block_diag.
351612eb5 Remove old matfaust asLazyLinearOp function and document new aslazylinearoperator function.
f4412dd35 Add matfaust.lazylinop.sum with its doc.
ca6711d30 Add matfaust.lazylinop.blkdiag with its doc.
c34884f1c Minor changes in pyfaust.lazylinop.block_diag.
4ac0c4f51 Add pyfaust.lazylinop.block_diag with documentation.
5c585c638 Add pyfaust.lazylinop.sum with documentation.
9713ce7cc In pyfaust.lazylinop fix eye when m==None and add doc for eye and diag.
2a4493c2b Add examples to matfaust.lazylinop.eye.
fd1274483 Minor change in matfaust.lazylinop.diag doc example.
0b08e4e47 Update Doxygen config for matfaust.lazylinop doc.
9aec580c4 Add an example in matfaust.lazylinop.diag doc.
c40954272 Add unit tests for matfaust.lazylinop.diag.
a3d0d56cc Add matfaust.lazylinop.diag.
fe2f0d753 Fix pyfaust.lazylinop.diag case k == 0.
fb0181ff2 Add doc for matfaust.lazylinop.eye + fix of matfaust.lazylinop brief desc.
625d42c77 Add unit tests for matfaust.lazylinop.eye.
bf488ea23 Replace optional key-value arguments by optional arguments in matfaust.lazylinop.eye.
9475a753e Add matfaust.lazylinop.eye.
acecb3913 Minor fixes in option parsing of member functions of matfaust LazyLinearOp.
38a78b12d Add unit tests for pyfaust.lazylinop.diag.
97878f421 Add unit tests for pyfaust.lazylinop.eye.
2ce29ce09 Fix pyfaust.lazylinop.eye in case k=0.
319668fbf Make np.ndim(x) work on x a Faust/LazyLinearOp.
cf26c3fce Update pyfaust.lazylinop.diag.
8af7dc126 Add pyfaust.lazylinop.diag (not handling mul to another LazyLinearOp yet).
e4c524558 Add pyfaust.lazylinop.eye with doc.
f19f84c69 Minor fix in compute_XY_on_gpu.
fd363b17e Minor fix in pyfaust.proj.blockdiag doc.
db486bcf2 Add time measurement in test and optional GPU module initialization.
9f218e61f Integrate the GPU batched SVD in butterfly right/left factorization C++ impl.
421e4e19b Add set_row/col_coeffs overloads in Faust::MatDense<FPP, Cpu>.
0e5349076 Fix GPU code of butterfly balanced facto.
2c3ef12b5 Update c++ test of butterfly balanced factorization for GPU use.
05feacb67 Integrate the GPU batched SVD in butterfly balanced factorization C++ impl.
5ded8fa14 Lower level prototypes of submatrix member function in MatDense and MatSparse (Cpu).
960891179 Update to gpu_mod@ce1c816.
1eb0c3d69 Add a unit test for the GPU partial svd (batched_svd).
90ae7a464 Add another prototype of GPU batched_svd and copyBufBlock function in MatDense<FPP, GPU2>.
4c5f1c5d4 Add MatDense::print_mat utility function
ba963ef0e Add a test of GPU batched SVD.
bcd227faf Add GPU batched_SVD updating to gpu_mod@4bfc92d
5f252c1f6 Update to gpu_mod@a33c81e.
4e3ce547c Update lazylinop jupyter notebook.
71857df52 Update matfaust.lazylinop multiplication by scalar to be less costly.
3cde8cdff Switch to column-major order eye in pyfaust.lazylinop.LazyLinearOp.toarray to be compliant with Faust __matmul__.
e9875d56e Fix pyfaust LazyLinearOp.imag ; it must be real.
4d08e24c6 Update to gpu_mod@009f116.
a542befab Udpate to gpu_mod@42c82e7.
ce5dac34f Update matfaust.lazylinop doc and minorly pyfaust.lazylinop'.
5d28c3173 Update matfaust.lazylinop.kron to fit the new implementation of LazyLinearOp and update related unit tests.
97f6a6f09 Fix matfaust.lazylinop.LazyLinearOp.mtimes in case the operands are reversed like in M * L (where M a matrix and L a LazyLinearOp).
dbdb334e8 Minor change in lazylinop.py kron error message.
f0603505f Add matfaust.lazylinop.LazyLinearOperator ctor and update unit tests consequently.
869ea0059 Add matlab unit tests for LazyLinearOp defined from functions (here fft).
4b1f95802 Re-implement matfaust.lazylinop.LazyLinearOp with multiple lambdas (as done for pyfaust) + update unit tests + add aslazylinearoperator function.
a4cf611ea Fix lazylinop.LazyLinearOp.imag multiplication lambda.
208e0288e Minor changes and fix in lazylinop.py.
26508f317 Fix missing lambdas for conjugate LazyLinearOp in create_from_op and create_from_funcs functions (pyfaust).
94f0ea56a Update pre-rendered version of the pyfaust lazylinop notebook.
141f38dc0 Exclude some symbols of pyfaust.lazylinop from public doc.
f45fd8f74 Update doc of pyfaust.lazylinop.
92e4dec05 Update the lazylinop notebook with explanations on creation with matmat/matvec functions and an example based on scipy fft.
35cc5c42b Minor change in pyfaust LazyLinearOperator doc.
451f8a6a3 Fix a bug in LazyLinearOperator occurring when applying to a 1d vector a lazy op defined upon a matvec function.
ec69f3231 Update the lazylinop notebook in the next to the new impl.
952848b67 Update unit tests of LazyLinearOp to handle the switch to the new impl. by default.
b9db4ab49 Replace previous LazyLinearOp impl. by the new one (renaming LazyLinearOp2 to LazyLinearOp).
2ec6613bd Add pyfaust.lazylinop.kron2 (based on LazyLinearOp2 instead of LazyLinearOp) and associated unit tests.
17faaefb5 Make pyfaust LazyLinearOp * a synonym of @ except if the operand is a scalar (following scipy LinearOperator behaviour).
cd73786ad Add pyfaust.LazyLinearOperator and aslazylinearoperator.
013aae0dd Add general indexing support to pyfaust LazyLinearOp2
7ba6a066a Add unit tests for pyfaust LazyLinearOp2.
27aa848ee Add a new lazy linear op impl.: LazyLinearOp2.
89421c48e Update: same as 1eeee543 for matfaust.
7869f54c6 Update pyfaust circ/anticirc for arbitrary length vector + associated unit tests.
d87df8fc6 Add SVD alternative analytical solution for rank-1 approximation.
6cfb1e53b Reduce the size of the tested Faust in lazylinop notebook.
9f34f5323 Add best_low_rank2 and replace Eigen JacobiSVD by BDCSVD.
036efa6c9 Enable openmp in solveDTO.
e00599f42 Update lazylinop notebook.
495a26329 Fix regression 4615e5c6.
5d985225f Add a link to LazyLinearOp jupyter notebook on the main page of doxygen doc.
189afc945 Update the lazylinop jupyter notebook.
d21db77fd Minor correction in F_CONTIGUOUS conversion of complex operand in pyfaust.Faust.__matmul__.
0cee041ef Update pyfaust LazyLinearOp: use .T.conj() instead of .H for larger compatibility (fix for scipy svds).
36c9af01f Update pyfaust LazyLinearOp ctor: verify that the starting object has two dimensions (only one is forbidden).
004e9a6f1 Complete matfaust LazyLinearOp.mtimes unit tests, in particular for the LazyLinearOp * sparse matrix case that must be computed.
fd7a701ee Update matfaust LazyLinearOp(/Kron).mtimes to evaluate the result of this * op if of is a sparse matrix (as made for op a full array).
39a21e170 Update pyfaust.Faust.__matmul__ to handle coo_matrix and bsr_matrix (by conversion to csr).
776286c4f Complete pyfaust LazyLinearOp.__matmul__ unit tests, in particular for the LazyLinearOp @ scipy matrix case that must be computed.
4068e6264 Update pyfaust LazyLinearOp.__matmul__ to evaluate the result of self @ op if op is a scipy matrix (as made for op a np.ndarray).
742d23eb9 Add a unit test for pyfaust rand_butterfly/opt_butterfly_faust and complete the unit test for the dft butterfly opt (transpose case).
cc8facbbf Implement (C++) transpose case of butterfly Faust optimization on CPU.
456e82fc8 Fix missing link in lazylinop jupyter notebook.
71b4aedb8 Simplify gitlab-runner tags for pages ci jobs.
c92375b1f Add lazylinop module jupyter notebook and pre-rendered html version.
042dc39e2 Parallelize pyfaust.lazylinop.LazyLinearOpKron.__matmul__ when multiplying a X with multiple columns and add an option (disabled by default) to force the evaluation (just for comparison).
925ea7a88 Document matfaust/pyfaust.lazilinop kron and LazyLinearOpKron.
08ce0556c Add unit tests for matfaust LazyLinearOpKron.
cd3e66347 Implement matfaust LazyLinearOpKron and matfaust.lazylinop.kron.
0abe924ee Fix matfaust.Faust errors in cat [matrix; Faust], [matrix, Faust] and addition/subtraction matrix +/- Faust (in this order).
4f031db97 Update pyfaust LazyLinearOp and LazyLinearOpKron:
63e06fe74 Complete unit tests for pyfaust.lazylinop.LazyLinearOpKron/kron.
f6c005cd0 Add pyfaust.lazylinop.kron and LazyLinearOpKron associated class.
a4665048e Replace tux_packager ci job tag by rpm_deb_release.
d644e9725 Fix root classes of pyfaust not showing up in the doc + typo.
e4aac8b2d Document matfaust.lazylinop and update pyfaust.lazylinop doc.
6e82921f8 Update pyfaust LazyLinearOp vstack hstack and concatenate to handle any number of arrays.
8cf6d20f8 Review pyfaust.lazylinop doc.
af3efeea8 Add unit tests for matfaust LazyLinearOp.
81cd2ea8c Update matfaust LazyLinearOp.
ed1ad836e Impement mafaust lazylinop module: LazyLinearOp class and related functions.
5f94d597d Warn of beta status of pyafust LazyLinearOp.
b7ea74394 Update pyfaust LazyLinearOp ctor and transpose/getH functions.
0a2f2e920 Fix LazyLinearOp.__add__/__sub__ and __getitem__
c20f8ffdb Add pyfaust.lazylinop.vstack/hstack and their unit tests.
e884e3cc6 Add dev argument to matfaust/pyfaust circ, anticirc and toeplitz functions.
22cf1c275 Extends scipy LinearOperator into pyfaust.lazylinop.LazyLinearOp.
de318fc69 Add pyfaust.lazylinop.asLazyLinearOp and its unit test.
670c55270 Add FaustLazyLinearOp.imag and its unit test.
dd747d97f Add FaustLazyLinearOp.real and its unit test.
494a35c57 Fix pyfaust.LazyLinearOp.concatenate resulting shape and complete the corresponding unit test.
924edd602 Fix pyfaust.LazyLinearOp.__getitem__ infinite recursion and add a unit test.
f91f1d951 Review/harmonize matfaust/pyfaust circ, anticirc, toeplitz, dct, dst, dft.
eb4a3fd2f Raise matfaust/pyfaust.dst an error if n is not a power of 2.
ce3b81d35 Add unit tests for pyfaust.LazLinearOp.
18daf38a6 Update pyfaust.LazyLinearOp
ae351eec2 Restrain the matplotlib versions in test_unix_purepy_pkg (fix macos matplotlib building error by using older wheel packages).
77431e5d4 Add pyfaust.lazylinop to namespace filtering (doxypypy).
92e4e15c8 Fix make-install command.
66646f532 Correct variable name for the matio static lib path in linux pip package jobs.
7ecc3ddab Fix two dimensions slicing bug (issue #285).
8e60c1333 Update to gpu_mod@062c29d.
2fdc55ebf Add Faust.__ifloor___ (not supported) and fix __imul__, __isub__ and __iadd__ error.
9b5bfd940 Add (undocumented, experimental) LazyLinearOp.
5fb627dca Update pyfaust.concatenate to handle scipy matrices and numpy matrices (with or without Faust(s)) concatenation and Fix pf.concatenate((M, F)) that recursed indefinitely.
ca58d19d2 Correct pyfaust.Faust in-place operations (iadd, isub, imul, imatmul).
db72ef86a Optimize ButteflyMat<FPP, GPU2>::multiply by using a dedicated kernel (gpu_mod@837684f).
8970c50dd Fix the script shebang.
8f8ebfc03 Update to gpu_mod@5e2a81b.
db91ef423 Refactor pkg_macos_release and pkg_macos ci jobs into a unique script.
4fed8d59c Fix multiple errors in TransformHelperButterfly<FPP, GPU2> (wrong buffer size, forgetting the Faust scale factor, and other minor errors).
435a57927 Add copy and assignment operator overload to Faust::TransformHelperButterfly<FPP, GPU2>.
3d7c63985 Set multiply member functions to virtual in order for the TransformHelperButterfly (GPU2) redefinitions to be called.
7b87dee17 Fix Vect<FPP, GPU2>::operator= (the source vector hasn't to be of the same size for the copy to work.
0f7f5ae13 Refactor static library paths for macos and linux into environment variables.
1211fb8b7 Implement GPU Butterfly Faust optimization in the C++ core.
4919663d6 Implement elementwise multiplication with arbitrary element order (MatDense<FPP, GPU2>::eltwise_mul) + its unit test (test_eltwise_mul_ids_vec).
ef1755509 Fix test_eltwise_mul_vec unit test + update to gpu_mod@4dafb3a
c24493cee Overload + operator for matfaust/pyfaust.Faust class
bd3bdca68 Add GPU elementwise multiplication for MatDense and a unit test.
d534cc088 Implement diag_opt option for matfaust.fact.butterfly.
5bfb26f92 Implement diag_opt option for pyfaust.fact.butterfly.
0dc2d39bd Make optional to multiply the permutation to the last butterfly.
72998d8fc Move bitrev from tools module to pyfaust root as it was done for bitrev_perm.
7646dd026 Update to gpu_mod@befc138
ccd0bdc36 Minor fix in fgft_palm Faust call ctor.
b08a1f9c8 Move/alias bitrev_perm in matfaust/pyfaust package root and document it.
6eb6e8b69 Update test pip wheel package ci job: upgrade pip before testing.
ed8271cb8 Clean conda cache after pyfaust pkg upload.
069cce0a3 Redefine TransformHelperButterfly::to_string to show butterfly opt flag.
54ed29165 Add diag_opt option to pyfaust/matfaust.rand_butterfly.
4116ac228 Add the wrapper matfaust.opt_butterfly_faust to optimize any butterfly Faust (in addition to the DFT).
c2185ab08 Fix 6c8419af that filters all the tests instead of only faust_butterfly_transform.
daeb6b4af Fix GPU faust core compiling error due to missing TransformHelperButterfly<FPP,GPU2>::optFaust function (implemented only on CPU).
e3d8a1601 Add the wrapper pyfaust.opt_butterfly_faust to optimize any butterfly Faust (in addition to the DFT).
202eebc38 Add the c++ function TransformHelperButterfly::opt_faust to optimize any Faust with butterfly factors.
f233c2028 Add a python unit test for the diagonal optimization of DFT (with or without normalization).
338cc41e2 Add a matlab unit test for the diagonal optimization of DFT (with or without normalization).
6a67f8cb1 Replace the workaround in FaustCore by a copy argument and use it in butterfly, hierarchical and palm4msa.
33ec1ac00 Minor change in faust_fourier.hpp mex dft wrapper (specify std C++ namespace and init ptr to nullptr).
5a04b8f81 Change the return type of TransformHelperButterfly<FPP,Cpu>::fourierFaust to parent TransformHelper (does'nt change anything).
ecc3f47a8 Fix normalization issue of pyfaust/matfaust.dft when diag_opt is True (#275).
3a12594a7 Fix old license in header.
b69d99504 Update matfaust.eye to rename dtype argument to class (more matlab compliant).
40b0f2593 Set the field argument as deprecated in pyfaust.rand and ensure field an dtype consistency.
40d14079a Ensure all compatible dtype synonyms support in pyfaust with utility function pyfaust.tools._sanitize_dtype (issue #273).
00fc54722 Enable float support for GPU pyfaust.eye/wht.
e99e3719b Replace pyfaust.eye t argument by more standard dtype argument.
41f68f70e Fix pyfaust.circ for size = 2 and 4 (bug introduced by 16b900fb).
11b8ddcd0 Update matfaust.circ/anticirc/toeplitz API docs.
b1663611f Optimize matfaust.circ by merging intermediate permutation and diagonal factors.
a028ff3d2 Fix test built for unforseen real/complex types.
8003c82d8 Fix compilation error: reference to ‘ButterflyMat’ is ambiguous.
57db852fd Fix type genericity break.
1272b4905 Fix preprocessor directive and eigen macro call.
3b73b6af9 Add (disabled) pythonic (pythran) code for the Faust-vector multiplication in TransformHelperButterfly code + disable use of Eigen::placeholders::all for old eigen versions.
8611c5d64 Minor change in pyfaust.dft doc.
fd1d1f546 Add butterfly diagonal optimization option (diag_opt) to matfaust.dft.
bec3943e1 Add unimplemented GPU2 TransformHelperButterfly and undo 23347c5e.
4a1b8651e Optimize pyfaust.circ by merging permutation factors into the following factor and update doc of circ/anticirc/toeplitz.
4189f6f43 Review pyfaust.circ/anticirc/toeplitz doc.
4fc1f1235 Remove kwargs from pyfaust.circ prototype (the diagonal factor is always multiplied).
73fb851d7 Fix issue #280 on MatDiag multiply (adjoint case) and add a unit test for it.
814122da1 Fix auto-ref in doc of pyfaust.rand_butterfly;
6617901ad Exclude pyfaust.tools.bitrev from doxygen doc as bitrev_perm is and also because matfaust API doesn't expose these functions.
df2a03c6c Document pyfaust.tools.bitrev and bitrev_perm.
987da1f9e Handle class argument in matfaust.dct/dst.
4dc598c17 Fix matfaust.Faust.single regression due to a e2a04b60 workaround.
d4b9f9caa Rename dst.butterfly utility function to butterfly_ to avoid confusion with matfaust.fact.butterfly and filter out this function from API documentation.
ef6a6e7ad Add dtype argument to pyfaust.dct/dst.
732363436 Fix wrong call of TransformHelperButterfly::fourierFaust from python wrapper GPU code (it is not supported on GPU).
2467267d8 Show the Faust density in example of pyfaust/matfaust.dct/dst.
91134fa0a Update matfaust.dct/dst unit tests to handle/check normed argument.
25ae82c9c Add normed argument to matfaust.dct/dst + fix swapped examples.
9c0caa522 Use eigen DiagMat for D1, D2 etc., stuck to omp-loop for multiplying vectors but use eigen for multiplying matrices (faster).
2f3e20e50 Handle adjoint case in MatDiag::multiply.
a09027b73 Add normed argument to pyfaust.dct/dst and update doc and unit tests consequently.
d1857042f Fix pyfaust.dft and matfaust.dft doc.
a1f9d4806 Update the wrapper an add a diag_opt argument to pyfaust.dft for using the TransformHelperButterfly product.
af99ab907 Implement TransformHelperButterfly multiplication by MatSparse.
15bd4284e Add multiply(MatDense) to TransformHelperButterfly.
d7a794880 Integrate a new kind of Faust to optimize Butterfly Faust - vector multiplication.
70b6ea913 Minor fix in fft_factors (missing std namespace).
e23510d26 Add minor todos and code doc in CPU TransformHelper.
bd2439572 Add ButterflyMat::Display function in butterfly opt test.
1a6469608 Add in tests AVX, OpenMP SIMD, Eigen (template exps) to the ways of computing the Faust DFT-vector product using diagonal opt.
47f44bfe3 Compute the elementwise multplication manually (without eigen) using OpenMP to parallelize and avoiding to reorder the multiplied vector (rather indexing it).
f7a494eee Add a simple test of the implementation of DFT/Butterfly faust product optimization (#275).
795d9963a Refactor pkg_linux and pkg_linux_release ci jobs into a bash script.
b6fc39b79 Refactor pkg_win and pkg_win_release ci jobs into a batch script.
3a013d76f Fix dtype error in Faust pyx ctor part for bsr_matrix factors.
36ca81839 Update to gpu_mod@da4f843.
6e148bf38 Avoid useless copies of A and B matrices in GPU2 spgemm and bsrgemm.
a03a4d3a9 Fix non-initialized pointers in GPU2 gemm_gen.
28807c6ac Disable test_win_pkg_release ci job mistakenly re-enabled before.
000c1e2a1 Fix symlink loop on gpu_mod shared library which occurs if cmake is ran two times in a row.
9fe5e7890 Set the pkg_win_release ci job as a need of pages ci job.
a11b49c0f Remove erroneous USE_MATIO_STATIC_LIBS option from pkg_win_realease ci job + add MATIO_LIB_FILE option for python build cmake too.
8a1042f86 Re-enable windows release ci jobs.
6d5153a0a Add a Faust::bsrgemm GPU2 unit test.
c1e9b12e9 Fix possible erroneous size of C (output) in MatBSR<FPP,GPU2>::bsrgemm.
e4ba4c82d Update to gpu_mod@d76e343.
69150528c Adjust the python name (python3 is python) for Windows in the workaround needed in case no python has been set (when BUILD_WRAPPER_PYTHON=OFF).
f12fea0de Update pkg_win and pkg_win_release jobs to make the python version used consistent to their pkg_win_purepy ci job counterparts (WIN_PY_VER).
9256df0bd Rely on matio standalone static library instead of simple matio + dependencies static libraries for matlab wrappers too.
ea7971dcd Stop relying on HDF5 and SZIP (matio dependencies) objects for compiling matfaust mex-s (as did for pyfaust in 52915f27).
5b81962d8 Update about windows matio library and openmp (details below)
ac0bffb78 Pass explicitly the BUILD_CONFIG variable in cmake commands of win pkg ci jobs (because the CMakeLists.txt for the python wrapper used the value of CMAKE_BUILD_TYPE).
cab381a21 Enhance the building of the python wrapper for Windows.
62f3d8f21 Remove pruneouts from pyfaust.Faust.real/imag (too costly: e.g. 44s instead of 63ms without it in real).
6cad64a4a Handle charset detection in post_docgen_html_tags_filter.py to avoid error reading non utf8 files.
15eed53a1 Fix matlab cpp compilation error in faust_optimize_time_prod (GPU version).
3840a7ebb Rely on generated header of gpu_mod for CUDA 11.4 in faust_linear_operator module.
71849edfe Update win installer script since CUDA9.2 support has been removed.
9caa4a4ee Implement TransformHelper<FPP,GPU2>::optimize_multiply (only for DEFAULT_L2R and DYNPROG) and refactor TransformHelper::optimize* functions in parent TransformHelperGen (for CPU and GPU) + minor fixes in cpp python wrapper of optimize* functions.
962ecc104 Remove from CMake script the cuda version 9.2 if windows (forgotten in e8e7fd3fca06e96fe498694779bfd04120e8b84a).
55bcfa69d Lighten matio, zlib and hdf5 Windows library paths (all in one folder named faust_libs).
72cf3eaa0 Remove flag detection for outdated C++0x and make optional the success of that of C++11 (the compiler should be up to date).
07ec94a21 Update matio linking on Windows with HDF5 dll auto-loading from pyfaust wrapper.
0fa63b6c6 Drop support of Visual Studio 14 2015, use now only Visual Studio 16 2019 (#218).
98228a1ce Drop CUDA 9.2 support for gpu_mod build on Windows.
3d736c93d Enable DYNPROG Faust product (Faust.toarray()) for GPU.
9376f0a7e Move TransformHelper<FPP, Cpu>::set_FM_mul_mode to the parent class TransformHelperGen to use in TransformHelper<FPP,GPU2> too.
f7f3aa084 Integrate BSR matrix in GPU2 gemm_gen using bsrgemm.
486e8b27d Add a BSR Faust test in dynprog_mul c++ test.
6e193ade8 Implement bsrgemm in faust_linear_algebra GPU2 module.
528ac10ff Implement MatBSR<FPP, GPU2>::bsrgemm and update to gpu_mod@a1dd1ad.
b85f96fda Fix GPU2 MatDense move ctor, undue freeing.
c477df16d Implement GPU2 spgemm prototypes as on CPU and use them to implement gemm_gen for GPU2 + update to gpu_mod@0f2c75e.
3ed7504a3 Fix missing gpu_mod loading in test_dynprog_mul_gpu and updade to gpu_mod@48c6b03.
b3e4b105c Fix missing HTML anchor for cuda installer Q&A in doxygen doc FAQ + slight rewriting.
7a2963382 Add GPU test for cpp dynprog_multiply.
032d9dec5 Update set real generic code in faust_prod_opt_gen by using FDevice enum instead of specific Cpu value.
1a5fd0782 Add MatBSR<FPP, GPU2> getNbBlockRow/Col and getNBlocks functions + update to gpu_mod@1488445.
9edb74f74 Move dynprog_multiply and cost computation functions from faust_prod_opt to the new module faust_prod_opt_gen (intended to be generic, for cpu and gpu).
319d600ec Add a unit test for (faust_prod_opt) dynprog_multiply C++ function.
99ef5d23e Update MatGeneric::to_string to print the factor memory address of CPU matrices as done already for GPU.
73d1b403e Fix minor bug in C++ Faust::TransformHelper::randFaust: from a cpp prog. the number of factors was always the same for the first Faust generated (even if the seed was initialized to current time).
0193d68e0 Update macosx pkg license file with 3-clause BSD and scipy license.
5c98d8e7d Add scipy license to pyfaust pip package.
2dfb541b9 Use scipy license file (code used here ./src/utils/faust_scipy.h*).
2ccabcecf Temporarily disable win release pkgs.
968689a30 Fix pyfaust rand_butterfly doxygen doc error (the brief description must fit into one line.
dd1ad91af Update matfaust/pyfaust wht, dft, dct, dst, rand_butterfly API doc.
b6a4b4d36 Iterate again on matfaust/pyfaust butterfly doc (minor changes) + add references to wht, dft and rand_butterfly.
ce2728255 Add two tests scripts to fully test matfaust and pyfaust butterfly function (hadamard, random butterfly matrices with no permutation, with random (transpose or not) permutation and bit-reversal permutation.)
08329d267 Minor changes in the doc of pyfaust/matfaust butterfly function.
b1f17086b Add in mat/pyfaust butterfly doc a note about converting permutation matrix <-> permutation list of indices.
e9744a664 Add matfaust.rand_butterfly to the doxygen doc.
fc25889a0 Update matfaust/pyfaust.fact.butterfly doc to point out the BP structure.
892b8f021 Correct permutation matrix to indices conversion in pyfaust and matfaust wrappers.
182fb4f13 Fix matfaust unit tests of dct, dst, toeplitz, circ/anticirc.
a4c6e3b1c Fix a memory bug of Faust created from different mex shared lib than the main ones (mexFaustReal/Cplx/Float).
566c0182b Review the matfaust/pyfaust.fact.butterfly doc after Rémi's comments.
106bc1874 Fix matfaust/pyfaust butterfly unit tests of DFT factorization (it needs the perm='bitrev' argument now).
1b6a88e78 Add unit tests for pyfaust/matfaust rand_butterfly.
e7bb053c8 Add paper reference for the 8 default permutations of matfaust/pyfaust.fact.butterfly.
fac21fa72 Update pyfaust/matfaust.fact.butterfly: add 'bitrev' option for perm argument and complete the doc.
85c82b313 Add matfaust.rand_butterfly.
3ff17375d Update C++ Faust::butterfly_hierarchical
a1667bbfd Add pyfaust.rand_butterfly.
e96ae67ad Refactor the bitrev_perm matfaust function to its own file in tools.
28e49ca10 Fix butterfly factorization: stop adding the permutation to the support, rather multiply the matrix M to factorize by P at start then multiply the resulting Faust by P.T.
79b5b41b2 Enable Faust::TransformHelper lazy indexing on GPU.
68a39e964 Fix Windows VS compilation issue of Transform<FPP, GPU2>::indexMultiply casting issue (#272).
4dfcc4206 Update to gpu_mod@b5966c7 (fix).
90fe65d4f Fix pyfaust.tests launching melting field and dtype.
5faf85244 Fix TransformHelper<FPP, GPU2>::indexMultiply X_nrows initialization.
358493ec7 Remove a multiplication test using the old GPU implementation (deleted before).
40c737831 Add a script helper to launch manually a gitlab-runner on macOS.
2d64aa03c Update to gpu_mod@0aff3aa.
f0fe457df Make indexMultiply available in pyfaust GPU wrapper.
733be5e17 Implement Faust::TransformHelper<FPP, GPU2>::indexMultiply.
93216a541 Update gpu_mod@c815fd3
fd8cfb523 Fix of TransformHelper<FPP, GPU2>::sliceMultiply in case of nullptr out buffer + update to gpu_mod@c815fd3.
f2d972ce1 Enable lazy slicing for TransformHelper<FPP,GPU2> and special optimizations (with sliceMultiply) for Faust-vector/matrix multiplication from wrapers.
605a32b82 Add missing slicing/indexing evaluation in Faust::TransformHelper get_total_nnz update member functions.
494d31979 Fix TransformHelper<FPP, GPU2>::sliceMultiply (X_nrows wasn't right).
7b3803263 Set Slice::display to const.
8a5d5aebd Fix missing gpu test faust_gpu_mod.
d31781935 Refactor sliceMultiply in C++ code of the python wrapper to make it available for GPU too.
195df8697 Add a cpp test for TranformHelper<FPP, GPU2>::sliceMultiply.
25d1ebbdc Handle the case of nullptr out buffer in TransformHelper<FPP, GPU2>::sliceMultiply.
d764dbde1 Set TransformHelperGen::is_row_sliced and is_col_sliced to const.
71d4d973a Filter out utility function of matfaust.fact.butterfly from doxygen doc.
27aa8306e Correct butterfly permutation feature to obtain a F that approximate M instead of M*P
ef26d2391 Add TransformHelper<FPP,GPU2>::sliceMultiply and update to gpu_mod@f6f99e4.
45a7038bb Remove conjugate and transpose optional arguments from TransformHelper*::multiply functions.
b2c2e3fa2 Fix a bug introduced by beb43d26 in pyfaust.Faust.imag.
5c996ec22 Fix zip command in faust data archiving cmake script.
8ea2b2a62 Stop passing transpose flag argument from matfaust.Faust.mtimes* to C++ core.
1a20325ea Remove conda virtual environment after uploading the package.
be0f54c16 Minor fix in matfaust.Faust.real unit test.
14bd37e7a Add analytical formula in DCT/DST doc.
0af953024 Add cmake script to generate the FAµST data archive and modify the gitlab ci pages job to host it automatically on gitlab-pages when tag is pushed.
5906c2276 Replace in matfaust/pyfaust.Faust.real/imag the [I_n ; 0_n] factor by a column slicing F[:, :n].
ce48a1505 Exclude *cplx2real_op symbols from doxygen doc.
c0e6e89c7 Complete pyfaust.Faust.astype for complex to float32 dtype conversion using Faust.real.
d66297fbd Add unit tests for matfaust.Faust.real/imag.
7529f3025 Rewrite matfaust.real/imag as done for pyfaust in e2139a44.
40aa33c13 Add unit tests for pyfaust.Faust.real/imag.
6ab93b63e Rewrite pyfaust Faust.real/imag functions to obtain a real dtype and set these functions as properties (update DST and DST consequently).
584ad61d0 Update pyfaust.fact.butterfly doc and code according to the previous commit on matfaust.fact.butterfly.
4c7c517fc Document matfaust.fact.butterfly and correct the permutation case in which F is an approximation of M*P.
3fe8d6014 Add the default_8 option (8 deft permutations) to matfaust.fact.butterfly.
d0f7bf054 Implement matfaust.fact.butterfly option to evaluate the factorization on mutliple permutation and keep the best.
bdb5e5d41 Update matfaust.fact.butterfly to optionally pass one permutation to the mex code.
87d55588e Adjust mex butterfly code for complex type case.
b5dc5030a Add mex code for permutation argument of matfaust.fact.butterfly.
ab20e3c89 Fix constness inconsistency (between decl and def) of permutation argument of butterfly_hierarchical.
52fd0b9ce Allow to try multiple permutations in butterfly and keep the best corresponding approximation Faust + documentation and examples.
567c6b8fe Remove erroneously added butterfly symbol to EXCLUDE_SYMBOLS list of Doxygen (it was removing butterfly from the doc).
1ea9cb39e Add perm argument to pyfaust.fact.butterfly and update the wrapper accordingly.
7ab8672cb Add permutation argument to C++ butterfly_hierarchical.
90fb1aa7a Fix a bug in a MatSparse ctor ; dimensions inconsistency against eigen internal matrix.
0085daf1c Optimize matfaust/pyfaust.anticirc: permutation matrix set to sparse.
bffe47b2d Optimize pyfaust.Faust.__add__: last Faust factor was in dense format for no reason, set it to csr.
091e26b78 Refactor bit_reversal_factor functions and add a permutation parameter to butterfly_support function.
4008fc9fc Document pyfaust.toeplitz/circ/anticirc with examples.
9f053a46b Filter out internal functions from API doc.
1ebbe7204 Document matfaust.antircirc and hide internal outputs.
fc3cd5dd0 Verify that c argument of matfaust.circ is a numerical vector.
281d8dfca Document matfaust.circ with an example.
527f0b9f5 Complete matfaust.toeplitz doc with an example.
4ca01cc2b Verify matfaust.toeplitz r and c arguments and allow to pass indifferently a row-vector or a column-vector.
a579cbde1 Verify matfaust.toeplitz r and c arguments and allow to pass indifferently a row-vector or a column-vector.
999ecd412 Fix missing matfaust version in fourth livescript.
7d21f2724 Fix conda pkg build ci job for Windows, it wasn't waiting for the process to finish.
0ad6cf8bb Minor fix in URL parsing of wheel package in conda pkg building script.
0c15037d8 Avoid downloading unnecessary artifacts in conda_*_pub jobs.
3b9c51981 Optimize matfaust/pyfaust.dst and dct by buiding only sparse matrices.
078fb6a15 Complete the matfaust/pyfaust.dct/dst API doc.
2adfe1b36 Add conda pkg building and uploading ci jobs.
7730a31a1 Add matfaust.dst + its unit test (minor changes in pyfaust.dst too)
7d69e57b8 Minor fix in matfaust.dct
eb655ac8a Add matfaust.Faust.real/imag.
06a6e4a92 Add another fix to libomp not loaded for macOS pyfaust python package (using install_name_tool)
b2f05a22d Add Faust.real(), Faust.imag() and update pyfaust.dst/dct/Faust.astype with real.
bef8d5625 Add pyfaust.dst and its unit test.
1e1d2f539 Add matfaust.dct + its unit test.
92a5bc0f6 Update conda pkg build & upload script for Windows.
c9aa155a5 Add some precisions in system package install guide.
bd9f04340 Update pyfaust install in virtual environment guide for Anaconda packages.
fb2d930d2 Fix windows too long filepath bug introduced by cc5488f1 (issue #270).
7c82d4c53 Fix missing dvp.m and normalizeCol.m utility scripts in macOS and linux pkgs (mandatory for the BSL demo).
939db99f8 Update/Review 'Using the FAµST API in Algorithms' livescripts and notebook.
f8b4438e8 Add conda pkg building and uploading script.
c48d62723 Review/Update Faust manipulation livescript and notebook.
f2acc84e4 Hide output in matfaust.Faust.conj.
9ea1de183 Add a unit test for pyfaust.dct.
dd3c1db53 Add pyfaust.dct.
eaab198a9 Update/Correct the 'Faust creation' live script.
85259cae3 Correct grammar error (information is uncountable) and other minor change.
a8df125ee Add unit tests for matfaust.circ/anticirc/toeplitz.
b7d44dd62 Add matfaust.toeplitz + related changes in matfaust/pyfaust doc.
946b8b323 Add matfaust.circ/anticirc functions, to the doxydoc too and update their code code in pyfaust too.
6a1fa04af Prefix filename by parent package for matfaust modules/functions to avoid conflict (e.g. same function names in two different matfaust sub-packages).
c099fda2f Add pyfaust.toeplitz and its unit test.
2c3a45465 Hide sliceMultiply and indexMultiply from doxygen doc as they shouldn't be used directly by users.
d2fdc06b1 Add pyfaust.circ and anticirc along with their unit tests.
55599cc4c Complete the pyfaust.Faust.right/left unit tests with transpose and ajdoint cases.
39bd6a0df Fix TransformHelperGen::left/right functions in transpose and conjugate cases.
a45c9eb80 Fix the link of tomp.mlx in html rendering of 'Using the FAµST API in Algorithms' live script.
ce69f1af4 Mention the FAQ entry about F[I, J] in the pyfaust notebook part about slicing and indexing + other note about column-major order of matrices in FAµST.
62a4cbcbe Add a FAQ entry about F[I, J] operation that is not supported in pyfaust.
9272413a5 Minor correction in faq entry.
e3bbc207a Fix erroneous assertions in TransformHelperGen::init_fancy_idx_transform.
04649f576 Add a FAQ entry about Segmentation Fault error when using pyfaust and torch in the same script on Mac OS X.
0a3492332 Add new unit tests for pyfaust lazy slicing/indexing.
f309e53bd Fix regression due to d99715f8 which prevent F[::step, J] or F[::step, I] to be handled in pyfaust.
11551f377 Set python3.9 for default version of revision/release whl packages and 3.10 for extra version.
3de9589c2 In the next to d99715f8 optimization, manage the case of a partial slicing of a Faust on one dimension combined to indexing on the other dimension.
39017bf24 Add Slice assignment operator.
8de9a16fd Prevent trying to compile TransformHelper::indexMultiply/sliceMultiply and MatSparse::eigenIndexMul when the Eigen version is used is older than 3.4.
75cf8d047 Add scipy namespace.
3bd15f2d8 Update MatSparse::get_rows with the scipy method to be consistent with get_cols last update.
8ac7844f6 Optimize MatSparse::get_cols using scipy method for slicing columns (as it works faster).
d92ae5af5 Don't allocate two buffers in Transform::multiply if the Faust has only one factor.
1c8a89aa3 Optimize Faust row/column indexing by avoiding to convert a full slice ':' into indices.
d315ff270 Do not use sliceMultiply if the Faust is multiplied by a matrix and is composed by only one factor (fallback to previous method with eval_sliced_Transform).
d0b1f4b36 Fix issue #263 compiling error of TransformHelper GPU2.
cf5be2459 Display a warning when the numpy array to multiply is not in column-major order.
834f30db5 Add TransformHelper::indexMultiply prototype that avoid copies by writing directly in the output buffer (update the pyfaust wrapper consequently).
34ca4e723 Fix Faust::TransformHelper::<FPP, GPU2>::init_fancy_idx_transform (issue #262).
2e465ed26 Fix issue #260 Windows compiling error because of older Eigen version (doesn't know Eigen::placeholders, Eigen::all).
bb1a5d114 Add unit tests for lazy slicing/indexing with pyfaust and fix three bugs it helped to find in TransformHelperGen::copy_fancy_idx_state/init_fancy_idx_transform/init_sliced_transform.
2a60bfed9 Implement Faust lazy row/column indexing with indexMultiply optimization in case of dense CPU Faust.
f6989772c Handle Faust-matrix mul in TransformHelper::indexMultiply (in addition to Faust-vector mul.) and update the pyfaust wrapper consequently.
45e9e6330 Update pyfaust.Faust.indexMultiply wrapper to handle both dimensions in indexing.
391108cba Update TransformHelper:::indexMultiply (wasn't complete in 69a988c6).
635f0fcd8 Fix MatDense::eigenIndexMul (mixup of cols_ids and row_ids)
dc0a3702e Manage indexing for the two dimensions in TransformHelper::indexMultiply and fix bugs in MatSparse::eigenIndexMul.
0331c9c9a Add MatSparse::eigenIndexMul.
e5e185097 Add MatDense::eigenIndexMul.
c8183a979 Update indexMultiply in pyfaust wrapper and C++ core to index only the Faust columns (not the vector).
e1ca07330 Fix a bug introduced by 5676f1 in TransformHelperGen::eval_sliced_Transform.
654bad84d Reduce the number of copies in TransformHelper::multiply (for Faust-vector mul).
9266ea7b9 Update Vect::multiplyLeft to handle adjoint matrix case.
95ad86dc5 Add the indexMultiply C++ def (yet to implement) in the pyfaust wrapper.
0e0d10814 Use the optimized def of eval_sliced_Transform for GPU too (but lazy slicing is left for later).
7d155e21b Handle complex conjugate and adjoint in sliceMultiply C++ core and pyfaust wrapper.
1b987e23e Update sliceMultiply in C++ core and pyfaust wrapper to reduce the number of copies.
a60461538 Handle successive virtual slices made in a row.
e839ca5c3 Update sliceMultiply to handle mul. by matrix (and the pyfaust wrapper consequently) and optimize TransformHelper::multiply by vec and matrix (DEFAULT_L2R meth. only) by using sliceMultiply without evaluating the Faust slice.
3c9509867 Modify sliceMultiply to take the vector as is (without vector slicing, the callee must send a vector of the proper size).
5071aff0c Add Slice::size().
f4a257442 Update the pyfaust wrapper of sliceMultiply next to 04a157b6 modifications.
3e1dea1bb Generalize sliceMultiply to handle the case when a slicing of the Faust is made on both dimensions.
ee2b0c4ae Implement lazy slicing for TransformHelper<FPP, Cpu>.
aa127e10d Simply/Optimize eval_sliced_Transform for the CPU case.
8f26223cf Add Slice::display().
5d107ed81 Add python wrapper to TransformHelper::indexMultiply/sliceMultiply into pyfaust.Faust.
3368b4acc Add TransformHelper::indexMultiply.
2b2907c15 Add TransformHelper::sliceMultiply.
1eb69e8ec Document matfaust.Faust attributes.
f96d49e28 Review Faust.rcg and Faust.pinv API doc.
44821b991 Update/review Faust.optimize/optimize_memory/optimize_time/pruneout API doc.
b87c789a6 Debug Faust.pruneout C++ function: when a pruned out sparse factor was followed by a dense one, the dense one wasn't pruned out, leading to inconsistent dimensions in the Faust.
02ef9229a Review/Update matfaust.Faust.numel/numfactors (also add alias length) and pyfaust.Faust.size/numfactors (which already has its len alias).
00003970f Review/Update Faust.normalize doc and remove debug outputs in mex code.
2c73a6eb5 Minor typo.
1d2cd5b2a Document and implement matfaust.Faust.double wrapper with its mex C++ code.
bf54d2e8b Review/update doc of Faust.nbytes, Faust.nnz_sum.
baeac4a36 Fix matfaust.Faust.factors when the factor is a single (precision) sparse matrix.
acddaccb5 Fiter out <code> tags in matlab inline doc.
8507ae96d Update/review pyfaust.faust.__matmul__, __mul__, __rmul__ doc and remove deprecated code.
5e42fbc6f Review/update matfaust.Faust.mtimes doc.
37b0caa9f Review/update Faust.+ Faust.- doc.
80870101e Review/update pyfaust.Faust.matvec doc.
754c6e049 Review/Update Faust.save/load/load_native functions doc.
60e38727b Review/Update Faust.left/right functions.
01a64f026 Review/Update matfaust.Faust.isreal doc. Rename isReal attribute to is_real to avoid confusion with function in doc gen.
303e1e716 Update/Review Faust.issparse doc. and make possible to consider BSR matrices as sparse matrix too.
953f7edc2 Review/Update Faust.isdense doc.
7e10ccf82 Fix matfaust.Faust.imagesc (deprecated matlab suptitle function) and review its doc as well as pyfaust.Faust.imshow'.
3247533d4 Document matfaust.Faust.get_handle.
d214998a1 Review/Update pyfaust.Faust.toarray/todense, matfaust.Faust.full doc.
dcf6685a6 Review/update Faust.factors doc.
e2cf41675 Review/Update matfaust.Faust.end.
d12fbf981 Review/update pyfaust.Faust.display.
f23edadaf Review/Update Faust.device doc.
766c4d53d Review/Update Faust.density doc.
bb4b23ecd Review/Update matfaust.Faust.single/complex doc and add an error msg when F in complex(F) is in single precision (only double real F can be converted to double complex -- single complex isn't supported).
0facdb802 Review/update pyfaust.Faust.astype doc.
835149fb7 Review/Update Faust.clone doc and argument parsing.
ecbc3f065 Review pyfaust dtype and matfaust class functions.
61c694ad0 Review Faust constructor API doc.
cf1d15552 Fix issue #253: is_gpu_mod_enabled symbol conflict with Faust package.
a2a8f95ee Review matfaust.create_bsr().
ae3ea9c8f Review matfaust/pyfaust.dft doc.
6f6e033b8 Review matfaust/pyfaust.eye doc.
83507e9dc Replace use of deprecated class matfaust.ParamsHierarchicalSquareMat by ParamsHierarchicalWHT in ParamsFactFactory.
14e81fadd Add missing matfaust.is_enable_gpu an update doc in both pyfaust and matfaust.
05a4dd997 Review isFaust doc.
8bdadf480 Minor change in license files.
1d57e5183 Minor fix in pinv code and doc.
25045f206 Update/enhance matfaust/pyfaust.rand doc and options parsing.
faa8038b7 Add sanity checks, warnings and review the doc of rand_bsr.
37dc9af10 Exclude symbols about libomp loading in pyfaust from doxygen doc.
613c99759 Review Faust concatenation functions doc.
346761b80 Review wht doc.
a50013524 Add pyfaust/lib/libomp* to the list of installed files (it is needed for macosx).
68a0545f3 Set pyfaust package to numpy==1.22.
b49071d6d Disable .dmg package creation in pkg_macos_release ci job.
ec809c2af Update parameter parsing and doc of ParamsHierarchicalRectMat + fix missing ceil in matfaust structure.
109425a83 Remove matlab files .m form feed character filter (added by 9938837) by correcting the bug at its source in gen_matlab_inline_doc_from_doxy_blocks.sh.
c1fae8227 Enforce same version of python for pkg_macos_purepy_pkg and test_macos_purepy_release jobs.
8efc7c27d Update the doc of ParamsHierarchicalRectMat with a picture defining the sparsity of the resulting Faust and other details to clarify a bit.
264f32204 Update macosx setup script about dot, python and matio install/config.
42c1572f9 Update TransformHelper::pruneout to remove 0x0 factors and optimize_multiply to keep the transposition config in the new Faust.
89ef3e4aa Stop generating class diagram and using graphviz dot in doxygen doc.
606cc72e6 Update/Fix TransformHelperGen::optimize_memory.
9188c1d77 Disable doxygen doc generation in pkg_*purepy* jobs (the doc is not included in the .whl packages anyway).
40e1dcffc Update macosx vm setup script for libomp config.
067dfcc81 Python3.10 building pip whl pyfaust release on macos.
4c3d4e2e7 Re-enable pypub and pages jobs for publishing release packages.
ca1677f91 Add ParamsHierarchicalRectMatNoResCons.m to doxydoc gen.
4eb1e49f0 Integrate GPU BSR matrices into matfaust.rand_bsr.
d9694198e Fix MS VS compilation error due to min/max macros.
3df1e0061 Enable GPU Fausts for pyfaust.rand_bsr_faust.
4c5414498 Update CMake script to add faust_MatBSR_gpu.cpp.in files to the building process (missing commit).
8c6ca58de Fix GPU2 MatBSR::setZeros, the def is a template specialization not a template function.
64c24abb3 Temporarily disable pypub and pages jobs for testing release packages without publishing.
3539cf4b9 Implement TransformHelper<FPP,GPU2>::push_back bsr factor prototype.
9568ff61d Update Transform<FPP, GPU2>::to_cpu for MatBSR<FPP, GPU2> and update to gpu_mod@1ec8077.
72bc17798 Add MatBSR<FPP,GPU2>::to_dense and its unit test.
0636f2984 Implement GPU2 TransformHelper::randBSRFaust + its unit test and modify push_back to handle BSR factors appending.
3e654bb3d Move MatSparse<FPP, GPU2> from .cpp.in to hpp file because it's not a template specialization.
31ff52ec4 Implement MatBSR::clone/Clone, ctor copy and add their unit tests.
b2147f1b9 Implement MatBSR<FPP, GPU2>::get_nrows/get_ncols and add their unit tests.
0b8575dd2 Implement MatBSR<FPP, GPU>::getNbRow/getNbcol/getNonZeros/getNBytes/getDevice/norm/setZeros and their unit tests.
f5a7f4494 Fix MatBSR<FPP, Cpu>::transpose for complex case (it was adjoint instead of transpose).
2ad805e44 Implement MatBSR<FPP, GPU>::adjoint, conjugate and add their unit tests.
f5d6c44f0 Implement MatBSR<FPP, GPU>::transpose and add its unit test.
56dd04038 Minor changes in MatBSR<FPP, CPU> (MatBSR::print_bufs and std::move in BSRMat::rand return).
afe154b45 Add MatSparse<FPP,GPU2>::to_bsr and an associated unit test.
2decb3c5b Add a default ctor to MatBSR<FPP, GPU2> and implement set_gpu_mat_ptr.
a4829ee25 Add MatBSR<FPP, GPU2>::to_sparse and its unit test.
772816940 Update to gpu_mod@d7cb67c.
8ba17fa5c Implement MatBSR<FPP,GPU2>::multiply(Vect<FPP, GPU2>&) and add a unit test.
b8f56d2bb New ctor Vect<FPP,GPU2>(Vect<FPP,Cpu>&) (copy from CPU vector).
6c14bf7e8 Fix Vect<FPP,Cpu>::mean_relative_error: avoid nan when zero is encountered in both vectors.
d2a1ee2cc Fix MatBSR<FPP,Cpu>::multiply: the resulting vector wasn't resized.
5ccef30fa Add MatBSR<FPP, GPU2>::multiply(MatDense<FPP, GPU2>) and its unit test.
e9dbefaae Fix non-declared symbol (BSRMat) in Faust::Transform<FPP,Cpu>::multiply.
e6d9ea510 Add GPU MatBSR CPU-GPU round trip test.
41106267a Add GPU MatBSR (class skeleton + few implementations: instantiation and tocpu func.).
e93f86ee6 Integrate BSR GPU(_MOD) function structure initializations and getters into faust_gpu_mod_utils module and update to gpu_mod@e37ee8a.
608071e27 New constructors to MatBSR and buffer read-only access member functions.
bbc8e6d64 Complete the documentation of matfaust.fact.hierarchical with examples of factorization withouth constraints on residual factors (proj_id).
909af32db Add matfaust.factparams.ParamsHierarchicalRectMatNoResCons and integerate it to ParamsFactFactory.
12631ecb8 Minor changes in matlab doxydoc gen scripts.
4e0a79f2b Simplify pyfaust.ParamsHierarchicalRectMatNoResCons by refactoring in parent class.
2d1bb4c38 Increase test timeout time (macOS VM can be very slow).
d67b36826 Add matfaust.factpararms.ParamsHierarchicalWHTNoResCons and adjust pyfaust counterpart doc.
999a03f1b Fix ConstraintMat::project, is_constraint_name_mat() and get_equivalent_constraint() about identity projector/constraint.
fc6baab24 Add matfaust.factparams.HierarchicalParamsNoResCons with doc and example.
aced5639e Add matfaust.ParamsFact.get_constraints (equivalent to pyfaust get_constraints).
1cfba84a6 Fix minor bug typo in matfaust.ParamsHierarchical.to_mex_struct.
f21d637ab Add matfaust.proj.proj_id.
1f2779fe5 Rename pyfaust *ConsSimple* params class to *NoResCons* (more explicit).
8c8f1e018 Add/use ParamsFact.get_constraints to simplify/unify pyfaust.proj.proj_gen to pyfaust.factparams.ConstraintGeneric in ParamsHierarchical and ParamsPalm4MSA.
72815a6d8 Change the way the pyfaust ConstraintMat is passed to C++ core when there is no matrix to copy (eg. proj_id), it will be simpler for potential new ConstraintMat in this case.
86bc266a6 Fix pyx code to copy pyfaust ConstraintGeneric to C++ equivalent class, the _cons_value attribute is not mandatory (eg proj_id.constraint doesn't have one).
255d58b8e Disable Faust::TransformHelper matrix chain optimization when the Faust is only one factor long (it fixes by the way some error on GREEDY_* methods).
41a2f9668 Fix hierarchicalFactorization_double/float C++ test (lambda value).
3c2fc13b6 Fix TransformHelperGen::get_fact_type which was buggy in case of transpose Faust.
2baef6047 Fix test_pyFaust_time.py.
41b6da160 Fix test_pyFaust.py and pyfaust.demo.quickstart, pyfaust does not permit to use int dtype.
186299d5b Remove float32 part of Faust.load_native unit test because this type is not enabled in revision builds.
2bb16f4d0 Matlab test scripts.
fd07cf24a Fix C++ complex sparse matrix copy from matio var.
9e65c4225 Fix a bug in mex code of matfaust.Faust.factors which caused a segmentation fault when the Faust is complex and the factor to get back is sparse.
36db4f1f7 Fix complex MatDense data reading from matio variable.
d78b418fd Fix a bug in matfaust: get_fact for complex dense array, transformFact2FullMxArray buffer wasn't initialized before using (this dates from the move to the complex interleaved API).
80998e6ab Fix MatDense::from_matio_var bug on complex date.
4a616ffdf Fix tested error messages in test_matlab_faust2.m.
200eb5ddf Fix hierar_fact_test old test script/mex API (new constraint attributes needed -- pos and normalized).
e58ebd648 Fix one-factor-loading from .mat file (C++ Transform::get_mat_file_type error).
29655663e Return to HTTPS for CTest-CDash (because HTTP doesn't work) but stop verifying (at least temporarily) the certificates to use HTTPS (curl options).
681ec31ce Fix matfaust Faust-matrix multiplication in case of tranpose Faust.
9f59d9644 Fix three bugs in Faust-vector matrix.
a93e3caa1 Fix TransformHelper<float>::pack_factors() unit test.
a99ab70d2 Fix C++ prox_blockdiag unit test.
b9f0fe5c7 Fix issue #251: windows compilation error because of a double-to-enum cast.
80b2f4b2c Fix several matfaust factorization algorithms unit tests.
76030b50a Fix matfaust fgft_palm: ignored normalized and pos parameters for constraints and also step_size and grad_calc_opt_mode.
8900eeee1 Handle missing parameter grad_calc_opt_mode in matfaust ParamsHierarchical and associated mex code for the hierarchical algorithm.
ca122d913 Display used parameters in HierarchicalFactFGFT ctor if verbosity enabled.
00fe90282 Fix syntax error in matfaust.factparams.ConstraintMat.
e71bcc609 Fix matfaust.Faust testProdOpt unit test.
ac2f46dad Update researchers contributors list.
997bc7a5d Fix pyfaust.Faust.__add__ when the Faust is complex (test_Faust.testPlus/testMinus tests are green).
4d1082f7f Fix unit tests about pyfaust.proj.* and pyfaust.factparams.ParamsPalm4MSA.
7e73fbb02 Fix a bug in pyfaust.fact.fgft_palm caused by fa991b69.
50a94e93b Fix issue #250, matio helper functions not found because of recent move of them to the Faust namespace + one typo.
33a38c44b Fix issue #249: Windows VS linking error, missing symbol faust_matio_read_variable (located in src/utils/matio/* modules).
5098dadf0 Integrate matfaust.Faust.load_native for loading .mat files (using C++ recent code instead of matlab Faust.load).
23c656533 GPU code compatibility for read_mat_file in C++ core and pyfaust wrapper pyx code.
0d9bfd76b Update Transform::read_from_mat_file the Faust nnz after reading the factors in .mat file.
923707147 Add a unit test for pyfaust.Faust.load_native().
de660bc13 Add pyfaust.Faust.load_native (wrapper to load a Faust from a .mat).
a27e0f675 Faust::Transform(Helper)::get_mat_file_type.
264f0afd8 Add fix float real sparse matrix read in .mat + exception instead of exit in case of error.
9f46fb4b0 Unit test for Faust::Transform(Helper)::read_from_mat_file().
a57e97259 Implement Faust::Transform(Helper)::read_from_mat_file().
5060abc7f Add faust matio module in include directories of the python wrapper building script.
062941a19 Add C++ .mat backup/restore test of MatDense and MatSparse.
f58068f84 Implement MatSparse::from_matio_var, read_from_mat_file and save_to_mat_file.
8b6c02929 Switch temporarily to HTTP because cdash-ci.inria.fr certificate has expired.
69315a051 Refactor matio module.
cb5f4912b Implement MatDense::from_matio_var, read_from_mat_file, save_to_mat_file and update Mat*::toMatioIOVar to allow specifying a matrix variable name.
6dfbe0ee2 Minor fix in pyfaust unit tests (hierarchical and skperm) because of recent changes (default argument values etc.).
7ac3684fb Fix _palm4msa_fgft (unit test green).
9758944f9 Remove unused C++ constructor in Faust::Params.
9adbf6eb4 Add matfaust.factparams.ParamsPalm4msaWHT (same as the one added for pyfaust by 7add1321).
e4627a9a5 Modify the pyfaust.proj.* default values of normalized and pos arguments to be consistent with the PALM4MSA C++ default ones (this commit is a missing part of 9d333b42).
79c916efa Update matfaust.factparams.ParamsHierarchical to take into account the pos and normalized parameters when setting the hierarchical algorithm configuration (it allows to not follow the default configurations of proxs).
68c905091 Update cpp ConstraintGeneric Display and add pos/normalized getter.
c03826798 Update matfaust.fact.palm4msa to pass the pos and normalized attributes of constraints/projs instead of using the default values of C++ implementations (2016, 2020).
c02dbdf34 Handle more uniformly/generically the setting of normalized and pos attributes of matfaust.factparams.Constraint* classes
0fae63ec1 Add pyfaust.factpararms.ParamsPalm4msaWHT to factorize a Hadamard matrix using SKPERM and add the Tung paper reference in the doc.
200d3a817 Update PALM4MSA 2020: it is not an error to have L.norm() or R.norm() to zero on first iteration respectively if is_update_way_R2L == false or is_udapte_way_R2L == true.
cbfc66aaf Fix SKPERM infinite loop (issue #248).
5db6d40c0 Add unit tests for pyfaust proj_id, circ, toeplitz and hankel projectors + another test to verify consistency of default values of normalized and pos for ConstraintGen and proj_gen classes.
b51b989d2 Update pyfaust.fact.palm4msa and hierarchical and C++ core to take into account the pos(sitivity) and normalized attributes of pyfaust.proj.proj_gen.
d928fe840 Enhance pyfaust.proj.* and pyfaust.factparams.Constraint*
e5c977eb8 Specify key argument names to avoid confusion between arguments of ConstraintMat ctor (especially since the recently added shape optional argument).
7881f5bcf Minor change in formatting of fact.py.
add40fd30 Fix regression provoked by 39b96491: the constraint mat wasn't properly converted in pyx code which made fail the hierarchical factorization of DFT matrix.
ea0d434b4 Update PALM4MSA2020 to defaultly init factors as eyes + zero (zero for the first factor to update in PALM4MSA, eyes for the other)
0ddeb2a13 Stop on fatal error if PALM4MSA 2020 descent step is zero because of zero 2-norm of L or R factors.
7a8253ccc Change the reference paper for butterfly and the default type argument to bbtree.
5bcdc1010 Minor change in power_iteration (warning message).
0c6176be1 Workaround the eigen BDCSVD bug for double (2^14)^2 Hadamard factorization using exceptionally JacobiSVD.
6303f25ac Minor fix in butterfly factorization cpp tests.
5a7bd55a2 Add RefManager::print_refs().
9bb967de6 Add a minor sanity assert in row_nonzero_inds.
4f9ec9053 Update butterfly factorization functions.
c7f0390fc Update butterfly bbtree factorization to use sparse factors for factors too (not only for supports).
cb0e3a10b Add MatSparse::submatrix.
135cdb7f5 Update butterfly factorization to use sparse supports instead of dense ones (it speeds up the execution a lot).
61a180e7f Add MatSparse::col_nonzero_inds, row_nonzero_inds.
4fff39b59 Update bbtree butterfly factorization algorithm C++ impl. to use the lifiting method instead of DTO.
0c9d77ca0 Remove ConstraintGeneric::get_type definition (really messy for nothing) and set the function as pure virtual for simple implementations in subclasses.
2db31be70 Add matfaust mex wrappers bsr_mat_to_sp_mat functions.
68d8961f9 Minor fix in API doc of pyfaust/matfaust.
da1d4480c Fix several inconsistent floating types in pyx python wrapper code for palm4msa and hierarchical.
2fa6ebaf4 Add simplified pyfaust.fact.hierarchical parameterization structures: ParamsHierarchicalSimple, ParamsHierarchicalWHTSimple, ParamsHierarchicalRectMatSimple and the related documentation.
751754c57 Bind the C++ prox_id into pyfaust.proj.proj_id + doc.
74101a38d Minor change.
8ddb83877 Add prox_id for CPU, GPU in default and MatGeneric versions.
33b0445d7 Fix experimental pyfaust hierarchical_py/palm4msa_py to handle the is_fact_side_left=True (typically for the MEG matrix) that wasn't managed before.
864074a62 Fix typo in pyfaust.fact.butterfly doc.
55d164e94 Add a unit test for ParamsHierarchical.are_constraints_consistent (sucess and error cases).
d9feb1c23 Add a unit test for ParamsPalm4MSA.are_constraints_consistent (sucess and error cases).
a7493c238 Add pyfaust.factparams.ParamsHiearchical.are_constraints_consistent and use it in pyfaust.fact.hierarchical as it was done for PALM4MSA by 043de22d.
6231eab5b Avoid a pyfaust PALM4MSA runtime crash when the constraint/projector list is not consistent (a constraint to another one or to the matrix to factorize).
9b65ac324 Add a sanity check of the doc generation stage in gitlab pages release ci job to avoid a respawn of the bug fixed by 08d2a0a6.
afa81eb71 Apply more properly the BUILD_EIGTJ_SVDTJ cmake option by ignoring related pyx code in python wrapper compilation.
2be2c9012 Fix missing doxygen doc of pyfaust and matfaust due to removed/undefined CMake variable FAUST_BIN_CMDLINE_SRC_DIR used in Doxyfile that leads to a field in INPUT which seemingly makes all the following inputs to be ignored (python and matlab wrapper directories).
4d2def112 Update MatBSR::BSRMat::rand() to generate complex matrix with nonzero imaginary part when the scalar type is complex.
aaa148fd7 Update matfaust.Faust.factors to handle BSR matrix retrieval (converting it to a sparse matrix because matlab doesn't support BSR matrices).
9b68582a8 Avoid to compute the spectral norm of a zero Faust::Transform (directly return zero), add Transform(Helper)::is_zero and modiffy power_iteraiton in that goal.
36f670b83 Add a test for pyfaust.Faust.factors when the Faust contains BSRMat-s.
3dcc8abdf Add get_fact_bsr_info and get_fact (for MatBSR) into GPU2 TransformHelper just to allow generic code to compile and raise an exception if used (MatBSR are not yet supported on GPU)
80dfd2ebb Fix two bugs in MatBSR: in copy_bdata and BSRMat::operator=.
2fee72ebd Implement Faust.factors for returning scipy bsr_matrix (update in pyx/C++ core code).
ae2021274 Decrease the release packages ci expiration time to 1 year.
5f369543d Update GPU2 C++ core to follow CPU TransformHelper/MatDense/Matsparse::to_real changes made by 4fa8fbf9.
9b80a4121 Add a new FAQ entry about using single/float sparse matrices in Matlab which doesn't support them natively.
71f0ea951 Implement matfaust.Faust.single to convert double Faust to float/single Faust.
f20801282 Add more information when MatBSR matrix is displayed: size and number of nonzero blocks.
4a8add512 Remove old unused PALM4MSA 2020 implementation (cf. issue #244).
72be77061 Update Faust::power_iteration to workaround Faust::Transform<float> NaN eigenvalue (due to zero eigenvector approximate) by recomputing the power_iteration in double precision.
6dbf00f89 Remove now useless called regarding deleted old_matlab tests/directory in cmake files.
e14b697f4 Remove wrapper/cmdline but keep matio module in src/utils/matio, update CMake scripts accordingly.
3719c3adb Remove wrapper/matlab/old_matlab (Luc's PALM4MSA/hierarchical pure matlab impls) and update tests accordingly.
cde62bc40 Update Faust::power_iteration by defaultly using random vector initialization and always the same seed for reproducibility.
a5a58eacd Remove embedded libxml and matio archives for unix, they are easily installable directly from this type of OS.
86ab27f56 Fix issue MSVC compiling error (issue #243): out of space memory. Using older version of eigen (3.2.8 instead of 3.4.0).
8616f34a0 Fix issue #232 M_PI not defined on MSVC.
de303a417 Remove OpenBLAS windows binary package in the next to linux removal (49079e78).
52784b4c3 Remove repo. embedded Eigen library zip for Windows, download it if needed (updating by the way to 3.4.0).
1233256b2 Remove 7z embedded binary for windows and replace CMake direct calls to 7z by CMake file(ARCHIVE_EXTRACT) sub-command to extract archives (available since CMake 3.18).
ef25da679 Update Faust::dynprog_multiply to handle BSR matrices with specific product cost calculation.
7cd7ca508 Fix issue #241 VS C++ compiling error (std::iota not found).
90c624d9e Bind the randBSRFaust C++ function into the pyfaust and matfaust wrappers (cf. documented matfaust/pyfaust.rand_bsr).
c2ca5d6e2 Fall back to truncated SVD for the butterfly factorization (it has proved practically to be more efficient).
ccdbbbdaa Enhance sigma sign determination in MatDense::approx_rank1.
113541dc0 Update matfaust/pyfaust butterfly documentation with article reference.
2f8bda263 Replace truncated SVD by a rank-1 approximation using power iteration in butterfly solveDTO.
606e0789e Add MatDense::approx_rank1.
39b82d57e Add optional arguments to power_iteration: output buffer for copying the eigenvector and a boolean for random initialization.
ffbea0dca Fix issue #239 (butterfly C++ compiling error on MS VS).
0a1627c41 Update butterfly matfaust and pyfaust wrappers to handle the bbtree kind of factorization + documentation.
bb5d26401 Add C++ of balanced binary tree butterfly factorization + C++ tests.
ccbac4952 Optimize matfaust Faust-matrix product when Matlab interleaved API is used (MATLAB_2017_API=OFF) by avoiding two copies (the input matrix and the output matrix).
af9b2a876 Add template function helperCreateNumMxArray to refactor FaustVec2mxArray and FaustMat2mxArray.
3b4dbdd80 Disable pytorch-Faust class experimental code by default (new cmake option to enable/disable it un pyfaust).
7ce649e21 Fix two bugs in matfaust.susbref (getitem part) due to a past refactoring and since getitem (through slicing) optimization.
045c68780 Strengthen the matfaust.Faust constructor handling of different type (real/complex) and precision (single/double) of input factors.
fa22f1f4c Fix mex newMxGetData added in cd72e390.
43a48e298 Enforce index buffer types of matfaust BSR matrix cell to int32 (as in C++).
41911a168 Ensure that matfaust hierarchical constraints matrices passed as parameters are in the same field (complex, real) and the same precision (double, single) as the matrix to factorize otherwise raise an error.
dc2132f01 Minor fix in matfaust.factparams.StoppingCriterion.display.
1a919b684 Add an help function to access mxArray data in FaustMat2mxArray when interleaved complex API (R2018a) is enabled (#3).
1d5cc2806 Add matfaust PALM4MSA 2016/2020 unit tests.
bb39efc20 Ensure that matfaust PALM4MSA init_facts and constraints matrices passed as parameters are in the same field (complex, real) and the same precision (double, single) as the matrix to factorize.
57d08b132 Add alternative mex code compatible with R2018a interleaved complex API (#13).
f05149a4e Add MATLAB_2017_API CMake build option (disabled by default) to possibibly configure the API version used especially for complex matrices (#13).
7fe18e4db Add C++/Python/Matlab unit test for BSR Faust save in .mat file.
57f5a6cd4 Add matfaust.Faust.load to create a Faust from .mat file and handle BSR matrices too + fix in Faust constructor related to BSR and class/type of Faust.
572660a36 Minor change in matfaust.create_bsr.
c75d57066 Fix mex new_faust wrong size of created MatBSR browptr buffer.
905c8412e Fix typo on class type in MatDense::toMatIOVar (introduced by 6224728).
5b4d0c159 Add pyfaust.Faust.load to refactor .mat file Faust loading from ctor and handle BSR matrices.
c9b9ef492 Write a MatBSR::toMatIOVar that allows to store the matrix as a matlab cell array of its buffers instead of converting it to a MatSparse.
2b0fd98f2 Add a unit test for matfaust.create_bsr and matfaust.Faust(mat_bsr).
80efa41b4 Add a pyfaust unit test of a single factor BSR Faust.
340a38184 Integrate Rémi's review of create_bsr doc and complete the BSR input verifications.
6f1ded0eb Complete the doc of pyfaust.Faust with BSR Faust examples.
3c847b85e Fix BSR data dimension sizes order in pyx Faust ctor.
108c5d756 Fix GPU2 mex error in BSR Faust creation.
d2f33478e Add the BSR matrix support to matfaust.
77cc63c10 Fix multiple errors in gemm_gen function which was modified recently to handle MatBSR A or B arguments.
d2ad6ca76 Update pyfaust.Faust ctor doc, primarily to mention bsr_matrix support.
063ab5a88 Authorize to define a pyfaust.Faust with COO sparse matrices (auto-converted to CSR matrices).
dbe44ab9f Update the push_back functions in pyfaust wrapper and C++ core (CPU and GPU) in order to remove one avoidable copy for array/MatDense factor addition in a Faust.
fb24cd0de Clarify/Refactor the code of TransforHelper/Transform::push_back when it comes to conjugate, transpose or transconjugate a matrix before adding it as a Faust factor.
134546a2f Update the FAQ fifth entry.
d89f2cf2b Update credits section of the doc.
c709c0359 Fix typo in FAQ.
03383b116 Add BSR pyfaust benchmark script to the doc to make them public.
8b6568543 Add benchmark and plot scripts for BSR Fausts.
851750ce6 Add a pyfaust unit test for BSR Fausts.
f4471fcd7 Undo 0d3341fe experimental change of power_iteration.
4966213e8 Fix pyfaust pyx ctor by converting the scipy BSR matrix blocks organized in a row-major order contrary to FAµST BSR blocks organized in a column-major order.
1dd6fae3e Update Faust::Transform<FPP,Cpu>::multiply(const FPP* A,...) (multiply without operand copy) to be compatible with BSR Fausts.
a78b05768 Add BSRMat::apply_op to factorize adjoint and transpose methods.
90909b470 Update the pyfaust wrappers to allow scipy BSR matrices in Fausts.
5717763ec Fix stack variable reference returned in MatBSR::operator(int,int).
a02313277 Fix multiple details in MatBSR and unit tests to allow non square BSRMatrix and non square nonzero blocks.
caf0a023d Fix MatBSR::containsNaN unit test and re-enable MatBSR::operator(int,int) unit test.
ffa51e146 Fix MatBSR::operator(int,int).
79065943d Add a new unit test for randBSRFaust and benchmark pure BSR Faust compared to pure Sparse/Dense Faust.
6af46c9fd Fix BSRMat::to_sparse.
6c10a869b Update Faust::TransformHelper (CPU): new random generation randBSRFaust, update convertToDense/Sparse for BSR matrices and refactor getNBytes by using MatGeneric::getNBytes.
ec0b97bff Update gemm_gen to handle MatBSR too.
ce8e8d2a5 Add MatDense<FPP, Cpu>::update_dim.
7642d3c86 Add a first test of a Faust containing a MatBSR.
476e00fff Add MatBSR unit tests for get_cols, get_rows, containsNaN, operator(int,int) and to_sparse.
f20d12f8a Update MatBSR: new ctor, get_cols/rows signature fix (id type), new to_sparse function.
8377d3754 Correct the constness of MatGeneric/MatDense/MatSparse/MatDiag::containsNaN and simplify their defs by using eigen hasNaN.
df26aea1e Add unit tests for MatBSR::transpose, conjugate, adjoint, getNonZeros, getNBytes, operator*=(FPP), get_col.
3370290f0 New member functions for MatBSR: getNBlocks, getNbBlockRow/Col, getNbBlocksPerDim + fix get_col.
9967376c9 Add an option to avoid building eigtj/svdtj related cpp code in faust static library (to ease the process of build-and-test unit tests).
4101985c2 Add unit tests for MatBSR (multiply(MatDense), multiply(MatSparse), faust_gemm).
cd0a40ad7 Implement MatBSR::faust_gemm and fix MatBSR::multiplyRight.
f72df61f2 Patch the PALM4MSA 2020 C++ implementation to correct the float 2-norm resulting in NaN by recomputing them exceptionally using double precision.
3c7f798d4 Fix MatBSR::multiply(Vect&, char) signature (no optional argument) and implement 'Vect MatBSR::multiply(Vect&) + its unit test.
d8721629e Fix MatBSR::transpose signature and MatBSR::Clone + Add unit tests for MatBSR 1-norm, Clone, multiply(Vect).
666c1fd47 Add the new matrix type MatBSR with its uncompleted test (test_MatBSR).
dd40bbeaa Fix issue #235. VS linking error: multiple TransformHelper::real symbols.
814c67760 Fix issue #234 about GPU2 MatDense and MatSparse constructor calls ambiguity in faust_TransformHelper_gpu.hpp.
0c971655a Minor change: exception message for forbidden use of pyfaut.Faust * operator.
710a013c6 Implement TransformHelper<complex<double>,GPU2>::real and use it pyfaust.Faust.astype to copy real part of GPU complex Fausts to a GPU real Faust.
69d6c9492 Implement MatSparse<GPU2>::real, updating to gpu_mod@748e3c9.
6698f8770 Rename ParamsHierarchicalSquareMat to ParamsHierarchicalWHT but keep the former available (as a deprecated class) in matfaust and pyfaust (issue #208).
f552d4220 Fix issue #232, minor typo in ci job pkg_macos variable.
eec94ce72 Update hierarchical/palm4msa 2020 C++ test next to the new no_lambda parameter.
08b30e06f Add the no_lambda option to the C++ core and the python and matlab wrappers.
62512c63f Fix issue #231 in macOS pkg postinstall script.
556ca9bbc Disable temporarily the linux pyfaust-torch package gen ci jobs.
01f64a780 Fix issue #230 in postinstall script for deb/rpm pkgs (wrongly set PY_MAJOR_MINOR_VER variable when using python 3.10).
ffc466c68 Fix issue #229. PY3_MINOR_VER wrongly set for python3.10.
36a30d457 Fix issue #228 (python3.10 pathlib install error).
740b3f691 Replace python 3.8 by 3.10 in ci jobs (3.9 still supported).
1a713d4eb Fix openblas license embedded even if openblaso not enabled.
7da113fa8 Fix matlab wrapper env setup in faust NSI installer for Windows.
b7b5116a5 Embed OpenBLAS license into the pyfaust-openblaso package.
f2d09bc32 Add a ci job for testing pyfaust_openblaso whl package.
30dc08177 Embed/load also libgfortran for OpenBLAS-OpenMP because the version can differ from a system to another.
39401037f Add a new gitlab CI job to generate an OpenBLAS-OpenMP enabled pyfaust whl release package.
50683f583 Manage new CMake option USE_OPENBLASO to build the pyfaust wrapper with OpenBLAS-OpenMP Eigen backend and embed the openblaso library in the pyfaust package.
9b6694362 Disable verbose mode of libomp loading.
14c096f7d Minor fix: update hierarchical calls in tests to follow (no_normalization) signature change.
cd5f4b29b Document the no_normalization PALM4MSA parameter in the FAQ.
af2bcc351 Update toch loading to run the install_name_tool only on macOS.
f4c371a3a Minor fix in enable_gpu_mod mex code to avoid a matlab error when cmake option USE_GPU_MOD is OFF.
5cfe7809b Add the new no_normalization option to matfaust.fact palm4msa and hierarchical (2020 backend only).
3d66a1587 Add the new no_normalization option to pyfaust.fact palm4msa and hierarchical (2020 backend only).
13d9c9e57 Integrate the no_normalization parameter into 2020 C++ implementations of PAL4MSA and hierarchical algorithm.
0ad299d9c Add and handle the no_normalization parameter in PALM4MSA and hierarchical algorithm C++ parameter structures.
40761840c Add the normalizing attribute to the Constraint class hierarchy along with an associated setter.
29b693d10 Disable the egg python package generation in ci jobs.
654a2b184 Restrain artifacts downloading for all ci jobs of stage pkg (to avoid consuming to much space disk with useless artifacts of pkg_purepy stage).
e6d53cc1e Specify the package name to install with the os name in .test_unix_purepy_pkg ci job.
d0312f80a Update the FAQ entry about pyfaust/OpenMP/Mac OS X as the libomp is now embedded in the package itself.
3a6121da2 Set the proper stage (pkg_purepy) to the ci jobs pkg_purepy_release and children.
24c074389 Update embed_sys_libomp_into_pyfaust.txt by searching libomp in (DY)LD_LIBRARY_PATH if defined.
6532df9cb Set the cmake target to embed libomp in the package as the default target.
7d36c31ca Avoid building the the python wrapper shared lib again if it already exists (it must be asked explicitely)
c241f731d Add a cmake target to embed the libomp of the building system into the pyfaust package (in its lib directory).
4ac97547a Fix bug about saved float Faust loaded as a double Faust from file.
2b08e8e09 Optimize ci jobs for revision packages by building only one time the python wrapper for each OS and sharing the binary between packages.
1d215f9a2 Add unit tests runs for float Faust in pre-release tests ci jobs.
f0a64b4ea Modify the pypi_pub ci job to ublish the pyfaust_torch package on pypi.
6743b1302 Temporarily limit the gitlab-runners capable to build py torch pkg for linux to this ci job only.
8e92d2b34 Fix no version number in macos pyfaust-torch and revision python whl package.
392181e96 Fix the bug of issue #141 (libtorch/openmp loading).
3ba758cb9 Pass also to clang the ci jobs pkg_linux_purepy_release*.
baf9fc10a Add a ci tag to limit the pyfaust torch whl package generation to specific gitlab runners.
f048a9bec Fix linux clang issue about not resolved openmp symbol (issue #215).
1c5cf78fa Update to gpu_mod@b98b78f and fix specialization after instantiation error in faust_Transform_gpu.cpp.in.
895940ea2 Re-enable gitlab pages and pypi pub ci jobs.
9590ef7d1 Optimize Faust item access for matfaust and pyfaust.
bb295ff88 Temporarily disable pypi pub. and gitlab-pages jobs.
f42927b0a Fix issue #225 by using python3 in the shebang instead of python in faust_data_downloader.py (pyfaust.datadl).
37d7727a7 Review/Update the GPU pyfaust jupyter notebook.
a3c189bc2 Add cmake option DISABLE_ALGO_PYX to speedup the python wrappers building if no need of algorithms (just Faust class).
5884d087e Update/Review MHTP algorithms jupyter notebook.
9efc183e1 Update cmake script to link torch libs to faust_torch test automatically.
7528836a7 Update/Review the jupyter notebook 'Using FAuST in Algorithms'.
34d006764 Update/Review Faust projectors jupyter notebook.
cc820941e Update/Review Faust factorizations jupyter notebook.
26dfb7d15 Update/Review Faust optimizations jupyter notebook.
6065c635d Update/Review Faust manipulation jupyter notebook.
be427ab9e Fix issue #224 by choosing explicitely the R2017b API to build the mex tools code.
eca6b81dc Review/Update Faust creation jupyter notebook.
97a761b29 Update FAQ entries about CUDA to take into account CUDA 11 (in addition to CUDA 9).
752525955 Switch default enable_gpu_mod to silent mode.
97e609893 Extend pyfaust.Faust.astype to support Faust conversion from/to float32 dtype.
f6e20a69d Update pyfaust.Faust.concatenate for dtype consistency.
ffc0d012f Update pyfaust.Faust ctor to handle missing Faust creation by float array list on GPU and secure Faust dtype consistency.
a2d748eed Add BUILD_FLOAT_MEX cmake option to set optional the float support of matlab wrappers and enable it for release packages in gitlab ci jobs.
f52a2030e Update matfaust.Faust ctor to auto-convert factors passed as arguments for type precision consistency (all factors must be of the same matlab class).
3efd830ca Hide matfaust.poly.calc_coeffs from doxygen doc as it's a private utility function.
39b8946e8 Add a note in matfaust.Faust.factors about the fact that float sparse matrices are not supported by Matlab.
5a9d3f640 Add a warning in matfaust.rand raised when a user tries to create a complex Faust in single precision (not yet supported, cf. #223).
3cc14b1eb Re-enable ctest/python/matlab stage in ci pipeline and reduce gitlab expiration time of pip whl release pkgs (because they are hosted on pypi.org anyway).
95ac184a2 Update matfaust.Faust.
26fa14cee Fix wrongly allocated nonzero array in transformFact2SparseMxArray.
11ea5eb8a Add code doc for dev (gpu) param of matfaust.dft.
ec598fd66 Update matfaust.eye to support CPU and GPU float type.
aa9f822f4 Update matfaust.wht to support CPU and GPU float type.
ce811c096 Update mexHierarchical2020_gpu2.cpp.in to support GPU float in matfaust 2020 hierarchical.
7c21e3b2e Add support of GPU float type to matfaust.fact.palm4msa.
b3ee387b9 Update Faust.complex to support GPU float Faust.
06b7e4351 Fix typo in matfaust.Faust.call_mex in mexFaustGPURealFloat call.
ba101df25 Fix dtype argument parsing of matfaust.rand.
b0346a910 Update matfaust.enable_gpu_mod function to manage multiple versions of gpu_mod (for cuda9.2 and cuda11.4).
834a83970 Update to gpu_mod@96cd28f.
e846f7f9a Support float scalar type for matfaust.poly.* functions.
c2395cb41 Add Faust.class method.
416840137 Support float scalar type for matfaust.proj.* functions.
4c9a700b8 Support float scalar type for matfaust.fact.palm4msa (2016 and 2020 backends), eigtj, svdtj and butterfly.
d634ebf93 Fix mexsvdtj (template) compiling error (issue #217).
77e4d815c Support the float scalar type for matfaust.Faust constructor, matfaust.rand and matfaust.fact.hiearchical (2016 and 2020 backends).
1881b0fda Fix pypi classifier error: CUDA 11.4 is not classified on pypi (so put only CUDA 9.2 in classifier list)
67d617114 Add a default library symlink to the gpu_mod library that support the most recent version of CUDA.
32aaa98d0 Re-enable release package hosting on pypi and gitlab.
969a2e270 Use high level function _is_gpu_mod_enable() instead of checking the library handle is NULL (in pyx code).
f40664058 Fix nullptr handle of gpu_mod library used for loading.
480675da8 Patch pkg_win_release ci job to force using VS 2015 to build the python wrapper.
f67bd4187 build gpu_mod for pkg_linux_release_static ci job too.
520ad7130 Secure libomp copying / erasing for macos ci jobs (avoiding losing macports version as it happenned sometimes).
56fb88e35 Generate cuda 9.2 and 11.4 gpu_mod libraries for the linux release purepy packages too.
36f4271dd Temporarily disable release package hosting on pypi or gitlab.
41784d082 Update to gpu_mod@8558039
4b6670d5e Disable temporarily the python wrapper compilation through clang (back to gcc) because the ci.inria.fr VMs are not properly configured with a recent enough version of clang.
87eedbd09 Fix erroneous gpu_mod library names in CMake script, setup.py and cython pyx code.
8c290f02b Solve conflicts of VS studio versions in cython extension building on Windows (we must use the same version of VS used to build libmatio).b
6dc021f33 Update ci jobs specifying which cuda toolkit to use for the build on Windows.
311b6cbb2 Update faust.nsi (win installer) to install cuda9.2 and cuda11.4 version of gpu_mod.
50731fd46 Integrate cuda (11.4, 9.2) multi-support in pyfaust/gpu_mod.
dbecefbf0 Use clang to build the pyfaust wrapper on Linux instead of gcc.
e2b02c6ea Fix in PALM4MSA 2020 1) the float MEG factorization warning/error 2) NaN in the numerator and denominator of lambda.
b79434132 Allow to normalize a MatDense through another norm than Frobenius + add MatDense::nonzerosToOnes function.
28e854494 Minor fix in lambda isnan check.
78f27a65f Add support of float32 dtype for projectors (of pyfaust.proj) and review the doc.
507a35c07 Document pyfaust fact and poly functions about the dtype that can be float32 or double/float64.
f276b5a0f Fix dtype error in pyx code of polyCoeffs and polyGroupCoeffs.
7b1fa8a32 Add containsNaN functions in MatGeneric<Cpu> and subclasses.
9137b9471 Connect the pyfaust wrapper functions svdtj, eigtj, poly.*, hierarchical/palm4msa 2016, to their float pyx code.
104426cb7 Re-enable ctest, ctest_python, ctest_matlab ci jobs and put back py3.9 as the default version of pip whl revision package for linux (was changed temporarily to test GPU pyfaust on PSMN which has no py3.9).
4ac319151 Update to gpu_mod@56a78ab.
8197677fa Support float/double alternative for GPU pyfaust.rand.
c004615be Fix GPU gemm in case where C is not initialized.
0b7e3cde6 Temporarily disable ctest ci job.
f817ec994 Fix uninitialized (to nullptr) gp_funcs_ pointer leading to partial failure of gpu_mod library loading of functions.
e0b0f6b00 Temporarily use py3.8 linux rev pkg and disable pkg_linux ctest_matlab/python jobs
2f6ba0917 Temporarily isable silent flag of enable_gpu_mod call in pyx.
45084e8e6 Fix compiling issue #214 on Windows VS.
a6fb389b9 Enable BUILD_FLOAT_PYX in pkg building jobs.
38505f3d6 Add to pyfaust the support of float on GPU (not tested yet).
347fe2b23 Minor change 2.4 FAQ entry.
b91582348 Adjust test_prod_opt/testProdOpt for pyfaust/matfaust because FaustMulMode.GREEDY constant has been deleted (the method is hidden).
dc591a4c3 Fix issue #213 (compilation error on Windows).
26ac24e23 Make float precision available to pyfaust algorithm wrappers but only on CPU.
2487f12da Update the faust_SVDTJ module for genericity.
8416d06a6 Add CUDA entries in the FAQ and reformat the document.
abd34faad Cast properly lambda/beta scalar argument in gemm calls to avoid non-consistent/non-defined calls mixing float and double types.
9d0fe010b Change the default template type parameter from float to Real<FPP> (more consistent).
b292ba9b9 Add advice to close Matlab before installing on Windows.
519f9ae1c Mention Inria RH in license.txt.
c5a337d92 Update install doc and add a faq entry.
119a57454 Enhance NSIS installer by using py launcher instead of python.
3c93d9414 Make float precision available for pyfaust.Faust.wht, eye and rand.
512aef61b Update MatGeneric::get_scalar_type_str to be more precise than 'real' specifying 'float' or 'double'.
493daf5b8 Add support to float in pyfaust.Faust wrapper (not algorithm) and the cmake option to enable it at build time (not enabled by default).
cb2d22478 Fix in NSIS installer the expfiltered directory present in matlab folder after install.
3c2cf22ca Remove old mention to python 2.7 in install guides (general part and windows specific part).
ff5d1d330 Update NSIS installer: try to uninstall previously installed Faust before installing the current version.
bc4011c63 Fix Debian package name delivered matio static library.
a122f0246 Add version footer in the new notebook and live script.
0f7fd0a0e Add 'Faust optimizations' jupyter notebook and matlab live script and integrate them in the doxydoc and zip archives.
21f8311e1 Update MacOS X VM setup script.
8a9117ae9 Minor change in matfaust.Faust.optimize_time (preventing mat output).
cd0343764 Minor changes in pyfaust code doc formatting.
97fb1c3fa Minor fix: rename FAµST to FAuST in some strings to avoid issues on windows (utf-8 error).
4b6f8c083 Add hidden options (through environment variables) in PALM4MSA 2020 (no_lambda_error, use_grad1).
923495946 Minor change in backend argument documentation of palm4msa and hierarchical.
881d32d07 Handle complexity of sparse products in DYNPROG method (removing from wrapper now almost always slower GREEDY method and disabling it in optimize_time).
892648557 Optimize C++ Transform::get_product (DEFAULT_L2R meth) and TransformHelper::get_product (for other methods).
38a28294f Fix dtype constraint in Faust.optimize_time constraint (F.dtype == M or S.dtype) and adjust the doc for matfaust and pyfaust.
a3c8870d9 Minor change in the MEG factorization C++ test (changing a preprocessor directive).
cf7ed28cc Update PALM4MSA 2020 C++ impl. to allow changing the product method (GREEDY, DYNPROG etc.) through an environment variable and change the default method from GREEDY to DYNPROG (because it is a bit faster for MEG matrix factorization).
4f9dd2787 Update the DYNPROG meth C++ code to compute the product cost taking the sparse format into account.
70a6cf450 Fix and optimize C++ optimize_storage.
c7b665315 Replace deprecated time.clock (removed in python 3.8) by time.process_time in pyfaust.demo.
b39bab2c8 Re-enable pages and pypi_pub job.
feaa2e5fb Adjusting the pyfaust code doc to the new version of doxypypy.
bbaee093e Replace switch from py3.7 to 3.8 for python wheel package (on macOS, Linux and Windows).
6f94fd66f Fix missing bracket (when FAUST_TORCH is on).
7eba59ef2 Update faust data archive URL.
ae950dd76 Print name instead of id for the best method chosen by optimize_time (C++).
51dc99fb0 Add matfaust unit tests of DYNPROG and GREEDY Faust product optimization methods and also for Faust.optimize_time.
af6ebe0dd Add python unit tests of DYNPROG and GREEDY Faust product optimization methods and also for Faust.optimize_time.
7feb16e9c Fix dynprog_multiply to handle the single factor Faust case.
28056aeef Add the mat argument to matfaust.Faust.optimize_time as c95a253c did for pyfaust.
b3b9fede5 Add a mat argument to pyfaust.Faust.optimize_time in order to run the benchmark on F@mat instead of F.toarray().
c75d035d0 Enable most of the Faust product optimization methods to Faust-MatSparse multiplication as it was already for Faust-MatDense multiplication.
319ca9018 Minor fix in faust_torch: raise an exception if a MatGeneric to multiply is neither a MatSparse or MatDense.
f81d4dd39 Delete get_Fv_mul_mode method and make related changes since 430188 disabled the Faust-vector mul alternative methods.
33aff8f53 Clarify FaustMulModeOpt Torch based methods and update their names and doc.
e53641043 Disable experimental GREEDY* methods in Faust optimize_time, keeping only GREEDY_ALL_BEST_GENMAT.
c438210d1 Rename enum constants of prod_opt_ module.
69ec731f4 Remove functions (C++, py/matfaust) related to Faust-vector product optimizations.
5b6027192 Fix missing version in pyfaust whl package for MacOS X. This bug was introduced by fce9ece8.
fc805db3e Fix a bug in optimize_time/multiply; the faust-vector mul was overridding the Faust.toarray() test.
2c4c43119 Fix compiling issue of Faust::gemm_gen on Windows MSVC (issue #211).
64e024dc5 Update/extend faust_prod_opt module and its use; mostly adding the DYNPROG method.
bc6cdd850 Extend faust_linear_algebra gemm_gen to support MatSparse-MatSparse multiplication and fix a bug in spgemm (dimensions computation when dealing with transpose/adjoint ops).
d645e6916 Fix MSVC min/max macro confusing with STL numeric_limits::max (issue #210) in faust_linear_operator target.
6fdf1f7ce Implement GPU MatDense::real() and add a unit test for it.
52c1efaea Implement Faust::TransformHelper::real on CPU and bind it into the pyfaust.Faust.astype (issue #183).
1dfdfdf05 Add MatSparse::real(MatSparse&) and MatDense::real(MatDense&) functions.
0408aa1ae Handle easily the excluding of faust_torch.cpp from cpp files to compile.
7a445c978 Update pkg_macos_purepy ci jobs to force using the MacPorts clang 8 instead of Apple clang 6 installed on the VMs.
586402f23 Fix cmake script to add Torch to includes of faust_linear_algebra target + reformat faust_torch.cpp and fix missing namespace.
c1b294a6c Fix ignoring faust_torch.cpp on setup.py for Windows. (when FAUST_TORCH is OFF).
c10ecc462 Fix MatSparse::get_cols, the column indices might be repeated through the list (it wasn't taken into account).
60246b8b6 Complete the matfaust.Faust.cat unit test for the concatenation of an arbitrary number of Fausts, arrays.
12ee8fa58 Fix multiple definitions of faust_torch module.
ebce23d62 Minor fix in pyfaust.Faust.concatenate and and a new unit test for the concatenation of arbitrary number of Fausts, arrays.
f4351f2b7 Minor fixes and simplifications in Faust::Transform::norm* and MatDense::normL1.
33969a032 Change the default config of batch_size and full_array in matfaust/pyfaust.Faust.norm and update the doc consequently.
d1d877757 Document the new full_array and batch_size arguments of the pyfaust/matfaust Faust.norm function.
902eaae7c Set in pyfaut/matfaust.Faust.norm the default configuration of full_array and batch_size parameters when the Faust is totally composed of sparse factors.
3e7f60c14 Add Faust C++ is_all_sparse/dense and pyfaust matfaust bindings issparse isdense.
cfcdc93f2 Bind new arguments full_array and batch_size into matfaust.Faust.norm wrapper function.
430d889ea Update the pyfaust wrapper to bind the Frobenius and Inf norms full_array and batch_size arguments.
f3a74f33e Add norm computation without full array for Inf-norm and Fro-norm.
8beb1ed1c Add new get_rows function overloads (refactoring others) in MatDense and normInf in MatDense and MatSparse.
327efe40a Check index of rows/cols in MatDense get_rows, get_cols functions.
5c045c5a3 Implement (in C++) a batch_size argument to compute the 1-norm of a Faust and bind it into the pyfaust wrapper.
ce83d7469 Optimize MatSparse::get_cols()/get_rows() by removing the MatDense conversion and writing pure MatSparse operations.
c9b910ca7 Add a new impl of Faust norm-1 that works column by column instead of computing the full array (the option full_array is available from pyfaust.Faust.norm()).
e41fdef02 Add an overload of MatSparse::get_col and refactor the other.
11658a8bf Review header documentation of pyfaust/matfaust.Faust class.
aa258e637 Update to gpu_mod@746033d.
dbeaadb9b Fix a bug in pyfaust.Faust.astype, the device must be preserved when the Faust is type converted.
ee6c839db Update to gpu_mod@23ea61a.
45d918d5b Update to gpu_mod@ba21999.
b3c901e0d Update the developer oriented README for the python wrapper next to the major reorganizing/refactoring of code in previous commits.
cb83a4880 Minor fix in pyfaust.tests sub-package.
f49a6a79f Refactor/rewrite the python wrapper (pyx, pxd, C++, cmake script) to make as generic as possible the CPU and GPU code parts.
d57ff9574 Replace FaustCore and FaustCoreCplx classes by a unique FaustCoreGen pyx class to enhance the genericity of the python wrappers (no code duplicates for complex and double).
15e0c4e61 Add a FaustAlgoGen pyx class to enhance the genericity of the python wrappers (no code duplicates for complex and double).
ab72ce31e Fix slowness of PALM4MSA 2020 on Hadamard factorization compared to 2.5.46.
34ae006b2 Modify simplified conf (ParamsHierarchicalSquareMat) for Hadamard factorization to set packing_RL to False by default (it is quickest with backend=2020 and is ignored with backend=2016).
453683e4e Add a module faust_linear_algebra with gemm and gemv (as in CPU equivalent module) relying on MatDense<GPU2> (now static) eponym methods.
f633a9a83 Use gemm_gen in palm4msa 2020 for computing the gradient.
f0eb6229e Add a new signature of multiply_order_opt_all_ends to work on MatGeneric.
ee44fc8b0 Add new signature of spgemm and gemm_gen functions to faust_linear_algebra.
6c160c5bb Fix a segfault in PALM4MSA2020 when packing_RL == false.
82b65a0c9 Reduce noise in TransformHelper<FPP,Cpu>::set_FM_mul_mode where silent argument default value changed from false to true.
f1cce5884 Add an example to hierarchical for the DFT factorization with matfaust or pyfaust.
9798d4448 Add two unit tests for matfaust and pyfaust DFT factorization (factparams.ParamsHierarchicalDFT).
b8350fce5 Add unit tests for matfaust.fact.palm4msa/hierarchical_mhtp.
170470773 Add a unit test for pyfaust.fact.hierarchical_mhtp.
caff9e8e0 Add a bash script to count C/C++, Python and Matlab lines of code (useful for APP deposit).
500889dfb Add a unit test for pyfaust.fact.palm4msa_mhtp.
396f41ee8 Add matfaust.factparams.ParamsHierarchicalDFT simplified parameter structure to factorize a DFT matrix with matfaust.fact.hierarchical.
76cf15173 Add pyfaust.factparams.ParamsHierarchicalDFT simplified parameter structure.
5f62b8dbc Minor changes in pyfaust.tools.omp.
449afc4e6 Remove experimental flag on pyfaust/matfaust.fact.butterfly.
0b84d70b3 Add support of complex matrices in matfaust for the 2020 versions of PALM4MSA and hierarchical algorithm (CPU & GPU).
72efe2ae4 Force the factor_format to 'dense' for palm4msa/hierarchical 2020 when the matrix is complex.
6a918fc20 Fix GPU python wrapper of hierarchical2020 compilation error (issue #207).
8038559ab Optimize update_lambda computing in C++ PALM4MSA 2020 by decreasing the number of matrix products needed to compute S full array.
f02508e52 Fix PALM4MSA2020 gradient computation in complex case: replace transpose ops by transconjugates, split gradient computation and applying to the factor (even if the all-in-once operation was correct it fails the DFT factorization with a large error).
48b7a96cd Minor changes in lambda and init_facts scalar type checking and conversion in palm4msa2020 and hierarchical2020 cython code.
f1890e07a Minor fix: calling the wrong wrapper of pALM4MSA if the numpy array is complex (2016 instead of 2020).
3680b4f01 Add support of complex matrices to hierarchical PALM4MSA 2020 (python wrapper and C++ core).
4fd095c91 Add support of complex matrices to PALM4MSA 2020 (python wrapper and C++ core).
c30970816 Minor change in GPU pyx code (remove unused dtype-s).
527bb1894 Remove now useless entry about the float128 undefined numpy dtype on Windows VS env (because it was fixed in 3.2.14).
e7b8188dd Minor change in the FAQ.
0c8c75955 Fix possible linking error in python shared library path to OpenMP library on macOS by editing it manually.
67009d6d7 Fix 2 minor bugs in complex part of the wrapper pyx code of hierarchical (2016).
e239f16a6 Add an entry in the FAQ (PALM4MSA failing on Windows when running on a complex matrix).
501d1e25a Split the pyx code of the python wrappers in real and complex parts. Make the support of complex optional with BUILD_CPLX_PYX new cmake building option.
4c6a5bab3 Fix a nullptr error in C++ MHTP module (due to 60524e31 update).
8b1edf2fe Modify the butterfly C++ to handle a matrix size program argument + keep using JacobiSVD (instead of BDCSVD) on Windows VS.
e057b18db Add fno-wrapv opion (disabling fwrapv opt. option) because it slows down the butterfly factorization.
36135ea4b Use BDCSVD instead of JacobiSVD in MatDense::best_low_rank() (the former is faster than the latter on large matrices).
0305a54a0 Optimize the butterfly C++ module. Pre-compute the supports for all the factorization to avoid computing twice the same product.
ac240786a Add unit tests for pyfaust and matfaust butterfly function.
dafc37f4d Document matfaust.fact.butterfly and add dir='left'|'right' argument.
9aab054f3 Document pyfaust.fact.butterfly and add dir='left'|'right' argument.
2aa7646de Support the factorization direction parameter for the C++ impl. of butterfly hierarchical factorization.
abc3c8988 Add pyfaust.__version__ in addition to pyfaust.version() (more standard).
42ea80a68 Update "Using the FAµST API in Algorithms" notebook with pyfaust version footer.
4a71c271c Fix an error in the optimized version of the C++ Faust by vector multiplication, in case the Faust is transposed.
251eaefbc Slightly update of several pyfaust jupyter notebooks.
a36d45de3 Add matio static RPM/DEB packages to the download page.
155f61a44 Ignore python2.7 in linux RPM/DEB post-install script (py2.7 is not longer supported).
866be969a Make more consistent the way the failed symlinks are counted in the RPM/DEB post-install script for pyfaust.
682872394 Upload also the static version of the RPM/DEB packages to gitlab-pages.
67339c3c7 Update test_linux_pkg_release to test also the static version of the RPM package.
c6fef1aaf Replace the use of Faust * by @ in (not all) tests (issue #161).
d3786ef29 Re-enable the Faust.power_iteration function on complex Fausts in matfaust and pyfaust.
443f30f9d Add wrapper matfaust.power_iteration and update pyfaust.power_iteration to be consistent.
16a9f256e Update the pyfaust.Faust power_iteration wrapper and make it public (both for CPU and GPU).
199e614a6 Add GPU TransformHelper::power_iteration support.
8e50a9b6c Fix a bug on normed parameter of matfaust.wht and dft and complete their unit tests.
7496f047d Remove complex scalar test in hierarchical butterly C++ test (because only hadamard factorization is tested).
e15bd5543 Update the C++ butterfly module to add the bit reversal permutation when the matrix to factorize is complex (a DFT matrix).
aae84ecb4 Add matfaust wrapper to C++ Faust::butterfly_hierarchical (for experimental pkg).
5033b6326 Adjust Faust::MatDense::submatrix for windows VS 14 which doesn't succeed to compile eigen3.4rc1 (slicing support).
6d1d850d4 Add pyfaust wrapper to C++ Faust::butterfly_hierarchical (for experimental pkg).
faf7d81be Complete and clean the solve_DTO function (butterfly module).
71463a960 Fix (issue #205) inability to compile faust_butterfly C++ module when BUILD_MUTLITHREADING is OFF.
dd6cb0b84 Fix issue #204 (compiling with complex<float>).
92d6bfe73 Add a C++ test for the butterfly hierarchical factorization (Hadamard factorization).
208d31f09 Add the butterfly factorization C++ module.
f2b765b5e Add member functions to MatDense: setNZtoOne, set_row_coeffs, set_col_coeffs, kron(ecker).
3d3d8d8d5 Add member functions to MatDense: eq_cols, eq_rows, sum_col, sum_row, best_low_rank, row_nonzero_inds, col_nonzero_inds, submatrix.
8a6d658db Update notebook/livescript (use_csr parameter replaced by factor_format).
7ebdc735d Fix ctest on MEG matrices factorization, the reference lambda value had to be changed because of different default parameters of the 2-norm.
6de2507da Fix unit test on TransformHelper::pack_factors by deleting useless overload of this function in TransformHelperGen.
69267e7fc Fix bug on unit test of MatSparse::vstack which was due to MatSparse::randMat() failure when FPP==float.
b1e8b1bf2 Update C++ tests since use_csr has been replace to factor_format.
e555f004e Fix inconsistent C++ decl. issue #203.
f8001b284 Add static member function pyfaust.factparams.ParamsFact.factor_format_int2str.
91ca664c8 Update matfaust and mex wrappers (of factorization algorithm) to support the new factor_format parameter (replacing old use_csr).
a9d2e69ae In PALM4MSA 2020 impl. if custom factors are defined at initialization, convert them to the configured FactorFormat (AllSparse, AllDense).
24f47cae4 Replace obsolete use_csr by factor_format in pyfaust test python scripts.
d0d2276c4 Replace the use_csr (boolean) parameter by the new factor_format (:='dense'|'sparse'|'dynamic') parameter everywhere it applies in the pyfaust package.
2ed2239c7 Update PALM4MSA 2020 impl. to allow dynamic output format in proximal operator.
dd03ef109 Try to fix issue #202 by using python os.system call instead of batch start/call.
778e63057 Change from 3.7 to 3.9 the python version used to build the pyfaust wrapper on macOS and linux system packages (pkg, rpm, deb).
581b43d87 Disable test_win_pkg_release because the call (or start) command blocks the job indefinitely. Renable the pypi_pub job.
3476db61d Adjust start use in test_win_pkg_release job.
c52f8f8a0 Add a test of the NSIS Windows installer.
797723056 Build an uninstaller for the windows NSIS installer.
cb0dd1a6d Add missing dynamic output CPU proxs (output: MatDense/MatSparse as MatGeneric). Update dynamic sp prox test.
eaa33a762 Set a default choice for MessageBox of NSIS installer when running in silent mode (non-interactive mode).
d45d67905 Update faust.nsi (NSIS installer script): don't edit matlabrc/startup.m if already configured for matfaust.
07f0e6046 Add a python version checking code in the windows NSIS installer (it must be the same minor version as the one used to compile the wrapper) and swap python default version (now 3.9) and extra version (now 3.7).
6870d1872 Move python requirements list into the main CMakeLists.txt to avoid undefined variable in faust.nsi (failing the install of dependencies by the generated windows installer).
556e2b14d Hide pyfaust.tests package from doxygen API doc.
8a216bfbc Update linux deb/rpm package matlab post-install script as already done for macos (by 37d9452b).
6d113fc6b Add a ci job to test the RPM FAµST package before uploading to gitlab-pages.
a6c55cc90 Fix include of deleted faust_gpu_mod.h cpp header in several tests.
a615e7594 Add unit tests for pyfaust.poly.poly and pyfaust.poly.expm_multiply.
516f4c5fc Simplify the code and fix a crash in TransformHelperPoly<FPP>::polyFaust(const FPP* coeffs).
cba4ca2a8 Fix typo in postinst_matlab.sh.in.
fbc4d50b9 Change packages order (in sys alphabetical order), limit sha256sum output to the hash.
b335e9591 Fix issue #201 (missing pyfaust.tests content).
da2798f30 Add a script to generate a package download page and call it in ci gitlab-pages job.
826e3af8b Modify macos pkg postinstall script: in matlab startup test that mexFaustReal is present to decide modifying the path (instead of matfaust.version).
63de996ab Re-enable pypi_pub ci job.
4fdb9329a Add a unit test for pyfaust.poly.basis used with a arbitrary T0.
ee16d72f6 Fix bugs in TransformHelperPoly occurring when the lazy instantiation is used and T0 is arbitary (false information were displayed).
73e77c403 Add TestPoly and inside a unit test for pyfaut.poly.basis.
3f425f25f Upload packages on gitlab-pages (disabling pkg_upload job).
29e99c0c5 Refactor the pyfaust.tests module in a modular package in order to properly receive more tests.
872dd655a Add a CI job to upload the release packages (except the whl/pip packages).
b27d83d0a Fix issue #200 (python wrapper compilation error for macOS clang).
9e4f3e161 Make possible to use ParamsPalm4MSA.init_facts for the 2020 implementation of matfaust.
0c1d3ecde Update step-by-step_palm4msa.py since it's now possible for the PALM4MSA 2020 impl. to use ParamPalm4MSA.init_facts (f78c96a3).
8c26b4223 Make possible to use ParamsPalm4MSA.init_facts for the 2020 implementation of PALM4MSA (of pyfaust).
9c2d92fd3 Remove experimental status of MHTP functions and structures (pyfaust/matfaust).
91b201e0a Fix MacOSX/Linux linking error with the function (in py wrapper) convPyxMHTPParams2FaustMHTPParams.
319ff6ef1 Add links to the MHTP tutorials in the doxygen main page + review of the doc (slight modifs).
0cf473a53 Add the pre-rendered HTML version of the MHTP live script.
a0d7c62e8 Add missing gpu argument in API doc for matfaust.fact.hierarchical.
291cb6343 Add a FAQ entry about running PALM4MSA in step-by-step mode with pyfaust.
f7d8e360a Add a step-by-step PALM4MSA test python script.
51b2857d5 Ensure in the python wrapper that the initial factors sent to PALM4MSA (2016) are in column major order or fail.
32d8a384e Add the live script about the MHTP algorithm.
94f78ac01 Add a notebook about the new MHTP algorithm/functions and a HTML pre-renrendered version.
2c715435f Update the MHTPParams.__repr__ function (displaying all attributes).
3645ab9d3 Fix C++ mex/tests occurred because of function signature chnage since new MHTP.
f772b58b0 Add matfaust.fact.hierarchical_mhtp (mex, matlab function and API doc).
dd50067ac Update Palm4MSA (2016 C++ impl.): adding functions get_RE() (relative error), and print_state().
650e45b3c Add matfaust.fact.palm4msa_mhtp (with underlying mex code and API doc).
606b2d823 Add matfaust.factparams.MHTPParams.
a5704842f Add pyfaust.fact.hierarchical_mhtp with its pyx and C++ code + Python doc.
bf96b5bf8 Document the MHTP C++ module and refactor some palm4msa2020/mhtp functions: perform_MHTP, update_fact, compute_n_apply_grad (limiting the number of arguments or reordering them), hide use_MHTP argument in pyfaust.factparams.
56394136d Add pyfaust.fact.palm4msa_mhtp (as experimental code), document this function and pyfaust.factparams.MHTPParams.
53a9aa396 Update/Refactor MHTP algorithm in its own module.
7900acf54 Update MHTPParams: refactoring the ctor in .hpp (initializing all the attributes), adding a to_string member function.
85c899cf7 Enable constant_step_size and step_size attributes of MHTPParams in PALM4MSA2020 (C++ code).
1caf51166 Add a MHTPParams structure both in pyfaust and C++ core (for all the MHTP algorithm parameters).
cf8e489de Implement MHTP in C++, accessible from pyfaust.
68a393259 Implement for matfaust.poly.expm_multiply the same extension (grouping several series of coeffs -- option group_coeffs) as the one already integrated in pyfaust.poly (c5496442) which was modified here to be auto used (group_coeffs=True) when tradeoff='time' (as matfaust does).
6ce2ec4b1 Fix issue #197 (windows compilation error introduced by c5496442).
62709c51b Fix two bugs in c5496442 (pyfaust.poly.poly extension to avoid round trips between wrapper and C++ core when computing the exp action on multiple tau/coeffs in expm_multiply) and manage missing case when X is a vector.
299bda955 Refactor pip requirements list into cmake script and add auto-install commands in Windows NSIS installer.
a6bbb72f4 Extend pyfaust.poly.poly to handle a group of coeffs (n*(K+1) coeffs) in order to implement a new method for expm_multiply (computing all the coeffs for each t beforehand and then calling the C++ core to compute the action for all given t in a row).
1c327a9c0 Minor changes in matfaust/pyfaust.poly code doc (dev argument) and useless 'if branch' (in pyfaust expm_multiply).
d16907ee4 Add the pre-rendered version of matfaust.poly live script, update the doc links and few things in pyfaust.poly notebook.
c75d1b944 Fix Windows NSIS installer: ignore the stage of install into python environment if python wasn't found.
f25e49526 Add matfaust.poly.FaustPoly to uniformize the API (with pyfaust) and cleanup matfaust.Faust of matfaust.poly related methods.
edf70bd3a Update to gpu_mod@9936424.
28c5bd586 Add a FAQ entry about matlab path update issue.
9b306b6ca Fix setup_FAUST.m in the case of Windows, visual studio when building with Release option put the mex files in mex/Release instead of mex, which made the addpath command fail.
961cc7fd8 Update GPUModHandler::get_singleton: switch silent argument default value from false to true to avoid flooding matlab with warning messages.
99aaaa041 Minor corrections in code doc (python and c++).
512d57748 Add matfaust.poly livescript and update pyfaust.poly jupyter notebook.
c5de45d5f Display the poly jupyter notebook in the doxydoc main page and integrate it the notebook zip archive.
51c997e84 Update the pyfaust.poly jupyter notebook and add the HTML pre-renredered version.
1fc4ddf22 Remove the experimental status of matfaust/pyfaust.poly module (except for invm_multiply that is still a wip regarding the performance / numpy-scipy).
9a4571749 Add pyfaust.poly jupyter notebook.
1285bb3db Mark poly modules as beta in pyfaust/matfaust doc.
bb4e6e03f Limit calls to astype in check_matrix/pyx code (to decrease the number of copies).
7bf2bee26 update setup.py by being explicit on the minimum numpy version needed to avoid ABI incompatibilities.
a1f56309e Add tradeoff argument to expm_multiply and invm_multiply both in matfaust and pyfaust.
abd3aed05 Optimize pyfaust expm_multiply by using the new out argument of poly.
b106c9861 Optimize pyfaust/matfaust.poly.expm_multiply: avoid recomputing T*B for each tau.
170616425 Refactor vector and matrix overloads TransformHelper::multiplyPoly_cpu(): now vector version depends on matrix versions while before matrix version depended on vector version (using OpenMP).
6c4a344ee Enable GPU in matfaust.poly/invm_multiply/expm_multiply and pyfaust.poly.invm_multiply/expm_multiply.
f8f26beef Enable matfaust.basis native GPU impl (argument dev).
c07ea42f8 Fix issue #196: Windows VS error on Faust::MatDense<FPP,GPU2>::MatDense multiple conversions of instantiations in Faust::TransformHelperPoly (error C2666)
c260d23fc Fix issue #193 (Windows VS bug on OMP TransformHelperPoly).
0d9145334 Fix issue #195 and factorize the two overloads of TransformHelperPoly::multiplyPoly_gpu.
f2503ac44 Implement GPU version of multiplyPoly -- F*X and linear combination at the same time with X a vector or a matrix.
abb3686c9 Update Faust::poly C++ function to be able to compute the polynomial linear combination on GPU and enable it in pyfaust.poly.poly.
bf7cf6c1d Implement the GPU version of the TransformHelperPoly Faust-matrix polynomial specialized multiplication.
324fa67f9 Implement MatSparse<GPU2>::multiply(MatDense<GPU2>), Matdense<GPU2>::multiplyLeft(MatSparse<GPU2>).
196d07079 Enable the C++ GPU implementation of the FaustPoly multiplication into the pyfaust.poly module (basis function).
0c034cbe8 Implement the TransformHelperPoly Faust-vector polynomial specialized multiplication on GPU.
cd61c0db0 Implement c++ Vect<FPP, GPU2>::multiplyLeft(MatSparse<FPP, GPU2>).
f8e8eb29d Update to gpu_mod@8260c08.
99a7a1523 Add matfaust.poly.expm_multiply with its documentation and other related minor changes.
c8881458a Add matfaust.poly.invm_multiply.
e5f22b9f3 Add the wrapper to multiplyPoly into matfaust.poly as done in 4fb300c1 for pyfaust.
27e97ad9f Update/optimize TransformHelperPoly and pyfaust.poly.poly wrapper to allow computing the multiplication F*X and the polynomial linear combination at the same time (use it in expm_multiply and invm_multiply).
407e2d831 Overload of slice in TransformHelperPoly.
56dbf3ea0 Optimize TransformHelperPoly::multiply(MatSparse) (Faust factor not created to compute the multiplication).
d8bdcab19 Optimize TransformHelperPoly functions: get_total_nnz, get_fact_nnz, get_fact_dim, to_string, getNbBytes (by avoiding the creation of factors calculating info. based on the known structure of the factors).
1758a35ba Refactor MatGeneric/MatDense/MatDiag/MatSparse to_string function with new static function and get_scalar_type_str.
2a5720b6e Fix a minor bug in Faust::TransformHelperPoly: in case of NOT lazy instantiation the is_fact_created vector wasn't initialized before use.
b7af8bf8d Switch to a simpler (eigen standard) but maybe less efficient version of MatSparse::vstack.
1fcbc9c5a Modify pyfaust.poly.expm_multiply to pass directly the time points as a list instead of a np.linspace style arguments.
df1684630 Minor fixes in pyfaust.poly.expm_multiply (among what: default time point is a negative value).
089101c46 Add Faust::TransformHelper::power_iteration and a pyx wrapper to it (not yet added in pyfaust itself).
d6234a702 Refactor to make TransformHelperPoly::next() and T0 arbitrary polynomial matrix consistent to lazy instantiation of factors.
98d73d276 Override the most part of the TransformHelper(Gen) member functions in TransformHelperPoly to implement a proper lazy instantiation.
79c442681 Refactor TransformHelperPoly::basisChebyshev to enable lazy instantiation and override getNbRow/Col() to return the proper size without instantiating the factors 0 and n-1 (it allows TransformHelperPoly::multiply to work without factor instantiation but it remains to override all factor-dependent member functions).
2f561b624 Remove use of deleted light/partial GPU impl. in 2020 PALM4MSA and hierarchical algorithms.
977d2a828 Add pyfaust.poly.invm_multiply and its doc.
9cf8cbf73 Add pyfaust.poly.expm_multiply and its doc.
4df876746 Minor fix of pyfaust.poly pyx (wrapper) code in case that basisX.ndim == 1.
610de11b5 Remove the light GPU implementation (aka FaustGPU) as it was an experimental implementation based on gpu_mod (while GPU2 is the full implementation).
b2a42ce55 Minor changes and fix in pyfaust.poly and C++ backend.
b0cbfddab Fix tocpu bug in TransformHelper<FPP,GPU2>::multiply(const FPP* cpu_x_buf, int x_ncols, FPP* cpu_out_buf, ..) and remove the workaround in pyfaust wrapper FaustCoreCpp.hpp
7953d7414 Fix windows compiling issue #191 (mexPoly.cpp.in).
6deaf83e4 Fix windows compiling issue #190.
31c5ebbd4 Fix GPU2 missing multiply signature (issue #189).
8d5269a89 Optimize C++ Faust*Dense-matrix especially for pyfaust.
6abda28bb Optimize TransformHelperPoly<FPP>::multiply(MatDense) avoiding 3 copies per iteration/column (using Eigen Map -- views)
c607c0c47 Hide pyfaust.poly.chebyshev (to do the same as matfaust), simplify the use of generator (return a Faust which is itself a generator instead of a tuple with a Faust and a generator).
03e2c9c88 Add matfaust.poly.next with its mex code (wrapper to Faust::TransformHelperPoly::next()).
823f63ab0 Handle T0 optional argument in matfaust.poly.basis, document it with an example added to pyfaust.poly.basis too. Fix a T0 size bug in pyfaust.poly.chebyshev.
453c4099e Add matfaust.poly.poly wrapper, update basis wrapper and add documentation for the both of them.
35960f497 Update pyfaust.poly doc, fix a minor bug in pyfaust.poly.basis (occurring when basis is a str) and verify that L is square.
225dcc81d Add chebyshevBasis matlab mex wrapper.
b5800ab3b Update MatSparse copy functions.
472d46aad Update TransformHelperPoly functions.
1e9280204 Implement T0 arg for native impl. of pyfaust.poly.Chebyshev.
db62c2432 Take into account pyfaust.poly in the doc filtering process (symbols excluded, namespace filtering).
ea64fcb12 Update pyfaust.poly doc, add examples and fix minor details in API/code.
a0c91a4e7 Minor change in Faust::TransformHelperPoly::polyFaust (variable name).
6f27de7b3 Use memcpy directly instead of eigen in MatSparse copy ctor and assignment operator= overload.
c58b40856 Update basisChebyshev and co. (don't skip the degree-0 polynomial anymore and modify all related functions in consequence).
3e79d1b20 Modify ci job test for windows whl pyfaust pkg (no need to specify the version when the virtual env. is already loaded).
4c8ff0612 Optimize again TransformHelperPoly::multiply() (by vector) and basisChebyshev.
a6b6ad97d Add MatSparse::conservativeResize() and fix a bug in vstack.
23bfd5a8e Fix a bug introduced by 0ac2f190 which happens when X (in F*X) has more than one column.
18fcab409 Update to gpu_mod@2097f63.
dfa55be89 Remove old GPU implementation (replaced by external gpu_mod project/shared lib and GPU2 binding implementation).
a6bd57e14 Implement generator mechanism for Faust::TransformHelperPoly and add it in the pyfaust wrapper.
48adedd9d Optimize Faust::TransformHelperPoly::poly through a zero copy approach using Eigen Maps (view) instead of Faust::Vect and Faust::MatDense.
b815e8d04 Update GPU2 C++ backend (Faust::TransformHelper and Vect) to conform to the new way of multiplying a Faust by a vector(implemented for CPU in previous commits).
72880940d Optimize Faust::TransformeHelperPoly::multiply(Vect) (F@x in python).
32d965ae0 Optimize Faust::Transform*::multiply(MatDense), multiply(Vect)
b4c6ee08a Add move and assignment operator= overload, Vect::operator=.
ad8d2fe61 Update pyfaust.poly with new wrappers of impls of C++ poly, uniformize all impls in single functions.
89024747b Update Faust::TransformHelperPoly.
c85f25691 Override C++ Faust mul by vector in the special case of the Chebyshev polynomial basis (class TransformHelperPoly).
d54f8bd62 Fix errors in Faust::Vect::operator-= functions (arg. vect or scalar).
a4d0843fb Add wrapper pyfaust.poly.basis_cpp and C++ implementation behind (for chebyshev).
cee71204e Fix memory bugs in MatSparse::vstack/hstack and add print_* functions.
0d8efda1d Minor corrections in using_gpu_matfaust/pyfaust tutorials.
e6436f664 Add MatSparse::vstack and MatSparse::hstack along with their unit tests.
4a4e7c623 Modify pyfaust.poly to be able to handle a L indifferently whether it's a csr_matrix or a Faust.
bd9d5dde5 Update pyfaust.poly function signatures and remove special case ChebyshevPhi.
2483283f4 Update pyfaust/matfaust GPU notebooks since the GPU performance is in fact better than indicated.
ef0d0902b Fix pyfaust.Faust.clone(), cpu to gpu conversion wasn't working.
46c4c661a Update macOS jobs (no need of the password anymore) and a note in macos setup script.
db173e4f9 Update things about C++ proxs.
619453431 Update to gpu_mod@8843946.
3252abb1b Update PALM4MSA/hierachical 2020 C++ impl.:
ae0b908e3 Update pure gpu splin, spcol, sp proxs tests (prog. arguments and output).
51b659dc5 Minor fix on MatSparse ctor: if nnz==0 can't build any triplet of row_id, col_id, value.
09c59b20e Update MacOS X VM setup script.
ae1d98549 Fix issue #185, minor error on prox_sp* GPU decls.
9d73e9ca6 Add prox_spcol and prox_splin pure GPU implementations along with a test/benchmark.
b242af8b7 Update to gpu_mod@f94b91b.
a3672b36c Add prox_sp GPU2 implementation with gpu_mod@422d2d7 and a test/benchmark (test_prox_sp_gpu).
49113b78f Update gpu_mod@70d319e.
a14d52f50 Update to gpu_mod@430e43c.
45ed33739 Add a new version of prox_sp that authorizes dynamically to output a MatSparse or MatDense image.
d754acb8e Secure input argument type in Cpu TransformHelper::update.
bee683e77 Add two new ctors to MatSparse.
c1e746420 Small fix in cmake script for experimental code filtering.
6776809eb Chebyshev polynomials as Fausts added a experimental module in pyfaust.
e4be0be32 Enable py3.9 for win pyfaust pip packages(build and test for releases).
3f6eaac66 Inform macOS users when libomp is not found at pyfaust loading and explain how to install.
9741e7b5d Enable linux python 3.9 package pub to pypi in pypy_pub gitlab ci job.
e95bbbe77 Add new Q/A in the FAQ (about demos and tests).
81bf86913 Minor fix in pyfaust runtimecmp demo.
558574637 Update matfaust.quickstart.factorize_matrix demo to enhance the Faust speedup.
ce4a867b0 Fix matfaust.rand misuses in documentation examples and install guide (due to change in API).
ddd72bf26 Few changes in projectors (about splincol/skperm) and gpu nobtebooks.
5f0ebb058 Enable macos x python 3.9 package to pypi in pypy_pub gitlab ci job.
fa578bcd3 Double the jobs for macos x pyfaust pip package (build and test) to support two versions of python (3.7 and 3.9).
00afcb095 Publish and update matfaust GPU wrapper tutorial.
ac5034922 Minor change: update pypi project description formatting.
7b6c6af93 Fix hadamard demo that was in experimental mode and using bits of deprecated/outdated pyfaust API.
7c6cb3607 Add a tutorial to use GPU with matfaust (equivalent to the pyfaust jupyter notebook which was updated by the way).
4221793ab Add cpu <-> gpu support to matfaust.Faust.clone.
26a9fc51e Add matfaust.Faust.device function.
3692de496 Add pyfaust.tests module (old tests pyfaust_simple_test.py) and integrate it in the release pip package tests of gitlab ci.
fee124aaa Update pyfaust tests.
d08a1c442 Update pyfaust wrapper (details below).
abc01d1a0 Update to gpu_mod@66fe38a.
add893fc9 Add a simpler set of unit tests for pyfaust (easier to apply to GPU Fausts).
1be0d9a57 Fix a bug in GPU2 MatSparse tocpu() and secure GPU2 Transform tocpu().
de6d8c431 rename mex faust_prox.h* files to avoid confusion with C++ faust.prox.h*.
1ddd39731 Add GPU2 wrapper in matfaust for Faust functions: wht, dft, eye, isreal. Simplify mex generation (only one source file for both CPU and GPU2 wrappers).
57333754a Add GPU2 wrapper in matfaust for Faust functions: mul_faust, vertcat, horzcat, subsref, subsref_byvec.
ebfd87902 Add GPU2 wrapper in matfaust for Faust functions: nnz, optimize_time, optimize_storage, optimize, multiply.
3ab0cd33b Add matfaust.Faust.transpose/ctranspose/conj GPU2 wrappers.
63ad747f1 Add matfaust.Faust.save GPU2 wrapper.
09fec4fb0 Minor change: refactoring isConjugate in parent class TransformHelperGen.
9043c95a9 Add GPU2 wrapper in matfaust for functions: factors, numfactors, nbytes, disp, full, norm, normalize, size.
b02cbc77b Implement (partially) matfaust.Faust wrapper to GPU2 (ctor, dtor and disp).
fbe232a28 Minor fix Faust::TransformHelper ctor.
906aaa58b Implement set member function in CPU and GPU2 Faust::MatDense and GPU2 Faust::MatSparse (already defined for CPU's).
6766b1ff5 Fix deprecated use of matfaust.rand in FaustTest (due to update by 257f6643).
c779ccfe5 Refactor mexFaust new cmd into separate module new_faust.h(pp) and optimize the Faust creation (one useless copy per factor removed).
96a44290d Add matfaust wrapper for hieararchical factorization (2020 backend, tested on a CBP's GPU).
6a3fef3bd Finish PALM4MSA 2020 GPU2 wrapper for matfaust (tested on a CBP's GPU).
9d1bb8f95 Handle use_csr and packing_RL parameters in matfaust.fact.palm4msa (as it is already in hiearchical) for the 2020 impl.
c2784a750 Secure/Fix non-initialized pointers in GPUModHandler.
8fe207612 Update to gpu_mod@01a3977 to fix issue #181.
8e88e45e9 Adjust C++ test_transform_gpu_mod to test complex<double> too (in addition to double).
a29f7be4f Update pyfaust jupyter notebook about GPU (complex support).
37d4d55d8 Update the project README (license and other details).
4813a8169 Add support of GPU complex Faust in pyfaust.
fed57eb33 Adjust GPU2 Faust::MatDense, Faust::MatSparse and Faust::Vect to support complex scalars (updating to gpu_mod@3920c36).
646421113 Update to gpu_mod@ed251cf (1.2.6).
1a61db8e5 Automatize PYPI release on push-tag (only if whl pkg tests succeeded).
ec13288a8 Minor update in doc.
dd6b10628 Update pyfaust install guide (now that pyfaust is hosted on pypi).
6b898d287 Update GPU notebook and pyfaust factorization wrappers.
153e91c36 Update pyfaust.demo:
e7fb4cbc8 Fix forgotten conflict to solve in license.txt.
c7178aa1d Fix a bug on GPU2 imple. of PALM4MSA 2020 (after a538c8) and refactor the functions defined to compute factor gradient (useless arguments removed).
295fe88ea Update GPU pyfaust notebook (with Rémi's annotations).
59c7aba1b Minor fix in matfaust.Faust.clone().
9e55c46c3 Add matlab live scripts about factorization algorithms + update corresponding pyfaust notebook.
9406fe212 Temporarily re-establish the doc of Constraint* classes.
cd5c4084e Fill other info fields to publish on pypi repo. and update license to BSD 2.0.
089c7143c Update and re-publish the jupyter notebook about factorization but removing the part about PALM4MSA based GFT algo.
885b31bb2 Link livescripts about projectors in doxygen doc main page.
903bb975b Add matfaust projectors livescripts.
a4a4a82ce Minor fix in matfaust normcol/normlin output.
ff5b009d5 Missing matfaust files for projectors added in a65434aa.
3e3fc0988 Add livescript Use_of_Faust_objects_in_algorithms, integrate it in doc and zip archive.
0112a0b37 Update livescript to fill section 1.3 and set internal links (of toc).
3ec416123 Fix matfaust.Faust.imagesc.
88a597e3d Minor fixes in omp.m.
3ebe1b21f Minor Fixes in faust.nsi.
2b093554d Minor change in matfaust.Faust.
2a138c55c Minor correction in pyfaust install in venv guide.
7c7d58be6 Add a pip wheel install test for the windows version.
12c6930a3 Add a gitlab ci test job of pip wheel release package for linux (refactoring in a parent job the common part shared with macos equiv. job).
cfd5a5275 Update setup_macosx_for_faust.sh (jpeg dependency).
33b7923aa Add a gitlab ci test job of pip wheel release package for macOS (installing and executing a small pyfaust code).
0ebd7e2e2 Add matlab and python basic tests of resp. matfaust and pyfaust after macos pkg installation in the test_macos_pkg_release gitlab ci job.
2e01e8b70 Add a macos pkg test job.
1abcdd1c6 Fix macos libomp restoration in .gitlab-ci.yml.
b3c022e02 Delete all modules, uses and any references about OpenBLAS along with its packages embedded in the project.
6e42f0d24 Fix issue #177.
e3eb227fd Update MEG factorization test to compare 2016 and 2020 implementations.
cd73cbff3 Add/enable an alternative method (Faust::compute_n_apply_grad1()) to compute-apply the factor gradient in C++ PALM4MSA 2020 impl.
39cfb7dd8 Update TransformHelper*::pack_factors() and get_product() functions with a new argument to use a matrix chain product method from faust_prod_opt module (it is useful to optimize the PALM4MSA 2020 impl.).
7c1ae459f Add timers (enabled in verbose mode) for spectral norms and factor gradient computation in PALM4MSA 2016 C++ impl.
b885f461c Fix minor bug/typo in OpenBLAS trans* parameter.
2407659a8 Minor change: adding a note about matlab install and conf for gitlab-runner.
b6f4ca433 Add FAµST data download log output in macOS post-install script.
a3ca877dc Build in two times matlab and python wrappers because of different OpenMP libraries to use.
279b0cc5a Fix data URL (filename must be excluded).
ca30f89cb Update macos pkg matlab postinstall script: handle the case when matlab path is a symlink.
e00901d09 Add "Faust manipulation" matlab livescript and update equivalent pyfaust notebook, with link in doxygen doc and into zip archive.
c9fc361ba Minor change in matfaust.Faust.cat (removing output of local variables).
54a37faad Set macOS pkg post-install scripts more verbose.
8a151848c Add missing matfaust.Faust.nbytes function.
3683e14bd Minor fix in matfaust doc, matfaust.isFaust was missing in doxygen doc.
ad61cb2c5 Minorly update macos post-install script (print MATLAB_ variables).
c0be10386 Implement Faust::TransformHelper<FPP,GPU2> iterative concatenation functions and refactor CPU and GPU2 cat functions in separate files/modules.
b35f847ea Add a notebook to introduce GPU pyfaust API and integrate it in the doxygen doc and notebook zip archive.
b65bff62a Optimize gitlab pipeline by executing the ctest pipeline only if the C++ tests or the C++ library code changed.
2ea62d1c6 Using gitlab DAG to reduce pipeline times.
5588d2b6f Udpate 'Faust creation' jupyter notebook.
a312f7203 Add matfaust first livescript (Faust creation), update the doxygen website markdown to publish it and the cmake script to make the zip archive (as it is already for jupyter notebooks).
199f11c96 Change the matfaust.rand() prototype to be consistent with pyfaust.rand (key-value pair scheme for optional arguments.
53d53b567 Add a script to configure ci.inria.fr Mac OS X instances for FAµST building, testing, package generation.
0d63723f5 Remove pre-ADT ci test scripts (not used anymore).
4f8dc3337 Add dev argument to experimental 'pure' python hierarchical_py/palm4msa_py to possibily use gpu wrapper (not tested).
0bff26ba7 Make possible to use SPLINCOL or SKPERM in parameter structure pyfaust.factparams.ParamsHierarchicalSquareMat.
2bb1cc9e6 Fix mul by lambda on Faust returned by hierarchical2020_gpu2 wrapper (the bug came from update 710dab55).
0cda57869 Fix variable length arrays on stack by using arrays on heap (issue #173)
a3fe9b6a9 Disable python2 (option NOPY2 to ON) by default in cmake config.
ce290582b Minor change in pyfaust GPU documentation.
f41a81484 Auto-install gpu_mod library on gitlab-runner home after building (continuation of 2bb6295a).
37532c1bd Restrain gitlab-pages job execution to 'pages' tagged gitlab-runner.
a19e7442f Update to gpu_mod@c656d08 to fix issue #172 (windows VS14 linking error).
d8cea0291 Add a pyfaust wrapper function to check if gpu_mod is loaded properly and block dev='gpu*' argument use (exception) if not.
82539bce5 remove pyfaust.Faust._add_nonopt (only here for benchmarking).
71b0f2abd Optimize pyfaust.__add__ (all the arguments are added with the Faust in almost one C++ call instead of repeating the concatenation/addition for each one).
752cb38db Fix ignored 'silent' option in gpu_mod loading and update to gpu_mod@835083e (fixing a loading bug when cuda is not available).
3a45a9331 Modify GPU2 randFaust impl. as it was for Cpu impl. by 7b6287f2.
9b157d9b3 Optimize pyfaust concatenate (replacing recursive meth. by iterative meth to reduce the number of copies).
745e2c920 Change pyfaust/matfaust.rand() definition to be more alike to numpy and matlab rand functions.
bfecd50ce Warn user that matfaust.rand can hide matlab rand builtin.
0de3f86e8 Fix pyfaust.concatenate args.
e9526e0e7 Fix __array_ufunc__ to handle 'subtract' passing the args to Faust.__rsub__.
f4b7a7da1 Fix __array_ufunc__ to handle 'add' passing the args to Faust.__radd__.
a3a458566 Optimize gpu_mod use: don't compile the lib if already installed on the system.
f6e5b6897 Optimize cuMatArray mul by scalar for GPU2 -- smallest factor copied (issue #159).
d521ca101 Document pyfaust.Faust.astype and __str__.
b030a9184 Minor changes.
b8678008e Document pyfaust.Faust.swap_rows and swap_cols, change the default value of permutation argument to True.
56e36d099 Secure, fix minorly and document pyfaust.Faust.average.
80159a82b Fix pyfaust.Faust.sum, secure its args and document it.
91d0dcaf2 Filter pyfaust symbols from the doc.
ec714c257 Fix issue #165, python3 must be used by rpmbuild (not python2).
af944b0d1 Fix issue #164 (Visual Studio error C2131).
9fcb7472e Fix issue #163 (matlab deprecated API error for complex matrices).
193e90200 Fix #162 (missing getNBytes() functions in GPU2 backend.)
8728ba121 fix index out of bound error in min size factor research of Faust::Transform ctor.
00c441eb6 Add __array_ufunc__ to handle ufuncs functions.
7d696ee40 Update pyfaust.Faust ops (indexing, elt-wise mul., addition).
e4e5cee64 Fix minor bug introduced by f4fd45f0 in Faust::Transform ctor.
d575b3069 Add inplace pyfaust.Faust ops: +=, -=, *=, @=.
ecccf93db Add pyfaust.Faust inplace /= (by scalar), copy (alias to clone) and fix __getitem__ to be able to use np.ndarray as indices (in addition to list).
bf4c7f6dc Optimize Faust by scalar multiplication by copying-multiplying the smallest factor (wrt memory size).
b31af53f9 Add MatGeneric<FPP,Cpu>::getNBytes() and subclass impls + refactor TransformHelperGen::optimize_storage.
5721be1c7 Finish swap_rows/cols (with transpose handling) in Faust::TransformHelper and bind it into the wrapper.
d4d2d322d Optimize Faust.__add__ vector broadcasting over a Faust (use one mul. instead of multiple concatenation).
5e8270beb Add TransformHelper swap member function.
8161b1ab3 Update pyfaust Faust.__add__ to handle vector broadcasting from array (ndim==1) or Faust (whose one dim. size is 1), and add issparse.
5f36e6f2c Add pyfaust.Faust methods: average, asarray and astype.
9af7ad251 Merge windows and unixes extension compilation code in setup.py.in (issue #91).
978827a7c Refactor char2gm_Op into faust_gpu_mod_utils module.
e90645075 Try to fix issue #158 (windows, VS).
2bb51ccd4 Fix pyfaust.Faust functions that use FaustCoreGPU pyx type unconditionally (it makes the wrapper to crash if not compiled with GPU support) and remove an erroneous use of FaustCoreGPU type in pure CPU pyx FaustCore class (in multiply function).
ee48d3609 Add optimize_memory to the GPU pyfaust wrapper and update many dependent C++ functions behind (details below).
560f8cf9d Update to gpu_mod@7920c9a.
cc9b7879d Add support of the Faust-by-csr_matrix mul. to GPU pyfaust.
6e8d628e3 Add normalize() support to GPU pyfaust.Faust.
c008b3a34 Fix GPU2 TransformHelper vertcat/horzcat.
df5e23779 Fix GPU2 TransformHelper mul. by a scalar (a Faust is immutable, a new Faust is returned when multiplying).
b415e91bd Fix add of GPU Fausts.
b34c122df Fix support of CSR input matrices GPU pyfaust.Faust.
5738ec975 Add GPU support for Faust.save() in pyfaust wrapper.
d8b26d4c3 Add GPU Faust fancy idx support in pyfaust wrapper.
8ed1dfa44 Add GPU Faust slice support in pyfaust wrapper.
832a75a32 Refactor and make more consistent/reusable the state copy of TransformHelper<FPP,DEV> (transpose, conjugate, slice, mul. mode).
3fe98bd8c Add pyfaust.Faust.device property and cpp impl.
7e82b0ba7 Add GPU pyfaust.Faust wrappers for concatenate, vstack, hstack, clone.
970b840e7 Update to gpu_mod@d800359.
805db8cb3 Add GPU pyfaust.Faust wrappers for transpose, conjugate, pruneout.
46ce49d90 Implement GPU pyfaust.Faust.factors(), left(), right() functions and all their dependent operations in C++ core.
fe5b8e486 Minor fix: don't build mexPALM4MSA2020_gpu2 when USE_GPU_MOD is OFF.
a99be4727 Separate FaustCore and FaustCoreGPU in two pyx files, the same for corresponding pxd files. New pyfaust GPU2 wrapper functions: scalar mul, norm, nnz_sum.
335ffb4eb Update palm4msa_2020.cpp.in to disable GPU2 code when CMake variable USE_GPU_MOD is OFF.
2f460b41d Add mexPALM4MSA2020_gpu2.m.in (forgotten in a previous commit).
f37b9cb54 Add GPU pyfaust.Faust functions toarray(), Faust by Faust mul, nbytes.
9e21061f7 Implement GPU hadamardFaust, eyeFaust and add a device argument to pyfaust.eye,wht(dev=cpu|gpu).
66ab44af5 Implement GPU randFaust and add a device argument to pyfaust.rand(dev=cpu|gpu).
cd19248fb Start the GPU Faust class python wrapper with the Faust constructor (from numpy arrays), display function and multiply by a numpy aray.
b5ff23efc Prepare TransformHelper<FPP,GPU2> to the python wrapper (functions are defined but left to define later).
d237b12dd Add TransformHelper<FPP,GPU2>::push_back(const MatGeneric<FPP,Cpu>* M, const bool optimizedCopy/*=false* /, const int32_t dev_id/*=-1*/, const void* stream/*=nullptr*/) (copy to GPU then push).
1855ea8f6 Add optional parameter FDevice DEV to FaustCore as a step toward a GPU Faust class pyfaust wrapper.
5a07fdc62 Allow to use GPU2 impl. of palm4msa2020 in test palm4msa_2020.cpp.in.
a9535e3bc Add the matfaust wrapper to palm4msa2020 with GPU2 backend.
b0e1d5073 Update matfaust.enable_gpu_mod to load the library from current directory as a fallback solution.
d555f5821 Implement the pyfaust wrapper for the GPU2 palm4msa2020 algorithm.
89659f9b3 Implement the pyfaust wrapper for the GPU2 hierarchical algorithm (2020 backend).
e55f35dc5 Add functions to Transform(Helper)<FPP,GPU2>: tocpu, save_mat_file.
2aede5ceb Add test MEG_factorization (GPU2, FaustGPU and CPU).
432e773cf Allow to cut the execution of hierarchical2020 past n factorizations in tests hierarchical2020Hadamard and hierarchical2020Hadamard_gpu2.
91d4089da Fix is_fact_side_left==true in hierarchical 2020 and complete Params output (use_csr and packing_RL options).
2fb6ce0ae Fix memory leak in TransformHelper<FPP,GPU2>::pack_factors and useless copies in TransformHelper<FPP,Cpu>::pack_factors.
7744363dd Minor changes.
a542cdb15 Fix Visual Studio errors in GPU2.
393c6ba29 Update to gpu_mod@f1e6c96.
34e1cbfa3 Minor fixes in Faust::Vect<FPP,GPU2>.
5837e2743 Update to gpu_mod@2178bf0.
6dbccfaf2 Fix issue #154 (macOS linking error).
8fdbe781f Update to gpu_mod@af1104f.
f7cdf4bc6 Disable python2 in pkg_macos_release/rev ci jobs.
5dd657235 Allow pyfaust hierarchical wrapper to use skperm prox.
2f727ad5c Allow to use SKPERM or SPLINCOL in GPU2 test of hierarchical2020.
fc9c838b5 Allow using SKPERM prox in PALM4MSA by updating faust_ConstraintGeneric.* and faust_ConstraintType.h.
5ca7ee9c0 Minor changes.
cd000c8ff Add copy operator= in Faust::TransformHelper<FPP,GPU2>.
c07403f00 Fix a memory leak (affecting both GPU2 and Cpu impls) into palm4msa 2020.
0e58cc5f4 Fix misc issues about USE_GPU_MOD and BUILD_MULTITHREAD options for cpp tests and matlab wrapper.
cd82243cd Minor change about pack_factors in TransformHelper (GPU2 and Cpu) -- calling parent method.
ebd25f2b0 Fix documentation example code of matfaust.Faust.cat that induced a rendering bug in horzcat documentation.
ef1b5065d Minor fix in test_matsparse_gpu_mod.cpp.in (free memory in test_clone()).
9bae8277b Get use_csr option from environment in hierarchical2020Hadamard_gpu2.cpp.in.
1ac99d1e2 Minor update (for test purposes) of hierarchical2020_gpu2.cpp.in (updating to gpu_mod@dbf4133.
1be7f08c8 Free clone GPU matrix in test_clone() of MatDense<FPP,GPU2>.
1158ed0c5 Free explicitely gpu factors in test of Transform<FPP,GPU2> (it makes easier to diagnose GPU memory leaks).
6b46062e8 Copy GPU factors to avoid double-free corruption in test of TransformHelper<FPP,GPU2>.
fa5841449 Refactor minorly Faust::Transform (CPU) updateNonZeros (alias) and clear/operator=.
42e8ffa78 Add no_zero argument (default to true) in MatSparse<FPP,GPU2> ctor to allow not allocating defaultly a zero buffer (nrows+1 size) and avoids possible GPU memory leaks.
136423fce Minor fix in TransformHelper<FPP,GPU2>::pop_front.
a67daa58a Minor change: add getNbRow/getNbCol() in TransformHelper<FPP,GPU2>.
4e4e61bfe Manage GPU memory references with RefManager in Transform<FPP,GPU2>.
327322f4f New test for GPU2: misc/test/src/C++/hierarchical2020Hadamard_gpu2.
b8977c5c1 Update TransformHelperGen hierarchy for GPU2 (pack_factors, erase, insert functions).
28e8e75d3 Update GPU2 MatDense and MatSparse.
1a9cecea1 Cleanup headers of useless Faust:: prefixes and remove declaration of types (MatDense etc.) in default namespace.
bc3871680 Fix Transform<FPP,GPU2> is_fact_sparse/dense (copy is useless) and iterator::operator++ (recursive infinite call).
1e3a3b275 │Fix a bug in MatDense<FPP,GPU2>::tocpu and a memory leak in copy operator=, set constness of norm functions.
630795136 Add faust_prox_gpu.h/hpp (GPU2 light impl. -- using CPU prox) and include them in Constraint* files.
556ece737 Fix include directories for faust_linear_operator target (needing GPU_MOD).
46613a51d Update FAuST external data archive link (moving from gforge to gitlab).
6aaf25aab New test for hierarchical2020 with GPU2 backend/types instantiation.
b42c12dd8 Remove template type specialization to Cpu, keep FDevice DEVICE to allow both GPU2 and Cpu instantiations of palm4msa2020 and hierarchical2020.
124d451aa Add in MatDense<FPP,GPU2> trace() and copy ctor.
caae9a279 Update TransformHelperGen hierarchy and particularly TransformHelper<FPP,GPU2> (new methods).
042dcd6c5 New TransformHelper<FPP,GPU2> class and misc update in other GPU2 classes.
59467cfe0 Fix issue #153 (matlab wrapper build with gpu_mod).
f901fddc0 Update to gpu_mod@1fd7b2e.
d6927d4b0 Fix cpp files erroneously added to build when USE_GPU_MOD is OFF.
2c2864244 Add new class Vect<FPP,GPU2> that covers old Vect<FPP,Gpu> features, MatDense<FPP,GPU2> multiplication by a Vect<FPP,GPU2> (with its test).
93f387494 Add Transform<FPP,GPU2> functions and tests / MatGeneric<FPP,GPU2> methods.
4c4f0cfd4 Add class Transform<FPP,GPU2> (not fully impl.) with unit tests, update MatGeneric<FPP,GPU2> hierarchy.
765bc77e6 Add MatGeneric<FPP,GPU2> abstract parent class for MatSparse/Dense<FPP,GPU2> and implement getNbRow/Col() in child classes.
ec4c4f4fd Minor fix: remove old TODO about norm.
cfcc57ee1 Add to_string() and Display() methods to MatSparse<FPP,GPU2> and MatDense<FPP,GPU2> methods.
1a3996ebc Update/fix C++ and python wrappers to follow recent updates with gpu_mod interfaces (faust_gpu_mod_utils module).
44bf249a9 Add cuda current device set/switch/get, counting devices capabilities (faust_cuda_device module), update tests and MatSparse/Dense<FPP,GPU2>.
ec0714f22 Add GPUModHandler within the new module faust_gpu_mod_utils.h/cpp as the placeholder to gpu_mod library functions loading and access (removing prototype equivalent old code from FaustGPU, updating to gpu_mod@e4f1060).
853db464e Add MatSparse<FPP,GPU2>::add/sub with tests.
0c3532525 Add to MatSparse<FPP, GPU2> the member functions: operator=, operator==, operator/=, operator==, operator!=, operator*= (scalar mul.), setIdentity, move and related unit tests (update to gpu_mod@3f55a2f).
90ce47e2b Update to gpu_mod@aff4369 with the new MatSparse<FPP,GPU2> and unit tests for the implemented functions (through gpu_mod).
423c45328 Update to gpu_mod@a353f78 and add gemm function for MatDense<FPP,GPU2>.
e6ce2cf0a Add MatDense<FPP,GPU2>::operator*= (alias to scalarMultiply).
902b6b20e Update to gpu_mod@f813005, handle stream and multi-GPU capability for MatDense<FPP,GPU2>.
d4ccf15d8 Update to gpu_mod@1cd2516.
98c27ca57 Add MatDense<FPP,GPU2>::operator= overloads (from CPU or GPU2 MatDense or CPU MatSparse).
98dd2a577 Update to gpu_mod@1cd2516, new functions in MatDense<FPP,GPU2>: operator+=, sub, operator-=, multiplyRight, multiplyLeft, operator*= with corresponding tests.
f769d6caa Add MatDense<FPP,GPU2>::add(MatSparse<FPP,Cpu>) and a test (update to gpu_mod@862ed4d).
2d1487c44 Update to gpu_mod@bd7eced and add functions to MatDense<FPP,GPU2>: add, abs, normL1 with tests.
dfa708151 Update to gpu_mod@d9bda3c and add functions to MatDense<FPP,GPU2>: multiply(Vect<FPP,CPU>), scalarMultiply, transpose, adjoint, conjugate, spectralNorm, norm, normalize and associated tests.
c4f42d458 Update to gpu_mod@666a08a in order to add MatDense<FPP,GPU2>::resize, setOnes, setZeros, setEyes, clone.
3376b752e Update MatDense<FPP,GPU2>::multiply(MatSparse<FPP,Cpu> freeing gpug memory and add a new signature to output in MatDense<FPP,GPU2>.
2ac9f7baa Update to gpu_mod@a242b93.
a42f4b65a Add new signature for MatDense<FPP,GPU2>::multiply and update tests.
500667b8c Add test to MatDense<FPP,GPU2>::mutliply.
cf8679a7e Implement MatDense<GPU2,FPP>::multiply(MatDense<GPU2,FPP>).
be554a035 Mention the skperm projector in notebook about projectors.
575671686 Minor change.
9e237801c Start new MatDense<FPP,GPU2> impl. using GPU_MOD (to replace later MatDense<FPP,GPU>.
700297ace Update to gpu_mod@b0c110b.
ee20fd414 Update to gpu_mod@ee6c57c.
8eb41a20d Minor change.
f1a59a91a Update to gpu_mod@8e3bbe5.
d7c79e88c Update to gpu_mod@8f667ac.
b2742855e Update pyfaust.enable_gpu_mod to hide all messages by default (issue #151).
e5f05626c Fix missing file in gpu_mod (https://gitlab.inria.fr/faustgrp/faust/-/jobs/736345).
37a657808 Update to gpu_mod@2a3eed8.
7ab39667f Update to gpu_mod@1c14462, simplify a lot how the FaustGPU spectral norm is implemented (all is done by gpu_mod) and fix issue #140 by the way.
a0fed2938 Update GPU power iteration algorithm to support complex Faust.
2d57ef77a Minor change in matfaust.enable_gpu_mod doc.
307bc48d0 Minor change.
708df5a35 Add support for 'pos' and 'normalized' to skperm projector and update the API documentation.
654865396 Fix nbytes computation formula in TransformHelper::optimize_storage() and getNBytes() functions.
fdff24bdc Add FaustMulMode and set_FM_mul_mode/set_Fv_mul_mode in matfaust as it was added into pyfaust.
946de29d6 Minor change.
aca472a87 Refactor again Faust::skperm, this time in a single implementation both for double/float and complex<double/float>.
f3e1e022b Add matfaust and pyfaust unit tests for the skperm projector.
f4c2ea3fd Add the matfaust wrapper to skperm.
07561723f Refactor Faust::prox_skperm into template specializations for double and complex<double> types because the algorithm for complex is not yet implemented (it returns an error).
20023ff03 Implement SKPERM projector and add its pyfaust wrapper too.
303533891 Fix tensor transfer to device in experimental FaustTorch class.
f0138d723 Update to gpu_mod@44023b2.
2afdbe31d Fix pyfaust_torch C++ symbols error: missing _ZN3c105ErrorC1ENS_14SourceLocationERKSs.
381bb0d05 Update gpu_mod@4a824ad.
c0db9a9f0 Minor changes in misc/test/C++ (comments and outputs).
b21c3cabe Minor changes related to eigtj.
8b560917c Minor change.
ea647bab5 Minor changes in code doc.
244d5b728 Fix FaustGPU::pop_front, FaustGPU::power_iteration2.
950987b6d Fix 2 particular bugged cases in Faust::multiply_omp.
e384097ea Minor change.
f2c2bdd05 Minor change.
43fd166a4 Minor change: adjust pyfaust ParamsHierarchical* displaying format/content.
c66cc996b Minor change: add a warning when pyfaust hierarchical2020/palm4msa2020 are gpu enabled.
fd7031099 Fix bug https://gitlab.inria.fr/faustgrp/faust/-/jobs/712989.
e19566d92 Make norm2_max_iter, norm2_threshold available from pyfaust.factparams.ParamsPalm4MSA as it is for ParamsHierarchical and fix bug in checking dim. size in ParamsHierarchical.is_mat_consistent().
ffba7a80d Update matfaust.factparams.* code/API doc and a few in pyfaust.factparams too.
06d39154a Remove the mingw/cython build code in CMakeLists.txt (issue #91)
38b10b947 Add a unit test for pyfaust.factparams.ParamsPalm4MSA (issue #81).
c2a291f8c Add __repr__ functions to StoppingCriterion, ParamsHierarchical/Palm4MSA, ConstraintGen and function ConstraintName.name_int2str.
d105bb5fc Add Faust::StoppingCriterion::to_string() and reformat Display() output, update faust_Params, ParamsPalm to use it.
5cdd8d805 Remove duplicated C++ unit tests (forgotten by 49f58e61).
09e7f79a0 Use mathjax displayer for doxygen doc latex code.
0c0c6a63d Update post-install scripts for matlab on macOS and Linux to frame the code injected by a warning identifying clearly faust.
06fd191b3 Embed Faust projector notebook in doxygen the documentation and also in the pyfaust notebook zip archive.
028e739a8 Minor change: document the matfaust.fact.palm4msa optional backend argument.
e39a546c3 Increase timeout of slow tests.
835c9b31f Minor change: test lambda value after computing error.
365255d01 Update nightly test jobs.
e64048e8b Update install guide doc (especially for matlab).
8e880917e Update matlab post-install scripts for linux, macos and win to rehash toolbox as a last attempt to access the startup script, otherwise send the user to the doc.
a8c0126d3 Fix matlab/matfaust expfiltered folder being installed instead of ignored.
e87c8dfbf Remove from pkg post-install scripts the matlab userpath startup.m edition to avoid redundancy.
e489ae2b0 Update post-install scripts (win, macos, linux) to add faust data dir in matlab path and to secure further the update of th e path for matlab.
f7fd5c9cd Fix matfaust.version displaying variable instead of the version.
0fd86f94e Fix matlab non-member functions inline doc issue (visible doxygen syntax).
4c378e7c7 Fix faust_TransformHelper.hpp warnings.
ba31c61ce Fix warning about deleting of C++ object whose class ctor is non-virtual.
22c5ea31b Fix -Wreorder warning (C++ ctor arguments order).
405fc1d6d Minor change: add to the readme a troubleshoot to matlab non-default path issue.
1a274e3f3 Minor change: copyright year.
3fbebe89e Accelerate macOS pkg post-install script in the research of matlab and fix the case in which matlab is not installed in /Applications.
84e4d83a5 Fix MacOS X pkg generation to include libomp pkg ect.
32ffc9e19 Allow pyfaust.Faust ctor to receive a filepath as first non-keyword argument (issue #78).
778425356 Delete matfaust/pyfaust.fact.fgft_givens alias of eigtj (issue #120).
a812b7e88 Fix Faust::Transform::spectralNorm issue #111.
57f6377a9 Update/Add transpose/adjoint/conj methods of faust_MatGeneric class hierarchy.
688afd906 Refactor mex_params initialization for matfaust palm4msa and hierachical.
dfbe7a0b0 Update the doc and projectors notebook (after the change of blockdiag def.).
7c9b8b281 Simplify blockdiag proj. def. (issue #144).
3c6024de0 Set a default value for norm arg in matfaust/pyfaust normlin/col projecctors.
589f4b4fc Minor change: output message added to the formfeed filtering (c)make target.
e5466110c Secure normlin/normcol norm parameter to be >= 0 (otherwise an error is raised).
76db5504c Update prox notebook.
d4226d4d7 Fix Visual Studio error C2131: expression did not evaluate to a constant.
4c687a4ff Make possible to call without recompiling Faust::multiply_omp and automatically if BUILD_MULTITHREAD is ON.
7d25350fc Fix MSVC error C2248 in FaustGPU
aa9d84299 Update to gpu_mod@6e39c0e.
4033aee42 Update doc/code about Faust product optimization (pyfaust and C++ core).
4018d3799 Update many things about projectors.
6779f65b1 Add directories in matlab path with a finer granularity to avoid conflicts with matlab built-ins eye, rand functions.
090158149 Set projectors normalized default argument to False and remove that argument and pos argument as well for normcol and normlin projectors.
376a2649a Minor change: change the way data files are accessed in pyfaust test.
99490e02e Fix issue #86.
0ff2ef60a Handle division by zero error in MatDense::Normalize().
98034e212 Minor change in README (indicates the preference for python3 instead of py2).
e8020553e First version of the pyfaust.proj jupyter notebook.
268aa1b04 Update the OMP/C++ Threads parallel reduction of the Faust-Matrix product to compare properly the calculation times as shown in issue #125.
528ff0ec1 Implement the spectral norm (operator L2 norm) using gpu_mod@7d259af.
4ba82adbc Minor change: correct constness for Slice arguments.
845186057 Refactor product optimization methods into a specific module.
475f88b92 Port hierarchical2020/palm4msa2020 to GPU for the multiplication.
695b587e5 Make palm4msa2020 (impl1) capable to do Faust/matrices muls on GPU.
156fed08e Minor change: refactor gpu factors loading/acquiring in TransformHelper.
5e29b843f Update FaustGPU: cpu_gpu_map is only used when RefManager is enabled.
403f3e977 Add RefManager::contains().
2fbb2a409 Make palm4msa2020 (impl2) capable to do Faust/matrices muls on GPU. Update the test for it.
e6aa48a2d Use (optionally) a RefManager into FaustGPU and update ctors and methods for the last update of gpu_mod.
149302626 Minor change (simplification): replacing Faust::Transform::delete callback def by a lambda expression passed directly to the RefManager.
136e98a07 Refactor palm4msa2020 by using MatDense::adjoint() and new function fill_of_eyes().
f7b45660c Add MatDense::adjoint().
c49a46ec1 Update faust_gpu_mod: refactor Faust-Matrix mul. and rely on gpu_mod for the Faust-vec mul too (opt.: less copies on cpu memory).
b327fb346 Increase cpp test timeout including that of MATFILE_FACT_HIER_float.
c2357db0a Fix MatSparse::randMat() bug with FPP==float.
32f31f050 Make possible to run the pyfaust.demo.bsl on GPU (cuda).
cbb9e8542 Fix Faust::TransformHelper::optimize_multiply when in_place==true.
c02c0ffcb Minor fixes in FaustTransformHelper related to faust_gpu.
9af86e806 Add a TOC in faq doc page.
bc4221973 Secure input matrix major order in pyfaust hierachical wrappers (2016 and 2020).
055a6c349 Update to gpu_mod@1.1.2 and update faust_gpu_mod consequently
3945339d9 Update C++ gpu_mod wrapper to compute 'toarray' of transpose and adjoint of a Faust.
b4ceb2fb3 Add a new method Faust.clone() (matfaust and pyfaust).
d46c6964f Separate Faust-vector mul. optimization/method choice from that of Faust-toarray and bind the wrappers.
f5eb01b6e Add Faust::Vect::Rand/setRand().
6a93d7795 Minor change: modernize C++ in faust_MatDense by using nullptr instead of NULL.
073a84865 Minor change: updating Win and Linux post install scripts for the gpu_mod auto-loading to be silent for matfaust (as it is already for pyfaust).
97ae5fe2d Refactor enable_gpu_mod() (and by the way fix a bug occurring when libpaths is None) in pyfaust and update documentation in both wrappers.
83f7b7bf9 Minor fix on matfaust doc.
08e469bed Fix HTML anchor bug with doxygen 1.8.18.
5a08ce436 Make the (doxygen) doc target depend on matfaust files filtering targets to allow fix missing code doc (bed65cb6 regression).
89051fa4b Update .gitlab-ci.yml.
14e1eaf1b Replace uses of numpy.matrix by parent class numpy.ndarray (ndim == 2) to prepare pyfaust to the deprecation of numpy.matrix.
f4f855b4a Explicitely disable FAUST_TORCH in wheel pkgs for Linux et macOS.
a6971eed0 Secure array format (col. major order) in FaustCore.pyx fact_palm4msa_gen.
aaec7a9bb Minor changes.
65da9d8d9 Fix a bunch of warnings in C++.
b8fc4bf96 Update FaustTorch class (pure py.) exprimental code with a new method totensor() and refactor __mul__ method in this goal.
782365a26 Uniformize cmake script for WIN32 mex building to finalize what was done for macOS/Linux in 1ea31014.
aeb159e6e Add pathlib pip dependency which is only useful when FAUST_TORCH is true.
199ea74b9 Minor change: disable gitlab ci job for generating py. wheel pkg for raspberry pi (as it's unavailable at the moment).
d6508c304 Minor fixes.
e28173bad Handle in set_path the matlab/matfaust name conflicts because of the way set_path is adding all subdirectories of +matfaust to the path (with eye, rand etc.).
9571ea94d Configure and integrate OpenMP library into macOS .pkg (release and rev.).
e2fa5a15e Patch cmake script for finding OpenMP on macOS/clang.
ab9acd243 Enable multithreading (OpenMP) in gitlab ci for tests and macOS packages.
f6721d74a Enhance cmake post-processing of matfaust scripts (experimental code filtering and inline doc generation).
ccae65d67 Modernize mex building cmake script and uniformize macOS/Linux code.
30b05e5a9 Enhance cmake code for BUILD_MULTITHREADING and refactor a bit cmake scripts.
9fc69e9b1 Minor change.
2ce11a900 Enable OpenMP for windows packages (both for matfaust and pyfaust).
358e3d721 Modify an old test to measure time on sparse factors Faust (instead of numpy dense arrays).
644f5ed26 Update faust.nsi: enhance matlab lookup (first try to find in PATH and R2018b to manual lookup), hide powershell windows and fix missing gm.dll copy.
f4d4ae2c0 Minor fix: protect PYTHON_PATH expansion from space issue in .gitlab-ci.yml
7c1799e40 Fix index out of bounds issue in Faust mul. optimized method 2.
a6ea289a1 Fix bug on hierarchical 2020 impl.
6c2fc7dd3 Fix for windows the experimental code filter script.
45fa6ae15 Set up gpu_mod auto-load in matfaust wrapper with function enable_gpu_mod().
f61be6148 Update generation of Windows packages to integrate gpu_mod and enable it in pyfaust wrapper.
84528ceb5 Update to gpu_mod@a2f16c9 (1.1.0).
184f5e77d Set all in place (for Linux systems) to load automatically libgm (gpu_mod) from pyfaust (whether it was installed from a pip package or a system package).
fd34bac08 Simplify CMake script for finding Eigen3 package (on UNIX systems) and specify the minor version needed according to issue #93.
a1901e2d9 Build and integrate libgm (gpu_mod) in package_linux and package_linux_purepy* gitlab ci jobs and pack.
17b36c4e8 Disable py2 in gitlab pipeline jobs for linux package generation.
48cd19234 Set gpu_mod submodule address as relative URI.
61c14f912 Handle the different configurations for python tests (py2 and py3 found and NOPY2 enabled).
a93103fb7 Fix test_palm4MSAFFT.cpp.
b84f435bb Disable Python2 in tests jobs and for Linux packages (as py2 is not supported anymore since january).
8f6e2779e Minor change.
c1b2a0e5e Integrate gpu_mod into Faust with tests for double and complex<double>. Faust optimize_time is capable to use gpu_mod.
95e4de465 Fix numeric_limits::max issue on Visual Studio 14.
690d3d3ee Minor fix/change.
3fe23c52d Fix bugged init_facts default initialization (when is_update_R2L is True) in FaustFact.fact_palm4msa_gen (_FaustCorePy.pyx).
09e650b33 Setup the gitlab pipeline and dynamic (down)loading of libtorch for pyfaust pip packages (macOS and linux x86-64).
f503aa6af Update cmake to set faust_torch module available by FAUST_TORCH cmake option both in C++ tests and pyfaust (if of course libtorch is installed).
b9b67cf56 Integrate faust_torch mul functions to optimize_time/mul. Temporarily change optimize_multiply (C++ backend to wrapper optimize_time) to measure time on toarray instead of Faust-matrix mul.
ca65e1b5d Minor changes in faust_torch module.
73a578558 Update faust_torch module.
4e6a1efbc Update faust_torch test.
5b1fd4127 Update faust_torch module.
eb82e4023 Optimize faust_torch module to avoid cloning data (by default) when possible.
f42fb075b Custom the faust_torch cpp test.
7869d1e14 Add the faust_torch C++ module for computing a Faust-Matrix product using torch CPU and a cpp test.
6b3dc4c92 Rename Device type to FDevice to avoid conflicts with torchlib (both Faust and libtorch use this name type out of namespace), remove also 'using namespace ...' in some headers (where they shouldn't be).
5bd062b1f Add pyfaust.FaustTorch class as experimental code.
df1473ce6 Refactor largely Faust::GivensFGFTParallel/GivensFGFTParallelComplex algorithms into a new class GivensFGFTParallGen and update unit tests.
8bbab83a7 Add argument nsamples to matfaust/pyfaust.Faust.optimize_time(). [skip ci]
6a8872272 Overload Faust::multiply_order_opt_all_best() and add a test (faust_mult2).
2d46f5fa6 Minor change: update doc.
2823274f7 Optimize pyfaust palm4msa as fd17c283 did for matfaust.
d2863e937 Optimize mex palm4msa output: avoid copying each factor when creating TransformHelper object and choose the proper storage format (sparse or dense) to save memory.
fc9a8a3f5 Hide pruneout npasses and only_forward arguments (in matfaust and pyfaust).
b18d6c138 Update the matfaust/pyfaust.Faust class doc, rename some functions (optimize_*), change minorly arguments of pyfaust.Faust.norm.
b3eb1c92a Fix pruneout bug due to use of not copying ctor.
085554a73 Add argument inplace (default to false) to Faust.optimize_mul.
fb55ef452 Minor change.
954438332 Optimize pyfaust.Faust.toarray() and C++ impl. TransformHelper::get_product() with the pre-existing opts used in TransformHelper::multiply(MatDense)
bc1103460 Document StoppingCriterion class in pyfaust and matfaust.
49a6edae3 Add unit tets for matfaust/pyfaust palm4msa2020 and hierarchical2020.
9aeeaf073 Add matfaust wrapper to palm4msa2020 and refactor 2016 palm4msa mex code.
fb6fd077c Fix compilation issue on Matlab R2018a,b.
b8dea6915 Add pyfaust wrapper to palm4msa2020.
b18bde645 Add support of error stopping criterion to palm4msa 2016 and 2020, renew StoppingCriterion structure to simplify choice of num_its or error as stopping crit and handle also relative error.
b21f4c241 Minor change.
a47996d9e Add an overload of Faust::hierarchical2020 to use Faust::Params the same parameter structure as Faust:HierarchicalFact(2016).
a2c12fb54 Make constant_step_size and step_size parameters available for hierarchical2020 (c++ core and w rappers).
3ffb44d8d Make verbose mode available for hierarchical2020 (cpp core and py/matfaust wrappers).
9d5912461 Define Faust::ConstraintGeneric::Display() and specialize the method in other constraint classes. Use these functions to refactor Faust::Params.Display().
b4f69d642 Update hierarchical2020 C++ core and wrappers to use 2 StoppingCriterion objects (local and global palm4msa) instead of only one number of iterations (identical for both palm4msa calls).
bd96eb575 Minor change: hierarchical wrapper doc. update.
5a41502d5 Fix palm4msa2020 error C2131: expression did not evaluate to a constant.
12dbcd7c0 Minor changes: typos in doc.
efcf6dac2 Minor fixes: typo in mx2Faust.hpp and reference values of tests (due to 2-norm default parameters change).
23e2627cb Add benchmark script to compare pyfaust hierarchical 2016, 2020, hierarchical_py and Luc Giffon (pyqalm) hierarchical Palm4MSA implementation.
13d145faa Update matfaust/pyfaust to premultiply output Faust by lambda with 2020 backend (as it's done with 2016 backend -- consistency).
a9103aa31 Simply/Optimize Faust::TransformHelper mul. by a scalar (avoid copying factors, only the one multiplied is copied).
c39925698 Rename faust_palm4msa.h/hpp to faust_palm4msa2020.h/hpp to avoid confusion with faust_Palm4MSA.h/hpp (especially on case insensitive systems).
45c5d7f23 Update Hierarchical/Palm4MSA about norm2_max_iter/threshold.
20b13b9a6 Re-enable missing test in 3e609ad2 and fix a small bug in test hier_fact_test arguments (CMakeLists.txt).
ee93c36ba Update matfaust tests as 4b3cc14f did for pyfaust (change in default norm2 parameters).
f84234f84 Handle use_csr, packing_RL and norm2_threshold/max_iter arguments for matfaust.fact.hierarchical in its params structures (wrapper code, mex and C++ core).
0ec0178d5 Add wrapper to hierarchical 2020 impl. into matfaust.
6d5b6b29c Exclude complex type from tests of palm4msa/hierarchical 2020 (not supported yet) and raise an exception in pyfaust wrapper when a complex matrix is passed with backend 2020.
2a6193637 Make the 2020 hierarchical implementation available from the same pyfaust.fact.hierarchical function as the 2016 impl. (with a new argument named backend).
94a2d5677 Modify slightly unit tests since the change of default value for norm2 threshold (1e-16 > 1e-6). Fix also nan issue in test_TH_pack_factors.cpp.in.
9ef906d3d Add argument packing_RL to hierarchical2020 and palm4msa2 in C++ core and pyfaust wrapper.
81902885e Minor fix: disable missing C++ test.
448e6c59e Fix matlab wrapper issue with TransformHelper variadic template.
a50df69a7 Add a py. wrapper pyfaust.fact.hierarchical2020 to Faust::hierarchical and modify parameter structures of wrappers pyfaust.fact.palm4msa and hierarchical to set any values of norm2 threshold and maxiter.
59bfa111e Add C++ tests (misc directory) for new implementations Faust::hierarchical, Faust::palm4msa and a new test to factorize Hadamard matrix with the 2016 implementation (Faust::HierarchicalFact) in order to compare with the new implementati on.
8e65979c4 Port palm4msa_py and hierarchical_py functions to C++ Faust::palm4msa Faust::hierarchical and implement in Faust::palm4msa2 an optimized version using factors packing in Faust::TransformHelper instances.
513ef38c9 Modify C++ Faust::Palm4MSA, Faust::HierarchicalFact and Faust::ParamsPalm, Faust::Params to allow setting norm2 threshold and max iter arbitrarily (default values changed faust_constant.h.in).
ef267ce4b Add optional arguments to hierarchical_py and palm4msa_py about norm2 computation and projected matrix storage format.
7d8d48fe9 Update TransformHelper::pack_factors() by using cleaner methods: insert, erase, resize, pop_front, pop_back, push_first (defined in Faust::Transform). New signature for get_product().
c0540d51f Add functions to pack factors in a Faust (multiply them to obtain a single matrix). TransformHelper::pack_factors() signatures (pack to the left, to the right, by index range or all TranformHelper factors).
a54a543f0 Optimize Transform and TransformHelper ctors (avoid copies).
403e8e4e1 Add a variadic template ctor for TransformHelper, add push_back_() related functions and a test.
c6d845315 Implement factor iterators in Faust::Transform(Helper) and hence foreach loop (with a unit test).
e54c65223 Add copy ctor and copy assignment to TransformHelper and corresponding unit tests to test also Transform copy ctor (refactored) and operator=.
77cb4be0c Rewrite in C++ left and right Faust functions (TransformHelper) and set them in pyfaust wrapper (add unit tests test_right/left), also add a __len__ override.
e297cee93 Minor change: simplify/refactor pyfaust __*mul__ ops, error handling and isinstance callseverywhere in the class.
765c2dabc Extend Faust::MatSparse::setEyes() to allow eye non square mat and simplify MatSparse::eye() static function by using setEyes().
bddcf30ea Fix error on csr_matrix*Faust and csr_matrix@Faust occurring because scipy optimizes naturally csr_matrix tranpose into csc_matrix which wasn't handled (C++ Faust works with csr matrix behind).
e394b9ac5 Modify power_iteration stopping criterion in order to fix issue #131.
681cd4b19 Patch palm4msa_py with an option compute_2norm_on_arrays that avoids the nan norm issue 131 (it occurs for example when trying to factorize a hadamard matrix of order 128 with hierarchica_py).
f62b54b99 Add unit tests for matfaust spcol/lin normcol/lin supp const sp and fix normlin error.
9f7fd0585 Enable multithreading for the linux builds by default.
386f1151d Update pyfaust.factparams.ParamsHierarchicalRectMat and pyfaust.fact.hierarchical doc and remove UML collaboration diags from doxydoc (quite useless).
b476506dc Minor doc update/fix in pyfaust ConstraintMat and supp proj.
ec72b5ff6 Minor change: doc example for ConstraintList.
c67d1b288 Adjust matfaust (including mex funcs) to support blockdia proj or constraint.
68c2e95d9 Make blockdiag constraint available in palm4msa algorithm.
91da2f42e Integrate BLOCKDIAG constraint as a ConstraintMat -- like CONST and SUPP (only for pyfaust for now) and correct some details about other ConstraintMat -- toeplitz and circ in C++ core.
3d8dc38ea Update the factorization jupyter notebook since the update of eitj wrapper.
dac94d878 Make pos and normalized options available for new projectors: toeplitz, circ, hankel and blockdiag (matfaust, pyfaust, cpp core), update the pyfaust doc.
5f586bdaa Update pyfaust palm4msa and hierarchical params doc.
224c92477 Bind wrapper to Faust::prox_blockdiag into matfaust.proj.blockdiag class/functor.
9518cbaa4 Exclude the raspberry pi package gen. job from revision pipeline (only for tags).
a09a3fe23 Bind wrapper to Faust::prox_blockdiag into pyfaust.proj.blockdiag class/functor.
885ed7c5d Fix version missing in pip package for raspberry pi.
6959cd87b Implement BLOCKDIAG proj in C++ and add a test.
85823db7e Add pure python prototype for BLOCKDIAG projector.
79d3897fa Add a gitlab ci job to generate a package on raspberry pi.
6d99d43bd Fix synchronization issue in Faust::multiply_par_run() (multithreaded product of N factors).
56878960d Minor change in Faust mul C++ test debug output.
92c9f1a11 Add examples for pyfaust projectors.
d5fbc9936 Fix pyfaust projectors unit tests (bugged because of bad import since the module change).
54e25f881 Review the doc and fix imports.
15e6582e6 Disable formfeed filtering when matlab wrapper is not built.
e532666c0 Enable projectors for palm4msa()/hiearchical() only supporting ConstraintGeneric/ConstraintList before. Update the doc (mostly for projectors).
80bd9e3ec Fix (at least on linux) the formfeed character issue occurring in latex section of doxygen matlab filter (which was provoking syntax errors even if located in comments).
ba36c34c2 Allow pyfaust ParamsHierarchical ctor to receive a list of pyfaust.proj.proj_gen.
c3c564e30 Add matfaust wrapper to TransformHelper::optimize_multiply() and fix VS14 specific error (C3863) into TransformHelper::optimize_multiply.
dd031ac44 Add the function TransformHelper::optimize_multiply() to refactorize TransformerHelper::optimize() which calls it, pyfaust wrapper for this new function and handle optimization for the transpose Faust (new function argument).
157fe9198 Minor changes/fixes.
b2cda15a2 Enable non-documented *faust class filtering in gitlabpages generation.
cd1d16ed2 Refactorize MatDense code to get/set diags/antidiags and fix toeplitz and hankel projs for rect. matrices.
18b9855e7 Minor change: update projectors doc.
61e229430 Minor change.
05199f8b6 Minor change.
68bcdae78 Move projectors in a specific package py/matfaust.proj.
2987c59ae Finish filtering of non-documented classes both for matfaust and pyfaust.
b92472b5d Filter excluded/non-documented classes from doxydoc (only for pyfaust).
76fb0c8e9 Add a CMake option to disable python2 support.
4d9e90424 Add the matfaust wrapper Faust.optimize.
8de83d82a Add the pyfaust wrapper Faust.optimize.
a3e33dc15 Add TransformHelper::optimize() and a C++ test: it does a pruneout + optimize_storage and choose the quickest method for the Faust-matrix product.
3b8495a99 Bind cpp optimize_storage() into matfaust.Faust and add Faust.nbytes attribute (as ndarray provides).
b8b61ba5f Add C++ hankel prox test.
66bd3edd2 Add pyfaust/matfaust wrappers for hankel prox.
b4971522f Add Faust::prox_hankel and Faust::MatDense::adiagonal().
670a35733 Fix the error VS14 C2131 issue (https://gitlab.inria.fr/faustgrp/faust/-/jobs/512998).
d7aeea57f Add to pyfaust wrapper the binding to Faust::TransformHelper::optimize_storage().
17a00d0ab Add circulant proj and a test, bind toeplitz and circ projs into matfaust and pyfaust.
0574cbdcd Write the toeplitz projector in C++ Faust namespace and add a unit test.
9f07b9b19 Add Faust::MatDense::diagonal().
b635b6462 Add Faust::Vect::mean().
92e38424f Minor fix.
d048198c6 Document pyfaust projectors.
4e87db82b Implement an optimization based on storage format of each factor with a criterion choice: time of matrix-vector mul or memory footprint.
744b4f618 Minor fix to VS14 compilation issues.
93b0ad24e Bind Faust::TransformHelper::pruneout() into matfaust and update doc.
332f33a30 Bind Faust::TransformHelper::pruneout() into pyfaust.Faust.pruneout().
141318351 Handle compiling issues with optional OpenMP (CMake scripts, setup.py, ...).
07e4e435c Finish pruneout C++ impl. for Faust::TransformHelper and add a unit test.
eba1278ab Start pruneout port to Faust C++ core.
3330d6f1d Implement a C++ threaded version of the previous OpenMP impl. of the parallelization of the Faust-matrix product.
d413efc4b Add in matfaust projector functors (sp, splin,...) as defined already for pyfaust.
ac2d6b214 Add pyfaust.Faust.matvec to be compliant with scipy.sparse.linalg.aslinearoperator.
9cc669414 Fix matlab mex compiling with openmp/gcc on *nix platforms (except macos).
2773c1529 Fix namespace issues due to the choice to avoid 'using namespace' in cpp headers.
836902ac9 Implement an OpenMP parallelization of the Faust-Matrix product (new test: faust_transform_omp_mul.cpp.in).
34f6a3e2f Update pyfaust eigtj/svdtj doc, undocument/hide verbosity argument for svdtj.
b63560965 Minor fix in pyfaust wrapper for svdtj (enable_large_Faust argument not passed for one function signature).
d2b3747f2 Minor fixes about C++ namespaces.
7c64228ec Implement pyfaust.fact.hierarchical_py (pure py version).
f29315d22 Change the mat product optimization boolean of the previous commit to a int in order to be able to choose one of the 3 optimization methods available and rename these methods.
97bf52a1d Add an option in Faust::TransformHelper to choose to optimize or not the Faust-matrix multiplication and bind this functionality into pyfaust.
d41cc07e3 Implement a C++ optimization of N matrices by choosing the best order of multiplications while cb82a735 optimized only for 3 factors.
2d889ec7e Minor change: wrong license indicated in setup.py.
a6e146506 Make available the grad_calc_opt_mode option in matfaust.factparams.ParamsFact. This option has been added in C++ core by 28f1510f.
5b3a67276 Implement an optimization on the multiplication of 3 factors in the most advantageous order as Palm4MSA does internally for and rewrite Palm4MSA::compute_grad_over_c() to allow the option (gradCalcOptMode) to use the external or the internal optimization. Set the external optimization as the default behaviour in pyfaust.fact.
97e044491 Add an enum GradientCalcOptMode and a boolean in Faust::Params* structures to decide to enable or not the multiplication optimization used in Palm4MSA::compute_grad_over_c and make this option available in pyfaust.factparams structures.
e0010b8ea Update pyfaust and matfaust unit tests in consequence of the fix bc7de9e1.
114e43227 Fix 2 minors bugs in Palm4MSA c++ and pyfaust wrappers occurring only with a complex input matrix.
cc2e7f59e Refactor the mexFaust function: the code blocks for hadamard, fourier and eye Faust are now in separated functions.
9e04ceb64 Avoid the warning about scalar mul of a Faust at creation stage when the creation is done internally (in the C++ backend).
fcb998be7 Simplify pyfaust.fact.palm4msa_py using functors from previous commits (no need of the dims argument anymore).
6911d6b02 Update pyfaust projectors sp, splin etc. to set them as real functors (callable objects), allowing to access the underlying constraint as an attribute.
df3c91dc8 Implement enable_large_Faust for matfaust.fact.svdtj (by using the C++ backend).
6916bba86 Update pyfaust.*.svdtj* as 70e4746e did for eigtj (large Faust limitation) with a big refactoring into faust_SVDTJ.h(pp) backend (more genericity between complex and float impls of GivensFGFTGen).
3b3ca784d Implement a new limitation for eigtj: if the nGivens value implies a size of transform that doesn't worth it in terms of complexity then the algorithm is stopped with a warning.
8ac1653d5 Update matfaust.fact.eigtj/svdtj doc (Rémi's review).
8ce1ba870 Add a "pure" python implementation of PALM4MSA as an experimental block of code (filtered out of release packages).
b72b0349a Minor change in pyfaust.Faust.norm (keyword argument handling -- spectral norm specific parameters).
7bb78ee56 Clean the code of complex type uses when floating type actually needed: norms, step size and lambda for PALM algorithms.
62b1c2e78 Complete pyfaust.factparams unit tests of projectors (spcol, splincol, normcol, normlin, supp, const).
2e18a3750 Continue the refactoring started with bb417591, this time refactor Faust::GivensFGFT by calling code from parent GivensFGFTGen instead of duplicating.
634c82131 Minor changes.
7f45dba70 Fix issues found with 6a34474c on projectors and add a pyfaust unit test for spcol.
f2bb23a9e Add the abstract class Faust::GivensFGFTGen parent of all classes GivensFGFT* (complex and float sub-classes). Main purpose: refactor the code and morever avoid duplicates.
6ef649823 Add a unit test for pyfaust.factparams.splin, fix a bug in matfaust.ConstraintGeneric and modify pyfaust projectors to be compatible with py2.7.
9e4d6938a Update minorly eigtj/svdtj related codes and doc (benchmark, matfaust, pyfaust, pyx and C++ backend).
7a5896f94 Change API of constraints/projectors and the C++ backend.
5455f779f Bind to matfaust the new proxs added by 5901bfca.
332dacc96 Add C++ missing non-normalized proxs for discrete sparsity and bind them into pyfaust(.factparams.ContraintInt).
90bfc17f4 Minor changes in eigtj C++ backend classes and related python unit tests.
5f2d117a8 Update doc of mat/pyfaust.fact.eigtj/svdtj, other guides and notebooks.
b669200ec Update matfaust.fact.eigtj as previous commit did for pyfaust, handle issue with absolute and relative errors.
fc4f85f8b Update pyfaust.fact.eigtj (and C++ backend): doc, fgft_givens is now an alias of eigtj instead of the way around, allowng undefined maxiter if error criterion is specified.
911f1588e Simplify/optimize GivensFGFT*::update_err().
80bd57a0f Update GivensFGFT C++ tests: refactor/document/simplify/reinforce with additional assert() calls.
bacb75905 Modify GivensFGFT classes to keep possible to undo the permutation (multiplied into the eigenvector transform's last factor -- 062edd06) by computing the inverse permutation beforehand when ordering the eigenvalues.
e9725b898 Optimize/Simplify and factorize the recomputation code of the 'Givens' coefficients in case of nonzero pivot image in GivensFGFTComplex/GivensFGFTParallelComplex.
2332fb6f9 Minor change (disable debug info.)
e4a6b08a8 Fix a bug in pyfaust.Faust.__rmatmul__ (lhs*Faust) and __rmul__ (Faust*rhs).
f8e8a5c14 Update how multiplication of Faust::Transform(Helper) (or computation of its full mat) is made when the Faust is conjugate, transposed, transconjugate.
3bfab31f7 Fix the non-zero pivot image of L(p,q) by choosing the good sign of theta2. The eigenvalues are the same with complex and real implementations of truncated jacobi.
41b857338 Bind complex svdtj into pyfaust.
ae67a66af Update svdtj() to request ordered eigtj eigenvector transforms to get order-consistent U and V transforms.
29b268ddc Remove the permutation factor from Truncated Jacobi Faust::Transform (replaced by a mul. of the last factor).
f5f2b66ed Add two unit tests for matfaust.Faust by sparse matrix mult.
8e1862449 Secure svdtj pyx function, the input matrix must be in fortran/column major order.
7d62e8c92 Support pyfaust.Faust-csr_matrix/dia_matrix multiplication for complex Faust/matrices and update related pyfaust unit tests.
7c701546d Minor change in MatSparse::multiply(MatSparse).
f04b34866 Fix a bug in Faust::MatDense::multiply(MatSparse) occurring when opthis==T and matrices are complex.
612a29459 Fix memory leak in C++ svdtj and update its matfaust doc.
84950f7df Add support to pyfaust.Faust-dia_matrix multiplication (issue #116).
7addac9a3 Optimize C++ Faust normalization (multiply the scaling factor instead of appending it) and handle Faust transpose situation.
1ccb995ba Adjust unit tests to follow the fix 52b80791 which changed slightly the measured error on eigenvector transform but kept pyfaust and C++ consistent with each other.
8f117682e Fix a bug in Parallel Truncated Jacobi algorithm (GivensFGFTParallel/Complex).
a2fd3abae Handle in gemv() the mul. A'*v with A a complex mat.
35dc155f9 Update C++ and mex code to make matfaust.fact.svdtj compatible with complex matrices.
8f2d968cd Update svdtj documentation with description from issue #95.
4e8a16323 Migrate to cdash-ci.inria.fr (cdash.inria.fr is deprecated).
e73f33bdf Update C++ svdtj: remove the last permutation factor from eigtj. Fix pyfaust pyrex svdtj (passing explicitely the array in column major order -- fortran array). Update sligthly the doc.
c036de0ad Undo the cmake FILE(REMOVE) for +factparams as we don't want it as experimental for the next release.
b0375acb8 Remove PALM based algos from exp. mode (temporarily for the next release).
f37ac29d7 New prototype of svdtj in pyfaust wrapper for supporting (sparse) csr_matrix.
a358fb02f Update svdtj to multiply directly the last eigenvector transform factor by the signed permutation matrix
51bcabece Fix minor error in pyfaust hpp svdtj definition (opt. args).
0c7eac280 Bind pyfaust.fact.svdtj() to C++ core impl. (only for dense real matrix).
9873ab78c Refactor mex svdtj function into Faust C++ core (in order to be reusable for pyfaust).
9b0eb8f26 Update C++ mex svdtj: add signed-permutation factor to U transform and permutation factor to V (the function is fully functional).
b6fb73e71 Update mex C++ svdtj to sort singular values in descendant order.
e34b939ba svdtj C++ version (WIP).
c04aaeae7 Faust-sparse matrix multiplication available also for matfaust.
fbb50cffd Fix missing identity default to false in MatGeneric deft ctor.
7ff3b0845 Implement in C++ the Faust-SparseMatrix multiplication and bind it into pyfaust.
78747ec60 Minor fix in MatDense (forgotten renamings).
6f9b5fc58 Update matfaust.eye and its mex code to bind them to the new C++ core impl. of Faust eye.
3b840f47f Implement the optimization of eye faust in C++ core and bind it into pyfaust.
fb33aea57 Set the experimental mode for revision packages and exclude all experimental code (and documentation) from the release packages.
28b5d5be8 Minor fix in benchmark_eigtj and rise of number of runs
7d3a990eb Minor update in doxydoc mainpage layout.
42f4b99d9 Update pyfaust.Faust.imshow() as asked by #102.
3ee8947ca Update matfaust.Faust.imagesc() as asked by #102.
507d5fc7a Update OMP notebook to remove the references to factorization notebook and integrate it to zip archive and doxydoc links.
d87e2198a Rewrite Faust::MatDense::abs() to enhance compiler compatibility.
04b0df456 Update wrapper eigtj doc and backend C++ code too.
79b14ce6f Minor fix in Faust::MatDense to satisfy Visual Studio.
dddb93afd Add forgotten test GivensFGFTComplexSparse.cpp.in.
8a03e5ea3 Fix two bugs related to the recent refactoring of matfaust.
ed5f50cfd Add a new error measure in benchmark_eigtj.py. The error is measured on the largest eigenvalue.
2c1f2c6ed Add a script for testing eigtj decomposition of a circulant symmetric matrix and comparing it to the DFT matrix.
07e9bdc6c Update benchmark_eigtj.py to test eigtj on Hermitian matrices built from real Laplacians by random phase multiplication.
d76a9944e Add a new benchmark script to compare complex truncated Jacobi algorithms to real versions.
3bd7075af Modify pyfaust/matfaust eigtj to return real part of eigenvalues array (removing the almost zero im. part).
229fcd017 Minor changes about hermitian prop. checking (eigtj) and doc.
d57ff3f38 Fix missing handling of sparse complex hermitian in both pyfaust and matfaust eigtj and disable S'LS product optimization of GivensParallelComplexFGFT because it gave bad results (full of NaN).
09c887d5c Make GivensFGFTComplex and GivensFGFTComplexParallel available in matfaust wrapper (fgft_givens/eigtj).
fb2e3f273 Add a non-functional C++ impl. of Parallel Truncated Jacobi for Hermitian matrix (GivensFGFTParallelComplex) and plug it to the pyfaust wrapper.
1cc35e154 Update GFT test script (next to the refactoring of FaustFactory into pyfaust.fact).
7dd4cad28 Add a test for GivensFGFTParallelComplex (upcoming code).
ba2302035 Fix several points and connect GivensFGFTComplex (C++) to pyfaust.
504a20001 WIP GivensFGFTComplex updates: correct S'*L*S and other details.
2ffbe9a18 WIP to implement complex (Laplacian) Truncated Jacobi.
43572089f Update FGFT pyfaust benchmark to compute errors on 'optimal' signed permutation of Uhat.
8b4ad5a15 Update experimental code filter added by ebc954ec and use it CMake scripts for pyfaust and matfaust.
83a12924e Modify order argument of eigtj to be 'ascend', 'descend' or 'undef'
f3a54328e Update pyfaust as d2991db9 did for matfaust.
690581768 Minor changes in doc.
f342cb1fa Add to matfaust eigtj/fgft_givens an order argument to define the eigenvalues sort.
9dc072089 Update matfaust to follow 037f674a, update svdtj, eigtj, fgft_givens API, doc and tests.
196d0b0f5 Update pyfaust eigtj (and fgft_givens) to respect the conventions established by numpy.linalg.eigh.
7378832a8 Make possible to use an absolute error in C++ GivensFGFT, change and document pyfaust eigtj and fgft_givens for a prototype similar to pyfaust.tools.omp.
3502b320b Update OMP notebook to measure more multiplications in ending benchmark.
cfffefd7f Attempt to optimize GivensFGFT(Parallel) for L residual being a MatSparse.
8bf4da621 Add a python script to filter out exprimental code in pyfaust and matfaust.
b6a2cd5aa Add unit tests for pyfaust/matfaust sparse versions of GivensFGFT(Parallel).
66f3bbb50 Make the direct use of sparse Laplacian available from matfaust.
efedd1e76 Make the direct use of sparse Laplacian available from pyfaust.fact.eigtj/fgft_givens.
dd7e8b329 Rename ParamsHierarchicalFact* structures to ParamsHierarchical* everywhere.
246971ef6 Update constraint table description by adding a new column for exactness guaranty.
45043b340 Minor fix in matfaust documented file list.
eb4d0478c Update notebooks and the API accordingly.
3c7f0bfd3 Re-enable faust_decompose.m filtered out from sys. packages by 8b182bcf for #64.
6ce51fae5 Update pyfaust.demo consequently to bf3ebccb.
fb81dfb3d Remove prefix fact_ in matfaust/pyfaust functions (and tests, doc).
bd5a643fb Delete file of abandoned class matfaust.FaustFactory.
10cb19825 Refactor pyfaust/matfaust.FaustFactory into a new module: pyfaust/matfaust.fact with all implications (tests, doc, doc gen).
31636d3cf Move functions dft, wht, eye and rand from FaustFactory to pyfaust package root, update tests, documentation and notebooks to respect this change.
e802a9b37 Move functions dft, wht, eye and rand from FaustFactory to pyfaust package root, update tests, documentation and notebooks to respect this change.
790f98366 Align MatDense to_string()/Display() with MatSparse's version.
cc0259589 Rename FaustCorePy to _FaustCorePy to hide from completion.
9dffca205 Implement pyfaust.Faust.left/right functions as requested by #69.
029044a63 Implement matfaust.Faust.left/right functions as requested by #69.
8794bde56 Add an alias matfaust/pyfaust.isFaust to matfaust/pyfaust.Faust.isFaust.
5392ef300 Rename get_factor() to factors(), get_num_factors() to numfactors() (hopefully) everywhere in pyfaust/matfaust, the doc, the notebook, tests...
5d0d3d2c8 Fix Windows Visual C++ issue: it needs fully qualified namespaces for MatDense and MatSparse.
df41d4386 Temporarily remove the third notebook (factorization) from the zip archive and from the doxydoc links.
ca82bdb27 Set public the access modifier of GivensFGFT::update_L() to fix clang-macOS (suprisingly) specific error of compilation.
e28f2bfb8 Finish updating GivensFGFT/GivensFGFTParallel to be compatible with a Sparse residual/Laplacian and add Sparse version of existing tests to validate the modifications.
d7d0e7c8a Add/implement nonzero_indices() in the whole MatGeneric class hierarchy.
0e58cde7e Fix reference return issue in MatSparse::operator().
7bacdd706 First try: convert L to MatGeneric which implies to declare in MatGeneric and implement in subclasses a bunch functions.
f8308fae7 Fix reference return issue in MatSparse::operator().
9aa63c316 Add new multiply Faust::MatSparse member functions and a unit test.
19d47b712 Fix #114: char encoding issue on Windows.
0dae13df6 Update calls to numpy.linalg.lstsq as indicated in the doc to silent warnings about precision.
b83f6879e Add a py script to filter out HTML tags in pyfaust modules and a CMake target to call it after doc generation.
a170b347a Remove unused matlab (tools) scripts from cmake install target as requested by #64.
7b56ccebd Execute pkgbuild with admin. rights.
a3a53458a Make doxygen doc generation depending on notebooks zip creation in makefile.
c6a5ac87f Implement/document matfaust.tools.omp for equivalency to pyfaust.tools.omp.
9932c96de Fix windows bug with getting the python3 minor version (added by f683704b).
42c16d9e0 Generate a zip file of published notebooks to be hosted on gitlab pages with the doc.
a3628944e Update the OMP notebook after Rémi's review along with the HTML pre-rendered version.
5b2f2445e Update the pyfaust.tools.omp prototype and the bsl demo to avoid altering results.
0ceb83601 Automatize the assignment of SUPPORTED_PY3 variable.
c5b1222e1 Update the notebook again for minor changes and the html version (with results).
901a8c44b Filter omp (from pyfaust.tools) in the namespace list of the API doc.
ff28d9177 Update the OMP notebook regarding the recent changes.
a369628b7 Update pyfaust.tools omp API: rename the function, update stopping criterion arguments, update and simplify the documentation, remove useless variables.
5fd6f6bcf Add the OMP Cholesky impl. of pyfaust (tools module) to the generated documentation.
bfb0ca397 Implement in C++ and enable in matfaust the default normalization for FaustFactory.dft().
6308c50a7 Implement in C++ and enable in pyfaust the default normalization for FaustFactory.dft().
610cadaa0 Enable default normalization in mataust.FaustFactory.wht() using C++ backend code (added by 7daa5b22).
715f46237 Integrate to pyfaust.FaustFactory.wht() the use of normalization by default (added to C++ core by 7daa5b22).
4bc3f337e Update the pyfaust bsl demo in particular because of an update of matplotlib which removes find().
e521fa1f7 Implement the optional normalization of Hadamard transform in the C++ backend (yet to use in wrappers).
8a819ef56 Update pyfaust.tools.py since e66ab87d removed conversion to numpy.matrix in Faust mul result (added before by 421e8251).
3d6fc5b58 Update the OMP notebook.
32b8ec1d3 Update matfaust dft and wht as 964b7776 did for pyfaust.
f1098fb42 Setup a workaround to the 2-norm normalization bug on complex Faust exclusively occurring on matfaust (pyfaust is ok).
b6e9cca0c Update pyfaust FaustFactory.wht and dft to be normalized transforms by default and change the meaning of argument n which was the power of two exponent and is now the power of two directly (error raised if not).
3acdc0c93 Add pyfaust.Faust.ndim as numpy.ndarray.ndim.
4e39c59c5 Make the Faust-by-vector multiplication return a 1D vector as numpy does (instead of a matrix with a dimension size at 1).
351380c6d Update the OMP jupyter notebook with a new section about Greedy OMP-Cholesky.
0086a7c9a Minor changes.
b23877609 Update the OMP notebook in order to simplify x0 choice of nz coeffs and to complete the last test (where nnz=98).
fa57c3a35 Add a test for pyfaust concatenate/hstack/vstack.
1fdfea2eb Update the notebook to use simpler hstack call instead of Faust.concatenate.
9f46afbaf Add in pyfaust the numpy-like functions hstack, vstack and concatenate.
8f7537bfe Optimize Faust Fro. norm computation in case of a Faust equal to Q1 Q2 ... QN S1 S2 ... SN where the Qi factors are orthogonal.
a5648dd93 Fix minor compiling error on macOS/clang 'faust_TransformHelper.hpp:582:14: error: invalid suffix 'd' on floating constant'.
c500b5e01 Update the OMP notebook after Rémi's review.
68b49f4ed First impl. of norm-2 optimization of Faust composed of sequence of orthogonal factors in their extremities.
cc31b0267 Optimize FaustFactory.wht() C++ backend; only one factor is really created in memory because all others are in fact the same.
74c0fe071 Add a test for pyfaust.tools.UpdateCholeskyFull() used by OMP-Chol.
aebf2f374 Add a fourth notebook to demonstrate the use of FAµST API to write algorithms like OMP.
e23a53337 Review jupyter notebooks.
4c9341243 Add matfaust.FaustFactory.fact_hierarchical_constends(), review fact_palm4msa_constends(), add examples.
a3387cf5d Add the matfaust version of FaustFactory.fact_palm4msa_constends().
0a6a6dbaf Make matfaust ConstraintList ctor accept ConstraintGeneric arguments as pyfaust version does.
9e5b93895 Fix 2 bugs on matfaust proxs: one concerning 'const' prox and the second all proxs but only for complex matrices.
a5c9c83ad Add an example for pyfaust.fact_palm4msa_constends() and avoid A to be multiplied (the lambda scalar).
1c2979a8e Add a package function pyfaust.pinv() to link Faust.pinv() and make it return a numpy.matrix instead of an array.
ec0395a87 Handle in pyfaust expressions like F[[1,2,3],] (equiv.to F[[1,2,3],:]) and fix a bug on fancy indexing-after-transpose operation.
af677be65 Add pyfaust.FaustFactory.fact_palm4msa_constends().
9ef1e5a2a Add pyfaust.FaustFactory.fact_hierarchical_constends(), partially documented and with a test example.
f72509d54 Enhance pyfaust.factparams.ConstraintList.
5168536e2 Fix typo bug in pyrex code (is_mat_constraint()).
db6cbeda9 Fix in pyfaust a possible bug because of non-same storage order between input and output of prox_const.
980314fc9 Refactor fact_hierarchical_gen into two different functions, one for real the other for complex numpy arrays.
d5cfd092b Add links to gitlab ci artifacts in README.md.
e35496812 Move postinst_py.sh (rpm/deb post-install scripts) to python 3.7.
9e925ade7 Minor changes.
cb20b461c Add pygsp in pyfaust pip/setup.py dependencies, a note about it in quick install guide and update windows installer guide section.
43f9d7418 Remove warning about buggy Faust indexing for Windows pyfaust (as 8fb4df1 6658f9a5 fixed it).
c96b108e0 Fix pyfaust.Faust slicing/fancy idx win10-py3.6-VS specific bug.
3fda17aed Fix pyfaust fancy idx bug on py2.7.
367568634 Update lightly the third jupyter notebook.
3626139c1 Update the fgft_palm() example in API doc and notebook.
3653f8964 Fix 2 pyfaust windows bugs.
3460cbcb3 Misc minor changes.
ea950c0a3 Fix pyfaust windows minor bug: occurring on not defined _NSI_INSTALL_PATH when pip package is used.
1b767a2cf Support op+F, op-F, op*F, op@F and norm(F,ord), dot(F,op) in pyfaust with op a scalar or a numpy.ndarray.
06aee3361 Misc updates.
d17e2d0de Simplify the script test_svd_rc_vs_err.py (used in notebook 2: Faust manipulation).
2bc667aad Fix issue #101 on pyfaust.Faust mul. by a ndarray of ndim == 1.
f7bd1ba84 Update the Jupyter notebooks and link the third one on doxydoc main page.
964587c4d Add a jupyter notebook about factorization wrappers.
4995cb0e5 Update Faust.normalize() doc. and jupyter notebook consequently.
dc3c733fa Implement pyfaut.Faust.__matmul__() (@ overload), dot() and change __mul__() to rely on @ when it applies.
5df55133c Update pyfaust.Faust.imshow() to limit the number of columns when there is too many factors (displayed modulo max_ncols).
a762484b6 Add a Jupyter notebook about Faust objects manipulation and link it from the main page of doxydoc.
208c7eb6e Minor fix.
844989a49 Update the python script plotting sparse faust size (bytes) versus RC.
4cdc56a09 Add pyfaust.Faust.conjugate() alias of conj() as it exists in numpy.
80b50a559 Update Paper references in doxydoc mainpage.
7844d97f1 Minor refactoring in matfaust.eigtj()/svdtj().
f6299b5b1 Fix 'desc' key value to 'descend' in sort() because Matlab R2016 doesn't want it
9de10cc74 Workaround memory issue in matfaust.Faust.svdtj().
795ff00ad Fix erroneous use of spdiag() coming from smallbox (replacing it by sparse(diag()).
e56ab7c0e Update few things in API doc and modify matfaust.Faust.imagesc()/pyfaust.Faust.imshow() in order to print titles.
fb426cc9c Add a Jupyter Notebook to introduce the different ways to create a pyfaust.Faust.
419d593c8 Misc minor changes.
5d595cb2b Configure faust.nsi to open online doc as a workaround to issue #99.
deb039b97 Add MatDiag::get_rows()/get_cols() (random rows specified by indices).
172039e25 Add MatDiag::get_rows() (for getting contiguous rows).
71d30c58b Add MatDiag::Clone(), norm functions, get_col(), get_cols().
a53ac1c24 Add MatDiag::multiply(MatDense), MatDiag::multiply(Vect), MatDiag::transpose(),conjugate(), ctor for non-square diag. matrix.
2ae7855ee Minor change.
256bf9a9b Continue the impl. of MatDiag.
88f53236b Add a FAQ with an explanation on how manually download faust external data.
4cd4d3520 Fix bad path in doc for Windows.
3df5d3a5b Replace FAµST by FAuST in all python pyfaust files to avoid charset issue on Windows doc.
8de4108c0 Try enhancing speed by adding more jobs for ctest.
686318dbe Specify charset UTF8 at make-install stage too (gitlab ci macOS package job).
7c0e43714 Add CMake option NOCPPTESTS (OFF by default) to do pure wrapper test in gitlab ci jobs ctest_python, ctest_matlab.
e4b9ccc6d Update windows nsis installer to download FAµST external data with powershell as a fallback solution when python was not found.
6ab7ab4fd Refactor data URL and filename into variables.
4de042280 Make the windows installer (nsis) able to download faust data.
97fefda38 Update gitlab and CMake build scripts to download data files in package post-install scripts.
137071047 Handle in pyfaust auto-downloading of FAµST remote data (only for pip package).
93675bdaa Add a python script for downloading and uncompressing FAµST package data.
eb363e61e Fix startup.m overwriting issue in package post-install script (linux/macos).
cc0a85094 Update faust.nsi to edit user's startup.m for faust path auto-setup at installation on Windows.
8cb6d9df0 Replace FAµST by FAuST in all matlab files to avoid charset issue #37.
89ba0e728 Minor change.
fb21f4521 Update macOS and linux post-install scripts to edit also user matlab startup script (not only system's).
6c2b5b0db Update doc links in quick start guide, making difference between local and online doc.
89a453577 Complete/Correct memory management of Faust::Transform by RefManager.
dcfee93d1 Update license headers and documents.
2a91a4c4a Update the guide for pyfaust install in virtual environments.
5c2b61d7a Add a skeleton for Faust::MatDiag (yet to implement) and a starting test.
7a5628629 Minor changes.
c994c303e Update matfaust API doc.
72931da03 Secure Faust::RefManager::release() by raising a runtime_error when an unknown pointer is asked to be removed.
b501d5917 Optimize memory usage for slicing and normalization by using Faust::RefManager added by b758c6a3
3fb9018da Add a first implementation and a basic test for the Faust::RefManager which will be dedicated to a memory optimization of Faust::TransformHelper.
2e97329fb Make threshold and max_num_its parameters available for matfaust/pyfaust.Faust.norm(2).
29a9211ed Refactor the duplicated Faust::power_iteration() codes into one function for all Faust::LinearOperator hierarchy of classes (CPU).
ed7ed28b5 Add a benchmark script for FGFT algos accuracy and execution time (box plots).
71a68eb7e Document pyfaust/matfaust.FaustFactory.svdtj and fix bug in case of non-square matrix.
cd26d18e1 Optimize algorithms Faust::HierarchicalFactFGFT and faust::Palm4MSAFGFT.
0b23bbd52 Undo one condition added by ce4d08ad in Faust::prox_sp() because MatDense::getNonZeros() is not optimized with caching.
f787849ca Update Faust::spgemm (faust_linear_algebra) to support computation on adjoint/transconjugate matrices.
ba9dbed85 Add pyfaust.FaustFactory.svdtj().
59bc398a6 Add matfaust.FaustFactory.svdtj().
f960e4d88 Try to optimize GivensFGFTParallel::update_L() by using OpenMP to parallelize the product of each parallel Givens matrix with L but it was unfruitful.
3acd33ab8 Optimize Faust::GivensFGFTParallel::update_L().
a7917acef Optimize Faust::GivensFGFT::update_L().
97c9d8b3b Minor change: rely rather on Eigen to compute addition in Faust::Vect += operator.
45fc99b15 Fix Faust::Vect += operator overridding, it was adding the vector to itself instead of adding the two vectors ('this' and operator right hand argument vector) together into 'this'.
d0585ef8c Replace use of MatSparse by Vect for D in Faust::GivensFGFT* algorithms.
1197fa327 Catch exception raised in (pyfaust) FaustFact.hpp when Palm4MSA or Hierarchical PALM algos fail on an infinite lambda.
0a718bc5f Add faust_WHT.h(pp) to move wht factors computation from faust_TransformHelper (Refactoring).
4d0b73432 Refactor fft_factors() code from faust_TransformHelper.h(pp) to algorithm/factorization/faust_FFT.h(pp).
cc7be7a72 Minor change: properly rename Faust::HierarchicalFactFFT to HierarchicalFactFGFT, Palm4MSAFFT to Palm4MSAFGFT and their params classes too.
ff1b04b20 Minor change.
7f4d5e521 Fix bug in pyfaust FaustFactGivensFGFT.hpp, t == 1 wasn't triggering the Givens algorithm but the parallel Givens algorithm.
1cda12956 Fix matfaust for missing return of diagonal eigenvalues arg in fgft_palm (and mex function) and update a API doc.
05a635dfe Add the alias eigtj() for matfaust fgft_givens() and the verbosity argument to these functions.
f5d02e59d Add verbosity argument to pyfaust fgft_givens() and eigtj() functions.
6ea4b6d3f Write matfaust wrapper to cpp Faust::GivensFGFT and GivensFGFTParallel with unit tests.
0a9631627 Minor changes related to GivensFGFT.
375ae80a4 Minor fix in pyfaust.FaustFactory.eigtj() code example.
39d5bd8b8 Update license notice and code headers for pyfaust (GNU AFFERO to INRIA license).
9654664bb Write the matfaust wrapper for C++ Faust::HierarchicalFactFFT and add a unit test.
9de703baa Simplify/Secure the mexHierarchical_fact function by reviewing the translation of matlab params struct to C++ Faust::Params equivalent.
5524052e1 Add compute time measure and plot in FGFT benchmarks.
8baeb1f56 Minor change.
0a8babdca Add FGFT error benchmark scripts (python and matlab) and a graph generation script using GSP matlab toolbox.
1e3301118 Unhide fgft_givens() in pyfaust, rename eig_palm to fgft_palm and document fgft_palm() and FaustFactory.
11bb527c6 Update documentation and API for pyfaust FGFT functions.
9abc0d4ad Hide pyfaust.FaustFactory.fgft_givens() and rename trunc_jacobi() to eigtj() with a new doc.
94626147e Fix matfaust product M*F (with M a matrix and F a Faust).
21d21ff63 Add a verbosity attribute in Faust::GivensFGFT.
fd37d5eea Minor change.
6f985cf3c Implement pyfaust wrapper FaustFactory.fact_hierarchical_fgft() and add a unit test to validate equivalence to C++.
372734a7c Add a pyfaust trunc_jacobi() alias for fgft_givens() and document it.
324a79d74 Implement pyfaust.FaustFactory.fact_palm4msa_fgft() wrapper to Palm4MSAFFT (aka FGFT) and a unit test (in test_FaustPy.py) to validate equivalency to C++ core.
06dae6485 Implement/Document/Unit-test pyfaust wrapper function fgft_givens() binding C++ core algos GivensFGFT and GivensFGFTParallel.
311459efb Add a TransformHelper ctor signature to authorize Transform object argument to be moved internally (instead of being copied).
0f5c9f0d3 Add move Transform ctor and move affectation operator overload with a unit test to check it's working.
df3fda376 Document the GivensFGFTParallel C++ class and update doc for GivensFGFT parent class.
7668db28a Update doxygen doc for GivensFGFT.
2bc8a1001 Update/Fix a few elements to validate GivensFGFTParallel C++ impl.
e1118da7f Add GivensFGFTParallel and a test (not validated yet).
e1d95ef12 Minor change.
0a10a2b16 Add MatDense::nonzeros_indices() and a unit test.
bf8d666fa Add MatDense::lower_tri()/upper_tri() and a small unit test.
e8ebf4bf2 Add (from FAµST 1.03) the matlab script implementing parallel Givens FGFT and also a test script as a baseline for the C++ impl.
a3cf00eda Add new function GivensFGFT::compute_fourier() to return the fourier matrix approximate.
d79875124 Fix MatDense compilation error occurring on Visual Studio by renaming min() to min_coeff().
379970a47 Modify GivensFGFT::get_D() with opt. bool arg. to make possible to get ordered D (in ascendant order of eigenvalues along the diagonal).
fbbc815af Add reference matlab impl. and test scripts for Givens Diagonalization.
771cacf33 Update GivensFGFT test: correction of Fourier matrix approximate, displaying pivot choices (c++ vs matlab).
6cd3f219f Update GivensFGFT::update_err() to calculate the error through the same formula matlab script uses and with a period of 100 iterations.
de96b7d12 Complete GivensFGFT test and add test data test_GivensDiag_Lap_U_J.mat.
4e63fb743 Implement substeps GivensFGFT::update_fact(), update_L(), update_D() and update_err().
d79e85511 Fix missing return in Faust::Vect<FPP,Cpu>::min().
d0396b893 Add MatDense::get_cols(vector<int>) and MatDense::setOnes().
661a37f2f Add MatSparse::setCoeff().
25469778a Implement substeps GivensFGFT::max_L_into_C(), choose_pivot() and calc_theta().
aeff8ace6 Add MatDense::get_row() with a test.
4174df308 Add MatDense::rowwise_min(), rowwise_min(int* col_indices), MatDense::min() and a test.
df6f1f1ef Add Faust::Vect::min() and min(int* index) with a unit test.
9d7cb4fcb Update GivensFGFT by adding the main loop calling the substeps with a generic function pointer.
1eebc177e Add GivensFGFT's getters.
2922fbe36 Update GivensFGFT skeleton.
d9c915269 Add C++ skeletons for Givens FGFT diagonalization algo. and a test.
4cd71d691 Update the pyfaust doc for SPLINCOL constraint and add an example.
1bcaebec7 Update HierarchicalFactFFT, Palm4MSAFFT and their tests.
0b54ea709 Update Palm4MSA and HierarchicalFact python/matlab/C++ tests since 64bbc2f0 modified Palm4MSA when running on a complex matrix.
b10edd22f Handle Hermitian matrix product in gemm_core() function (faust_linear_algebra) and use it in Palm4MSA(FFT) algos.
3fcf374f8 Fix constraints related bugs in pyfaust.factparams.
529d3e78a Add a first implementation of HierarchicalFactFFT (along with ParamsFFT and a test which compiles).
829b864b4 Update several elements to finish the Palm4MSAFFT impl.
7f9c00e08 Implement Palm4MSAFFT::compute_grad_over_c(). Fully implement Palm4MSAFFT (in waiting for validation).
a58590e6a Implement Palm4MSAFFT::compute_grad_over_c().
372729a19 Add a skeleton for Palm4MSAFFT with the two methods to override from parent class Palm4MSA: compute_grad_over_c() and compute_lambda().
a7fe01d44 Add MatDense::eye() static function.
c45e38623 Add a skeleton for ParamsPalmFFT.
2a862d9ef Minor fix.
a80857427 Minor change.
c9497455d Add a small note about Anaconda env. in doc.
13344ec70 Minor changes.
073c4dac1 Minor fix in matfaust.faust_fact().
0d77a4990 Set tag matlab to gitlab pages job.
cf32849c7 Add a guide doc for installing pyfaust in python virtual environments.
9b05cf9ba Set the cython compiler directives with language_level attribute to avoid error with python 2.7.13.
3b701ea0d New gitlab job tags matlab and tux_packager.
ec52e5ce1 Delete test_wrapper stage, jobs moved to test stage to increase speed of gitlab ci pipelines.
439032f9f Change macOS postinst. script (pkg) to open the doc mainpage instead of README.html like it's done for windows installer. Add a linux postinst script (rpm/deb) to display the path doc.
243dd6e9b Fix error on doxydoc generation for pyfaust on Windows and macOS.
59dad04eb Add a Windows sub-section in installation section of the quick start guide.
2969c461d Update constraint.png table, add its odt origin file and add the link into matfaust.factparams.ConstraintName API doc.
66293eefa Fix missing @staticmethod decorator for several functions in pyfaust.demo (it's mandatory for python 2.7).
d8ba8c1a1 Document a little more pyfaust/matfaust.demo.runall().
07f17f300 Fix memory leaks in TransformHelper::eval_sliced_Transform() and eval_sliced_Transform().
ddbe6c764 Add a gitlab job for generating a pip package on Windows 10.
808ae0a6c Optimize eval_slice/fancy_idx_Transform() by removing in-heap arrays and fix by the way a bug introduced/revealed by 66166131.
cdf824f6a Update py wrapper cmake script and setup.py.in to compile the wrapper with VisualStudio (instead of MinGW).
657c6a754 Adjust cpp code because of Visual Studio.
2033b428b Minor fix.
2edfb4f64 Minor changes/fixes.
f1736f230 Add zlib and hdf5 licenses.
662804310 Fix a bug in pyfaust.demo due to deprecation in matplotlib.
7bce0a087 Correct error on CI_COMMIT_TAG variable used for windows pip pkg generation.
0e2cc8d02 Use matio static lib when compiling/linking for generation of macOS/linux wheel pip packages.
b09a43fff Strip and set optimization -O2 for py2,3 shared libs.
466037aec Update C++ license header: copyright year and authors.
84dd1f586 Add function pyfaust/matfaust.license() displaying FAµST license ref. and update copyright time etc.
51519b3a9 Automatize with cmake the insertion of license header in each *.py of pyfaust wrapper.
e29869845 Complete pyfaust.demo API doc and correct few things: function names, arguments by default...
bc53a014b Fix ctest_python gilab job failing on setup.py because of empty cpack version variable, undo workaround e1209bc9.
92cbad195 Add pyfaust.demo.runall(), pyfaust.demo.allfigs().
72629da9e Update doc output folder to always use the name last-doc (gitlab pages job).
4069ff64f Update pyfaust/matfaust.FaustFactory.fact_palm4msa() to optionally return the lambda scalar.
22f98f319 Call pyfaust.ConstraintGeneric.project() parent method in child class methods (for argument M checking).
a916c98da Update pyfaust.factparams API doc, in particular for the constraints/prox. ops.
bd5f048ea Include license files (Faust and matio) in pip packages and specify the type of Faust license in pip manifest.
0397ca812 Fix Faust.normalize() for the case: normalizing rows with 1-norm or inf-norm.
813df9385 Add utf8 encoding header in demo.py for handling non-ascii characters in python 2.7.
45d5e260b Fix a segfault bug located in c++ Faust::MatSparse::randMat() occurring on Faust addition py. unit test (because of randFaust()).
fdf3f5873 Update API doc by fulfilling all brief descriptions of matfaust/pyfaust modules and classes.
cf0ab3a73 Add matfaust.factparams.ConstraintList in the same idea than previous commit did for pyfaust.
bc82167fd Introduce class pyfaust.factparams.ConstraintList in the ongoing effort to simplify facto. algorithm parametrization.
8443a17ed Fix last commit changes in factparams.py for py2.7 and set the pyfaust/matfaust.ConstraintGeneric class abstract.
d61c7b1cb Update pyfaust for handling correctly the simplified parametrization form ( ['rectmat', j, k, s], {'rho':.4, 'P':.7 }).
892e81c66 Add gitlab ci jobs for windows pip-wheel pkg generation and a custom setup.py.
4cf17b836 Update faust.nsi and pyfaust.demo to retrieve demo data folder in different situations: install from nsis package, install from pip package on windows.
38ff7991a Update setup.py to embed the demo data mat files in pyfaust wheel packages.
c242598ef Add pyfaust wheel/egg release package jobs and refactor revision pkg jobs.
ee260469d Update pyfaust API doc (fact_hierarchical()).
970a3c845 Update matfaust API doc (fact_hierarchical()) and add ParamsHierarchicalFactSquareMat.m and ParamsHierarchicalFactRectMat.m to doxydoc parsing file list.
a08c510fe Add ci jobs for pyfaust egg/wheel revision packages generation.
a97e62c2c Allow temporarly the failure of ctest_python job without breaking the CI pipeline.
989eb180a Catch exception when Faust.save() fails in dynamic library to avoid python/matlab script to crash.
744c36ea7 Fix of minor bug introduced in pyfaust.FaustFactory.fact_hierarchical() by a514bcb5 or 68796c85.
3a8a43dfc Update API doc for matfaust.FaustFactory.fact_hierarchical().
9547f51e5 Add pyfaust/matfaust.faust_fact() as a shorthand for FaustFactory.fact_hierarchical().
4cdb3e057 Minor change.
d8ddeaa2a Return to caller the parameters used in FaustFactory.fact_hierarchical().
5472bc28b Prepare setup.py to generate eggs and wheels binary packages.
ab78d4dbe Bind into pyfaust the prox operators from cpp core.
a74ae436a Bind into matfaust the prox operators from cpp core.
903047b2e Minor change.
667dd0bfa Allow to get back lambda from (matfaust/pyfaust) FaustFactory.fact_hierarchical().
b1530d726 Add pyfaust/matfaust.factparams.ParamsFactFactory to build in transparency the simplified parameters (ParamsHierarchicalFactSquareMat/RectMat).
d8cb2db0b Impl. MEG/Rectangular matrix factorization simplified parameters.
6fd439a4f Impl. hadamard hierarchical factorization simplified auto-parameters.
6bb158a59 Do for pyfaust the same as the previous commit (f10ca9b3) did for matfaust.
6d3d5f65d Modify matfaust.factparams.ParamsFact and sub-classes to decrease the number of mandatory arguments.
688c6b34b Change expire duration for revision packages: from 6 months to 1 week.
818c03a6e Update pyfaust according to what the previous commit (78e526cd) did for matfaust and add function FactParams.is_mat_consistent().
c8b4bc5c8 Auto-infer matrix dimension sizes from constraints in matfaust.factparams.ParamsHierarchicalFact and secure the type of p argument passed to FaustFactory.fact_hierarchical() and FaustFactory.fact_palm4msa().
959366739 Add alt. signature to Constraint* constructors to ligthen instantiation code (pyfaut and matfaust).
413d61b7c Fix matlab fft demo: re-add add tool scripts erroneously deleted by eee2ad44.
034836b0d Minor change.
96f20abe2 Filter out from API doc the signature Faust(varargin).
6c4ffc69b Add uncomplete doc for both pyfaust and matfaust Faust.normalize().
c3076ec4d Extend pyfaust.Faust.normalize() and add unit tests.
d6179842c Secure Faust.normalize(): avoid trying normalize zero vectors (kept to zero).
c63541fff Add a wide covering unit test for matfaust.Faust.normalize().
83da89f96 Extend matfaust.Faust.normalize() to other available norms than 2-norm and for row-based normalization.
d8f3b90c7 Add figure plotting of bsl demo distance to sources (in pyfaust).
7bd89fbb0 Add figure plotting of bsl demo time comparison (in pyfaust).
8dc6b370a Add figure plotting of bsl demo speedup (in pyfaust).
464c0b790 Port BSL matlab demo to python into pyfaust.demo.bsl class.
c8308d493 Add pyfaust/matfaust.Faust.normalize() (currently normalizing only with the 2-norm).
8a43cd211 Extend pyfaust/matfaust.Faust.get_factor() to return a Faust composed of a sub-sequence of another Faust factors.
51a4403d2 Fix minor bugs in pyfaust.demo.quickstart.run().
f0594586b Port the Greedy OMP Cholesky algorithm from Matlab to Python in module pyfaust.tools.
00cfde5da Enhance and secure FaustFactory.eye(), add doc.
397ba8464 Update pyfaust/matfaust API doc, in particular for Faust addition and substraction.
36957e8d9 Disable Faust constructor auto-opt. of factors by conversion to sparse from dense or inverse.
3da00f073 Add the function pyfaust/matfaust.Faust.isFaust().
493f1f7e5 Add the function pyfaust/matfaust.version().
e7870cfde Minor change.
6d97cd7a9 Add new function FaustFactory.eye() and modify/add/fix several things about concatenation, addition, substraction and real-complex conversion of Fausts.
8d0bfec80 Implement in pyfaust addition and substraction between Fausts or Faust and scalar.
4df8cd0db Implement in matfaust addition and substraction between Fausts or Faust and scalar. Add also unit tests.
8da6dd57c Impl. for pyfaust the division of a Faust by a constant, add also unit test and doxydoc.
9d0d57695 Impl. for matfaust the division of a Faust by a constant, add also unit test and doxydoc.
74c5f3686 Impl. for pyfaust the multiplication of a real Faust by a complex Faust and add a unit test.
87cd5fb9f Impl. for matfaust the multiplication of a real Faust by a complex Faust and add unit test.
b5c87e8f4 Impl. for matfaust the mul. of a real Faust by a complex scalar, add related unit test along with Faust.complex().
e597a1867 Impl. mul. of a real Faust by a complex scalar in pyfaust and complete mul. unit test.
bed5f630f Minor change in pyfaust unit tests.
64784b37f Fix bug raised by issue #66: mex code was inconsistent in the copy of matlab param struct to C++ world, leading to memory errors when accessing fields.
cb487b605 Add pyfaust.Faust.pinv().
b438ce6eb Add documented matfaust.Faust.mldivide() and pinv() functions.
f07e1ded6 Handle negative indices when slicing in pyfaust, add related unit tests.
ee0841dbd Update API doc and fix in matfaust.Faust the horzcat() and vertcat() functions (varargin wasn't set).
d10ec961c Minor change in pyfaust unit tests (same as 31fc9f9d).
0f0569e4e Block explicitely pyfaust.Faust fancy indexing when used in the both dimensions.
7ec7d55a5 Forbid slice step == 0 in pyfaust like numpy.
60b9005f4 Add pyfaust unit tests for 322c8533 (slicing with arbitrary steps).
5c6ecf881 Handle negative and >=1 slice steps in pyfaust and do the same as what 8db762bf did for matfaust.
2995b705a Minor changes in pyfaust slicing unit tests.
7d9ec3834 Block in matfaust the kind of Faust indexing that create empty Faust and fix by the way bug of issue #30.
b97bbaf0a Add matfaust.Faust unit tests for indexing by vectors and slicing with negative steps, fix by the way a bug.
992ba7841 Re-enable the slicing test using negative step thanks to e6faabc8.
1fc6e6d6f Add indexing by vector in matfaust.Faust.subsref() binding it to C++ core impl.
6966918a8 Simplify matfaust.Faust.subsref(): less lines same results with a loop (one ite. per dim.).
e3e8ac6d5 Add unit tests for pyfaust.__getitem__()/fancy indexing and fix a bug occurring for a 1-factor Faust fancy indexing.
a127751d1 Start implementing fancy indexing for pyfaust.Faust.__getitem__().
0bf0bd61f Add matfaust.Faust.imagesc() and pyfaust.Faust.imshow().
01ee148e6 Rename (py/mat)faust.demo.hadamardfact to (py/mat)faust.demo.hadamard.
1a5d7ce0f Rename in FaustFactory, hadamard() to wht(), fourier() to dft() (both for pyfaust and matfaust).
a02d45e7e Transform matfaust.demo sub-namespaces into classes to be consistent with pyfaust organization.
ffb56c677 Add the plotting part of the norm hadamard pyfaust.demo.
0e0cc6b80 Port the computation part of matfaust.demo.hadamardfact.norm_hadamard() to pyfaust.demo.hadamardfact.
9857958a8 Fix a bug in matfaust.FaustFactory.fact_*() functions: the parameter is_update_way_R2L was ignored.
2a4e557b6 Update API doc.
91db967f3 Port matfaust.demo.speed_up_hadamard to pyfaust.demo.hadamardfact.
3371a7ade Disable unit test assuming an empty faust is authorized (because it's not since 097e9e43).
61dd93ce9 Update pyfaust/matfaust.Faust constructors to handle Faust(A) where A is a matrix/array and to forbid empty Faust creation.
8f5a9daf2 Complete pyfaust.demo.hadamard_fact with computation time gathering, result save and plotting/saving figure.
4e3ac8f19 Start the python port of demo_fact_hadamard.m into pyfaust.demo.hadamardfact class.
dea257d4e Fix a small bug in FaustFact.hpp: the switch case was missing SPLINCOL constraint type.
d0c51d28f Fix minor bug #67.
309b26592 Group factorization parameter classes into matfaust.factparams namespace.
80a4b818c Fix a bug in cmake ctest cmd for launching quickstart demo.
62ca98182 Merge pyfaust.params and pyfaust.constraints into one sub-module pyfaust.factparams in order to simplify pkg organization.
0ee027b92 Integrate python quickstart script into pyfaust.demo module.
b772ea996 Generate doxygen doc for pyfaust.constraints, pyfaust.params and pyfaust.demo and add a script to avoid fake namespaces generation.
078aa6338 Simplify pyfaust.demo old sub-package to a module with fft, runtimecmp old sub-modules being now classes.
24c7377de Add pyfaust demo scripts (ported from matlab: fft, runtimecmp).
efa484d8d Minor fix.
0629720b4 Add in pyfaust and matfaust.FaustFactory.rand() the possibility to set the density per row or per column of each factor.
b657e30d0 Add another signature randMat() for both Faust::MatDense and Faust::MatSparse in order to random-generate with a density per-row or per-column approach rather than a global density approach for the whole matrix.
c4bbdb8aa (Unit)test faustpy.Faust.concatenate() for more configs.
234693292 Change the boolean is_real argument of FaustFactory.rand() to str 'complex'/'real' (for both pyfaust and matfaust).
2294eb633 Reorganize the pyfaust module into a real package with submodules.
c7adcadd2 Minor change.
5791b17d2 Avoid creation in demo scripts of output or Figures folders if exist already.
fe228306b Minor change.
8f08db70d Remove totally misc/demo folder with its cmake scripts since all the matlab demos and data are handled by wrapper/matlab/CMakeLists.txt.
5381d615b Fix memory leak in Faust::TransformHelper::randFaust() (issue #63).
a10e6a9e7 Move misc/demo/run_all_demo.m to +matfaust/+demo/runall.m and enable it for doxydoc parsing.
f96c6a533 Integrate runtime cmp matlab demo scripts into matfaust.demo namespace.
890a62d51 Integrate bsl matlab demo scripts into matfaust.demo namespace.
e5d58eec7 Integrate fft matlab demo scripts into matfaust.demo namespace.
46f207451 Automatize/simplify the listing of *.m files in +matfaust and their copying/parsing for matlab inline doc.
59dd549a2 Implement in matfaust.cat() the recursive concatenation of n Fausts/matrices and update the API doc.
f8934a6df Implement in pyfaust.concatenate() the recursive concatenation of n Fausts/matrices.
a089fa358 Enhance speed of continuous integration by removing dmg generation (macOS) and passing cmake option BUILD_TESTING=OFF for all packages.
06511ff6d Integrate quick start matlab demo scripts into matfaust.demo namespace.
63e408e71 Minor change.
1440351e1 Fixing issue about not visible brief descs of vertcat(), horzcat() (raised by issue #50).
4524fc931 Implement the sparse/full-matrix-to-Faust concatenation with on the fly matrix-to-Faust conversion.
66e900762 Disable display of Faust small factors by adding an optional-default-to-false argument to to_string() and Display() functions.
73d2fb955 Complete the hadamard fact. demos integration into +matfaust by changing filepath for output figures, creating the needed parent directory in run_all_demo.m and removing the original scripts in misc/demo/Hadamard_factorization.
ba835d3f9 Fix a bug in complex case of concatenation in matfaust.Faust.horzcat() and vertcat().
c9d4188de Minor change.
1d29dfec9 Add sub-namespace +matfaust/+demo/+hadamardfact with the demo scripts associated and integrate them to the doxydoc.
98d960aef Fix a bug introduced by 68648185 into Faust::TransformHelper::fourierFaust().
8a7cbfeb1 Add to Windows build the conversion from doxy. doc to matlab inline doc.
ffd64df4d Convert doxy. doc. to matlab inline doc for all classes of matfaust namespace.
e60cbc51a Minor change in matlab inline doc generator.
19a43a67f Add code doc. for pyfaust.concatenate().
6d00170ba Minor change.
e86091f87 Secure the constructor matfaust.Faust(handle,isReal) to avoid inconsistent situations where the handle points to a real or complex Faust::TransformHelper while isReal is resp. false or true.
65e2e0a69 Add code doc. for matfaust.Faust.cat()/horzcat()/vertcat().
541447c7e Remove a line about scale arg. in code doc. Should have been removed by 3b3f82e5.
27c2e5822 Manage out of memory errors for FaustFactory.fourier()/hadamard() and limit order to 2^31.
8e5075630 Add a unit test for pyfaust.Faust.concatenate().
67c6974af Add a unit test for matfaust.Faust.cat/vertcat/horzcat().
a64f11a69 Implement concatenation of Fausts in C++ and bind the wrappers py/matfaust to it.
464986511 Add new static function Faust::MatSparse::eye().
34caf175b Make the cmake option BUILD_TESTING useful by ignoring test compilation if set to ON.
124204c04 Modify slicing part of old test script for pyfaust because of d6d75e96.
a971c28b5 Add unit tests for Faust mul. by a real scalar (pyfaust and matfaust).
4f28eb9da Add unit tests for pyfaust.Faust.size and equiv. matfaust.Faust.numel.
79dfc22d5 Fix a bug: pyfaust.Faust.__getitem__() returns a Faust when indexing an element F[i,j].
c408f913f Fix windows package missing demo. mat files.
9bc2e64fd Handle mul. of Faust by a cplx matrix in pyfaust and add unit tests.
c70d22418 Update demo scripts to conform to last changes in API.
2d2297405 Overload in matfaust.Faust the functions reshape, cat, horzcat, vertcat only for blocking their utilization clearly.
964f49708 Implement inf-norm for pyfaust/matfaust.Faust and validate with unit tests.
aa3d3c7f9 Slightly modify unit test for matfaust.FaustFactory.fourier().
244bdbab7 Fix a bug and add related unit tests about slicing a Faust and then slicing again the sliced-Faust.
363e66a15 Update the API doc.
b01a39abe Enhance FaustCoreCpp initialization by avoiding to create an empty/useless Faust::TransformHelper() into the default constructor.
338f2fc75 Optimize Hadamard and Fourier Faust::TransformHelper initializations (avoiding to copy the factor matrices created, directly using them).
748bf0226 Hide scale argument in constructors matfaust/pyfaust.Faust() and display a deprecated warning if used.
a0f7bf439 Implement the commutativity in the mul. of a Faust by a scalar in matfaust.
bb0428fe0 Update quick start README and API doc.
ac1f3d009 Bind pyfaust to C++ impl. of Fourier Faust and add a py unit test for it.
518548219 Implement Cooley-Tukey in C++ and bind it into matfaust.FaustFactory.fourier(). Add a related unit test in FaustFactoryTest.m.
3ad43f824 Fix a bug in matfaust.Faust.get_factor() happening when the Faust is conjugate(-transpose).
2a4207e2f Add a unit test for matfaust.FaustFactory.hadamard() into FaustFactoryTest.
6b72c4610 Bind the C++ impl. of Hadamard-Faust into matfaust.FaustFactory.hadamard().
22b99e8a5 Add a unit test for pyfaust.FaustFactory.hadamard().
507f4700f Implement Hadamard-Faust in C++ and bind it into pyfaust.
4ca0b5701 Add a small unit test for pyfaust slicing.
d3d3cc211 Simplify the C++ impl. of Faust slicing and fix a mem. leak.
5eb914165 Implement multiplication by a scalar in pyfaust.Faust.__mul__().
612a88d6c Implement multiplication by a scalar in matfaust.Faust.mtimes.
4c160adf1 Fix a bug in Faust::Transform constructor: the first factor must be cloned when a lambda scalar is passed even if cloning_fact is false.
60edffa48 Update the doxygen doc's main page and the quick guide.
3d91797dc Rewrite Faust.get_factor() (for both pyfaust and matfaust) to firstly not altering the storage organization of the matrix copy of the factor (sparse or full) and secondly to optimize the function (fewer copies, etc.).
a870fb67f Minor change.
03dae3fae Minor change.
80b0cbf15 Update the main doxydoc page and the quick guide README.
e0057a05d Fix a bug in matlab inline doc generator script.
335589fcf Erase build directory if exists before building for Windows installer generation.
3a99953b5 Specify automatically the exact python 3 major-minor version used in README doxygen/html doc.
3164e6a93 Add the README page (quickstart guide) in the top menu of doxy. mainpage ("Related pages" menu item) and integrate it more consistently in the web page layout.
7c0698b80 Make Palm4MSA and HierarchicalFact. algos compatible with complex matrices (C++, Matlab, Python).
9306b220e Update doc.
b5c89cb4b Add a new way to find python2 in cmake script.
263528aa7 Minor change.
b94130ffa Review slicing in pyfaust.Faust.__getitem__() and matfaust.Faust.subsref().
6e110ddd0 Change the default norm computed for a pyfaust.Faust to Frobenius norm.
18a1d95b3 Fix bug in mex cpp code for matfaust.Faust.display(): Windows version prints nothing in Matlab terminal.