Version 3.39.24:

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

Version 3.39.23:

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

Version 3.39.22:

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

Version 3.39.21:

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

Version 3.39.20:

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

Version 3.39.19:

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

Version 3.39.18:

3093741f Fix python revision pkg version that is not compliant with new versions of setuptools (PEP440).
62d274d1 Ignore temporarily cython warning about IF-ELSE (issue #326).
e1b84251 Move to py3.12 (py3.11 maintained, py3.10 dropped).
7a6a76f9 Move misc data archive to Zenodo.
50a55736 Simplify pyfaust.Faust.average and complete unit test for avg on both axes.
a27d4184 Fix a bug in mul of CPU Fausts in which right op is sliced.
437597f6 Add unit test for pyfaust.Faust.imshow.
b4d74732 Add unit tests for pyfaust.Faust.__pos__/__neg__.
db7aca6e Reformat pyfaust.Faust.pruneout and complete unit test.
98d22565 Ignore non-std broadcasting array/Faust to a Faust (numpy compliance).
db1e5475 Add minor fixes in pyfaust.Faust.__add__ + complement of unit test.
9f9d2886 Add a complementary unit test for pyfaust.poly.invm_multiply and reformat its docstring.
211249d2 Complete pyfaust.poly.expm_multiply unit test.
63516272 Refactor/secure/document/test concatenation private functions in pyfaust.poly.
12f81cc6 Review pyfaust.factparams.ParamsPalm4MSAFGFT._set_init_D and add its unit test.
3bde5773 Fix ParamsFact.factor_format_int2str/str2int error handling + add corresponding unit tests.
a39b7fff Add a unit test for ConstraintName.str2name_int, name_int2str.
251d0961 Test also UpdateCholeskySparse and take it into account in coverage calculation.
3ccde7e7 Extend TestPoly._test_poly to cases where L is a Faust.
8be6abe9 Apply fixes in pyfaust.poly.
4110f65e Add a unit test for pyfaust.faust_logo and pyfaust.logo.draw_faust.
d6183f47 Add a unit test for pyfaust.poly.poly python impl.
f21bc746 Factor test_basis and test_basis_py into verif_basis.
ee4c05a1 Add a test for poly.basis(impl=py).

Version 3.39.17:

d649a9dd Add ctest logs as gitlab artifacts for ctest_nightly* jobs.
fcef8472 Enhance resolution of pypi logo.
28d5c383 Fix loss of pyfaust coverage info.

Version 3.39.16:

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

Version 3.39.15:

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

Version 3.39.14:

a2832bbc Update pypi pyfaust desc with new logo and link to coverage report.
9a182a27 Run pyfaust.datadl as entry point for a better coverage rate.
1e5633f3 Suggest to add tests in contributing doc.
9d8b772f Update to gpu_mod@163439a.
2300b927 Mention Inria portal for external accounts.

Version 3.39.13:

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

Version 3.39.12:

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

Version 3.39.11:

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

Version 3.39.10:

b07920c0 Enforce clang 9 in macos ctest nightly ci job.
6d812e7f Fix possible inconsitent python version classifier in Windows wheel package.
3a7d8413 Re-enable macOS nightly ctest with multithreading.
4894b7f0 Upgrade version of clang used to build macOS .pkg (v8 to v9).
5d9bdb0b Fix generation of python version classifier (wrong cmake variable used).
ac4aa019 Minor changes in python finding cmake scripts.
15869b6b Increase again timeout limit of several tests after VM trespassing.
a1556bfe Prevent MEG factorization heavy tests to run in parallel with others + increase parallel level of ctest for windows nightly tests.
cdaa2200 Widen matfaustcov badge.
c514e0d1 Lower the number of ctest test jobs for Windows VMs which are quicly overwhelmed (with nightly slow tests).
ebfaa023 Fix cmake script: set called instead of set_tests_properties + double timeout for the test + fix typos.
31d04d8f Simplify/Speed up MATLAB_DEMO_INSTALL test.
e783c3b0 Fix two bugs in hadamard speedup demo: waitbar using if no jvm + too heavy calculations.
66651f53 Update hadamard demo to new constraint API.
a528982e Change directory to fix possible permission error in MATLAB_DEMO_BUILD test.
ddb840f6 Increase tol on lambda error for MATLAB_FACT_MEG_MEX.
4b7a44ba Increase test timeout.
0bebb8a1 Enable multithreading (OpenMP) in ctest_nightly_win10 to fix faust_transform_omp tests and speed up the tests.
bddf5939 Increase tol error on palm4msa lambda to pass two tests both on Windows and Linux.
980aada6 Update pyfaust/matfaust license.
b47e770c Fix a segfault in EigTJParallelSparse C++ test.
3d23639a Increase error tol in multiple tests because of false positives on Windows.
f20037c5 Specify which config to use for ctest (fix ctest_nightly_win10).
435e8738 Move MatType enum from default namespace to Faust namespace.
f636e086 Adjust cpp tests building for Win VS.
420cf76a Adjust VS version 2019 and remove VS non-compatible flag for // building.
c464658f Fix Windows Visual Studio that refuses to use for and simd OpenMP directive together.
a6323f9c Use C++ string and vector instead of C char* and array.
62de472a Move M_PI preproc const from EigTJ to EigTJGen (other subclasses need it).
2c0c94b8 Remove useless old CMakeLists.txt archive.
20361bf2 Remove deprecated pdf guide and mention deprecation in tex source.
d05f54cc Fix indicated Python minor version in setup.py and anaconda guide.
e1a0b8b9 Delete outdated dev todolist.
fb568cc0 Add a bit of GPU code in matfaust test coverage calculation.
d34b0133 Add new sections + review of tests/CI doc.
27f4b5b4 Add mention of proxy fork + other minor changes.
e949e9a3 Get back ctest* ci jobs to failure of pipeline in case of configure/build error.

Version 3.39.9:

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

Version 3.39.8:

859f17f7 Fix duplicates in pyfaust doxygen doc.
cbfa2397 No parallel building for ctest_matlab.
d5c1ce18 Update VS Studio version in CDash config (fix for ctest_nightly).
f39fa0b3 Add sanity checks on report files of ctest* ci jobs + other checkings.
c62a6ac6 Fix minor bugs in GPU tests + update to gpu_mod@4408485.
4ef36643 Enable GPU C++ tests if the gitlab-runner has the cuda tag + refactor gpu_mod building in a specific script + parallel building.
52f6d6cb Add matfaust.Faust.insert/replace.
e28e98ba Minor changes.
11564806 Replace gcovr invocation in ctest ci job by an extern script.
45dab9b3 Add pyfaust.Faust.insert/replace.
75493775 Fix pkg_macos.sh undefined variable MACOS_PKG_STORE_PATH.
17a591b4 Set strict mode in script: not defined variable, nonzero exit/pipeline code raise an error.
67506834 Limit gcov flags to ctest ci job (C++ tests).
70a95dde Minor change.
84d93bbb Fix exp code example in pyfaust.fact.hierarchical_constends.
4010972c Minor change.
eaa37336 Add C++ test coverage badge in the README.
565a4455 Fix cpp test report path issue.
93ac249d Minor corrections in code doc.
cc2025b2 Fix coverage cmd and add the output dir to the job's artifacts + increase ctest timeout.
27b1e853 Add C++ ctest coverage with gcovr in ctest ci job.
98725a4a Fix GPU Matdense mul, multiplyLeft(MatSparse) tests and update to gpu_mod@47ad960.

Version 3.39.6:

905a5f67 Replace static changelog file by a script generator triggered in pages ci job.
f5b3cee3 Fix GPU batched SVD test in case of complex matrix.
0a81d1bc Fix GPU2 MatButterfly/MatPerm tests in case of double scalar type.
28b24fbb Fix a memory leak in Transform<FPP,GPU2>::tocpu.
36d00858 Fix MatSparse<FPP, GPU2>::tocpu(MatSparse<FPP, Cpu>&) in case of zero MatSparse.
cdd4f1ee Enhance MatDense<FPP, Cpu>::operator=(MatSparse&) in case of zero MatSparse.
deccea43 Fix unit tests of Vect<complex<double>, GPU2>.
03c046a3 Fix BSR block sizes in test_dynprog_mul_gpu.cpp.in.
a0063c3f Fix GPU2 MatGeneric::to_string wrong use of Cpu parameter for MatBSR.
b9ffc73e Update to gpu_mod@ef3d005.
62b98e15 Correct Vect::equality prototype, the precision is always real.
3bfcccec Add unit tests Vect<FPP, GPU2>.
7b9ae809 Fix function init_params_from_matiofile not found.
d98517f3 Update to gpu_mod@24ba075.
da72b2f4 Add commit sha in cdash build name.
c7156e7e Ignore skipped status for pipeline badge and remove badges in anaconda pkg desc.
0e539cee Minor fixes in READMEs titles + automatic TOCs.

Version 3.39.5:

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

Version 3.39.4:

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

Version 3.39.3:

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

Version 3.39.2:

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

Version 3.39.1:

5c86db48 Set pyfaust version in sphinx doc.

Version 3.39.0:

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

Version 3.38.23:

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

Version 3.38.22:

1b8728a4 Add mul_perm option in matfaust/pyfaust.fact.butterfly.
195fe71d Replace py3.9 by py3.10 in package generations.
004b23f8 Update copyright years.

Version 3.38.20:


Version 3.38.21:

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

Version 3.38.19:

62c9c071 Fix pyfaust_test_code_coverage ci job that now needs to download data before proceeding.
966ddaa9 Cmake BUILD_TESTING defaultly OFF but ON in CDash/ctest config.
a1202218 Add a script to download misc/data instead of relying on local data.
6139886c Fix a bug in pyfaust.Faust.__getitem__().
77699a6a Complete README part about C++ tests.
1f1a7aa2 Renable nighly ctest ci job for Linux and Windows.
3d8cbc59 Update svdtj doc about experimental status and order of singular values.
6b330add Disable by default the benchmark part of MatBSR tests because ctest runs them in parallel so the times are biased on VMs.
e21e26cf Use the proper error and increase tol in svdtj tests.
2ac09cdb Update SVDTJ on stopping criteria.
fe79d902 Increase test timeout to fix MatBSR tests.
b311e9a6 Set different error tolerances for each scalar types in MatBSR tests.
c0413055 Fix missing cases for typeA/B == 'H' in gemm_core.
40d20acb Fix return ref to local value in BSRMat::operator().
1a00262e Fix faust_butterfly/perm_mat tests which were not compatible with real matrices because of FFT.
0b1e8d03 Fix config .mat filepath error.
8e982f99 Fix buffer overflow in MatSparse(MatDiag&) ctor.
1f72d16e Fix failed EigtJ test on MatSparse Laplacian because of default enable_large_Faust == false.
4dbfe553 Fix faust_multiplication ctest add without needed arguments and remove its complex versions.
c260f72e Set fixed seed.
03367de5 Add missing cpp tests to ctest.
800ae2af Enhance slightly error tol on ParamsPalm4msaWHT example.
6aac71c1 Document in FAQ the SafetyError warning when installing pyfaust with conda.
703c721c Review/correct/update FAQ entries.
13fbe2b9 Ease use of faust data downloader script by creating the output directory if it doesn't exist.

Version 3.38.18:

638ab14c Update/Correct system pkg installation guide.
a3fb0d1b 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:

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

Version 3.38.16:

dbe56ccd Add a specific tag for pip pkg ci jobs on macos because of _clock_gettime missing symbol on older macOS (10.9).
0df0b3e0 Add separate SZIP static lib path (to fix macos new link issue).
40a87f00 Parallelize more make calls with 4 or 8 jobs.
e14c9b67 Remove recursive strategy for submodule in macos jobs (don't need gpu_mod).
dcd0545b Fix errors in numpy min/max uses with numpy version 1.25.
4d74feee Fix paths for only:changes rule.
8a8f6d64 Fix faust_transform_omp_mul test (OMP/C++ threads Faust-matrix mul. parallel reduction).
21f77fd8 Replace clang 8 by clang 9 on macos gitlab-runners + correct typo into build dir of ctest_matlab.
9d81f9b1 Avoid Xcode's clang to be confused with gcc in matlab/mex matching test.
209a3622 Update doc for cpp tests/ci.
2a4498fe Update the script/guide for Mac OS X VM install.
2590093c Fix return ref to local variable in MatButterfly/MatPerm.
7c5750ab Increase error tol in EigTJ test.
4e5d2fa3 Fix EigTJComplexSparse test that was failing because of enable_large_Faust defaultly to false.
d5429634 Skip doctest of matfaust hierachial fact of MEG matrix (too long).
fa73e2d7 Fix build dir pattern.
ab8948f9 Replace git command by only-changes gitlab ci rules.
9bd8d51f Minor change (std prefix).
9599a692 Remove mention to py2.7 and adjust note about pygsp linking the notebook.
adb0f494 Exclude matfaust_test_code_coverage ci job of scheduled pipelines.
58c0e3ae Increase tolerance of test in float case.
7d9b9475 Add junit test report to ctest (cpp tests) ci job and refactor junit2html generation for all ctest_* jobs.
b9e18973 Add a note about matfaust test coverage and GPU code tests.
72467501 Add a hint about matlab savepath in install guide.
39b17330 Remove linux pkg download from matfaust_test_code_coverage ci job.
9969a123 Add matfaust test coverage ci job (using MOCov).
ac709a52 Filter <p/> html tag from matfaust inline doc blocks.

Version 3.38.15:

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

Version 3.38.14:

f8cc25d0 Add a README about ci tests and pkg release (to complete).
3b7ad5f6 Remove old link to lazylinop notebook.
2a2f467b Fix matfaust doctest loop (exit on first test).
1988c340 Minor change in unit tests: complex case and tol in cmp.
59a17687 Add BitReversalPermutation.m to install dir/package, it's needed for fact.butterfly.
269093f8 Fix doctest bug of experimental m-files by removing experimental tags/comments if EXPERIMENTAL_PKG=ON.
8403c7f5 Fix butterfly optimization segfault on already optimized Faust.
98539b6c Review/doctest matfaust.demo and add it to doctest ci job.
7ac304f2 Add matfaust.fact and .tools to doctest ci job.
9b06ea80 Review/doctest matfaust.tools.
5f05531e Review/doctest matfaust.fact.
68867a5f Fix missing std namespace.
24344391 Fix tolerance problem in matlab FaustTest.testcat.
8196441a Review/doctest matfaust.fact.butterfly and add it to doctest ci job.
c9d91413 Review/doctest matfaust.factparams and add it to doctest ci job.
cc73164f Review/doctest matfaust.poly and add it to doctest ci job.

Version 3.38.13:

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

Version 3.38.12:

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

Version 3.38.11:

5c09c76f Enlarge a little bit the error tolerance for matlab testFourier.
c922719b Add pyfaust.is_gpu_mod_working as in matfaust.
10354d4d Add matfaust.is_gpu_mod_working + Fix matfaust.device/clone doctest when CUDA is installed but no device is available (typically happening on VM).
c58b89c7 Fix missing function matfaust.rand_bsr after doxygen docstring filtering.
9ca97bfe Fix doc examples of matfaust.Faust.power_iteration/mtimes.
73a48f14 Add note in Faust/concatenation doc about use of LazyLinearOp to encapsulate a Faust.
f799dc86 Fix CPack .deb/.rpm generation error without failing the gitlab pipeline.
3d035a25 Delete cmake script part for installing project embedded matio 1.5.7 (it was deleted long time ago).
2dd1795e Delete object files asap in pkg_linux*/pkg_purepy ci jobs (limiting disk space consumption).
b34c075d Delete artifacts.zip after unzip and unzipped directory 'build' after rpm install (limiting disk space consumption).
0fc807ec 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.
8265037c Remove -nojvm matlab flag for doctest.
178ac49b Set BUILD_FLOAT_MEX=ON for matfaust doctest.
1e3b4842 Add nightly ci job for matfaust doctest.
959d792f Disable error prone ctest report submission to inria cdash.
60e0034e Remove again junk in output (matfaust test report was still too large: 30Mb).
fb17d565 Output test report link in ci job log of ctest_matlab/python
e8fb5f0c Fix false negative in matlab FaustTest.testNormalize unit test (NaN issue).
0ecf9151 Fix the unit test of matfaust.proj.spsymm and correct the doc part about k and the image nnz.
bbc714b9 Label all matfaust unit tests and remove junk output to lighten test reports.
43973491 Fix memcpy error in mex code faust_optimize_time.hpp for dense matrices.
01d18e46 Fix matfaust.dst complex(sparse_matrix) error for older versions of Matlab.
746b0b90 Fix minor error in (matlab) FaustTest.testDensity.
0f85566b Fix pyfaust.circ bug occurring if len(v) == 4.
808363fa Fix file conflict between test_matlab_faust.m MATLAB_FAUST_CONFIG_* tests which occurs because ctest might run them in parallel.
ca69db1e Add missing ParamsHierarchicalDFT.m.
3d4a4cae Make ctest_matlab ci job even stricter: even a unit test failure stops the pipeline.
1a0a1833 Fix minor error in matfaust optimize_time unit test.
45605295 Fall back to Faust.load because load_native doesn't handle BSR matrices (failing test testSaveBSRFaust).
c15c539f Fix matfaust.Faust.mtimes_trans and tests MATLAB_FAUST_CONFIG*, MATLAB_FAUST_SPEED.
ee6abf67 Add -nodisplay to speed up the matlab launch by ctest.
266c58e2 Finish doctest of matfaust.Faust.
c9374756 Adapt matlab inline doc gen script to not interfere with octave-doctest.
bd10602e Set up allow_failure in ctest_python/ctest_matlab in case of punctual need of more tolerant test (failure accepted).
fcb0c9c3 Almost complete the doctest review of matfaust.Faust.
cf717ca3 Add seed argument to matfaust.rand.
587f90af Fix ctest_python/matlab ci job status code in case of all tests passed.
cc5513d5 Make ctest_python/matlab ci jobs capable to fail the pipeline if unit tests are not all passed.
342f2979 Update ctest_matlab/python ci job to upload the test report whether the job fails or not.
7c1afe02 Partially review matfaust.Faust with doctest (to continue).
183fdfc8 Upload ctest report for matfaust as gitlab artifact.
1115ed73 Undo 0ae1252b and replace by libomp preloading.
5de531e8 Make ctest_python ci job fail on gitlab if any (unit) test have failed.
7500fb61 Enable float scalar in ctest_python ci job.
ab526c74 Fix MatPerm::multiply in transpose case.
f55c9296 Add adjoint test for DFT diag_opt=True and rand_butterfly.
04f4c5e7 Fix TransformHelperGen::factors transpose case bug.
6c21c9b6 Set/document min version of cmake needed.
6bdfdfec Fix MatPerm/Butterfly::to_dense.
ac43be3a Add a JUnit XML format output for ctest and, upload it as HTML to gitlab as artifact.
8479d482 Fix recent regression (fc3b0ec6) in complex scalar addition/subtraction to a real Faust.
89ca27db Use default compiler (gcc) for running tests (ctest).
381415d8 Make tests compatible with float32 dtype.
7b1e8d81 Secure/Simplify scalar detection and correct multiple dtype issues (float32).
6833bb03 Minor simplifications.
7dd8443b Fix pyx code of polyCoeffs and polyGroupCoeffs: bad dtype of output array if poly dtype is float32.
ae492bcb Fix Faust.average bug for float32 dtype (inconsistency between Faust and weights dtypes).
383b0c9a Run ci job pkg tests on complex in addition to double scalars.
ac32b2cd Fix pyfaust expm_multiply unit test.
ceff7fe2 Fix minor error in venv name (since move from py310 to py311).

Version 3.38.10:

70f7096d Remove version in rpm/deb package install prefix.
3db8af8d Replace old HTML tutorial using_gpu_matfaust by a real mlx matlab live script.
7cff526c Add a note about Faust deletion in live script.
57ff917b Fix issue #256.
134238c1 Add a note about Faust deletion in jupyter notebook.
5b89c89c Add matfaust.Faust.uminus and pyfaust.Faust.uplus overloads.
c69f8ef8 Simplify the CUDA install note for win10.

Version 3.38.9:

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

Version 3.38.8:

010223b1 Enable cuda12.1 for windows packages.

Version 3.38.7:

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

Version 3.38.6:

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

Version 3.38.5:

46c8c969 Limit CUDA pypi classifiers to cuda major version.
e61d042b Enable cuda 12.4 in Linux packages.
9fe0fa4a Disable cuda-9.2 support for gpu_mod.
e4abdcd4 Update linux library versions of matio and its deps to the latest ones.
fc0ace11 Update Matlab-gcc versions matching.
1459c348 Adjust MatSparse::toMatIOVar to matio >= 1.5.18.

Version 3.38.4:

ae9f298a Set numpy version specifier to >=1.23.

Version 3.38.3:

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

Version 3.38.2:

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

Version 3.38.1:

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

Version 3.38.0:

34becc6b Add a note in svdtj doc about error calulation two-times strategy.
02011e28 Rename TRIL_SP, TRIU_SP and SYMM_SP to SPTRIL, SPTRIU and SPSYMM.
93463f27 Fix svdtj mex missing symbol with float type.
4b35430e Remove old import to lazylinop.
2c7a472e Set EXPERIMENTAL_PKG variable for rpm/deb static matio release packages.
9f546cc4 chmod +x script.
e9884994 Add matfaust wrappers to TRIL_SP, TRIU_SP and SYMM_SP projectors.
f088404c Add doc for shape argument of pyfaust.proj classes.
afae7624 Fix missing attributes in copy/assignment operator overload of StoppingCriterion.
1c18e7c6 Document SIGINT stop of palm4msa and hierarchical in matfaust/pyfaust.
cac637ad Add SIGINT (CTRL-C) handler in PALM4MSA 2020 to stop on manual user interruption.
b3fc0b7f Fix format of brief line of pyfaust.proj.spcol API doc.
b1412aeb Remove the lazylinop module from matfaust + remove associated unit tests.
35832b62 Remove from pyfaust the lazylinop module, its unit tests and notebook.
d0dbb82f Add explicitly the license file in conda package.
84441c1b Fix typo.
6d3f75dd Fix conda multiline description and misleading license name.
cd900bff Fix #319 (compilation issue on Windows VS).
02fd1166 Secure SVDTJ two-errors strategy in case of very large tol or zero matrix sum.
b68577ec Update findEigenLib for Windows: find eigen3 locally instead of using an embedded archive.
3365331e Add matfaust.fact.pinvtj and update svdtj doc.
20792b50 Add pyfaust.fact.pinvtj and update svdtj doc (error/tol changed).
ec1ce630 Implement optional pseudoinverse error in C++ svdtj.
f02287d4 Implement two-stage error strategy in SVDTJ c++ code.
3ec1c20f Add a doc reference about the error calculation of eigtj in C++ code.
127b6d7e Update verbose mode of SVDTJ (clearer msg on error + U/V tag of eigtj factor).
caa35c87 Add err_period argument to matfaust eigtj.
e09837bb Add err_period argument to pyfaust eigtj.
95e3c3ba Minor change in C++ SVDTJ: more information on error of U and V in verbose mode.
65d78e33 Add err_period attribute to GivensFGFTGen classes.
077340df Modify svdtj c++ step mode to stop when the singular values become worse (error increases of one order of magnitude or more).
92a68a0f Update matfaust svdtj.
00fc5f98 Fix FaustVec2mxArray complex case.
599c1553 Add pyfaust.fact.svdtj err_period argument.
082086ff Fix Faust::prox_symm_sp comparison to zero in case matrix scalar type is complex<T>.
d63ebafa Extend pyfaust svdtj to set different nGivens, nGivens_per_fac for U and V + update doc with examples + update C++ unit tests.
8e7f44da Clarify svdtj singular values are always in descending order (doing as matlab / numpy).
528596cf Fix triu_sp, tril_sp and symm_sp wrong super call and erroneous examples.
151e00b1 Fix prox_tri_sp and prox_symm_sp in GPU code.
cb8c3678 add symm_sp constraint, add missing semicolon
2599439c add generic code for triu_sp and tril_sp constraints
12dcef08 add tri_sp constraint
679bcef4 Defaultly use only scipy.signal.convolve2d in lazylinop.convolve2d.
efc967de 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.
4fc094d9 Fix Visual Studio build errors with numeric_limits::max.
a1c040d2 Update matfaust.svdtj: remove old square matrix restriction and fix S shape in case of rectangular M.
b6edf52c Fix symbol conflict (stop_crit attribute and stop_crit macro).
0b7ee5ac Add ci job script for static matio rpm/deb release packages + use it to simplify .gitlab-ci.yml.
87363af3 Update release rpm/deb generation ci job script: concise output (with full log in /tmp), var. env. sanity check, temporary cpack files deletion.
47b20e20 Replace deprecated np.float by np.float64 in tests.
7a108316 Update test_svdtj.cpp: fix SVD error calculation in case of ascending order singular values, refactoring + debug info.
21693f26 Avoid useless extra ordering in the end of SVDTJ + handle ascending order in addition to descending order.
881be9fe Add opt. argument order in GivensFGFTGen::get_ord_indices and fix missing initialization of D_order_dir attribute in ctor.
4c68c41b Renew the SVDTJ algorithm: more accurate error stopping criterion and other enhancements.
c502359f Add argument for inplace transpose, conjugate and adjoint in TransformHelper.
2277d646 Minor add in Transform assignment operator.
1c176a04 Add a FAQ entry about glibc confusing error when installing pyfaust in conda without conda-forge channel.
76691745 Add StoppingCriterion.erreps in matfaust to parameterize PALM4MSA/hierarchical 2020.
2cb44ec4 Update cpp StoppingCriterion: add copy ctor, assignment operator overload and integrate erreps in to_string().

Version 3.37.13:

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

Version 3.37.12:

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

Version 3.37.11:

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

Version 3.37.10:

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

Version 3.37.9:

2b79b221 Minor change in conda pkg gen. script (error msg).
0ec12982 Fix cmake script consistency issues about NO_MATIO and BUILD_READ_MAT_FILE options.
0c6c99bd Enable conda generation pkg for py3.11 on macOS in ci job.
70f557be Add pyfaust.lazylinop.fft2 + doc.
0422c6d6 Minor fix in pyfaust.lazylinop.zeros.
5c48e20f Add pyfaust.lazylinop.fft + doc.

Version 3.37.8:

10998bdd Switch windows packages from py3.10 to py3.11.
9ea7e067 Specify CUDA is optional.
09f1303e Add LINUX_DEFAULT_COMPILER_FOR_PYTHON cmake option + doc.
62f22646 Fix typo on CUDA issue.
3061b52c Update the README with deps, cloning and build information.
14a30844 Add NO_MATIO CMake option to make MAT-IO library optional.
135376a1 Add matfaust.lazylinop.zpad + doc.
feb4eb21 Fix matfaust.lazylinop.horzcat multiplication (exceeding row dimension of operand).
e046a993 Shorten ci job commands using PYVER variable.
4da99eb4 Fix dimensions check in n-dimensional case of pyfaust.lazlinop.zeros mul.
2c5218fd Fix matfaust LazyLinearOp.pagemtimes: falling back to mtimes if op is two dimensional.
fe81bd3d Add matfaust.lazylinop.zeros + doc.

Version 3.37.7:

bd71f781 Correct PYVER variable and help scipy/matplotlib install on macOS (ci job).
df5ffbc6 Update to gpu_mod@1fbd46f.
5629aeb6 Pin versions of matplotlib and scipy only for macosx pip package tests.
82e85f63 Update to gpu_mod@7a176f11.
75a71fc0 Undo e2644968 and ad4b9a47 (forced matplotlib and scipy versions in tests).
3328cbaf Change extra python version of macOS packages from 3.10 to 3.11.
f4f01434 Change on numpy version.
6e92ad52 Make possible to set independent versions of python for macOS and linux system packages.
4c3b0106 Add lazylinop.zpad + doc.
19f794f9 Add lazilinop.zeros + doc.

Version 3.37.6:

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

Version 3.37.5:

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

Version 3.37.4:

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

Version 3.37.3:

d016277f Add doctested example for pyfaust.fact.svdtj.
35a385a1 Add a C++ unit test for svdtj.
5e742930 Fix minor bug in ParamsHierarchicalRectMatNoResCons (missing parameter P).
6a00e6e7 Add verbosity level 2 in pyfaust.fact.svdtj2.
f3345886 Fix buggy svdtj cases in C++ code (rect matrix and empty Fausts).
e8e1d5cc Display input configuration if verbosity level > 1 in GivensFGFT(Parallel)Gen C++ code.
e352d724 Document the light git-clone (issue #294).
42de8d72 Update the project README.md.

Version 3.37.2:

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

Version 3.37.1:

bef20f48 Move doctest verification of pyfaust from pages job to pkg_linux_purepy_release.
2b2db19f Review/Validate with doctest all examples of pyfaust.lazylinop.
8ef8ef37 Review/Validate with doctest all examples of pyfaust.tools.
fdec065d Add doctest verification in pages ci job.
17f71064 Review/Validate with doctest all examples of pyfaust.* (excluding other modules).
10ddd687 Reformat the displaying of a Faust (C++).
c69eb410 Remove the memory address of Matrix output (as it was before).
1a1e1ef0 Bind C++ Faust::seed (faust_prng) into the python wrapper (pyfaust.seed).
b7488c35 Externalize initialization of Faust PRNGs in a specific module (faust_prng).
ca5de711 Add seed argument to C++ randFaust and bind it into pyfaust.rand.
b3559e2d Add matfaust.aslazylinearoperator shape optional argument and document it.
c49cbf2c Add pyfaust.aslazylinearoperator shape optional argument and document it.
79fd77e9 Update matfaust.Faust.factors/left/right with new as_faust argument + doc.
430117fb Update pyfaust.Faust.factors/left/right with new as_faust argument + doc.
d2a3c207 Minor doc change in matfaust.Faust.
fcbe6a83 Update pyfaust.factors equivalently to 59baec41 + minor doc changes.
244c63cb Add missing GPU2 overloads in mex faust_factors.* (matfaust.factors).
70a87997 Update matfaust.Faust.factors/left/right and mex code to handle retrieving factors as Faust.
f3f6826f Add TransformHelper<FPP,DEV>::factors() to get a subset of factors as a Faust::TransformHelper without copies.
00c10a47 Add conversion CPU MatButterfly/MatPerm on the fly conversion to MatSparse in mex code of matfaust.factors.
dd5bfbc9 Update pyfaust.factors/left/right cpp code to convert MatButterfly and MatPerm to scipy csr matrices.
67e4369e Set identity flag to false in MatPerm/Butterfly<FPP,Cpu>::toMatSparse.

Version 3.37.0:

4397ff5e Fix issue #293 (win compilation error).
def96aec Fix ctorMatButterfly(const MatSparse<FPP, GPU2> &factor, int level)
61f1e455 Add a new overload of MatSparse<FPP, GPU2>::tocpu.
e0a4a29d Enable GPU diag_opt (butterfly optim.) for matfaust.circ/anticirc/toeplitz.
7f566a14 Remove TransformHelperButterfly_gpu.h/hpp and all references to it as it not used anymore.
e23033db Specify the absolute path for cwd in matfaust.enable_gpu_mod.
bb18f687 Enable pyfaust.toeplitz gpu and diag_opt features.
43b0df43 Remove TransformHelperButterfly<FPP, GPU2> use in cpu to gpu Faust cloning of python wrapper cpp code.
4c4f3eda Rewrite TransformHelper<FPP, GPU2> fourierFaustOpt and optButterflyFaust without using TransformHelperButterlfy<FPP, GPU2>.
e289a6a7 Fix Transform<FPP, GPU2> update_total_nnz wrong const attribute and add an optional argument to scalarMultiply (for selecting the multiplied factor).
fc703c99 Fix TransformHelper<FPP, GPU2>::multiply(MatDense<FPP, GPU2>) test (the CPU Faust wasn't the same).
7b2d2821 Rewrite all remaining members of Transform<FPP, GPU2> except slice/indexMultiply to be independent from gpu_mod.
9bf36fe4 Rewrite Transform<FPP, GPU2>::to_string/Display to be independent from gpu_mod + refactor all GPU matrices Display/to_string in MatGeneric parent.
3e477c4b Rewrite Transform<FPP, GPU>::get_total_nnz independently from gpu_mod and remove multiply(const FPP&) duplicate of scalarMultiply.
c6debcf3 Add Transform<FPP, GPU2>::adjoint and rewrite power_iteration and spectralNorm to be independent from gpu_mod.
1b935afb Add MatDense<FPP, GPU2>::setRand.
c5c6e5a9 Fix MatDense<FPP, GPU2>::multiply(MatDense<FPP, GPU2>& other, const char) const
9259c70a Update Transform<FPP, Cpu>::get_product replacing uncomplete downcasting by generic to_dense call.
57174f0a Add MatSparse<FPP, GPU2>::spgemm unit test.
41f04ccf Fix MatSparse<FPP, GPU2>::spgemm when C is non-initialized or wrongly dimensioned.
a8bd4d31 Implement to_dense (MatGeneric abstract method) in all subclasses both on GPU and CPU.
535a566d Add a unit test for Transform<FPP, GPU2>::multiply(const FPP&).
36ef436a Rewrite Transform<FPP, GPU2> getNbRow/Col, size, multiply(const FPP&) to be independent from gpu_mod.
7ea21feb Add operator*=(const FPP&) overload in MatGeneric<FPP, GPU2> (abstract method) and implement it in child classes.
e80c8a80 Move non needed template Transform function specializations into template functions (from .cpp.in to hpp).
b10ca730 Rewrite Transform<FPP, GPU2>::multiply(MatDense<FPP, GPU2>, ...) without relying on gpu_mod + add its unit test.
de45fab9 Add abstract "MatGeneric<FPP, GPU2>::multiply(MatDense<FPP, GPU2>&, const char) const" and a fix of its overload in MatDense<FPP, GPU2>.
60867b66 Fix outdated sliceMultiply cpp test.
da4e1071 Fix in MatButterfly missing default ctor call needed for a proper ini.
89c61d60 Fix use of deleted CPU TransformHelperButterfly in cpp unit tests.
ed62343a 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>’
ee90109d Enable on GPU the butterfly optimization of pyfaust.circ and anticirc.
35f43863 Add CPU MatButterfly level getter.
d1cd3b46 Add GPU2 MatButterfly new ctors and a getter.
33d2c89a Fix GPU2 MatButterfly dtor.
154404b3 Add GPU2 MatPerm new ctors.
d2ab8f18 Fix GPU2 MatPerm dtor segfault.
87381e10 Integrate GPU2 MatPerm in TransformHelperButterfly to replace old code.
8c92b28e Add full MatPerm<FPP, GPU2> implementation and its unit tests.
bc3147b4 Fix missing transpose copy in assignment operator overload of MatButterfly<FPP, GPU2>.
62e81648 Remove ButterflyMat from TransformHelperButterfly<FPP, GPU2> and use the new independent MatButterfly<FPP, GPU2> instead.
305a4392 Add copy and default ctor, assignment overload + getter and multiply overloads in GPU2 MatButterfly.
cfa2968c Add GPU2 MatButterfly get_gpu_mat_ptr, conjugate, adjoint, Display and unit tests.
dab3da47 Add GPU2 MatButterfly::getNonZeros()/transpose() and unit tests.
71d4408a Add GPU2 MatButterfly::get_cols/rows, norm, clone and their unit tests.
3f42c120 Add GPU2 MatButterfly::toMatSparse and its unit test.
60c4a73f Add GPU2 MatButterfly::multiply(MatSparse<FPP, GPU2>, const char) and its unit test.
3f1dcf52 Add GPU2 MatButterfly getNbRow/Col/getType and unit tests.
e7821d10 Add skeleton for GPU2 MatButterfly + multiply(MatDense), setZeros(), getNBytes() and corresponding unit tests.
0ed8e01c Fix use of undefined type 'Faust::TransformHelperButterfly<FPP,GPU2>' in mexFaustGPUCplx (issue #292).
b7d1e673 Delete TransforHelperButterfly<FPP, Cpu> which is not used anymore.
06054e03 Fix TransformHelper<FPP,GPU2>::fourierFaustOpt.
2625bf18 Minor correction in lazylinop.ipynb.

Version 3.36.0:

517cebe2 Choose a specific version of scipy in test_unix_purepy_pkg (fix macos scipy building error by using older wheel packages).
4defe4fa Minor change in matfaust.opt_butterfly.
1bcf2a5b Complete unit tests of matfaust.circ/anticirc/toeplitz for the diag_opt optional argument (butterfly matrix opt.)
3c87bc01 Enable butterfly matrix optimization in matfaust.toeplitz.
b7a97288 Enable butterfly matrix optimization in matfaust.anticirc.
699dee5b Enable butterfly matrix optimization in matfaust.circ.
bddf85f9 Enable MatButterfly/MatPerm composed Faust in matfaust.opt_butterfly_faust wrapper (instead of using TransformHelperButterfly).
8809daed Enable MatButterfly/MatPerm composed Faust in matfaust.dft wrapper (diag_opt option).
61ae92c8 Update lazylinop notebook: add a listing of available structure LazyLinearOp-s, a pointer to pylops and minor corrections.
6e09bcbc Complet unit test of pyfaust.circ/anticirc/toeplitz for diag_opt=True (butterfly structure opt.).
3fa4c0a0 Fix in MatButterfly::toMatSparse the bug found on pyfaust.circ().toarray().
c312ac7f Fix ambiguous conj call compilation error.
9d556920 Update C++ unit test of TransformHelperButterfly::fourierFaust replaced by TransformHelper::fourierFaustOpt.
f3b34dfa Enable butterfly diagonal optimization in pyfaust.anticirc and toeplitz.
1959b188 Disable virtualslicing/indexing on TransformHelper/Faust when they contain non-MatDense/MatPerm matrices (not yet supported).
b53d395a 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.
b9999081 Refactor CPU fourierFaustOpt using optButterflyFaust and add its GPU2 version.
6ac69808 Bind pyfaust.opt_butterfly_faust to TransformHelper::optButterflyFaust and add a (not yet implemented yet) GPU2 version of this function.
a7f0a56b Add TransformHelper::optButterflyFaust to implement pyfaust.opt_butterfly_faust without TransformButterfly.
00f7af82 Extend Faust::gemm_gen to MatButterfly/MatPerm.
c3713d36 Add a unit test for MatButterfly::adjoint.
ea7a1c35 Fix MatButterfly::conjugate (transpose state wasn't handled).
6d98c987 Fix call to real in faust_conj.cpp.
89f7e1b0 Add MatPerm::isPerm.
a3bdf0a9 Enable butterfly and permutation optimizations of the dft in pyfaust.circ (diag_opt arg.).
91ca514a Replace the use of TransformHelperButterfly::fourierFaust by TransformHelper::fourierFaustOpt in pyfaust wrapper cpp code.
31a41511 Add TransformHelper::fourierFaustOpt and tweak TransformHelper::multiply(FFP* v, ...) to benifit of this optimization on Faust-vector mul too.
2a368fec Make two Transform::multiply functions compatible with MatPerm and MatButterfly.
40aaa28d Update MatGeneric::to_string for MatPerm and MatButterfly compatibility.
6cd0367d Add missing std namespace qualifiers.
9846a76f Integrate MatPerm use in TransformHelperButterfly.
bcdc34f0 Fix wrong call to update_dim in MatSparse::nonzero_indices (862cff77).
fb12d463 Add MatPerm default ctor.
63f9a043 Add unit tests for Faust::MatPerm.
8466f490 Compress the sparse matrix to nonzeros before enumerating them in MatSparse::nonzeros_indices.
f163f8f9 Add a sanity check on indices in MatButterfly::operator(), remove/add TODOs.
b3e97a56 Add a new matrix type: Faust::MatPerm.
7cab5aa0 Integrate MatButterfly use in TransformHelperButterfly and remove old ButterflyMat first prototype.
d6862e1d Fix std::conj calls in MatButterfly functions (the return type can't be always complex it must be the same type as input here).
9c8752a1 Add a generic conj function that returns the same type as in input contrary to std::conj.
d31e9e04 Add a unit test for MatButterfly::faust_gemm.
4b1447e9 Fix bugs in MatButterfly::faust_gemm and implement a conjugate argument to multiply prototypes.
699b17d7 Implement MatButterfly::faust_gemm.
88dd27e3 Add a unit test for MatButterfly::normL1.
a97d03c6 Set optional MatButterfly::normL1 transpose argument and fix a bug on MatSparse size of MatButterfly::toMatSparse.
f35a7f4d Implement MatButterfly::get_col(s)/row(s) and normL1.
db136edf Add a unit test for MatButterfly::nonzero_indices.
e3a8e422 Add a tol(erance) argument in MatGeneric::nonzero_indices and make the change in subclasses definitions.
6951a9cc Implement MatButterfly::nonzero_indices.
38c05d7f Implement MatButterfly::setZeros.
22fc70e1 Implement MatButterfly::containsNaN and its unit test.
15023135 Implement MatButterfly:operator(i, j) (item access) and its unit test.
16628690 Implement MatButterfly::toMatSparse along with its unit test.
694ada4d Impl. MatButterfly::norm() with its unit test.
7493b1b4 Add Butterfly in enum of matrix types.
719455b5 Add unit tests for MatButterfly getType and operator*=(FPP) + refactor equality tests in functions.
722728d9 Implement MatButterfly::operator*=(FPP).
326440ae Add a unit test for MatButterfly::getNonZeros and getNBytes().
1804fc40 Implement MatButterfly::getNonZeros() and getNBytes().
fbf26f8e Add more unit tests for MatButterfly::transpose.
23edad79 Fix a bug on transpose case of MatButterfly multiplication and impl. conjugate and adjoint member functions.
420c548b Add unit test for MatButterfly::transpose and refactor clone unit test in its own function.
22149efa Implement MatButterfly::transpose with a cache mechanism.
1ddbb4cc Add a unit test for MatButterfly::Clone.
bca1cd0b Add MatButterfly copy ctor and assignment operator and implement the Clone member function.
c42a0e41 Add a unit test for MatButterfly-MatSparse multiplication.
310da14c Add MatButterfly::multiply definitions (by a MatDense/MatSparse).
ce9b80ec Make MatGeneric::getNbRow/NbCol virtual in order to override them in MatButterfly.
320f11bb Minor correction in notebook.
603d05cf Add a C++ unit test for MatButterfly-vector multiplication.
baef45a6 Minor change.
faaf8b20 Add missing prototypes and fix constness in multiply(Vect) of MatButterfly.
756540a9 Start impl. of MatButterfly as a MatGeneric child class.

Version 3.35.18:

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

Version 3.35.17:

eda6ac6a Add MatDense<FPP, Cpu>::setRand.
f50a60c6 Fix pyfaust LazyLinearOp indexing by just an int (eg. lop[0]).
301bd00b Verify consistency of dimensions in pyfaust.lazylinop add and sum.
c03ca844 Add unit tests for matfaust.lazylinop.sum.
521c54b0 Add unit tests for pyfaust.lazylinop.sum.
a9e497c6 Add unit tests for matfaust.lazylinop.blkdiag.
dd2df41f Fix matfaust.lazylinop.blkdiag for transpose/adjoint case and block offsets.
a4b9acdf Add unit tests for pyfaust.lazylinop.block_diag.
29b4776c Ensure blocks passed to block_diag can be LazyLinearOp-s.
c75d6e41 Fix two bugs in pyfaust.lazylinop.block_diag.
351612eb Remove old matfaust asLazyLinearOp function and document new aslazylinearoperator function.
f4412dd3 Add matfaust.lazylinop.sum with its doc.
ca6711d3 Add matfaust.lazylinop.blkdiag with its doc.
c34884f1 Minor changes in pyfaust.lazylinop.block_diag.
4ac0c4f5 Add pyfaust.lazylinop.block_diag with documentation.
5c585c63 Add pyfaust.lazylinop.sum with documentation.

Version 3.35.16:

9713ce7c In pyfaust.lazylinop fix eye when m==None and add doc for eye and diag.
2a4493c2 Add examples to matfaust.lazylinop.eye.
fd127448 Minor change in matfaust.lazylinop.diag doc example.
0b08e4e4 Update Doxygen config for matfaust.lazylinop doc.
9aec580c Add an example in matfaust.lazylinop.diag doc.
c4095427 Add unit tests for matfaust.lazylinop.diag.
a3d0d56c Add matfaust.lazylinop.diag.
fe2f0d75 Fix pyfaust.lazylinop.diag case k == 0.
fb0181ff Add doc for matfaust.lazylinop.eye + fix of matfaust.lazylinop brief desc.
625d42c7 Add unit tests for matfaust.lazylinop.eye.
bf488ea2 Replace optional key-value arguments by optional arguments in matfaust.lazylinop.eye.
9475a753 Add matfaust.lazylinop.eye.
acecb391 Minor fixes in option parsing of member functions of matfaust LazyLinearOp.
38a78b12 Add unit tests for pyfaust.lazylinop.diag.
97878f42 Add unit tests for pyfaust.lazylinop.eye.
2ce29ce0 Fix pyfaust.lazylinop.eye in case k=0.
319668fb Make np.ndim(x) work on x a Faust/LazyLinearOp.
cf26c3fc Update pyfaust.lazylinop.diag.
8af7dc12 Add pyfaust.lazylinop.diag (not handling mul to another LazyLinearOp yet).
e4c52455 Add pyfaust.lazylinop.eye with doc.
f19f84c6 Minor fix in compute_XY_on_gpu.
fd363b17 Minor fix in pyfaust.proj.blockdiag doc.
db486bcf Add time measurement in test and optional GPU module initialization.
9f218e61 Integrate the GPU batched SVD in butterfly right/left factorization C++ impl.
421e4e19 Add set_row/col_coeffs overloads in Faust::MatDense<FPP, Cpu>.
0e534907 Fix GPU code of butterfly balanced facto.
2c3ef12b Update c++ test of butterfly balanced factorization for GPU use.
05feacb6 Integrate the GPU batched SVD in butterfly balanced factorization C++ impl.
5ded8fa1 Lower level prototypes of submatrix member function in MatDense and MatSparse (Cpu).
96089117 Update to gpu_mod@ce1c816.
1eb0c3d6 Add a unit test for the GPU partial svd (batched_svd).
90ae7a46 Add another prototype of GPU batched_svd and copyBufBlock function in MatDense<FPP, GPU2>.
4c5f1c5d Add MatDense::print_mat utility function
ba963ef0 Add a test of GPU batched SVD.
bcd227fa Add GPU batched_SVD updating to gpu_mod@4bfc92d

Version 3.35.15:

5f252c1f Update to gpu_mod@a33c81e.
4e3ce547 Update lazylinop jupyter notebook.
71857df5 Update matfaust.lazylinop multiplication by scalar to be less costly.
3cde8cdf Switch to column-major order eye in pyfaust.lazylinop.LazyLinearOp.toarray to be compliant with Faust __matmul__.
e9875d56 Fix pyfaust LazyLinearOp.imag ; it must be real.
4d08e24c Update to gpu_mod@009f116.
a542befa Udpate to gpu_mod@42c82e7.

Version 3.35.14:

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

Version 3.35.13:

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

Version 3.35.12:

92e4dec0 Update the lazylinop notebook with explanations on creation with matmat/matvec functions and an example based on scipy fft.
35cc5c42 Minor change in pyfaust LazyLinearOperator doc.
451f8a6a Fix a bug in LazyLinearOperator occurring when applying to a 1d vector a lazy op defined upon a matvec function.
ec69f323 Update the lazylinop notebook in the next to the new impl.
952848b6 Update unit tests of LazyLinearOp to handle the switch to the new impl. by default.
b9db4ab4 Replace previous LazyLinearOp impl. by the new one (renaming LazyLinearOp2 to LazyLinearOp).
2ec6613b Add pyfaust.lazylinop.kron2 (based on LazyLinearOp2 instead of LazyLinearOp) and associated unit tests.
17faaefb Make pyfaust LazyLinearOp * a synonym of @ except if the operand is a scalar (following scipy LinearOperator behaviour).
cd73786a Add pyfaust.LazyLinearOperator and aslazylinearoperator.
013aae0d Add general indexing support to pyfaust LazyLinearOp2
7ba6a066 Add unit tests for pyfaust LazyLinearOp2.
27aa848e Add a new lazy linear op impl.: LazyLinearOp2.

Version 3.35.11:

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

Version 3.35.10:

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

Version 3.35.9:

e00599f4 Update lazylinop notebook.
495a2632 Fix regression 4615e5c6.

Version 3.35.8:

5d985225 Add a link to LazyLinearOp jupyter notebook on the main page of doxygen doc.
189afc94 Update the lazylinop jupyter notebook.
d21db77f Minor correction in F_CONTIGUOUS conversion of complex operand in pyfaust.Faust.__matmul__.
0cee041e Update pyfaust LazyLinearOp: use .T.conj() instead of .H for larger compatibility (fix for scipy svds).
36c9af01 Update pyfaust LazyLinearOp ctor: verify that the starting object has two dimensions (only one is forbidden).
004e9a6f Complete matfaust LazyLinearOp.mtimes unit tests, in particular for the LazyLinearOp * sparse matrix case that must be computed.
fd7a701e 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).
39a21e17 Update pyfaust.Faust.__matmul__ to handle coo_matrix and bsr_matrix (by conversion to csr).
776286c4 Complete pyfaust LazyLinearOp.__matmul__ unit tests, in particular for the LazyLinearOp @ scipy matrix case that must be computed.
4068e626 Update pyfaust LazyLinearOp.__matmul__ to evaluate the result of self @ op if op is a scipy matrix (as made for op a np.ndarray).
742d23eb Add a unit test for pyfaust rand_butterfly/opt_butterfly_faust and complete the unit test for the dft butterfly opt (transpose case).
cc8facbb Implement (C++) transpose case of butterfly Faust optimization on CPU.

Version 3.35.7:

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

Version 3.35.6:

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

Version 3.35.5:

042dc39e 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).
925ea7a8 Document matfaust/pyfaust.lazilinop kron and LazyLinearOpKron.
08ce0556 Add unit tests for matfaust LazyLinearOpKron.
cd3e6634 Implement matfaust LazyLinearOpKron and matfaust.lazylinop.kron.
0abe924e Fix matfaust.Faust errors in cat [matrix; Faust], [matrix, Faust] and addition/subtraction matrix +/- Faust (in this order).
4f031db9 Update pyfaust LazyLinearOp and LazyLinearOpKron:
63e06fe7 Complete unit tests for pyfaust.lazylinop.LazyLinearOpKron/kron.
f6c005cd Add pyfaust.lazylinop.kron and LazyLinearOpKron associated class.

Version 3.35.4:

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

Version 3.35.3:

e4aac8b2 Document matfaust.lazylinop and update pyfaust.lazylinop doc.
6e82921f Update pyfaust LazyLinearOp vstack hstack and concatenate to handle any number of arrays.
8cf6d20f Review pyfaust.lazylinop doc.
af3efeea Add unit tests for matfaust LazyLinearOp.
81cd2ea8 Update matfaust LazyLinearOp.
ed1ad836 Impement mafaust lazylinop module: LazyLinearOp class and related functions.
5f94d597 Warn of beta status of pyafust LazyLinearOp.
b7ea7439 Update pyfaust LazyLinearOp ctor and transpose/getH functions.

Version 3.35.2:

0a2f2e92 Fix LazyLinearOp.__add__/__sub__ and __getitem__
c20f8ffd Add pyfaust.lazylinop.vstack/hstack and their unit tests.
e884e3cc Add dev argument to matfaust/pyfaust circ, anticirc and toeplitz functions.
22cf1c27 Extends scipy LinearOperator into pyfaust.lazylinop.LazyLinearOp.
de318fc6 Add pyfaust.lazylinop.asLazyLinearOp and its unit test.
670c5527 Add FaustLazyLinearOp.imag and its unit test.
dd747d97 Add FaustLazyLinearOp.real and its unit test.

Version 3.35.1:

494a35c5 Fix pyfaust.LazyLinearOp.concatenate resulting shape and complete the corresponding unit test.
924edd60 Fix pyfaust.LazyLinearOp.__getitem__ infinite recursion and add a unit test.
f91f1d95 Review/harmonize matfaust/pyfaust circ, anticirc, toeplitz, dct, dst, dft.
eb4a3fd2 Raise matfaust/pyfaust.dst an error if n is not a power of 2.
ce3b81d3 Add unit tests for pyfaust.LazLinearOp.
18daf38a Update pyfaust.LazyLinearOp

Version 3.35.0:

ae351eec Restrain the matplotlib versions in test_unix_purepy_pkg (fix macos matplotlib building error by using older wheel packages).
77431e5d Add pyfaust.lazylinop to namespace filtering (doxypypy).
92e4e15c Fix make-install command.
66646f53 Correct variable name for the matio static lib path in linux pip package jobs.
7ecc3dda Fix two dimensions slicing bug (issue #285).
8e60c133 Update to gpu_mod@062c29d.
2fdc55eb Add Faust.__ifloor___ (not supported) and fix __imul__, __isub__ and __iadd__ error.
9b5bfd94 Add (undocumented, experimental) LazyLinearOp.
5fb627dc 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.
ca58d19d Correct pyfaust.Faust in-place operations (iadd, isub, imul, imatmul).
db72ef86 Optimize ButteflyMat<FPP, GPU2>::multiply by using a dedicated kernel (gpu_mod@837684f).
8970c50d Fix the script shebang.
8f8ebfc0 Update to gpu_mod@5e2a81b.
db91ef42 Refactor pkg_macos_release and pkg_macos ci jobs into a unique script.
4fed8d59 Fix multiple errors in TransformHelperButterfly<FPP, GPU2> (wrong buffer size, forgetting the Faust scale factor, and other minor errors).
435a5792 Add copy and assignment operator overload to Faust::TransformHelperButterfly<FPP, GPU2>.
3d7c6398 Set multiply member functions to virtual in order for the TransformHelperButterfly (GPU2) redefinitions to be called.
7b87dee1 Fix Vect<FPP, GPU2>::operator= (the source vector hasn't to be of the same size for the copy to work.
0f7f5ae1 Refactor static library paths for macos and linux into environment variables.
1211fb8b Implement GPU Butterfly Faust optimization in the C++ core.
4919663d Implement elementwise multiplication with arbitrary element order (MatDense<FPP, GPU2>::eltwise_mul) + its unit test (test_eltwise_mul_ids_vec).
ef175550 Fix test_eltwise_mul_vec unit test + update to gpu_mod@4dafb3a
c24493ce Overload + operator for matfaust/pyfaust.Faust class
bd3bdca6 Add GPU elementwise multiplication for MatDense and a unit test.
d534cc08 Implement diag_opt option for matfaust.fact.butterfly.
5bfb26f9 Implement diag_opt option for pyfaust.fact.butterfly.
0dc2d39b Make optional to multiply the permutation to the last butterfly.
72998d8f Move bitrev from tools module to pyfaust root as it was done for bitrev_perm.
7646dd02 Update to gpu_mod@befc138
ccd0bdc3 Minor fix in fgft_palm Faust call ctor.
b08a1f9c Move/alias bitrev_perm in matfaust/pyfaust package root and document it.

Version 3.33.5:

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

Version 3.33.4:

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

Version 3.33.3:

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

Version 3.33.2:

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

Version 3.33.1:

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

Version 3.33.0:

a028ff3d Fix test built for unforseen real/complex types.
8003c82d Fix compilation error: reference to ‘ButterflyMat’ is ambiguous.
57db852f Fix type genericity break.
1272b490 Fix preprocessor directive and eigen macro call.
3b73b6af Add (disabled) pythonic (pythran) code for the Faust-vector multiplication in TransformHelperButterfly code + disable use of Eigen::placeholders::all for old eigen versions.
8611c5d6 Minor change in pyfaust.dft doc.
fd1d1f54 Add butterfly diagonal optimization option (diag_opt) to matfaust.dft.
bec3943e Add unimplemented GPU2 TransformHelperButterfly and undo 23347c5e.
4a1b8651 Optimize pyfaust.circ by merging permutation factors into the following factor and update doc of circ/anticirc/toeplitz.
4189f6f4 Review pyfaust.circ/anticirc/toeplitz doc.
4fc1f123 Remove kwargs from pyfaust.circ prototype (the diagonal factor is always multiplied).
73fb851d Fix issue #280 on MatDiag multiply (adjoint case) and add a unit test for it.
814122da Fix auto-ref in doc of pyfaust.rand_butterfly;
6617901a Exclude pyfaust.tools.bitrev from doxygen doc as bitrev_perm is and also because matfaust API doesn't expose these functions.
df2a03c6 Document pyfaust.tools.bitrev and bitrev_perm.
987da1f9 Handle class argument in matfaust.dct/dst.
4dc598c1 Fix matfaust.Faust.single regression due to a e2a04b60 workaround.
d4b9f9ca Rename dst.butterfly utility function to butterfly_ to avoid confusion with matfaust.fact.butterfly and filter out this function from API documentation.
ef6a6e7a Add dtype argument to pyfaust.dct/dst.
73236343 Fix wrong call of TransformHelperButterfly::fourierFaust from python wrapper GPU code (it is not supported on GPU).
2467267d Show the Faust density in example of pyfaust/matfaust.dct/dst.
91134fa0 Update matfaust.dct/dst unit tests to handle/check normed argument.
25ae82c9 Add normed argument to matfaust.dct/dst + fix swapped examples.
9c0caa52 Use eigen DiagMat for D1, D2 etc., stuck to omp-loop for multiplying vectors but use eigen for multiplying matrices (faster).
2f3e20e5 Handle adjoint case in MatDiag::multiply.
a09027b7 Add normed argument to pyfaust.dct/dst and update doc and unit tests consequently.
d1857042 Fix pyfaust.dft and matfaust.dft doc.
a1f9d480 Update the wrapper an add a diag_opt argument to pyfaust.dft for using the TransformHelperButterfly product.
af99ab90 Implement TransformHelperButterfly multiplication by MatSparse.
15bd4284 Add multiply(MatDense) to TransformHelperButterfly.
d7a79488 Integrate a new kind of Faust to optimize Butterfly Faust - vector multiplication.
70b6ea91 Minor fix in fft_factors (missing std namespace).
e23510d2 Add minor todos and code doc in CPU TransformHelper.
bd243957 Add ButterflyMat::Display function in butterfly opt test.
1a646960 Add in tests AVX, OpenMP SIMD, Eigen (template exps) to the ways of computing the Faust DFT-vector product using diagonal opt.
47f44bfe Compute the elementwise multplication manually (without eigen) using OpenMP to parallelize and avoiding to reorder the multiplied vector (rather indexing it).
f7a494ee Add a simple test of the implementation of DFT/Butterfly faust product optimization (#275).
795d9963 Refactor pkg_linux and pkg_linux_release ci jobs into a bash script.
b6fc39b7 Refactor pkg_win and pkg_win_release ci jobs into a batch script.

Version 3.32.5:

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

Version 3.32.4:

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

Version 3.32.2:


Version 3.32.3:

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

Version 3.32.1:

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

Version 3.32.0:

a11b49c0 Remove erroneous USE_MATIO_STATIC_LIBS option from pkg_win_realease ci job + add MATIO_LIB_FILE option for python build cmake too.
8a1042f8 Re-enable windows release ci jobs.
6d5153a0 Add a Faust::bsrgemm GPU2 unit test.
c1e9b12e Fix possible erroneous size of C (output) in MatBSR<FPP,GPU2>::bsrgemm.
e4ba4c82 Update to gpu_mod@d76e343.
69150528 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).
f12fea0d 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).
9256df0b Rely on matio standalone static library instead of simple matio + dependencies static libraries for matlab wrappers too.
ea7971dc Stop relying on HDF5 and SZIP (matio dependencies) objects for compiling matfaust mex-s (as did for pyfaust in 52915f27).
5b81962d Update about windows matio library and openmp (details below)
ac0bffb7 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).
cab381a2 Enhance the building of the python wrapper for Windows.
62f3d8f2 Remove pruneouts from pyfaust.Faust.real/imag (too costly: e.g. 44s instead of 63ms without it in real).
6cad64a4 Handle charset detection in post_docgen_html_tags_filter.py to avoid error reading non utf8 files.
15eed53a Fix matlab cpp compilation error in faust_optimize_time_prod (GPU version).
3840a7eb Rely on generated header of gpu_mod for CUDA 11.4 in faust_linear_operator module.
71849edf Update win installer script since CUDA9.2 support has been removed.
9caa4a4e 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.
962ecc10 Remove from CMake script the cuda version 9.2 if windows (forgotten in e8e7fd3fca06e96fe498694779bfd04120e8b84a).
55bcfa69 Lighten matio, zlib and hdf5 Windows library paths (all in one folder named faust_libs).
72cf3eaa Remove flag detection for outdated C++0x and make optional the success of that of C++11 (the compiler should be up to date).
07ec94a2 Update matio linking on Windows with HDF5 dll auto-loading from pyfaust wrapper.
0fa63b6c Drop support of Visual Studio 14 2015, use now only Visual Studio 16 2019 (#218).
98228a1c Drop CUDA 9.2 support for gpu_mod build on Windows.
3d736c93 Enable DYNPROG Faust product (Faust.toarray()) for GPU.
9376f0a7 Move TransformHelper<FPP, Cpu>::set_FM_mul_mode to the parent class TransformHelperGen to use in TransformHelper<FPP,GPU2> too.
f7f3aa08 Integrate BSR matrix in GPU2 gemm_gen using bsrgemm.
486e8b27 Add a BSR Faust test in dynprog_mul c++ test.
6e193ade Implement bsrgemm in faust_linear_algebra GPU2 module.
528ac10f Implement MatBSR<FPP, GPU2>::bsrgemm and update to gpu_mod@a1dd1ad.
b85f96fd Fix GPU2 MatDense move ctor, undue freeing.
c477df16 Implement GPU2 spgemm prototypes as on CPU and use them to implement gemm_gen for GPU2 + update to gpu_mod@0f2c75e.
3ed7504a Fix missing gpu_mod loading in test_dynprog_mul_gpu and updade to gpu_mod@48c6b03.
b3e4b105 Fix missing HTML anchor for cuda installer Q&A in doxygen doc FAQ + slight rewriting.
7a296338 Add GPU test for cpp dynprog_multiply.
032d9dec Update set real generic code in faust_prod_opt_gen by using FDevice enum instead of specific Cpu value.
1a5fd078 Add MatBSR<FPP, GPU2> getNbBlockRow/Col and getNBlocks functions + update to gpu_mod@1488445.
9edb74f7 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).
319d600e Add a unit test for (faust_prod_opt) dynprog_multiply C++ function.
99ef5d23 Update MatGeneric::to_string to print the factor memory address of CPU matrices as done already for GPU.
73d1b403 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).
0193d68e Update macosx pkg license file with 3-clause BSD and scipy license.
5c98d8e7 Add scipy license to pyfaust pip package.
2dfb541b Use scipy license file (code used here ./src/utils/faust_scipy.h*).

Version 3.31.6:

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

Version 3.31.5:

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

Version 3.31.4:

b6a4b4d3 Iterate again on matfaust/pyfaust butterfly doc (minor changes) + add references to wht, dft and rand_butterfly.
ce272825 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:

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

Version 3.31.2:

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

Version 3.31.1:

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

Version 3.31.0:

fac21fa7 Update pyfaust/matfaust.fact.butterfly: add 'bitrev' option for perm argument and complete the doc.
85c82b31 Add matfaust.rand_butterfly.
3ff17375 Update C++ Faust::butterfly_hierarchical
a1667bbf Add pyfaust.rand_butterfly.
e96ae67a Refactor the bitrev_perm matfaust function to its own file in tools.
28e49ca1 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:

79b5b41b Enable Faust::TransformHelper lazy indexing on GPU.
68a39e96 Fix Windows VS compilation issue of Transform<FPP, GPU2>::indexMultiply casting issue (#272).
4dfcc420 Update to gpu_mod@b5966c7 (fix).
90fe65d4 Fix pyfaust.tests launching melting field and dtype.
5faf8524 Fix TransformHelper<FPP, GPU2>::indexMultiply X_nrows initialization.
358493ec Remove a multiplication test using the old GPU implementation (deleted before).
40c73783 Add a script helper to launch manually a gitlab-runner on macOS.
2d64aa03 Update to gpu_mod@0aff3aa.
f0fe457d Make indexMultiply available in pyfaust GPU wrapper.
733be5e1 Implement Faust::TransformHelper<FPP, GPU2>::indexMultiply.

Version 3.29.1:

93216a54 Update gpu_mod@c815fd3

Version 3.29.0:

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

Version 3.28.12:

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

Version 3.28.10:

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

Version 3.28.9:

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

Version 3.28.8:

0af95302 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.
5906c227 Replace in matfaust/pyfaust.Faust.real/imag the [I_n ; 0_n] factor by a column slicing F[:, :n].
ce48a150 Exclude *cplx2real_op symbols from doxygen doc.
c0e6e89c Complete pyfaust.Faust.astype for complex to float32 dtype conversion using Faust.real.
d66297fb Add unit tests for matfaust.Faust.real/imag.
7529f302 Rewrite matfaust.real/imag as done for pyfaust in e2139a44.
40aa33c1 Add unit tests for pyfaust.Faust.real/imag.
6ab93b63 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:

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

Version 3.28.6:

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

Version 3.28.5:

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

Version 3.28.4:

4008fc9f Document pyfaust.toeplitz/circ/anticirc with examples.
9f053a46 Filter out internal functions from API doc.
1ebbe720 Document matfaust.antircirc and hide internal outputs.
fc3cd5dd Verify that c argument of matfaust.circ is a numerical vector.
281d8dfc Document matfaust.circ with an example.
527f0b9f Complete matfaust.toeplitz doc with an example.
4ca01cc2 Verify matfaust.toeplitz r and c arguments and allow to pass indifferently a row-vector or a column-vector.
a579cbde Verify matfaust.toeplitz r and c arguments and allow to pass indifferently a row-vector or a column-vector.
999ecd41 Fix missing matfaust version in fourth livescript.

Version 3.28.3:

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

Version 3.28.2:

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

Version 3.28.1:

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

Version 3.28.0:

06a6e4a9 Add another fix to libomp not loaded for macOS pyfaust python package (using install_name_tool)
b2f05a22 Add Faust.real(), Faust.imag() and update pyfaust.dst/dct/Faust.astype with real.
bef8d562 Add pyfaust.dst and its unit test.
1e1d2f53 Add matfaust.dct + its unit test.
92a5bc0f Update conda pkg build & upload script for Windows.
c9aa155a Add some precisions in system package install guide.
bd9f0434 Update pyfaust install in virtual environment guide for Anaconda packages.
fb2d930d Fix windows too long filepath bug introduced by cc5488f1 (issue #270).
7c82d4c5 Fix missing dvp.m and normalizeCol.m utility scripts in macOS and linux pkgs (mandatory for the BSL demo).
939db99f Update/Review 'Using the FAµST API in Algorithms' livescripts and notebook.
f8b4438e Add conda pkg building and uploading script.
c48d6272 Review/Update Faust manipulation livescript and notebook.
f2acc84e Hide output in matfaust.Faust.conj.
9ea1de18 Add a unit test for pyfaust.dct.
dd3c1db5 Add pyfaust.dct.
eaab198a Update/Correct the 'Faust creation' live script.
85259cae Correct grammar error (information is uncountable) and other minor change.
a8df125e Add unit tests for matfaust.circ/anticirc/toeplitz.
b7d44dd6 Add matfaust.toeplitz + related changes in matfaust/pyfaust doc.
946b8b32 Add matfaust.circ/anticirc functions, to the doxydoc too and update their code code in pyfaust too.
6a1fa04a Prefix filename by parent package for matfaust modules/functions to avoid conflict (e.g. same function names in two different matfaust sub-packages).
c099fda2 Add pyfaust.toeplitz and its unit test.
2c3a4546 Hide sliceMultiply and indexMultiply from doxygen doc as they shouldn't be used directly by users.
d2fdc06b Add pyfaust.circ and anticirc along with their unit tests.
55599cc4 Complete the pyfaust.Faust.right/left unit tests with transpose and ajdoint cases.
39bd6a0d Fix TransformHelperGen::left/right functions in transpose and conjugate cases.

Version 3.27.2:

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

Version 3.27.1:

ce69f1af 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.
62a4cbcb Add a FAQ entry about F[I, J] operation that is not supported in pyfaust.
9272413a Minor correction in faq entry.

Version 3.27.0:

e3bbc207 Fix erroneous assertions in TransformHelperGen::init_fancy_idx_transform.
04649f57 Add a FAQ entry about Segmentation Fault error when using pyfaust and torch in the same script on Mac OS X.
0a349233 Add new unit tests for pyfaust lazy slicing/indexing.
f309e53b Fix regression due to d99715f8 which prevent F[::step, J] or F[::step, I] to be handled in pyfaust.
11551f37 Set python3.9 for default version of revision/release whl packages and 3.10 for extra version.
3de9589c 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.
39017bf2 Add Slice assignment operator.
8de9a16f Prevent trying to compile TransformHelper::indexMultiply/sliceMultiply and MatSparse::eigenIndexMul when the Eigen version is used is older than 3.4.
75cf8d04 Add scipy namespace.
3bd15f2d Update MatSparse::get_rows with the scipy method to be consistent with get_cols last update.
8ac7844f Optimize MatSparse::get_cols using scipy method for slicing columns (as it works faster).
d92ae5af Don't allocate two buffers in Transform::multiply if the Faust has only one factor.
1c8a89aa Optimize Faust row/column indexing by avoiding to convert a full slice ':' into indices.
d315ff27 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).
d0b1f4b3 Fix issue #263 compiling error of TransformHelper GPU2.
cf5be245 Display a warning when the numpy array to multiply is not in column-major order.
834f30db Add TransformHelper::indexMultiply prototype that avoid copies by writing directly in the output buffer (update the pyfaust wrapper consequently).
34ca4e72 Fix Faust::TransformHelper::<FPP, GPU2>::init_fancy_idx_transform (issue #262).
2e465ed2 Fix issue #260 Windows compiling error because of older Eigen version (doesn't know Eigen::placeholders, Eigen::all).
bb1a5d11 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.
2a60bfed Implement Faust lazy row/column indexing with indexMultiply optimization in case of dense CPU Faust.
f6989772 Handle Faust-matrix mul in TransformHelper::indexMultiply (in addition to Faust-vector mul.) and update the pyfaust wrapper consequently.
45e9e633 Update pyfaust.Faust.indexMultiply wrapper to handle both dimensions in indexing.
391108cb Update TransformHelper:::indexMultiply (wasn't complete in 69a988c6).
635f0fcd Fix MatDense::eigenIndexMul (mixup of cols_ids and row_ids)
dc0a3702 Manage indexing for the two dimensions in TransformHelper::indexMultiply and fix bugs in MatSparse::eigenIndexMul.
0331c9c9 Add MatSparse::eigenIndexMul.
e5e18509 Add MatDense::eigenIndexMul.
c8183a97 Update indexMultiply in pyfaust wrapper and C++ core to index only the Faust columns (not the vector).
e1ca0733 Fix a bug introduced by 5676f1 in TransformHelperGen::eval_sliced_Transform.
654bad84 Reduce the number of copies in TransformHelper::multiply (for Faust-vector mul).
9266ea7b Update Vect::multiplyLeft to handle adjoint matrix case.
95ad86dc Add the indexMultiply C++ def (yet to implement) in the pyfaust wrapper.
0e0d1081 Use the optimized def of eval_sliced_Transform for GPU too (but lazy slicing is left for later).
7d155e21 Handle complex conjugate and adjoint in sliceMultiply C++ core and pyfaust wrapper.
1b987e23 Update sliceMultiply in C++ core and pyfaust wrapper to reduce the number of copies.
a6046153 Handle successive virtual slices made in a row.
e839ca5c 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.
3c950986 Modify sliceMultiply to take the vector as is (without vector slicing, the callee must send a vector of the proper size).
5071aff0 Add Slice::size().
f4a25744 Update the pyfaust wrapper of sliceMultiply next to 04a157b6 modifications.
3e1dea1b Generalize sliceMultiply to handle the case when a slicing of the Faust is made on both dimensions.
ee2b0c4a Implement lazy slicing for TransformHelper<FPP, Cpu>.
aa127e10 Simply/Optimize eval_sliced_Transform for the CPU case.
8f26223c Add Slice::display().
5d107ed8 Add python wrapper to TransformHelper::indexMultiply/sliceMultiply into pyfaust.Faust.
3368b4ac Add TransformHelper::indexMultiply.
2b2907c1 Add TransformHelper::sliceMultiply.
1eb69e8e Document matfaust.Faust attributes.
f96d49e2 Review Faust.rcg and Faust.pinv API doc.

Version 3.26.7:

44821b99 Update/review Faust.optimize/optimize_memory/optimize_time/pruneout API doc.
b87c789a 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.
02ef9229 Review/Update matfaust.Faust.numel/numfactors (also add alias length) and pyfaust.Faust.size/numfactors (which already has its len alias).
00003970 Review/Update Faust.normalize doc and remove debug outputs in mex code.

Version 3.26.6:

2c73a6eb Minor typo.
1d2cd5b2 Document and implement matfaust.Faust.double wrapper with its mex C++ code.
bf54d2e8 Review/update doc of Faust.nbytes, Faust.nnz_sum.
baeac4a3 Fix matfaust.Faust.factors when the factor is a single (precision) sparse matrix.
acddaccb Fiter out <code> tags in matlab inline doc.
8507ae96 Update/review pyfaust.faust.__matmul__, __mul__, __rmul__ doc and remove deprecated code.
5e42fbc6 Review/update matfaust.Faust.mtimes doc.
37b0caa9 Review/update Faust.+ Faust.- doc.
80870101 Review/update pyfaust.Faust.matvec doc.
754c6e04 Review/Update Faust.save/load/load_native functions doc.
60e38727 Review/Update Faust.left/right functions.
01a64f02 Review/Update matfaust.Faust.isreal doc. Rename isReal attribute to is_real to avoid confusion with function in doc gen.
303e1e71 Update/Review Faust.issparse doc. and make possible to consider BSR matrices as sparse matrix too.
953f7edc Review/Update Faust.isdense doc.
7e10ccf8 Fix matfaust.Faust.imagesc (deprecated matlab suptitle function) and review its doc as well as pyfaust.Faust.imshow'.
3247533d Document matfaust.Faust.get_handle.
d214998a Review/Update pyfaust.Faust.toarray/todense, matfaust.Faust.full doc.
dcf6685a Review/update Faust.factors doc.
e2cf4167 Review/Update matfaust.Faust.end.
d12fbf98 Review/update pyfaust.Faust.display.
f23edada Review/Update Faust.device doc.
766c4d53 Review/Update Faust.density doc.
bb4b23ec 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).
0facdb80 Review/update pyfaust.Faust.astype doc.
835149fb Review/Update Faust.clone doc and argument parsing.

Version 3.26.5:

ecbc3f06 Review pyfaust dtype and matfaust class functions.
61c694ad Review Faust constructor API doc.
cf1d1555 Fix issue #253: is_gpu_mod_enabled symbol conflict with Faust package.
a2a8f95e Review matfaust.create_bsr().
ae3ea9c8 Review matfaust/pyfaust.dft doc.
6f6e033b Review matfaust/pyfaust.eye doc.
83507e9d Replace use of deprecated class matfaust.ParamsHierarchicalSquareMat by ParamsHierarchicalWHT in ParamsFactFactory.
14e81fad Add missing matfaust.is_enable_gpu an update doc in both pyfaust and matfaust.
05a4dd99 Review isFaust doc.
8bdadf48 Minor change in license files.
1d57e518 Minor fix in pinv code and doc.
25045f20 Update/enhance matfaust/pyfaust.rand doc and options parsing.
faa8038b Add sanity checks, warnings and review the doc of rand_bsr.
37dc9af1 Exclude symbols about libomp loading in pyfaust from doxygen doc.
613c9975 Review Faust concatenation functions doc.

Version 3.26.4:

346761b8 Review wht doc.
a5001352 Add pyfaust/lib/libomp* to the list of installed files (it is needed for macosx).
68a0545f Set pyfaust package to numpy==1.22.
b49071d6 Disable .dmg package creation in pkg_macos_release ci job.
ec809c2a Update parameter parsing and doc of ParamsHierarchicalRectMat + fix missing ceil in matfaust structure.
109425a8 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.
c1fae822 Enforce same version of python for pkg_macos_purepy_pkg and test_macos_purepy_release jobs.

Version 3.26.3:

8efc7c27 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:

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

Version 3.26.1:


Version 3.26.1rc0:


Version 3.26.1rc1:

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

Version 3.26.0:

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

Version 3.26.0rc0:

4c541449 Update CMake script to add faust_MatBSR_gpu.cpp.in files to the building process (missing commit).
8c6ca58d Fix GPU2 MatBSR::setZeros, the def is a template specialization not a template function.
64c24abb Temporarily disable pypub and pages jobs for testing release packages without publishing.
3539cf4b Implement TransformHelper<FPP,GPU2>::push_back bsr factor prototype.
9568ff61 Update Transform<FPP, GPU2>::to_cpu for MatBSR<FPP, GPU2> and update to gpu_mod@1ec8077.
72bc1779 Add MatBSR<FPP,GPU2>::to_dense and its unit test.
0636f298 Implement GPU2 TransformHelper::randBSRFaust + its unit test and modify push_back to handle BSR factors appending.
3e654bb3 Move MatSparse<FPP, GPU2> from .cpp.in to hpp file because it's not a template specialization.
31ff52ec Implement MatBSR::clone/Clone, ctor copy and add their unit tests.
b2147f1b Implement MatBSR<FPP, GPU2>::get_nrows/get_ncols and add their unit tests.
0b8575dd Implement MatBSR<FPP, GPU>::getNbRow/getNbcol/getNonZeros/getNBytes/getDevice/norm/setZeros and their unit tests.
f5a7f449 Fix MatBSR<FPP, Cpu>::transpose for complex case (it was adjoint instead of transpose).
2ad805e4 Implement MatBSR<FPP, GPU>::adjoint, conjugate and add their unit tests.
f5d6c44f Implement MatBSR<FPP, GPU>::transpose and add its unit test.
56dd0403 Minor changes in MatBSR<FPP, CPU> (MatBSR::print_bufs and std::move in BSRMat::rand return).
afe154b4 Add MatSparse<FPP,GPU2>::to_bsr and an associated unit test.
2decb3c5 Add a default ctor to MatBSR<FPP, GPU2> and implement set_gpu_mat_ptr.
a4829ee2 Add MatBSR<FPP, GPU2>::to_sparse and its unit test.
77281694 Update to gpu_mod@d7cb67c.
8ba17fa5 Implement MatBSR<FPP,GPU2>::multiply(Vect<FPP, GPU2>&) and add a unit test.
b8f56d2b New ctor Vect<FPP,GPU2>(Vect<FPP,Cpu>&) (copy from CPU vector).
6c14bf7e Fix Vect<FPP,Cpu>::mean_relative_error: avoid nan when zero is encountered in both vectors.
d2a1ee2c Fix MatBSR<FPP,Cpu>::multiply: the resulting vector wasn't resized.
5ccef30f Add MatBSR<FPP, GPU2>::multiply(MatDense<FPP, GPU2>) and its unit test.
e9dbefaa Fix non-declared symbol (BSRMat) in Faust::Transform<FPP,Cpu>::multiply.
e6d9ea51 Add GPU MatBSR CPU-GPU round trip test.
41106267 Add GPU MatBSR (class skeleton + few implementations: instantiation and tocpu func.).
e93f86ee Integrate BSR GPU(_MOD) function structure initializations and getters into faust_gpu_mod_utils module and update to gpu_mod@e37ee8a.
608071e2 New constructors to MatBSR and buffer read-only access member functions.

Version 3.25.10:

bbc8e6d6 Complete the documentation of matfaust.fact.hierarchical with examples of factorization withouth constraints on residual factors (proj_id).
909af32d Add matfaust.factparams.ParamsHierarchicalRectMatNoResCons and integerate it to ParamsFactFactory.
12631ecb Minor changes in matlab doxydoc gen scripts.
4e0a79f2 Simplify pyfaust.ParamsHierarchicalRectMatNoResCons by refactoring in parent class.
2d1bb4c3 Increase test timeout time (macOS VM can be very slow).
d67b3682 Add matfaust.factpararms.ParamsHierarchicalWHTNoResCons and adjust pyfaust counterpart doc.
999a03f1 Fix ConstraintMat::project, is_constraint_name_mat() and get_equivalent_constraint() about identity projector/constraint.
fc6baab2 Add matfaust.factparams.HierarchicalParamsNoResCons with doc and example.
aced5639 Add matfaust.ParamsFact.get_constraints (equivalent to pyfaust get_constraints).
1cfba84a Fix minor bug typo in matfaust.ParamsHierarchical.to_mex_struct.
f21d637a Add matfaust.proj.proj_id.
1f2779fe Rename pyfaust *ConsSimple* params class to *NoResCons* (more explicit).
8c8f1e01 Add/use ParamsFact.get_constraints to simplify/unify pyfaust.proj.proj_gen to pyfaust.factparams.ConstraintGeneric in ParamsHierarchical and ParamsPalm4MSA.
72815a6d 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.
86bc266a 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:

255d58b8 Disable Faust::TransformHelper matrix chain optimization when the Faust is only one factor long (it fixes by the way some error on GREEDY_* methods).
41a2f966 Fix hierarchicalFactorization_double/float C++ test (lambda value).
3c2fc13b Fix TransformHelperGen::get_fact_type which was buggy in case of transpose Faust.
2baef604 Fix test_pyFaust_time.py.
41b6da16 Fix test_pyFaust.py and pyfaust.demo.quickstart, pyfaust does not permit to use int dtype.
186299d5 Remove float32 part of Faust.load_native unit test because this type is not enabled in revision builds.
2bb16f4d Matlab test scripts.
fd07cf24 Fix C++ complex sparse matrix copy from matio var.
9e65c422 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.
36db4f1f Fix complex MatDense data reading from matio variable.
d78b418f 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).
80998e6a Fix MatDense::from_matio_var bug on complex date.
4a616ffd Fix tested error messages in test_matlab_faust2.m.
200eb5dd Fix hierar_fact_test old test script/mex API (new constraint attributes needed -- pos and normalized).
e58ebd64 Fix one-factor-loading from .mat file (C++ Transform::get_mat_file_type error).
29655663 Return to HTTPS for CTest-CDash (because HTTP doesn't work) but stop verifying (at least temporarily) the certificates to use HTTPS (curl options).
681ec31c Fix matfaust Faust-matrix multiplication in case of tranpose Faust.
9f59d964 Fix three bugs in Faust-vector matrix.
a93e3caa Fix TransformHelper<float>::pack_factors() unit test.
a99ab70d Fix C++ prox_blockdiag unit test.
b9f0fe5c Fix issue #251: windows compilation error because of a double-to-enum cast.
80b2f4b2 Fix several matfaust factorization algorithms unit tests.
76030b50 Fix matfaust fgft_palm: ignored normalized and pos parameters for constraints and also step_size and grad_calc_opt_mode.
8900eeee Handle missing parameter grad_calc_opt_mode in matfaust ParamsHierarchical and associated mex code for the hierarchical algorithm.
ca122d91 Display used parameters in HierarchicalFactFGFT ctor if verbosity enabled.
00fe9028 Fix syntax error in matfaust.factparams.ConstraintMat.
e71bcc60 Fix matfaust.Faust testProdOpt unit test.
ac2f46da Update researchers contributors list.
997bc7a5 Fix pyfaust.Faust.__add__ when the Faust is complex (test_Faust.testPlus/testMinus tests are green).
4d1082f7 Fix unit tests about pyfaust.proj.* and pyfaust.factparams.ParamsPalm4MSA.
7e73fbb0 Fix a bug in pyfaust.fact.fgft_palm caused by fa991b69.
50a94e93 Fix issue #250, matio helper functions not found because of recent move of them to the Faust namespace + one typo.
33a38c44 Fix issue #249: Windows VS linking error, missing symbol faust_matio_read_variable (located in src/utils/matio/* modules).
5098dadf Integrate matfaust.Faust.load_native for loading .mat files (using C++ recent code instead of matlab Faust.load).
23c65653 GPU code compatibility for read_mat_file in C++ core and pyfaust wrapper pyx code.
0d9bfd76 Update Transform::read_from_mat_file the Faust nnz after reading the factors in .mat file.
92370714 Add a unit test for pyfaust.Faust.load_native().
de660bc1 Add pyfaust.Faust.load_native (wrapper to load a Faust from a .mat).
a27e0f67 Faust::Transform(Helper)::get_mat_file_type.
264f0afd Add fix float real sparse matrix read in .mat + exception instead of exit in case of error.
9f46fb4b Unit test for Faust::Transform(Helper)::read_from_mat_file().
a57e9725 Implement Faust::Transform(Helper)::read_from_mat_file().
5060abc7 Add faust matio module in include directories of the python wrapper building script.
062941a1 Add C++ .mat backup/restore test of MatDense and MatSparse.
f58068f8 Implement MatSparse::from_matio_var, read_from_mat_file and save_to_mat_file.
8b6c0292 Switch temporarily to HTTP because cdash-ci.inria.fr certificate has expired.
69315a05 Refactor matio module.
cb5f4912 Implement MatDense::from_matio_var, read_from_mat_file, save_to_mat_file and update Mat*::toMatioIOVar to allow specifying a matrix variable name.
6dfbe0ee Minor fix in pyfaust unit tests (hierarchical and skperm) because of recent changes (default argument values etc.).
7ac3684f Fix _palm4msa_fgft (unit test green).
9758944f Remove unused C++ constructor in Faust::Params.

Version 3.25.8:

9adbf6eb Add matfaust.factparams.ParamsPalm4msaWHT (same as the one added for pyfaust by 7add1321).
e4627a9a 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).
79c916ef 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).
68c90509 Update cpp ConstraintGeneric Display and add pos/normalized getter.
c0382679 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).
c02dbdf3 Handle more uniformly/generically the setting of normalized and pos attributes of matfaust.factparams.Constraint* classes
0fae63ec Add pyfaust.factpararms.ParamsPalm4msaWHT to factorize a Hadamard matrix using SKPERM and add the Tung paper reference in the doc.
200d3a81 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:

cbfc66aa Fix SKPERM infinite loop (issue #248).

Version 3.25.6:

5db6d40c 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.
b51b989d Update pyfaust.fact.palm4msa and hierarchical and C++ core to take into account the pos(sitivity) and normalized attributes of pyfaust.proj.proj_gen.
d928fe84 Enhance pyfaust.proj.* and pyfaust.factparams.Constraint*
e5c977eb Specify key argument names to avoid confusion between arguments of ConstraintMat ctor (especially since the recently added shape optional argument).

Version 3.25.5:

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

Version 3.25.4:

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

Version 3.25.2:

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

Version 3.25.1:

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

Version 3.25.0:

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

Version 3.24.2:

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

Version 3.24.1:

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

Version 3.24.0:

2fa6ebaf Add simplified pyfaust.fact.hierarchical parameterization structures: ParamsHierarchicalSimple, ParamsHierarchicalWHTSimple, ParamsHierarchicalRectMatSimple and the related documentation.
751754c5 Bind the C++ prox_id into pyfaust.proj.proj_id + doc.
74101a38 Minor change.
8ddb8387 Add prox_id for CPU, GPU in default and MatGeneric versions.
33b0445d 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.
864074a6 Fix typo in pyfaust.fact.butterfly doc.
55d164e9 Add a unit test for ParamsHierarchical.are_constraints_consistent (sucess and error cases).
d9feb1c2 Add a unit test for ParamsPalm4MSA.are_constraints_consistent (sucess and error cases).
a7493c23 Add pyfaust.factparams.ParamsHiearchical.are_constraints_consistent and use it in pyfaust.fact.hierarchical as it was done for PALM4MSA by 043de22d.
6231eab5 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).
9b65ac32 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.
afa81eb7 Apply more properly the BUILD_EIGTJ_SVDTJ cmake option by ignoring related pyx code in python wrapper compilation.

Version 3.23.2:

2be2c901 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).
4d2def11 Update MatBSR::BSRMat::rand() to generate complex matrix with nonzero imaginary part when the scalar type is complex.
aaa148fd 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:

9b68582a 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:

36f670b8 Add a test for pyfaust.Faust.factors when the Faust contains BSRMat-s.
3dcc8abd 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)
80dfd2eb Fix two bugs in MatBSR: in copy_bdata and BSRMat::operator=.
2fee72eb Implement Faust.factors for returning scipy bsr_matrix (update in pyx/C++ core code).
ae202127 Decrease the release packages ci expiration time to 1 year.
5f369543 Update GPU2 C++ core to follow CPU TransformHelper/MatDense/Matsparse::to_real changes made by 4fa8fbf9.
9b80a412 Add a new FAQ entry about using single/float sparse matrices in Matlab which doesn't support them natively.
71f0ea95 Implement matfaust.Faust.single to convert double Faust to float/single Faust.
f2080128 Add more information when MatBSR matrix is displayed: size and number of nonzero blocks.
4a8add51 Remove old unused PALM4MSA 2020 implementation (cf. issue #244).
72be7706 Update Faust::power_iteration to workaround Faust::Transform<float> NaN eigenvalue (due to zero eigenvector approximate) by recomputing the power_iteration in double precision.
6dbf00f8 Remove now useless called regarding deleted old_matlab tests/directory in cmake files.
e14b697f Remove wrapper/cmdline but keep matio module in src/utils/matio, update CMake scripts accordingly.
3719c3ad Remove wrapper/matlab/old_matlab (Luc's PALM4MSA/hierarchical pure matlab impls) and update tests accordingly.
cde62bc4 Update Faust::power_iteration by defaultly using random vector initialization and always the same seed for reproducibility.
a5a58eac Remove embedded libxml and matio archives for unix, they are easily installable directly from this type of OS.
86ab27f5 Fix issue MSVC compiling error (issue #243): out of space memory. Using older version of eigen (3.2.8 instead of 3.4.0).
8616f34a Fix issue #232 M_PI not defined on MSVC.
de303a41 Remove OpenBLAS windows binary package in the next to linux removal (49079e78).
52784b4c Remove repo. embedded Eigen library zip for Windows, download it if needed (updating by the way to 3.4.0).
1233256b 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).
ef25da67 Update Faust::dynprog_multiply to handle BSR matrices with specific product cost calculation.

Version 3.22.0:

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

Version 3.21.0:

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

Version 3.20.0:

ccbac495 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).
af9b2a87 Add template function helperCreateNumMxArray to refactor FaustVec2mxArray and FaustMat2mxArray.
3b4dbdd8 Disable pytorch-Faust class experimental code by default (new cmake option to enable/disable it un pyfaust).
7ce649e2 Fix two bugs in matfaust.susbref (getitem part) due to a past refactoring and since getitem (through slicing) optimization.
045c6878 Strengthen the matfaust.Faust constructor handling of different type (real/complex) and precision (single/double) of input factors.
fa22f1f4 Fix mex newMxGetData added in cd72e390.
43a48e29 Enforce index buffer types of matfaust BSR matrix cell to int32 (as in C++).
41911a16 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.
dc2132f0 Minor fix in matfaust.factparams.StoppingCriterion.display.
1a919b68 Add an help function to access mxArray data in FaustMat2mxArray when interleaved complex API (R2018a) is enabled (#3).
1d5cc280 Add matfaust PALM4MSA 2016/2020 unit tests.
bb39efc2 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.
57d08b13 Add alternative mex code compatible with R2018a interleaved complex API (#13).
f05149a4 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:

7fe18e4d Add C++/Python/Matlab unit test for BSR Faust save in .mat file.
57f5a6cd 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.
572660a3 Minor change in matfaust.create_bsr.
c75d5706 Fix mex new_faust wrong size of created MatBSR browptr buffer.
905c8412 Fix typo on class type in MatDense::toMatIOVar (introduced by 6224728).
5b4d0c15 Add pyfaust.Faust.load to refactor .mat file Faust loading from ctor and handle BSR matrices.
c9b9ef49 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:

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

Version 3.18.0:

108c5d75 Fix GPU2 mex error in BSR Faust creation.
d2f33478 Add the BSR matrix support to matfaust.
77cc63c1 Fix multiple errors in gemm_gen function which was modified recently to handle MatBSR A or B arguments.
d2ad6ca7 Update pyfaust.Faust ctor doc, primarily to mention bsr_matrix support.
063ab5a8 Authorize to define a pyfaust.Faust with COO sparse matrices (auto-converted to CSR matrices).
dbe44ab9 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.
fb24cd0d 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:

134546a2 Update the FAQ fifth entry.
d89f2cf2 Update credits section of the doc.
c709c035 Fix typo in FAQ.
03383b11 Add BSR pyfaust benchmark script to the doc to make them public.
8b656854 Add benchmark and plot scripts for BSR Fausts.
851750ce Add a pyfaust unit test for BSR Fausts.
f4471fcd Undo 0d3341fe experimental change of power_iteration.
4966213e 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.
1dd6fae3 Update Faust::Transform<FPP,Cpu>::multiply(const FPP* A,...) (multiply without operand copy) to be compatible with BSR Fausts.
a78b0576 Add BSRMat::apply_op to factorize adjoint and transpose methods.
90909b47 Update the pyfaust wrappers to allow scipy BSR matrices in Fausts.
5717763e Fix stack variable reference returned in MatBSR::operator(int,int).
a0231327 Fix multiple details in MatBSR and unit tests to allow non square BSRMatrix and non square nonzero blocks.
caf0a023 Fix MatBSR::containsNaN unit test and re-enable MatBSR::operator(int,int) unit test.
ffa51e14 Fix MatBSR::operator(int,int).
79065943 Add a new unit test for randBSRFaust and benchmark pure BSR Faust compared to pure Sparse/Dense Faust.
6af46c9f Fix BSRMat::to_sparse.
6c10a869 Update Faust::TransformHelper (CPU): new random generation randBSRFaust, update convertToDense/Sparse for BSR matrices and refactor getNBytes by using MatGeneric::getNBytes.
ec0b97bf Update gemm_gen to handle MatBSR too.
ce8e8d2a Add MatDense<FPP, Cpu>::update_dim.
7642d3c8 Add a first test of a Faust containing a MatBSR.
476e00ff Add MatBSR unit tests for get_cols, get_rows, containsNaN, operator(int,int) and to_sparse.
f20d12f8 Update MatBSR: new ctor, get_cols/rows signature fix (id type), new to_sparse function.
8377d375 Correct the constness of MatGeneric/MatDense/MatSparse/MatDiag::containsNaN and simplify their defs by using eigen hasNaN.
df26aea1 Add unit tests for MatBSR::transpose, conjugate, adjoint, getNonZeros, getNBytes, operator*=(FPP), get_col.
3370290f New member functions for MatBSR: getNBlocks, getNbBlockRow/Col, getNbBlocksPerDim + fix get_col.
9967376c 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).
4101985c Add unit tests for MatBSR (multiply(MatDense), multiply(MatSparse), faust_gemm).
cd0a40ad Implement MatBSR::faust_gemm and fix MatBSR::multiplyRight.

Version 3.16.0:

f72df61f Patch the PALM4MSA 2020 C++ implementation to correct the float 2-norm resulting in NaN by recomputing them exceptionally using double precision.
3c7f798d Fix MatBSR::multiply(Vect&, char) signature (no optional argument) and implement 'Vect MatBSR::multiply(Vect&) + its unit test.
d8721629 Fix MatBSR::transpose signature and MatBSR::Clone + Add unit tests for MatBSR 1-norm, Clone, multiply(Vect).
666c1fd4 Add the new matrix type MatBSR with its uncompleted test (test_MatBSR).
dd40bbea Fix issue #235. VS linking error: multiple TransformHelper::real symbols.
814c6776 Fix issue #234 about GPU2 MatDense and MatSparse constructor calls ambiguity in faust_TransformHelper_gpu.hpp.
0c971655 Minor change: exception message for forbidden use of pyfaut.Faust * operator.
710a013c 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.
69d6c949 Implement MatSparse<GPU2>::real, updating to gpu_mod@748e3c9.
6698f877 Rename ParamsHierarchicalSquareMat to ParamsHierarchicalWHT but keep the former available (as a deprecated class) in matfaust and pyfaust (issue #208).

Version 3.15.0:

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

Version 3.14.1:

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

Version 3.14.0:

556ca9bb Disable temporarily the linux pyfaust-torch package gen ci jobs.
01f64a78 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:

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

Version 3.14.0rc0:

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

Version 3.13.0:

f2d09bc3 Add a ci job for testing pyfaust_openblaso whl package.

Version 3.13.0rc2:

30dc0817 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:

39401037 Add a new gitlab CI job to generate an OpenBLAS-OpenMP enabled pyfaust whl release package.
50683f58 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.
9b669436 Disable verbose mode of libomp loading.
14c096f7 Minor fix: update hierarchical calls in tests to follow (no_normalization) signature change.

Version 3.12.0:

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

Version 3.11.1:

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

Version 3.11.0:

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

Version 3.11.0rc3:

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

Version 3.11.0rc2:

baf9fc10 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:

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

Version 3.10.0:

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

Version 3.9.1:

34d00676 Update/Review Faust projectors jupyter notebook.
cc820941 Update/Review Faust factorizations jupyter notebook.
26dfb7d1 Update/Review Faust optimizations jupyter notebook.
6065c635 Update/Review Faust manipulation jupyter notebook.
be427ab9 Fix issue #224 by choosing explicitely the R2017b API to build the mex tools code.
eca6b81d Review/Update Faust creation jupyter notebook.
97a761b2 Update FAQ entries about CUDA to take into account CUDA 11 (in addition to CUDA 9).
75252595 Switch default enable_gpu_mod to silent mode.
97e60989 Extend pyfaust.Faust.astype to support Faust conversion from/to float32 dtype.
f6e20a69 Update pyfaust.Faust.concatenate for dtype consistency.
ffc0d012 Update pyfaust.Faust ctor to handle missing Faust creation by float array list on GPU and secure Faust dtype consistency.
a2d748ee 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.
f52a2030 Update matfaust.Faust ctor to auto-convert factors passed as arguments for type precision consistency (all factors must be of the same matlab class).
3efd830c Hide matfaust.poly.calc_coeffs from doxygen doc as it's a private utility function.
39b8946e Add a note in matfaust.Faust.factors about the fact that float sparse matrices are not supported by Matlab.
5a9d3f64 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:

3cc14b1e 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).
95ac184a Update matfaust.Faust.
26fa14ce Fix wrongly allocated nonzero array in transformFact2SparseMxArray.
11ea5eb8 Add code doc for dev (gpu) param of matfaust.dft.
ec598fd6 Update matfaust.eye to support CPU and GPU float type.
aa9f822f Update matfaust.wht to support CPU and GPU float type.
ce811c09 Update mexHierarchical2020_gpu2.cpp.in to support GPU float in matfaust 2020 hierarchical.
7c21e3b2 Add support of GPU float type to matfaust.fact.palm4msa.
b3ee387b Update Faust.complex to support GPU float Faust.
06b7e435 Fix typo in matfaust.Faust.call_mex in mexFaustGPURealFloat call.
ba101df2 Fix dtype argument parsing of matfaust.rand.
b0346a91 Update matfaust.enable_gpu_mod function to manage multiple versions of gpu_mod (for cuda9.2 and cuda11.4).
834a8397 Update to gpu_mod@96cd28f.
e846f7f9 Support float scalar type for matfaust.poly.* functions.
c2395cb4 Add Faust.class method.
41684013 Support float scalar type for matfaust.proj.* functions.
4c9a700b Support float scalar type for matfaust.fact.palm4msa (2016 and 2020 backends), eigtj, svdtj and butterfly.
d634ebf9 Fix mexsvdtj (template) compiling error (issue #217).
77e4d815 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:

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

Version 3.8.0rc7:


Version 3.8.0rc8:


Version 3.8.0rc9:

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

Version 3.8.0rc6:

f4066405 Fix nullptr handle of gpu_mod library used for loading.

Version 3.8.0rc5:

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

Version 3.8.0rc4:

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

Version 3.8.0rc3:

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

Version 3.8.0rc2:

36f4271d Temporarily disable release package hosting on pypi or gitlab.
41784d08 Update to gpu_mod@8558039
4b6670d5 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.
87eedbd0 Fix erroneous gpu_mod library names in CMake script, setup.py and cython pyx code.
8c290f02 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
6dc021f3 Update ci jobs specifying which cuda toolkit to use for the build on Windows.
311b6cbb Update faust.nsi (win installer) to install cuda9.2 and cuda11.4 version of gpu_mod.
50731fd4 Integrate cuda (11.4, 9.2) multi-support in pyfaust/gpu_mod.
dbecefbf Use clang to build the pyfaust wrapper on Linux instead of gcc.
e2b02c6e Fix in PALM4MSA 2020 1) the float MEG factorization warning/error 2) NaN in the numerator and denominator of lambda.
b7943413 Allow to normalize a MatDense through another norm than Frobenius + add MatDense::nonzerosToOnes function.
28e85449 Minor fix in lambda isnan check.

Version 3.7.2:

78f27a65 Add support of float32 dtype for projectors (of pyfaust.proj) and review the doc.
507a35c0 Document pyfaust fact and poly functions about the dtype that can be float32 or double/float64.
f276b5a0 Fix dtype error in pyx code of polyCoeffs and polyGroupCoeffs.
7b1fa8a3 Add containsNaN functions in MatGeneric<Cpu> and subclasses.
9137b947 Connect the pyfaust wrapper functions svdtj, eigtj, poly.*, hierarchical/palm4msa 2016, to their float pyx code.
104426cb 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).
4ac31915 Update to gpu_mod@56a78ab.
8197677f Support float/double alternative for GPU pyfaust.rand.

Version 3.7.1:

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

Version 3.7.0:

0b7e3cde Temporarily disable ctest ci job.
f817ec99 Fix uninitialized (to nullptr) gp_funcs_ pointer leading to partial failure of gpu_mod library loading of functions.
e0b0f6b0 Temporarily use py3.8 linux rev pkg and disable pkg_linux ctest_matlab/python jobs
2f6ba091 Temporarily isable silent flag of enable_gpu_mod call in pyx.
45084e8e Fix compiling issue #214 on Windows VS.
a6fb389b Enable BUILD_FLOAT_PYX in pkg building jobs.
38505f3d Add to pyfaust the support of float on GPU (not tested yet).
347fe2b2 Minor change 2.4 FAQ entry.
b9158234 Adjust test_prod_opt/testProdOpt for pyfaust/matfaust because FaustMulMode.GREEDY constant has been deleted (the method is hidden).
dc591a4c Fix issue #213 (compilation error on Windows).
26ac24e2 Make float precision available to pyfaust algorithm wrappers but only on CPU.
2487f12d Update the faust_SVDTJ module for genericity.
8416d06a Add CUDA entries in the FAQ and reformat the document.
abd34faa Cast properly lambda/beta scalar argument in gemm calls to avoid non-consistent/non-defined calls mixing float and double types.
9d0fe010 Change the default template type parameter from float to Real<FPP> (more consistent).
b292ba9b Add advice to close Matlab before installing on Windows.
519f9ae1 Mention Inria RH in license.txt.
c5a337d9 Update install doc and add a faq entry.
119a5745 Enhance NSIS installer by using py launcher instead of python.
3c93d941 Make float precision available for pyfaust.Faust.wht, eye and rand.
512aef61 Update MatGeneric::get_scalar_type_str to be more precise than 'real' specifying 'float' or 'double'.
493daf5b 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:

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

Version 3.6.3:

bc4011c6 Fix Debian package name delivered matio static library.

Version 3.6.2:

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

Version 3.6.1:

0f7fd0a0 Add 'Faust optimizations' jupyter notebook and matlab live script and integrate them in the doxydoc and zip archives.
21f8311e Update MacOS X VM setup script.
8a9117ae Minor change in matfaust.Faust.optimize_time (preventing mat output).
cd034376 Minor changes in pyfaust code doc formatting.
97fb1c3f Minor fix: rename FAµST to FAuST in some strings to avoid issues on windows (utf-8 error).
4b6f8c08 Add hidden options (through environment variables) in PALM4MSA 2020 (no_lambda_error, use_grad1).
92349594 Minor change in backend argument documentation of palm4msa and hierarchical.
881d32d0 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:

89264855 Optimize C++ Transform::get_product (DEFAULT_L2R meth) and TransformHelper::get_product (for other methods).
38a28294 Fix dtype constraint in Faust.optimize_time constraint (F.dtype == M or S.dtype) and adjust the doc for matfaust and pyfaust.
a3c8870d Minor change in the MEG factorization C++ test (changing a preprocessor directive).
cf7ed28c 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).
4f9dd278 Update the DYNPROG meth C++ code to compute the product cost taking the sparse format into account.

Version 3.5.5:

70a6cf45 Fix and optimize C++ optimize_storage.

Version 3.5.4:

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

Version 3.5.3:

b39bab2c Re-enable pages and pypi_pub job.

Version 3.5.3rc1:

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

Version 3.5.3rc0:

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

Version 3.5.2:

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

Version 3.5.1:

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

Version 3.5.0:

fc805db3 Fix a bug in optimize_time/multiply; the faust-vector mul was overridding the Faust.toarray() test.
2c4c4311 Fix compiling issue of Faust::gemm_gen on Windows MSVC (issue #211).
64e024dc Update/extend faust_prod_opt module and its use; mostly adding the DYNPROG method.
bc6cdd85 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).
d645e691 Fix MSVC min/max macro confusing with STL numeric_limits::max (issue #210) in faust_linear_operator target.
6fdf1f7c Implement GPU MatDense::real() and add a unit test for it.
52c1efae Implement Faust::TransformHelper::real on CPU and bind it into the pyfaust.Faust.astype (issue #183).
1dfdfdf0 Add MatSparse::real(MatSparse&) and MatDense::real(MatDense&) functions.
0408aa1a Handle easily the excluding of faust_torch.cpp from cpp files to compile.
7a445c97 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:

586402f2 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:

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

Version 3.4.0:

ebce23d6 Minor fix in pyfaust.Faust.concatenate and and a new unit test for the concatenation of arbitrary number of Fausts, arrays.
f4351f2b Minor fixes and simplifications in Faust::Transform::norm* and MatDense::normL1.
33969a03 Change the default config of batch_size and full_array in matfaust/pyfaust.Faust.norm and update the doc consequently.
d1d87775 Document the new full_array and batch_size arguments of the pyfaust/matfaust Faust.norm function.
902eaae7 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.
3e7f60c1 Add Faust C++ is_all_sparse/dense and pyfaust matfaust bindings issparse isdense.
cfcdc93f Bind new arguments full_array and batch_size into matfaust.Faust.norm wrapper function.
430d889e Update the pyfaust wrapper to bind the Frobenius and Inf norms full_array and batch_size arguments.
f3a74f33 Add norm computation without full array for Inf-norm and Fro-norm.
8beb1ed1 Add new get_rows function overloads (refactoring others) in MatDense and normInf in MatDense and MatSparse.
327efe40 Check index of rows/cols in MatDense get_rows, get_cols functions.
5c045c5a Implement (in C++) a batch_size argument to compute the 1-norm of a Faust and bind it into the pyfaust wrapper.
ce83d746 Optimize MatSparse::get_cols()/get_rows() by removing the MatDense conversion and writing pure MatSparse operations.
c9b910ca 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()).
e41fdef0 Add an overload of MatSparse::get_col and refactor the other.
11658a8b Review header documentation of pyfaust/matfaust.Faust class.
aa258e63 Update to gpu_mod@746033d.
dbeaadb9 Fix a bug in pyfaust.Faust.astype, the device must be preserved when the Faust is type converted.
ee6c839d Update to gpu_mod@23ea61a.
45d918d5 Update to gpu_mod@ba21999.
b3c901e0 Update the developer oriented README for the python wrapper next to the major reorganizing/refactoring of code in previous commits.
cb83a488 Minor fix in pyfaust.tests sub-package.
f49a6a79 Refactor/rewrite the python wrapper (pyx, pxd, C++, cmake script) to make as generic as possible the CPU and GPU code parts.
d57ff957 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).
15e0c4e6 Add a FaustAlgoGen pyx class to enhance the genericity of the python wrappers (no code duplicates for complex and double).
ab72ce31 Fix slowness of PALM4MSA 2020 on Hadamard factorization compared to 2.5.46.
34ae006b 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).
453683e4 Add a module faust_linear_algebra with gemm and gemv (as in CPU equivalent module) relying on MatDense<GPU2> (now static) eponym methods.
f633a9a8 Use gemm_gen in palm4msa 2020 for computing the gradient.
f0eb6229 Add a new signature of multiply_order_opt_all_ends to work on MatGeneric.
ee44fc8b Add new signature of spgemm and gemm_gen functions to faust_linear_algebra.
6c160c5b Fix a segfault in PALM4MSA2020 when packing_RL == false.
82b65a0c Reduce noise in TransformHelper<FPP,Cpu>::set_FM_mul_mode where silent argument default value changed from false to true.

Version 3.3.1:

f1cce588 Add an example to hierarchical for the DFT factorization with matfaust or pyfaust.
9798d444 Add two unit tests for matfaust and pyfaust DFT factorization (factparams.ParamsHierarchicalDFT).
b8350fce Add unit tests for matfaust.fact.palm4msa/hierarchical_mhtp.
17047077 Add a unit test for pyfaust.fact.hierarchical_mhtp.
caff9e8e Add a bash script to count C/C++, Python and Matlab lines of code (useful for APP deposit).
500889df Add a unit test for pyfaust.fact.palm4msa_mhtp.

Version 3.3.0:

396f41ee Add matfaust.factparams.ParamsHierarchicalDFT simplified parameter structure to factorize a DFT matrix with matfaust.fact.hierarchical.
76cf1517 Add pyfaust.factparams.ParamsHierarchicalDFT simplified parameter structure.
5f62b8db Minor changes in pyfaust.tools.omp.
449afc4e Remove experimental flag on pyfaust/matfaust.fact.butterfly.
0b84d70b Add support of complex matrices in matfaust for the 2020 versions of PALM4MSA and hierarchical algorithm (CPU & GPU).
72efe2ae Force the factor_format to 'dense' for palm4msa/hierarchical 2020 when the matrix is complex.
6a918fc2 Fix GPU python wrapper of hierarchical2020 compilation error (issue #207).
8038559a Optimize update_lambda computing in C++ PALM4MSA 2020 by decreasing the number of matrix products needed to compute S full array.
f02508e5 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).
48b7a96c Minor changes in lambda and init_facts scalar type checking and conversion in palm4msa2020 and hierarchical2020 cython code.
f1890e07 Minor fix: calling the wrong wrapper of pALM4MSA if the numpy array is complex (2016 instead of 2020).
3680b4f0 Add support of complex matrices to hierarchical PALM4MSA 2020 (python wrapper and C++ core).
4fd095c9 Add support of complex matrices to PALM4MSA 2020 (python wrapper and C++ core).
c3097081 Minor change in GPU pyx code (remove unused dtype-s).
527bb189 Remove now useless entry about the float128 undefined numpy dtype on Windows VS env (because it was fixed in 3.2.14).
e7b8188d Minor change in the FAQ.

Version 3.2.14:

0c8c7595 Fix possible linking error in python shared library path to OpenMP library on macOS by editing it manually.
67009d6d Fix 2 minor bugs in complex part of the wrapper pyx code of hierarchical (2016).
e239f16a Add an entry in the FAQ (PALM4MSA failing on Windows when running on a complex matrix).
501d1e25 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:

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

Version 3.2.12:

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

Version 3.2.11:

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

Version 3.2.10:

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

Version 3.2.9:

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

Version 3.2.8:

dd03ef10 Try to fix issue #202 by using python os.system call instead of batch start/call.
778e6305 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).
581b43d8 Disable test_win_pkg_release because the call (or start) command blocks the job indefinitely. Renable the pypi_pub job.
3476db61 Adjust start use in test_win_pkg_release job.

Version 3.2.6:

c52f8f8a Add a test of the NSIS Windows installer.
79772305 Build an uninstaller for the windows NSIS installer.
cb0dd1a6 Add missing dynamic output CPU proxs (output: MatDense/MatSparse as MatGeneric). Update dynamic sp prox test.
eaa33a76 Set a default choice for MessageBox of NSIS installer when running in silent mode (non-interactive mode).
d45d6790 Update faust.nsi (NSIS installer script): don't edit matlabrc/startup.m if already configured for matfaust.
07f0e604 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).
6870d187 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:

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

Version 3.2.4:

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

Version 3.2.3:

da2798f3 Add a script to generate a package download page and call it in ci gitlab-pages job.
826e3af8 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:

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

Version 3.2.2rc3:

3f425f25 Upload packages on gitlab-pages (disabling pkg_upload job).
29e99c0c 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:

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

Version 3.2.1:

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

Version 3.2.0:

91b201e0 Fix MacOSX/Linux linking error with the function (in py wrapper) convPyxMHTPParams2FaustMHTPParams.
319ff6ef Add links to the MHTP tutorials in the doxygen main page + review of the doc (slight modifs).
0cf473a5 Add the pre-rendered HTML version of the MHTP live script.
a0d7c62e Add missing gpu argument in API doc for matfaust.fact.hierarchical.
291cb634 Add a FAQ entry about running PALM4MSA in step-by-step mode with pyfaust.
f7d8e360 Add a step-by-step PALM4MSA test python script.
51b2857d Ensure in the python wrapper that the initial factors sent to PALM4MSA (2016) are in column major order or fail.
32d8a384 Add the live script about the MHTP algorithm.
94f78ac0 Add a notebook about the new MHTP algorithm/functions and a HTML pre-renrendered version.
2c715435 Update the MHTPParams.__repr__ function (displaying all attributes).
3645ab9d Fix C++ mex/tests occurred because of function signature chnage since new MHTP.
f772b58b Add matfaust.fact.hierarchical_mhtp (mex, matlab function and API doc).
dd50067a Update Palm4MSA (2016 C++ impl.): adding functions get_RE() (relative error), and print_state().
650e45b3 Add matfaust.fact.palm4msa_mhtp (with underlying mex code and API doc).
606b2d82 Add matfaust.factparams.MHTPParams.
a5704842 Add pyfaust.fact.hierarchical_mhtp with its pyx and C++ code + Python doc.
bf96b5bf 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.
56394136 Add pyfaust.fact.palm4msa_mhtp (as experimental code), document this function and pyfaust.factparams.MHTPParams.
53a9aa39 Update/Refactor MHTP algorithm in its own module.
7900acf5 Update MHTPParams: refactoring the ctor in .hpp (initializing all the attributes), adding a to_string member function.
85c899cf Enable constant_step_size and step_size attributes of MHTPParams in PALM4MSA2020 (C++ code).
1caf5116 Add a MHTPParams structure both in pyfaust and C++ core (for all the MHTP algorithm parameters).
cf8e489d Implement MHTP in C++, accessible from pyfaust.
68a39325 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).
6ce2ec4b Fix issue #197 (windows compilation error introduced by c5496442).
62709c51 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.
299bda95 Refactor pip requirements list into cmake script and add auto-install commands in Windows NSIS installer.
a6bbb72f 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).
1c327a9c Minor changes in matfaust/pyfaust.poly code doc (dev argument) and useless 'if branch' (in pyfaust expm_multiply).

Version 3.1.3:

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

Version 3.1.2:

f25e4952 Add matfaust.poly.FaustPoly to uniformize the API (with pyfaust) and cleanup matfaust.Faust of matfaust.poly related methods.
edf70bd3 Update to gpu_mod@9936424.
28c5bd58 Add a FAQ entry about matlab path update issue.
9b306b6c 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.
961cc7fd Update GPUModHandler::get_singleton: switch silent argument default value from false to true to avoid flooding matlab with warning messages.
99aaaa04 Minor corrections in code doc (python and c++).

Version 3.1.1:

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

Version 3.1.0:

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

Version 3.0.19:

1285bb3d Mark poly modules as beta in pyfaust/matfaust doc.
bb4e6e03 Limit calls to astype in check_matrix/pyx code (to decrease the number of copies).
7bf2bee2 update setup.py by being explicit on the minimum numpy version needed to avoid ABI incompatibilities.
a1f56309 Add tradeoff argument to expm_multiply and invm_multiply both in matfaust and pyfaust.
abd3aed0 Optimize pyfaust expm_multiply by using the new out argument of poly.
b106c986 Optimize pyfaust/matfaust.poly.expm_multiply: avoid recomputing T*B for each tau.
17061642 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).
6c4a344e Enable GPU in matfaust.poly/invm_multiply/expm_multiply and pyfaust.poly.invm_multiply/expm_multiply.
f8f26bee Enable matfaust.basis native GPU impl (argument dev).
c07ea42f Fix issue #196: Windows VS error on Faust::MatDense<FPP,GPU2>::MatDense multiple conversions of instantiations in Faust::TransformHelperPoly (error C2666)
c260d23f Fix issue #193 (Windows VS bug on OMP TransformHelperPoly).
0d914533 Fix issue #195 and factorize the two overloads of TransformHelperPoly::multiplyPoly_gpu.
f2503ac4 Implement GPU version of multiplyPoly -- F*X and linear combination at the same time with X a vector or a matrix.
abb3686c Update Faust::poly C++ function to be able to compute the polynomial linear combination on GPU and enable it in pyfaust.poly.poly.
bf7cf6c1 Implement the GPU version of the TransformHelperPoly Faust-matrix polynomial specialized multiplication.
324fa67f Implement MatSparse<GPU2>::multiply(MatDense<GPU2>), Matdense<GPU2>::multiplyLeft(MatSparse<GPU2>).
196d0707 Enable the C++ GPU implementation of the FaustPoly multiplication into the pyfaust.poly module (basis function).
0c034cbe Implement the TransformHelperPoly Faust-vector polynomial specialized multiplication on GPU.
cd61c0db Implement c++ Vect<FPP, GPU2>::multiplyLeft(MatSparse<FPP, GPU2>).
f8e8eb29 Update to gpu_mod@8260c08.
99a7a152 Add matfaust.poly.expm_multiply with its documentation and other related minor changes.
c8881458 Add matfaust.poly.invm_multiply.
e5f22b9f Add the wrapper to multiplyPoly into matfaust.poly as done in 4fb300c1 for pyfaust.
27e97ad9 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).
407e2d83 Overload of slice in TransformHelperPoly.
56dbf3ea Optimize TransformHelperPoly::multiply(MatSparse) (Faust factor not created to compute the multiplication).
d8bdcab1 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).
1758a35b Refactor MatGeneric/MatDense/MatDiag/MatSparse to_string function with new static function and get_scalar_type_str.
2a5720b6 Fix a minor bug in Faust::TransformHelperPoly: in case of NOT lazy instantiation the is_fact_created vector wasn't initialized before use.
b7af8bf8 Switch to a simpler (eigen standard) but maybe less efficient version of MatSparse::vstack.
1fcbc9c5 Modify pyfaust.poly.expm_multiply to pass directly the time points as a list instead of a np.linspace style arguments.
df168463 Minor fixes in pyfaust.poly.expm_multiply (among what: default time point is a negative value).
089101c4 Add Faust::TransformHelper::power_iteration and a pyx wrapper to it (not yet added in pyfaust itself).
d6234a70 Refactor to make TransformHelperPoly::next() and T0 arbitrary polynomial matrix consistent to lazy instantiation of factors.
98d73d27 Override the most part of the TransformHelper(Gen) member functions in TransformHelperPoly to implement a proper lazy instantiation.
79c44268 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).
2f561b62 Remove use of deleted light/partial GPU impl. in 2020 PALM4MSA and hierarchical algorithms.
977d2a82 Add pyfaust.poly.invm_multiply and its doc.
9cf8cbf7 Add pyfaust.poly.expm_multiply and its doc.
4df87674 Minor fix of pyfaust.poly pyx (wrapper) code in case that basisX.ndim == 1.

Version 3.0.18:

610de11b Remove the light GPU implementation (aka FaustGPU) as it was an experimental implementation based on gpu_mod (while GPU2 is the full implementation).
b2a42ce5 Minor changes and fix in pyfaust.poly and C++ backend.
b0cbfdda 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:

7953d741 Fix windows compiling issue #191 (mexPoly.cpp.in).
6deaf83e Fix windows compiling issue #190.
31c5ebbd Fix GPU2 missing multiply signature (issue #189).
8d5269a8 Optimize C++ Faust*Dense-matrix especially for pyfaust.
6abda28b Optimize TransformHelperPoly<FPP>::multiply(MatDense) avoiding 3 copies per iteration/column (using Eigen Map -- views)
c607c0c4 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).
03e2c9c8 Add matfaust.poly.next with its mex code (wrapper to Faust::TransformHelperPoly::next()).
823f63ab 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.
453c4099 Add matfaust.poly.poly wrapper, update basis wrapper and add documentation for the both of them.
35960f49 Update pyfaust.poly doc, fix a minor bug in pyfaust.poly.basis (occurring when basis is a str) and verify that L is square.
225dcc81 Add chebyshevBasis matlab mex wrapper.
b5800ab3 Update MatSparse copy functions.
472d46aa Update TransformHelperPoly functions.
1e928020 Implement T0 arg for native impl. of pyfaust.poly.Chebyshev.
db62c243 Take into account pyfaust.poly in the doc filtering process (symbols excluded, namespace filtering).
ea64fcb1 Update pyfaust.poly doc, add examples and fix minor details in API/code.
a0c91a4e Minor change in Faust::TransformHelperPoly::polyFaust (variable name).
6f27de7b Use memcpy directly instead of eigen in MatSparse copy ctor and assignment operator= overload.
c58b4085 Update basisChebyshev and co. (don't skip the degree-0 polynomial anymore and modify all related functions in consequence).

Version 3.0.16:

3e79d1b2 Modify ci job test for windows whl pyfaust pkg (no need to specify the version when the virtual env. is already loaded).
4c8ff061 Optimize again TransformHelperPoly::multiply() (by vector) and basisChebyshev.
a6b6ad97 Add MatSparse::conservativeResize() and fix a bug in vstack.
23bfd5a8 Fix a bug introduced by 0ac2f190 which happens when X (in F*X) has more than one column.
18fcab40 Update to gpu_mod@2097f63.
dfa55be8 Remove old GPU implementation (replaced by external gpu_mod project/shared lib and GPU2 binding implementation).
a6bd57e1 Implement generator mechanism for Faust::TransformHelperPoly and add it in the pyfaust wrapper.
48adedd9 Optimize Faust::TransformHelperPoly::poly through a zero copy approach using Eigen Maps (view) instead of Faust::Vect and Faust::MatDense.
b815e8d0 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).
72880940 Optimize Faust::TransformeHelperPoly::multiply(Vect) (F@x in python).
32d965ae Optimize Faust::Transform*::multiply(MatDense), multiply(Vect)
b4c6ee08 Add move and assignment operator= overload, Vect::operator=.
ad8d2fe6 Update pyfaust.poly with new wrappers of impls of C++ poly, uniformize all impls in single functions.
89024747 Update Faust::TransformHelperPoly.
c85f2569 Override C++ Faust mul by vector in the special case of the Chebyshev polynomial basis (class TransformHelperPoly).
d54f8bd6 Fix errors in Faust::Vect::operator-= functions (arg. vect or scalar).
a4d0843f Add wrapper pyfaust.poly.basis_cpp and C++ implementation behind (for chebyshev).
cee71204 Fix memory bugs in MatSparse::vstack/hstack and add print_* functions.
0d8efda1 Minor corrections in using_gpu_matfaust/pyfaust tutorials.
e6436f66 Add MatSparse::vstack and MatSparse::hstack along with their unit tests.

Version 3.0.15:

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

Version 3.0.14:

ef0d0902 Fix pyfaust.Faust.clone(), cpu to gpu conversion wasn't working.
46c4c661 Update macOS jobs (no need of the password anymore) and a note in macos setup script.
db173e4f Update things about C++ proxs.
61945343 Update to gpu_mod@8843946.
3252abb1 Update PALM4MSA/hierachical 2020 C++ impl.:
ae0b908e Update pure gpu splin, spcol, sp proxs tests (prog. arguments and output).
51b659dc Minor fix on MatSparse ctor: if nnz==0 can't build any triplet of row_id, col_id, value.
09c59b20 Update MacOS X VM setup script.
ae1d9854 Fix issue #185, minor error on prox_sp* GPU decls.
9d73e9ca Add prox_spcol and prox_splin pure GPU implementations along with a test/benchmark.
b242af8b Update to gpu_mod@f94b91b.
a3672b36 Add prox_sp GPU2 implementation with gpu_mod@422d2d7 and a test/benchmark (test_prox_sp_gpu).
49113b78 Update gpu_mod@70d319e.
a14d52f5 Update to gpu_mod@430e43c.
45ed3373 Add a new version of prox_sp that authorizes dynamically to output a MatSparse or MatDense image.
d754acb8 Secure input argument type in Cpu TransformHelper::update.
bee683e7 Add two new ctors to MatSparse.
c1e74642 Small fix in cmake script for experimental code filtering.
6776809e Chebyshev polynomials as Fausts added a experimental module in pyfaust.

Version 3.0.13:


Version 3.0.13rc1:

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

Version 3.0.12:

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

Version 3.0.11:

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

Version 3.0.10:

fa578bcd 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:

00afcb09 Publish and update matfaust GPU wrapper tutorial.

Version 3.0.8:

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

Version 3.0.7:

3692de49 Add pyfaust.tests module (old tests pyfaust_simple_test.py) and integrate it in the release pip package tests of gitlab ci.
fee124aa Update pyfaust tests.
d08a1c44 Update pyfaust wrapper (details below).
abc01d1a Update to gpu_mod@66fe38a.

Version 3.0.6:

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

Version 3.0.5:

1be0d9a5 Fix a bug in GPU2 MatSparse tocpu() and secure GPU2 Transform tocpu().
de6d8c43 rename mex faust_prox.h* files to avoid confusion with C++ faust.prox.h*.
1ddd3973 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).
57333754 Add GPU2 wrapper in matfaust for Faust functions: mul_faust, vertcat, horzcat, subsref, subsref_byvec.
ebfd8790 Add GPU2 wrapper in matfaust for Faust functions: nnz, optimize_time, optimize_storage, optimize, multiply.
3ab0cd33 Add matfaust.Faust.transpose/ctranspose/conj GPU2 wrappers.
63ad747f Add matfaust.Faust.save GPU2 wrapper.
09fec4fb Minor change: refactoring isConjugate in parent class TransformHelperGen.
9043c95a Add GPU2 wrapper in matfaust for functions: factors, numfactors, nbytes, disp, full, norm, normalize, size.
b02cbc77 Implement (partially) matfaust.Faust wrapper to GPU2 (ctor, dtor and disp).
fbe232a2 Minor fix Faust::TransformHelper ctor.
906aaa58 Implement set member function in CPU and GPU2 Faust::MatDense and GPU2 Faust::MatSparse (already defined for CPU's).
6766b1ff Fix deprecated use of matfaust.rand in FaustTest (due to update by 257f6643).
c779ccfe Refactor mexFaust new cmd into separate module new_faust.h(pp) and optimize the Faust creation (one useless copy per factor removed).
96a44290 Add matfaust wrapper for hieararchical factorization (2020 backend, tested on a CBP's GPU).
6a3fef3b Finish PALM4MSA 2020 GPU2 wrapper for matfaust (tested on a CBP's GPU).
9d1bb8f9 Handle use_csr and packing_RL parameters in matfaust.fact.palm4msa (as it is already in hiearchical) for the 2020 impl.
c2784a75 Secure/Fix non-initialized pointers in GPUModHandler.

Version 3.0.4:

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

Version 3.0.3:

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

Version 3.0.2:

64642111 Update to gpu_mod@ed251cf (1.2.6).

Version 3.0.1:

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

Version 3.0.0:

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

Version 2.10.45:

6b898d28 Update GPU notebook and pyfaust factorization wrappers.

Version 2.10.44:

153e91c3 Update pyfaust.demo:
e7fb4cbc Fix forgotten conflict to solve in license.txt.

Version 2.10.43:

c7178aa1 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:

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

Version 2.10.41:

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

Version 2.10.39:

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

Version 2.10.37:


Version 2.10.38:

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

Version 2.10.36:

089c7143 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:

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

Version 2.10.33:

903bb975 Add matfaust projectors livescripts.
a4a4a82c Minor fix in matfaust normcol/normlin output.

Version 2.10.32:

ff5b009d Missing matfaust files for projectors added in a65434aa.

Version 2.10.31:

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

Version 2.10.30:

88a597e3 Minor fixes in omp.m.
3ebe1b21 Minor Fixes in faust.nsi.
2b093554 Minor change in matfaust.Faust.

Version 2.10.29:

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

Version 2.10.28:

12c6930a 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).
cfd5a527 Update setup_macosx_for_faust.sh (jpeg dependency).

Version 2.10.27:

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

Version 2.10.26:

0ebd7e2e 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:

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

Version 2.10.233:

cd73cbff Add/enable an alternative method (Faust::compute_n_apply_grad1()) to compute-apply the factor gradient in C++ PALM4MSA 2020 impl.
39cfb7dd 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:

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

Version 2.10.24:

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

Version 2.10.23:

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

Version 2.10.22:

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

Version 2.10.20:


Version 2.10.21:

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

Version 2.10.18:


Version 2.10.19:

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

Version 2.10.17:

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

Version 2.10.16:

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

Version 2.10.15:

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

Version 2.10.14:

5588d2b6 Udpate 'Faust creation' jupyter notebook.
a312f720 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:

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

Version 2.10.12:

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

Version 2.10.11:

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

Version 2.10.10:

ce290582 Minor change in pyfaust GPU documentation.

Version 2.10.9:

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

Version 2.10.8:

37532c1b Restrain gitlab-pages job execution to 'pages' tagged gitlab-runner.
a19e7442 Update to gpu_mod@c656d08 to fix issue #172 (windows VS14 linking error).
d8cea029 Add a pyfaust wrapper function to check if gpu_mod is loaded properly and block dev='gpu*' argument use (exception) if not.
82539bce remove pyfaust.Faust._add_nonopt (only here for benchmarking).
71b0f2ab 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:

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

Version 2.10.6:

0de3f86e Fix pyfaust.concatenate args.
e9526e0e Fix __array_ufunc__ to handle 'subtract' passing the args to Faust.__rsub__.

Version 2.10.4:

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

Version 2.10.3:

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

Version 2.10.2:

d521ca10 Document pyfaust.Faust.astype and __str__.
b030a918 Minor changes.
b8678008 Document pyfaust.Faust.swap_rows and swap_cols, change the default value of permutation argument to True.
56e36d09 Secure, fix minorly and document pyfaust.Faust.average.
80159a82 Fix pyfaust.Faust.sum, secure its args and document it.

Version 2.10.1:

91d0dcaf Filter pyfaust symbols from the doc.
ec714c25 Fix issue #165, python3 must be used by rpmbuild (not python2).
af944b0d Fix issue #164 (Visual Studio error C2131).
9fcb7472 Fix issue #163 (matlab deprecated API error for complex matrices).
193e9020 Fix #162 (missing getNBytes() functions in GPU2 backend.)
8728ba12 fix index out of bound error in min size factor research of Faust::Transform ctor.
00c441eb Add __array_ufunc__ to handle ufuncs functions.
7d696ee4 Update pyfaust.Faust ops (indexing, elt-wise mul., addition).
e4e5cee6 Fix minor bug introduced by f4fd45f0 in Faust::Transform ctor.
d575b306 Add inplace pyfaust.Faust ops: +=, -=, *=, @=.
ecccf93d 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).
bf4c7f6d Optimize Faust by scalar multiplication by copying-multiplying the smallest factor (wrt memory size).
b31af53f Add MatGeneric<FPP,Cpu>::getNBytes() and subclass impls + refactor TransformHelperGen::optimize_storage.
5721be1c Finish swap_rows/cols (with transpose handling) in Faust::TransformHelper and bind it into the wrapper.
d4d2d322 Optimize Faust.__add__ vector broadcasting over a Faust (use one mul. instead of multiple concatenation).
5e8270be Add TransformHelper swap member function.
8161b1ab Update pyfaust Faust.__add__ to handle vector broadcasting from array (ndim==1) or Faust (whose one dim. size is 1), and add issparse.
5f36e6f2 Add pyfaust.Faust methods: average, asarray and astype.

Version 2.10.0:

9af7ad25 Merge windows and unixes extension compilation code in setup.py.in (issue #91).
978827a7 Refactor char2gm_Op into faust_gpu_mod_utils module.
e9064507 Try to fix issue #158 (windows, VS).
2bb51ccd 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).
ee48d360 Add optimize_memory to the GPU pyfaust wrapper and update many dependent C++ functions behind (details below).
560f8cf9 Update to gpu_mod@7920c9a.
cc9b7879 Add support of the Faust-by-csr_matrix mul. to GPU pyfaust.
6e8d628e Add normalize() support to GPU pyfaust.Faust.
c008b3a3 Fix GPU2 TransformHelper vertcat/horzcat.
df5e2377 Fix GPU2 TransformHelper mul. by a scalar (a Faust is immutable, a new Faust is returned when multiplying).
b415e91b Fix add of GPU Fausts.
b34c122d Fix support of CSR input matrices GPU pyfaust.Faust.
5738ec97 Add GPU support for Faust.save() in pyfaust wrapper.
d8b26d4c Add GPU Faust fancy idx support in pyfaust wrapper.
8ed1dfa4 Add GPU Faust slice support in pyfaust wrapper.
832a75a3 Refactor and make more consistent/reusable the state copy of TransformHelper<FPP,DEV> (transpose, conjugate, slice, mul. mode).
3fe98bd8 Add pyfaust.Faust.device property and cpp impl.
7e82b0ba Add GPU pyfaust.Faust wrappers for concatenate, vstack, hstack, clone.
970b840e Update to gpu_mod@d800359.
805db8cb Add GPU pyfaust.Faust wrappers for transpose, conjugate, pruneout.
46ce49d9 Implement GPU pyfaust.Faust.factors(), left(), right() functions and all their dependent operations in C++ core.
fe5b8e48 Minor fix: don't build mexPALM4MSA2020_gpu2 when USE_GPU_MOD is OFF.
a99be472 Separate FaustCore and FaustCoreGPU in two pyx files, the same for corresponding pxd files. New pyfaust GPU2 wrapper functions: scalar mul, norm, nnz_sum.
335ffb4e Update palm4msa_2020.cpp.in to disable GPU2 code when CMake variable USE_GPU_MOD is OFF.
2f460b41 Add mexPALM4MSA2020_gpu2.m.in (forgotten in a previous commit).
f37b9cb5 Add GPU pyfaust.Faust functions toarray(), Faust by Faust mul, nbytes.
9e21061f Implement GPU hadamardFaust, eyeFaust and add a device argument to pyfaust.eye,wht(dev=cpu|gpu).
66ab44af Implement GPU randFaust and add a device argument to pyfaust.rand(dev=cpu|gpu).
cd19248f Start the GPU Faust class python wrapper with the Faust constructor (from numpy arrays), display function and multiply by a numpy aray.
b5ff23ef Prepare TransformHelper<FPP,GPU2> to the python wrapper (functions are defined but left to define later).
d237b12d 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).
1855ea8f Add optional parameter FDevice DEV to FaustCore as a step toward a GPU Faust class pyfaust wrapper.
5a07fdc6 Allow to use GPU2 impl. of palm4msa2020 in test palm4msa_2020.cpp.in.
a9535e3b Add the matfaust wrapper to palm4msa2020 with GPU2 backend.
b0e1d507 Update matfaust.enable_gpu_mod to load the library from current directory as a fallback solution.
d555f582 Implement the pyfaust wrapper for the GPU2 palm4msa2020 algorithm.
89659f9b Implement the pyfaust wrapper for the GPU2 hierarchical algorithm (2020 backend).
e55f35dc Add functions to Transform(Helper)<FPP,GPU2>: tocpu, save_mat_file.
2aede5ce Add test MEG_factorization (GPU2, FaustGPU and CPU).
432e773c Allow to cut the execution of hierarchical2020 past n factorizations in tests hierarchical2020Hadamard and hierarchical2020Hadamard_gpu2.
91d4089d Fix is_fact_side_left==true in hierarchical 2020 and complete Params output (use_csr and packing_RL options).
2fb6ce0a Fix memory leak in TransformHelper<FPP,GPU2>::pack_factors and useless copies in TransformHelper<FPP,Cpu>::pack_factors.

Version 2.9.3:

7744363d Minor changes.
a542cdb1 Fix Visual Studio errors in GPU2.
393c6ba2 Update to gpu_mod@f1e6c96.
34e1cbfa Minor fixes in Faust::Vect<FPP,GPU2>.
5837e274 Update to gpu_mod@2178bf0.
6dbccfaf Fix issue #154 (macOS linking error).
8fdbe781 Update to gpu_mod@af1104f.
f7cdf4bc Disable python2 in pkg_macos_release/rev ci jobs.
5dd65723 Allow pyfaust hierarchical wrapper to use skperm prox.
2f727ad5 Allow to use SKPERM or SPLINCOL in GPU2 test of hierarchical2020.
fc9c838b Allow using SKPERM prox in PALM4MSA by updating faust_ConstraintGeneric.* and faust_ConstraintType.h.
5ca7ee9c Minor changes.
cd000c8f Add copy operator= in Faust::TransformHelper<FPP,GPU2>.
c07403f0 Fix a memory leak (affecting both GPU2 and Cpu impls) into palm4msa 2020.
0e58cc5f Fix misc issues about USE_GPU_MOD and BUILD_MULTITHREAD options for cpp tests and matlab wrapper.
cd82243c Minor change about pack_factors in TransformHelper (GPU2 and Cpu) -- calling parent method.
ebd25f2b Fix documentation example code of matfaust.Faust.cat that induced a rendering bug in horzcat documentation.
ef1b5065 Minor fix in test_matsparse_gpu_mod.cpp.in (free memory in test_clone()).
9bae8277 Get use_csr option from environment in hierarchical2020Hadamard_gpu2.cpp.in.
1ac99d1e Minor update (for test purposes) of hierarchical2020_gpu2.cpp.in (updating to gpu_mod@dbf4133.
1be7f08c Free clone GPU matrix in test_clone() of MatDense<FPP,GPU2>.
1158ed0c Free explicitely gpu factors in test of Transform<FPP,GPU2> (it makes easier to diagnose GPU memory leaks).
6b46062e Copy GPU factors to avoid double-free corruption in test of TransformHelper<FPP,GPU2>.
fa584144 Refactor minorly Faust::Transform (CPU) updateNonZeros (alias) and clear/operator=.
42e8ffa7 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.
136423fc Minor fix in TransformHelper<FPP,GPU2>::pop_front.
a67daa58 Minor change: add getNbRow/getNbCol() in TransformHelper<FPP,GPU2>.
4e4e61bf Manage GPU memory references with RefManager in Transform<FPP,GPU2>.
327322f4 New test for GPU2: misc/test/src/C++/hierarchical2020Hadamard_gpu2.
b8977c5c Update TransformHelperGen hierarchy for GPU2 (pack_factors, erase, insert functions).
28e8e75d Update GPU2 MatDense and MatSparse.
1a9cecea Cleanup headers of useless Faust:: prefixes and remove declaration of types (MatDense etc.) in default namespace.
bc387168 Fix Transform<FPP,GPU2> is_fact_sparse/dense (copy is useless) and iterator::operator++ (recursive infinite call).
1e3a3b27 │Fix a bug in MatDense<FPP,GPU2>::tocpu and a memory leak in copy operator=, set constness of norm functions.
63079513 Add faust_prox_gpu.h/hpp (GPU2 light impl. -- using CPU prox) and include them in Constraint* files.
556ece73 Fix include directories for faust_linear_operator target (needing GPU_MOD).
46613a51 Update FAuST external data archive link (moving from gforge to gitlab).
6aaf25aa New test for hierarchical2020 with GPU2 backend/types instantiation.
b42c12dd Remove template type specialization to Cpu, keep FDevice DEVICE to allow both GPU2 and Cpu instantiations of palm4msa2020 and hierarchical2020.
124d451a Add in MatDense<FPP,GPU2> trace() and copy ctor.
caae9a27 Update TransformHelperGen hierarchy and particularly TransformHelper<FPP,GPU2> (new methods).
042dcd6c New TransformHelper<FPP,GPU2> class and misc update in other GPU2 classes.
59467cfe Fix issue #153 (matlab wrapper build with gpu_mod).
f901fddc Update to gpu_mod@1fd7b2e.
d6927d4b Fix cpp files erroneously added to build when USE_GPU_MOD is OFF.
2c286424 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).
93f38749 Add Transform<FPP,GPU2> functions and tests / MatGeneric<FPP,GPU2> methods.
4c4f0cfd Add class Transform<FPP,GPU2> (not fully impl.) with unit tests, update MatGeneric<FPP,GPU2> hierarchy.
765bc77e Add MatGeneric<FPP,GPU2> abstract parent class for MatSparse/Dense<FPP,GPU2> and implement getNbRow/Col() in child classes.
ec4c4f4f Minor fix: remove old TODO about norm.
cfcc57ee Add to_string() and Display() methods to MatSparse<FPP,GPU2> and MatDense<FPP,GPU2> methods.
1a3996eb Update/fix C++ and python wrappers to follow recent updates with gpu_mod interfaces (faust_gpu_mod_utils module).
44bf249a Add cuda current device set/switch/get, counting devices capabilities (faust_cuda_device module), update tests and MatSparse/Dense<FPP,GPU2>.
ec0714f2 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).
853db464 Add MatSparse<FPP,GPU2>::add/sub with tests.
0c353252 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).
90ce47e2 Update to gpu_mod@aff4369 with the new MatSparse<FPP,GPU2> and unit tests for the implemented functions (through gpu_mod).
423c4532 Update to gpu_mod@a353f78 and add gemm function for MatDense<FPP,GPU2>.
e6ce2cf0 Add MatDense<FPP,GPU2>::operator*= (alias to scalarMultiply).
902b6b20 Update to gpu_mod@f813005, handle stream and multi-GPU capability for MatDense<FPP,GPU2>.
d4ccf15d Update to gpu_mod@1cd2516.
98c27ca5 Add MatDense<FPP,GPU2>::operator= overloads (from CPU or GPU2 MatDense or CPU MatSparse).
98dd2a57 Update to gpu_mod@1cd2516, new functions in MatDense<FPP,GPU2>: operator+=, sub, operator-=, multiplyRight, multiplyLeft, operator*= with corresponding tests.
f769d6ca Add MatDense<FPP,GPU2>::add(MatSparse<FPP,Cpu>) and a test (update to gpu_mod@862ed4d).
2d1487c4 Update to gpu_mod@bd7eced and add functions to MatDense<FPP,GPU2>: add, abs, normL1 with tests.
dfa70815 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.
c4f42d45 Update to gpu_mod@666a08a in order to add MatDense<FPP,GPU2>::resize, setOnes, setZeros, setEyes, clone.
3376b752 Update MatDense<FPP,GPU2>::multiply(MatSparse<FPP,Cpu> freeing gpug memory and add a new signature to output in MatDense<FPP,GPU2>.
2ac9f7ba Update to gpu_mod@a242b93.
a42f4b65 Add new signature for MatDense<FPP,GPU2>::multiply and update tests.
500667b8 Add test to MatDense<FPP,GPU2>::mutliply.
cf8679a7 Implement MatDense<GPU2,FPP>::multiply(MatDense<GPU2,FPP>).
be554a03 Mention the skperm projector in notebook about projectors.
57567168 Minor change.
9e237801 Start new MatDense<FPP,GPU2> impl. using GPU_MOD (to replace later MatDense<FPP,GPU>.
700297ac Update to gpu_mod@b0c110b.
ee20fd41 Update to gpu_mod@ee6c57c.
8eb41a20 Minor change.
f1a59a91 Update to gpu_mod@8e3bbe5.
d7c79e88 Update to gpu_mod@8f667ac.
b2742855 Update pyfaust.enable_gpu_mod to hide all messages by default (issue #151).
e5f05626 Fix missing file in gpu_mod (https://gitlab.inria.fr/faustgrp/faust/-/jobs/736345).
37a65780 Update to gpu_mod@2a3eed8.
7ab39667 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.
a0fed293 Update GPU power iteration algorithm to support complex Faust.

Version 2.9.2:

2d57ef77 Minor change in matfaust.enable_gpu_mod doc.

Version 2.9.1:

307bc48d Minor change.

Version 2.9.0:

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

Version 2.5.62rc31:

aca472a8 Refactor again Faust::skperm, this time in a single implementation both for double/float and complex<double/float>.
f3e1e022 Add matfaust and pyfaust unit tests for the skperm projector.
f4c2ea3f Add the matfaust wrapper to skperm.
07561723 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).
20023ff0 Implement SKPERM projector and add its pyfaust wrapper too.
30353389 Fix tensor transfer to device in experimental FaustTorch class.
f0138d72 Update to gpu_mod@44023b2.

Version 2.5.62rc30:

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

Version 2.5.62rc29:

381bb0d0 Update gpu_mod@4a824ad.
c0db9a9f Minor changes in misc/test/C++ (comments and outputs).
b21c3cab Minor changes related to eigtj.
8b560917 Minor change.
ea647bab Minor changes in code doc.
244d5b72 Fix FaustGPU::pop_front, FaustGPU::power_iteration2.
950987b6 Fix 2 particular bugged cases in Faust::multiply_omp.
e384097e Minor change.
f2c2bdd0 Minor change.
43fd166a Minor change: adjust pyfaust ParamsHierarchical* displaying format/content.
c66cc996 Minor change: add a warning when pyfaust hierarchical2020/palm4msa2020 are gpu enabled.

Version 2.5.62rc28:

fd703109 Fix bug https://gitlab.inria.fr/faustgrp/faust/-/jobs/712989.
e19566d9 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().
ffba7a80 Update matfaust.factparams.* code/API doc and a few in pyfaust.factparams too.
06d39154 Remove the mingw/cython build code in CMakeLists.txt (issue #91)
38b10b94 Add a unit test for pyfaust.factparams.ParamsPalm4MSA (issue #81).
c2a291f8 Add __repr__ functions to StoppingCriterion, ParamsHierarchical/Palm4MSA, ConstraintGen and function ConstraintName.name_int2str.
d105bb5f Add Faust::StoppingCriterion::to_string() and reformat Display() output, update faust_Params, ParamsPalm to use it.
5cdd8d80 Remove duplicated C++ unit tests (forgotten by 49f58e61).

Version 2.5.62rc26:


Version 2.5.62rc27:

09e7f79a Use mathjax displayer for doxygen doc latex code.

Version 2.5.62rc25:

0c0c6a63 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:

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

Version 2.5.62rc23:

e64048e8 Update install guide doc (especially for matlab).

Version 2.5.62rc20:


Version 2.5.62rc21:


Version 2.5.62rc22:

8e880917 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:

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

Version 2.5.62rc16:


Version 2.5.62rc17:

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

Version 2.5.62rc15:

e489ae2b 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:

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

Version 2.5.62rc8:

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

Version 2.5.62rc7:

3fbebe89 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:

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

Version 2.5.62rc4:

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

Version 2.5.62rc3:

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

Version 2.5.62rc1:


Version 2.5.62rc2:

4c687a4f Make possible to call without recompiling Faust::multiply_omp and automatically if BUILD_MULTITHREAD is ON.
7d25350f Fix MSVC error C2248 in FaustGPU
aa9d8429 Update to gpu_mod@6e39c0e.
4033aee4 Update doc/code about Faust product optimization (pyfaust and C++ core).
4018d379 Update many things about projectors.
6779f65b Add directories in matlab path with a finer granularity to avoid conflicts with matlab built-ins eye, rand functions.
09015814 Set projectors normalized default argument to False and remove that argument and pos argument as well for normcol and normlin projectors.
376a2649 Minor change: change the way data files are accessed in pyfaust test.
99490e02 Fix issue #86.
0ff2ef60 Handle division by zero error in MatDense::Normalize().
98034e21 Minor change in README (indicates the preference for python3 instead of py2).
e8020553 First version of the pyfaust.proj jupyter notebook.
268aa1b0 Update the OMP/C++ Threads parallel reduction of the Faust-Matrix product to compare properly the calculation times as shown in issue #125.
528ff0ec Implement the spectral norm (operator L2 norm) using gpu_mod@7d259af.
4ba82adb Minor change: correct constness for Slice arguments.
84518605 Refactor product optimization methods into a specific module.
475f88b9 Port hierarchical2020/palm4msa2020 to GPU for the multiplication.
695b587e Make palm4msa2020 (impl1) capable to do Faust/matrices muls on GPU.
156fed08 Minor change: refactor gpu factors loading/acquiring in TransformHelper.
5e29b843 Update FaustGPU: cpu_gpu_map is only used when RefManager is enabled.
403f3e97 Add RefManager::contains().
2fbb2a40 Make palm4msa2020 (impl2) capable to do Faust/matrices muls on GPU. Update the test for it.
e6aa48a2 Use (optionally) a RefManager into FaustGPU and update ctors and methods for the last update of gpu_mod.
14930262 Minor change (simplification): replacing Faust::Transform::delete callback def by a lambda expression passed directly to the RefManager.
136e98a0 Refactor palm4msa2020 by using MatDense::adjoint() and new function fill_of_eyes().
f7b45660 Add MatDense::adjoint().

Version 2.5.61rc5:

c49a46ec 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).
b327fb34 Increase cpp test timeout including that of MATFILE_FACT_HIER_float.
c2357db0 Fix MatSparse::randMat() bug with FPP==float.
32f31f05 Make possible to run the pyfaust.demo.bsl on GPU (cuda).
cbb9e854 Fix Faust::TransformHelper::optimize_multiply when in_place==true.
c02c0ffc Minor fixes in FaustTransformHelper related to faust_gpu.
9af86e80 Add a TOC in faq doc page.
bc422197 Secure input matrix major order in pyfaust hierachical wrappers (2016 and 2020).
055a6c34 Update to gpu_mod@1.1.2 and update faust_gpu_mod consequently
3945339d Update C++ gpu_mod wrapper to compute 'toarray' of transpose and adjoint of a Faust.
b4ceb2fb Add a new method Faust.clone() (matfaust and pyfaust).
d46c6964 Separate Faust-vector mul. optimization/method choice from that of Faust-toarray and bind the wrappers.
f5eb01b6 Add Faust::Vect::Rand/setRand().
6a93d779 Minor change: modernize C++ in faust_MatDense by using nullptr instead of NULL.
073a8486 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).
97ae5fe2 Refactor enable_gpu_mod() (and by the way fix a bug occurring when libpaths is None) in pyfaust and update documentation in both wrappers.
83f7b7bf Minor fix on matfaust doc.

Version 2.5.61rc2:


Version 2.5.61rc3:

08e469be Fix HTML anchor bug with doxygen 1.8.18.

Version 2.5.61rc0:


Version 2.5.61rc1:

5a08ce43 Make the (doxygen) doc target depend on matfaust files filtering targets to allow fix missing code doc (bed65cb6 regression).
89051fa4 Update .gitlab-ci.yml.
14e1eaf1 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:

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

Version 2.5.60rc0:

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

Version 2.5.59:

aeb159e6 Add pathlib pip dependency which is only useful when FAUST_TORCH is true.
199ea74b Minor change: disable gitlab ci job for generating py. wheel pkg for raspberry pi (as it's unavailable at the moment).
d6508c30 Minor fixes.
e28173ba 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.).
9571ea94 Configure and integrate OpenMP library into macOS .pkg (release and rev.).
e2fa5a15 Patch cmake script for finding OpenMP on macOS/clang.
ab9acd24 Enable multithreading (OpenMP) in gitlab ci for tests and macOS packages.
f6721d74 Enhance cmake post-processing of matfaust scripts (experimental code filtering and inline doc generation).
ccae65d6 Modernize mex building cmake script and uniformize macOS/Linux code.
30b05e5a Enhance cmake code for BUILD_MULTITHREADING and refactor a bit cmake scripts.
9fc69e9b Minor change.

Version 2.5.58:

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

Version 2.5.57:

644f5ed2 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:

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

Version 2.5.53:


Version 2.5.54:

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

Version 2.5.52:


Version 2.5.55:

6c2fc7dd Fix for windows the experimental code filter script.
45fa6ae1 Set up gpu_mod auto-load in matfaust wrapper with function enable_gpu_mod().
f61be614 Update generation of Windows packages to integrate gpu_mod and enable it in pyfaust wrapper.
84528ceb Update to gpu_mod@a2f16c9 (1.1.0).
184f5e77 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).
fd34bac0 Simplify CMake script for finding Eigen3 package (on UNIX systems) and specify the minor version needed according to issue #93.
a1901e2d Build and integrate libgm (gpu_mod) in package_linux and package_linux_purepy* gitlab ci jobs and pack.
17b36c4e Disable py2 in gitlab pipeline jobs for linux package generation.
48cd1923 Set gpu_mod submodule address as relative URI.
61c14f91 Handle the different configurations for python tests (py2 and py3 found and NOPY2 enabled).
a93103fb Fix test_palm4MSAFFT.cpp.
b84f435b Disable Python2 in tests jobs and for Linux packages (as py2 is not supported anymore since january).
8f6e2779 Minor change.
c1b2a0e5 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:

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

Version 2.5.49:

09e650b3 Setup the gitlab pipeline and dynamic (down)loading of libtorch for pyfaust pip packages (macOS and linux x86-64).
f503aa6a 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).
b9b67cf5 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.
ca65e1b5 Minor changes in faust_torch module.
73a57855 Update faust_torch module.
4e6a1efb Update faust_torch test.
5b1fd412 Update faust_torch module.
eb82e402 Optimize faust_torch module to avoid cloning data (by default) when possible.
f42fb075 Custom the faust_torch cpp test.
7869d1e1 Add the faust_torch C++ module for computing a Faust-Matrix product using torch CPU and a cpp test.
6b3dc4c9 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).
5bd062b1 Add pyfaust.FaustTorch class as experimental code.

Version 2.5.48:

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

Version 2.5.47:

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

Version 2.5.46:

bc110346 Document StoppingCriterion class in pyfaust and matfaust.
49a6edae Add unit tets for matfaust/pyfaust palm4msa2020 and hierarchical2020.
9aeeaf07 Add matfaust wrapper to palm4msa2020 and refactor 2016 palm4msa mex code.
fb6fd077 Fix compilation issue on Matlab R2018a,b.
b8dea691 Add pyfaust wrapper to palm4msa2020.
b18bde64 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.
b21f4c24 Minor change.
a47996d9 Add an overload of Faust::hierarchical2020 to use Faust::Params the same parameter structure as Faust:HierarchicalFact(2016).
a2c12fb5 Make constant_step_size and step_size parameters available for hierarchical2020 (c++ core and w rappers).
3ffb44d8 Make verbose mode available for hierarchical2020 (cpp core and py/matfaust wrappers).
9d591246 Define Faust::ConstraintGeneric::Display() and specialize the method in other constraint classes. Use these functions to refactor Faust::Params.Display().
b4f69d64 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:

bd96eb57 Minor change: hierarchical wrapper doc. update.
5a41502d Fix palm4msa2020 error C2131: expression did not evaluate to a constant.
12dbcd7c Minor changes: typos in doc.
efcf6dac Minor fixes: typo in mx2Faust.hpp and reference values of tests (due to 2-norm default parameters change).
23e2627c Add benchmark script to compare pyfaust hierarchical 2016, 2020, hierarchical_py and Luc Giffon (pyqalm) hierarchical Palm4MSA implementation.
13d145fa Update matfaust/pyfaust to premultiply output Faust by lambda with 2020 backend (as it's done with 2016 backend -- consistency).
a9103aa3 Simply/Optimize Faust::TransformHelper mul. by a scalar (avoid copying factors, only the one multiplied is copied).
c3992569 Rename faust_palm4msa.h/hpp to faust_palm4msa2020.h/hpp to avoid confusion with faust_Palm4MSA.h/hpp (especially on case insensitive systems).
45c5d7f2 Update Hierarchical/Palm4MSA about norm2_max_iter/threshold.
20b13b9a Re-enable missing test in 3e609ad2 and fix a small bug in test hier_fact_test arguments (CMakeLists.txt).
ee93c36b Update matfaust tests as 4b3cc14f did for pyfaust (change in default norm2 parameters).
f84234f8 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).
0ec0178d Add wrapper to hierarchical 2020 impl. into matfaust.
6d5b6b29 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.
2a619363 Make the 2020 hierarchical implementation available from the same pyfaust.fact.hierarchical function as the 2016 impl. (with a new argument named backend).
94a2d567 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.
9ef906d3 Add argument packing_RL to hierarchical2020 and palm4msa2 in C++ core and pyfaust wrapper.
81902885 Minor fix: disable missing C++ test.
448e6c59 Fix matlab wrapper issue with TransformHelper variadic template.
a50df69a 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.
59bfa111 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.
8e65979c 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.
513ef38c 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).
ef267ce4 Add optional arguments to hierarchical_py and palm4msa_py about norm2 computation and projected matrix storage format.
7d8d48fe 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().
c0540d51 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).
a54a543f Optimize Transform and TransformHelper ctors (avoid copies).
403e8e4e Add a variadic template ctor for TransformHelper, add push_back_() related functions and a test.
c6d84531 Implement factor iterators in Faust::Transform(Helper) and hence foreach loop (with a unit test).
e54c6522 Add copy ctor and copy assignment to TransformHelper and corresponding unit tests to test also Transform copy ctor (refactored) and operator=.
77cb4be0 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.
e297cee9 Minor change: simplify/refactor pyfaust __*mul__ ops, error handling and isinstance callseverywhere in the class.
765c2dab Extend Faust::MatSparse::setEyes() to allow eye non square mat and simplify MatSparse::eye() static function by using setEyes().
bddcf30e 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).
e394b9ac Modify power_iteration stopping criterion in order to fix issue #131.
681cd4b1 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).
f62b54b9 Add unit tests for matfaust spcol/lin normcol/lin supp const sp and fix normlin error.

Version 2.5.43:

9f7fd058 Enable multithreading for the linux builds by default.

Version 2.5.41:


Version 2.5.42:

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

Version 2.5.40:

b476506d Minor doc update/fix in pyfaust ConstraintMat and supp proj.
ec72b5ff Minor change: doc example for ConstraintList.
c67d1b28 Adjust matfaust (including mex funcs) to support blockdia proj or constraint.
68c2e95d Make blockdiag constraint available in palm4msa algorithm.
91da2f42 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.
3d8dc38e Update the factorization jupyter notebook since the update of eitj wrapper.
dac94d87 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:

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

Version 2.5.38:

885ed7c5 Fix version missing in pip package for raspberry pi.
6959cd87 Implement BLOCKDIAG proj in C++ and add a test.
85823db7 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:

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

Version 2.5.31:

92c9f1a1 Add examples for pyfaust projectors.

Version 2.5.30:

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

Version 2.5.29:

e532666c Enable projectors for palm4msa()/hiearchical() only supporting ConstraintGeneric/ConstraintList before. Update the doc (mostly for projectors).
80bd9e3e 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).
ba36c34c Allow pyfaust ParamsHierarchical ctor to receive a list of pyfaust.proj.proj_gen.
c3c564e3 Add matfaust wrapper to TransformHelper::optimize_multiply() and fix VS14 specific error (C3863) into TransformHelper::optimize_multiply.
dd031ac4 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:

157fe919 Minor changes/fixes.

Version 2.5.27:

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

Version 2.5.26:

18b9855e Minor change: update projectors doc.
61e22943 Minor change.

Version 2.5.25:

05199f8b Minor change.
68bcdae7 Move projectors in a specific package py/matfaust.proj.
2987c59a Finish filtering of non-documented classes both for matfaust and pyfaust.
b92472b5 Filter excluded/non-documented classes from doxydoc (only for pyfaust).
76fb0c8e Add a CMake option to disable python2 support.
4d9e9042 Add the matfaust wrapper Faust.optimize.
8de83d82 Add the pyfaust wrapper Faust.optimize.
a3e33dc1 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:

3b8495a9 Bind cpp optimize_storage() into matfaust.Faust and add Faust.nbytes attribute (as ndarray provides).
b8b61ba5 Add C++ hankel prox test.
66bd3edd Add pyfaust/matfaust wrappers for hankel prox.
b4971522 Add Faust::prox_hankel and Faust::MatDense::adiagonal().
670a3573 Fix the error VS14 C2131 issue (https://gitlab.inria.fr/faustgrp/faust/-/jobs/512998).
d7aeea57 Add to pyfaust wrapper the binding to Faust::TransformHelper::optimize_storage().
17a00d0a Add circulant proj and a test, bind toeplitz and circ projs into matfaust and pyfaust.
0574cbdc Write the toeplitz projector in C++ Faust namespace and add a unit test.
9f07b9b1 Add Faust::MatDense::diagonal().
b635b646 Add Faust::Vect::mean().
92e38424 Minor fix.
d048198c Document pyfaust projectors.
4e87db82 Implement an optimization based on storage format of each factor with a criterion choice: time of matrix-vector mul or memory footprint.
744b4f61 Minor fix to VS14 compilation issues.

Version 2.5.23:

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

Version 2.5.22:

34f6a3e2 Update pyfaust eigtj/svdtj doc, undocument/hide verbosity argument for svdtj.
b6356096 Minor fix in pyfaust wrapper for svdtj (enable_large_Faust argument not passed for one function signature).
d2b3747f Minor fixes about C++ namespaces.
7c64228e Implement pyfaust.fact.hierarchical_py (pure py version).
f29315d2 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.
97bf52a1 Add an option in Faust::TransformHelper to choose to optimize or not the Faust-matrix multiplication and bind this functionality into pyfaust.
d41cc07e Implement a C++ optimization of N matrices by choosing the best order of multiplications while cb82a735 optimized only for 3 factors.
2d889ec7 Minor change: wrong license indicated in setup.py.
a6e14650 Make available the grad_calc_opt_mode option in matfaust.factparams.ParamsFact. This option has been added in C++ core by 28f1510f.
5b3a6727 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.
97e04449 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.
e0010b8e Update pyfaust and matfaust unit tests in consequence of the fix bc7de9e1.
114e4322 Fix 2 minors bugs in Palm4MSA c++ and pyfaust wrappers occurring only with a complex input matrix.
cc2e7f59 Refactor the mexFaust function: the code blocks for hadamard, fourier and eye Faust are now in separated functions.
9e04ceb6 Avoid the warning about scalar mul of a Faust at creation stage when the creation is done internally (in the C++ backend).
fcb998be Simplify pyfaust.fact.palm4msa_py using functors from previous commits (no need of the dims argument anymore).
6911d6b0 Update pyfaust projectors sp, splin etc. to set them as real functors (callable objects), allowing to access the underlying constraint as an attribute.
df3c91dc Implement enable_large_Faust for matfaust.fact.svdtj (by using the C++ backend).
6916bba8 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).
3b3ca784 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:

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

Version 2.5.20:

634c8213 Minor changes.

Version 2.5.19:

7f45dba7 Fix issues found with 6a34474c on projectors and add a pyfaust unit test for spcol.
f2bb23a9 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.
6ef64982 Add a unit test for pyfaust.factparams.splin, fix a bug in matfaust.ConstraintGeneric and modify pyfaust projectors to be compatible with py2.7.
9e4d6938 Update minorly eigtj/svdtj related codes and doc (benchmark, matfaust, pyfaust, pyx and C++ backend).
7a5896f9 Change API of constraints/projectors and the C++ backend.
5455f779 Bind to matfaust the new proxs added by 5901bfca.
332dacc9 Add C++ missing non-normalized proxs for discrete sparsity and bind them into pyfaust(.factparams.ContraintInt).
90bfc17f Minor changes in eigtj C++ backend classes and related python unit tests.
5f2d117a Update doc of mat/pyfaust.fact.eigtj/svdtj, other guides and notebooks.
b669200e Update matfaust.fact.eigtj as previous commit did for pyfaust, handle issue with absolute and relative errors.
fc4f85f8 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.
911f1588 Simplify/optimize GivensFGFT*::update_err().
80bd57a0 Update GivensFGFT C++ tests: refactor/document/simplify/reinforce with additional assert() calls.
bacb7590 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.
e9725b89 Optimize/Simplify and factorize the recomputation code of the 'Givens' coefficients in case of nonzero pivot image in GivensFGFTComplex/GivensFGFTParallelComplex.
2332fb6f Minor change (disable debug info.)
e4a6b08a Fix a bug in pyfaust.Faust.__rmatmul__ (lhs*Faust) and __rmul__ (Faust*rhs).
f8e8a5c1 Update how multiplication of Faust::Transform(Helper) (or computation of its full mat) is made when the Faust is conjugate, transposed, transconjugate.
3bfab31f 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.
41b85733 Bind complex svdtj into pyfaust.
ae67a66a Update svdtj() to request ordered eigtj eigenvector transforms to get order-consistent U and V transforms.
29b268dd Remove the permutation factor from Truncated Jacobi Faust::Transform (replaced by a mul. of the last factor).
f5f2b66e Add two unit tests for matfaust.Faust by sparse matrix mult.
8e186244 Secure svdtj pyx function, the input matrix must be in fortran/column major order.
7d62e8c9 Support pyfaust.Faust-csr_matrix/dia_matrix multiplication for complex Faust/matrices and update related pyfaust unit tests.
7c701546 Minor change in MatSparse::multiply(MatSparse).
f04b3486 Fix a bug in Faust::MatDense::multiply(MatSparse) occurring when opthis==T and matrices are complex.
612a2945 Fix memory leak in C++ svdtj and update its matfaust doc.
84950f7d Add support to pyfaust.Faust-dia_matrix multiplication (issue #116).
7addac9a Optimize C++ Faust normalization (multiply the scaling factor instead of appending it) and handle Faust transpose situation.
1ccb995b 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:

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

Version 2.5.17:

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

Version 2.5.16:

e73f33bd 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:

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

Version 2.5.14:

b0375acb Remove PALM based algos from exp. mode (temporarily for the next release).
f37ac29d New prototype of svdtj in pyfaust wrapper for supporting (sparse) csr_matrix.
a358fb02 Update svdtj to multiply directly the last eigenvector transform factor by the signed permutation matrix
51bcabec Fix minor error in pyfaust hpp svdtj definition (opt. args).
0c7eac28 Bind pyfaust.fact.svdtj() to C++ core impl. (only for dense real matrix).
9873ab78 Refactor mex svdtj function into Faust C++ core (in order to be reusable for pyfaust).
9b0eb8f2 Update C++ mex svdtj: add signed-permutation factor to U transform and permutation factor to V (the function is fully functional).
b6fb73e7 Update mex C++ svdtj to sort singular values in descendant order.
e34b939b svdtj C++ version (WIP).
c04aaeae Faust-sparse matrix multiplication available also for matfaust.
fbb50cff Fix missing identity default to false in MatGeneric deft ctor.
7ff3b084 Implement in C++ the Faust-SparseMatrix multiplication and bind it into pyfaust.
78747ec6 Minor fix in MatDense (forgotten renamings).
6f9b5fc5 Update matfaust.eye and its mex code to bind them to the new C++ core impl. of Faust eye.
3b840f47 Implement the optimization of eye faust in C++ core and bind it into pyfaust.

Version 2.5.13:

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

Version 2.5.12:

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

Version 2.5.11:

3ee8947c Update matfaust.Faust.imagesc() as asked by #102.
507d5fc7 Update OMP notebook to remove the references to factorization notebook and integrate it to zip archive and doxydoc links.
d87e2198 Rewrite Faust::MatDense::abs() to enhance compiler compatibility.
04b0df45 Update wrapper eigtj doc and backend C++ code too.
79b14ce6 Minor fix in Faust::MatDense to satisfy Visual Studio.
dddb93af Add forgotten test GivensFGFTComplexSparse.cpp.in.
8a03e5ea Fix two bugs related to the recent refactoring of matfaust.
ed5f50cf Add a new error measure in benchmark_eigtj.py. The error is measured on the largest eigenvalue.
2c1f2c6e Add a script for testing eigtj decomposition of a circulant symmetric matrix and comparing it to the DFT matrix.
07e9bdc6 Update benchmark_eigtj.py to test eigtj on Hermitian matrices built from real Laplacians by random phase multiplication.
d76a9944 Add a new benchmark script to compare complex truncated Jacobi algorithms to real versions.
3bd7075a Modify pyfaust/matfaust eigtj to return real part of eigenvalues array (removing the almost zero im. part).
229fcd01 Minor changes about hermitian prop. checking (eigtj) and doc.
d57ff3f3 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).
09c887d5 Make GivensFGFTComplex and GivensFGFTComplexParallel available in matfaust wrapper (fgft_givens/eigtj).
fb2e3f27 Add a non-functional C++ impl. of Parallel Truncated Jacobi for Hermitian matrix (GivensFGFTParallelComplex) and plug it to the pyfaust wrapper.
1cc35e15 Update GFT test script (next to the refactoring of FaustFactory into pyfaust.fact).
7dd4cad2 Add a test for GivensFGFTParallelComplex (upcoming code).
ba230203 Fix several points and connect GivensFGFTComplex (C++) to pyfaust.
504a2000 WIP GivensFGFTComplex updates: correct S'*L*S and other details.
2ffbe9a1 WIP to implement complex (Laplacian) Truncated Jacobi.
43572089 Update FGFT pyfaust benchmark to compute errors on 'optimal' signed permutation of Uhat.

Version 2.5.10:

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

Version 2.5.9:

9dc07208 Update matfaust to follow 037f674a, update svdtj, eigtj, fgft_givens API, doc and tests.
196d0b0f Update pyfaust eigtj (and fgft_givens) to respect the conventions established by numpy.linalg.eigh.
7378832a 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.
3502b320 Update OMP notebook to measure more multiplications in ending benchmark.
cfffefd7 Attempt to optimize GivensFGFT(Parallel) for L residual being a MatSparse.
8bf4da62 Add a python script to filter out exprimental code in pyfaust and matfaust.
b6a2cd5a Add unit tests for pyfaust/matfaust sparse versions of GivensFGFT(Parallel).
66f3bbb5 Make the direct use of sparse Laplacian available from matfaust.
efedd1e7 Make the direct use of sparse Laplacian available from pyfaust.fact.eigtj/fgft_givens.
dd7e8b32 Rename ParamsHierarchicalFact* structures to ParamsHierarchical* everywhere.
246971ef Update constraint table description by adding a new column for exactness guaranty.
45043b34 Minor fix in matfaust documented file list.
eb4d0478 Update notebooks and the API accordingly.
3c7f0bfd Re-enable faust_decompose.m filtered out from sys. packages by 8b182bcf for #64.
6ce51fae Update pyfaust.demo consequently to bf3ebccb.
fb81dfb3 Remove prefix fact_ in matfaust/pyfaust functions (and tests, doc).
bd5a643f Delete file of abandoned class matfaust.FaustFactory.
10cb1982 Refactor pyfaust/matfaust.FaustFactory into a new module: pyfaust/matfaust.fact with all implications (tests, doc, doc gen).
31636d3c Move functions dft, wht, eye and rand from FaustFactory to pyfaust package root, update tests, documentation and notebooks to respect this change.
e802a9b3 Move functions dft, wht, eye and rand from FaustFactory to pyfaust package root, update tests, documentation and notebooks to respect this change.
790f9836 Align MatDense to_string()/Display() with MatSparse's version.
cc025958 Rename FaustCorePy to _FaustCorePy to hide from completion.
9dffca20 Implement pyfaust.Faust.left/right functions as requested by #69.
029044a6 Implement matfaust.Faust.left/right functions as requested by #69.
8794bde5 Add an alias matfaust/pyfaust.isFaust to matfaust/pyfaust.Faust.isFaust.
5392ef30 Rename get_factor() to factors(), get_num_factors() to numfactors() (hopefully) everywhere in pyfaust/matfaust, the doc, the notebook, tests...
5d0d3d2c Fix Windows Visual C++ issue: it needs fully qualified namespaces for MatDense and MatSparse.

Version 2.5.8:

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

Version 2.5.7:

7b56cceb Execute pkgbuild with admin. rights.

Version 2.5.6:

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

Version 2.5.5:

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

Version 2.5.4:

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

Version 2.5.3:

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

Version 2.5.2:

3d6fc5b5 Update the OMP notebook.
32b8ec1d Update matfaust dft and wht as 964b7776 did for pyfaust.
f1098fb4 Setup a workaround to the 2-norm normalization bug on complex Faust exclusively occurring on matfaust (pyfaust is ok).
b6e9cca0 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).
3acdc0c9 Add pyfaust.Faust.ndim as numpy.ndarray.ndim.
4e39c59c Make the Faust-by-vector multiplication return a 1D vector as numpy does (instead of a matrix with a dimension size at 1).
351380c6 Update the OMP jupyter notebook with a new section about Greedy OMP-Cholesky.
0086a7c9 Minor changes.
b2387760 Update the OMP notebook in order to simplify x0 choice of nz coeffs and to complete the last test (where nnz=98).
fa57c3a3 Add a test for pyfaust concatenate/hstack/vstack.
1fdfea2e Update the notebook to use simpler hstack call instead of Faust.concatenate.
9f46afba Add in pyfaust the numpy-like functions hstack, vstack and concatenate.
8f7537bf Optimize Faust Fro. norm computation in case of a Faust equal to Q1 Q2 ... QN S1 S2 ... SN where the Qi factors are orthogonal.
a5648dd9 Fix minor compiling error on macOS/clang 'faust_TransformHelper.hpp:582:14: error: invalid suffix 'd' on floating constant'.
c500b5e0 Update the OMP notebook after Rémi's review.
68b49f4e First impl. of norm-2 optimization of Faust composed of sequence of orthogonal factors in their extremities.
cc31b026 Optimize FaustFactory.wht() C++ backend; only one factor is really created in memory because all others are in fact the same.
74c0fe07 Add a test for pyfaust.tools.UpdateCholeskyFull() used by OMP-Chol.
aebf2f37 Add a fourth notebook to demonstrate the use of FAµST API to write algorithms like OMP.
e23a5333 Review jupyter notebooks.
4c934124 Add matfaust.FaustFactory.fact_hierarchical_constends(), review fact_palm4msa_constends(), add examples.
a3387cf5 Add the matfaust version of FaustFactory.fact_palm4msa_constends().
0a6a6dba Make matfaust ConstraintList ctor accept ConstraintGeneric arguments as pyfaust version does.
9e5b9389 Fix 2 bugs on matfaust proxs: one concerning 'const' prox and the second all proxs but only for complex matrices.
a5c9c83a Add an example for pyfaust.fact_palm4msa_constends() and avoid A to be multiplied (the lambda scalar).
1c2979a8 Add a package function pyfaust.pinv() to link Faust.pinv() and make it return a numpy.matrix instead of an array.
ec0395a8 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.
af677be6 Add pyfaust.FaustFactory.fact_palm4msa_constends().
9ef1e5a2 Add pyfaust.FaustFactory.fact_hierarchical_constends(), partially documented and with a test example.
f72509d5 Enhance pyfaust.factparams.ConstraintList.
5168536e Fix typo bug in pyrex code (is_mat_constraint()).
db6cbeda Fix in pyfaust a possible bug because of non-same storage order between input and output of prox_const.
980314fc Refactor fact_hierarchical_gen into two different functions, one for real the other for complex numpy arrays.
d5cfd092 Add links to gitlab ci artifacts in README.md.

Version 2.5.1:

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

Version 2.5.0:

cb20b461 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:

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

Version 2.4.20:

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

Version 2.4.19:

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

Version 2.4.17:


Version 2.4.18:

36756863 Update lightly the third jupyter notebook.

Version 2.4.16:

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

Version 2.4.15:


Version 2.4.11:


Version 2.4.12:


Version 2.4.13:

3653f896 Fix 2 pyfaust windows bugs.
3460cbcb Misc minor changes.

Version 2.4.14:

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

Version 2.4.10:

1b767a2c 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:

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

Version 2.4.8:

964587c4 Add a jupyter notebook about factorization wrappers.

Version 2.4.7:

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

Version 2.4.6:

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

Version 2.4.5:

9de10cc7 Workaround memory issue in matfaust.Faust.svdtj().
795ff00a Fix erroneous use of spdiag() coming from smallbox (replacing it by sparse(diag()).
e56ab7c0 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:

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

Version 2.4.2:

4cd4d352 Fix bad path in doc for Windows.
3df5d3a5 Replace FAµST by FAuST in all python pyfaust files to avoid charset issue on Windows doc.
8de4108c Try enhancing speed by adding more jobs for ctest.
686318db Specify charset UTF8 at make-install stage too (gitlab ci macOS package job).
7c0e4371 Add CMake option NOCPPTESTS (OFF by default) to do pure wrapper test in gitlab ci jobs ctest_python, ctest_matlab.
e4b9ccc6 Update windows nsis installer to download FAµST external data with powershell as a fallback solution when python was not found.
6ab7ab4f Refactor data URL and filename into variables.
4de04228 Make the windows installer (nsis) able to download faust data.
97fefda3 Update gitlab and CMake build scripts to download data files in package post-install scripts.
13707104 Handle in pyfaust auto-downloading of FAµST remote data (only for pip package).
93675bda Add a python script for downloading and uncompressing FAµST package data.
eb363e61 Fix startup.m overwriting issue in package post-install script (linux/macos).
cc0a8509 Update faust.nsi to edit user's startup.m for faust path auto-setup at installation on Windows.
8cb6d9df Replace FAµST by FAuST in all matlab files to avoid charset issue #37.
89ba0e72 Minor change.
fb21f452 Update macOS and linux post-install scripts to edit also user matlab startup script (not only system's).
6c2b5b0d Update doc links in quick start guide, making difference between local and online doc.
89a45357 Complete/Correct memory management of Faust::Transform by RefManager.
dcfee93d Update license headers and documents.
2a91a4c4 Update the guide for pyfaust install in virtual environments.
5c2b61d7 Add a skeleton for Faust::MatDiag (yet to implement) and a starting test.
7a562862 Minor changes.
c994c303 Update matfaust API doc.
72931da0 Secure Faust::RefManager::release() by raising a runtime_error when an unknown pointer is asked to be removed.
b501d591 Optimize memory usage for slicing and normalization by using Faust::RefManager added by b758c6a3
3fb9018d Add a first implementation and a basic test for the Faust::RefManager which will be dedicated to a memory optimization of Faust::TransformHelper.
2e97329f Make threshold and max_num_its parameters available for matfaust/pyfaust.Faust.norm(2).
29a9211e Refactor the duplicated Faust::power_iteration() codes into one function for all Faust::LinearOperator hierarchy of classes (CPU).
ed7ed28b Add a benchmark script for FGFT algos accuracy and execution time (box plots).
71a68eb7 Document pyfaust/matfaust.FaustFactory.svdtj and fix bug in case of non-square matrix.
cd26d18e Optimize algorithms Faust::HierarchicalFactFGFT and faust::Palm4MSAFGFT.
0b23bbd5 Undo one condition added by ce4d08ad in Faust::prox_sp() because MatDense::getNonZeros() is not optimized with caching.
f787849c Update Faust::spgemm (faust_linear_algebra) to support computation on adjoint/transconjugate matrices.
ba9dbed8 Add pyfaust.FaustFactory.svdtj().
59bc398a Add matfaust.FaustFactory.svdtj().
f960e4d8 Try to optimize GivensFGFTParallel::update_L() by using OpenMP to parallelize the product of each parallel Givens matrix with L but it was unfruitful.
3acd33ab Optimize Faust::GivensFGFTParallel::update_L().
a7917ace Optimize Faust::GivensFGFT::update_L().
97c9d8b3 Minor change: rely rather on Eigen to compute addition in Faust::Vect += operator.
45fc99b1 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'.
d0585ef8 Replace use of MatSparse by Vect for D in Faust::GivensFGFT* algorithms.
1197fa32 Catch exception raised in (pyfaust) FaustFact.hpp when Palm4MSA or Hierarchical PALM algos fail on an infinite lambda.
0a718bc5 Add faust_WHT.h(pp) to move wht factors computation from faust_TransformHelper (Refactoring).
4d0b7343 Refactor fft_factors() code from faust_TransformHelper.h(pp) to algorithm/factorization/faust_FFT.h(pp).
cc7be7a7 Minor change: properly rename Faust::HierarchicalFactFFT to HierarchicalFactFGFT, Palm4MSAFFT to Palm4MSAFGFT and their params classes too.
ff1b04b2 Minor change.
7f4d5e52 Fix bug in pyfaust FaustFactGivensFGFT.hpp, t == 1 wasn't triggering the Givens algorithm but the parallel Givens algorithm.

Version 2.4.1:

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

Version 2.4.0:

375ae80a Minor fix in pyfaust.FaustFactory.eigtj() code example.
39d5bd8b Update license notice and code headers for pyfaust (GNU AFFERO to INRIA license).
9654664b Write the matfaust wrapper for C++ Faust::HierarchicalFactFFT and add a unit test.
9de703ba Simplify/Secure the mexHierarchical_fact function by reviewing the translation of matlab params struct to C++ Faust::Params equivalent.
5524052e Add compute time measure and plot in FGFT benchmarks.
8baeb1f5 Minor change.
0a8babdc Add FGFT error benchmark scripts (python and matlab) and a graph generation script using GSP matlab toolbox.
1e330111 Unhide fgft_givens() in pyfaust, rename eig_palm to fgft_palm and document fgft_palm() and FaustFactory.
11bb527c Update documentation and API for pyfaust FGFT functions.
9abc0d4a Hide pyfaust.FaustFactory.fgft_givens() and rename trunc_jacobi() to eigtj() with a new doc.
94626147 Fix matfaust product M*F (with M a matrix and F a Faust).
21d21ff6 Add a verbosity attribute in Faust::GivensFGFT.
fd37d5ee Minor change.
6f985cf3 Implement pyfaust wrapper FaustFactory.fact_hierarchical_fgft() and add a unit test to validate equivalence to C++.
372734a7 Add a pyfaust trunc_jacobi() alias for fgft_givens() and document it.
324a79d7 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.
06dae648 Implement/Document/Unit-test pyfaust wrapper function fgft_givens() binding C++ core algos GivensFGFT and GivensFGFTParallel.
311459ef Add a TransformHelper ctor signature to authorize Transform object argument to be moved internally (instead of being copied).
0f5c9f0d Add move Transform ctor and move affectation operator overload with a unit test to check it's working.
df3fda37 Document the GivensFGFTParallel C++ class and update doc for GivensFGFT parent class.
7668db28 Update doxygen doc for GivensFGFT.
2bc8a100 Update/Fix a few elements to validate GivensFGFTParallel C++ impl.
e1118da7 Add GivensFGFTParallel and a test (not validated yet).
e1d95ef1 Minor change.
0a10a2b1 Add MatDense::nonzeros_indices() and a unit test.
bf8d666f Add MatDense::lower_tri()/upper_tri() and a small unit test.
e8ebf4bf 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.
a3cf00ed Add new function GivensFGFT::compute_fourier() to return the fourier matrix approximate.
d7987512 Fix MatDense compilation error occurring on Visual Studio by renaming min() to min_coeff().
379970a4 Modify GivensFGFT::get_D() with opt. bool arg. to make possible to get ordered D (in ascendant order of eigenvalues along the diagonal).
fbbc815a Add reference matlab impl. and test scripts for Givens Diagonalization.
771cacf3 Update GivensFGFT test: correction of Fourier matrix approximate, displaying pivot choices (c++ vs matlab).
6cd3f219 Update GivensFGFT::update_err() to calculate the error through the same formula matlab script uses and with a period of 100 iterations.
de96b7d1 Complete GivensFGFT test and add test data test_GivensDiag_Lap_U_J.mat.
4e63fb74 Implement substeps GivensFGFT::update_fact(), update_L(), update_D() and update_err().
d79e8551 Fix missing return in Faust::Vect<FPP,Cpu>::min().
d0396b89 Add MatDense::get_cols(vector<int>) and MatDense::setOnes().
661a37f2 Add MatSparse::setCoeff().
25469778 Implement substeps GivensFGFT::max_L_into_C(), choose_pivot() and calc_theta().
aeff8ace Add MatDense::get_row() with a test.
4174df30 Add MatDense::rowwise_min(), rowwise_min(int* col_indices), MatDense::min() and a test.
df6f1f1e Add Faust::Vect::min() and min(int* index) with a unit test.
9d7cb4fc Update GivensFGFT by adding the main loop calling the substeps with a generic function pointer.
1eebc177 Add GivensFGFT's getters.
2922fbe3 Update GivensFGFT skeleton.
d9c91526 Add C++ skeletons for Givens FGFT diagonalization algo. and a test.
4cd71d69 Update the pyfaust doc for SPLINCOL constraint and add an example.

Version 2.3.1:

1bcaebec Update HierarchicalFactFFT, Palm4MSAFFT and their tests.
0b54ea70 Update Palm4MSA and HierarchicalFact python/matlab/C++ tests since 64bbc2f0 modified Palm4MSA when running on a complex matrix.
b10edd22 Handle Hermitian matrix product in gemm_core() function (faust_linear_algebra) and use it in Palm4MSA(FFT) algos.
3fcf374f Fix constraints related bugs in pyfaust.factparams.
529d3e78 Add a first implementation of HierarchicalFactFFT (along with ParamsFFT and a test which compiles).
829b864b Update several elements to finish the Palm4MSAFFT impl.
7f9c00e0 Implement Palm4MSAFFT::compute_grad_over_c(). Fully implement Palm4MSAFFT (in waiting for validation).
a58590e6 Implement Palm4MSAFFT::compute_grad_over_c().
372729a1 Add a skeleton for Palm4MSAFFT with the two methods to override from parent class Palm4MSA: compute_grad_over_c() and compute_lambda().
a7fe01d4 Add MatDense::eye() static function.
c45e3862 Add a skeleton for ParamsPalmFFT.
2a862d9e Minor fix.

Version 2.3.0:

a8085742 Minor change.
c9497455 Add a small note about Anaconda env. in doc.
13344ec7 Minor changes.
073c4dac Minor fix in matfaust.faust_fact().
0d77a499 Set tag matlab to gitlab pages job.

Version 2.3rc18:

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

Version 2.3rc17:

439032f9 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.
243dd6e9 Fix error on doxydoc generation for pyfaust on Windows and macOS.
59dad04e Add a Windows sub-section in installation section of the quick start guide.
2969c461 Update constraint.png table, add its odt origin file and add the link into matfaust.factparams.ConstraintName API doc.
66293eef Fix missing @staticmethod decorator for several functions in pyfaust.demo (it's mandatory for python 2.7).

Version 2.3rc16:

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

Version 2.3rc14:

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

Version 2.3rc13:

c242598e Add pyfaust wheel/egg release package jobs and refactor revision pkg jobs.
ee260469 Update pyfaust API doc (fact_hierarchical()).
970a3c84 Update matfaust API doc (fact_hierarchical()) and add ParamsHierarchicalFactSquareMat.m and ParamsHierarchicalFactRectMat.m to doxydoc parsing file list.
a08c510f Add ci jobs for pyfaust egg/wheel revision packages generation.
a97e62c2 Allow temporarly the failure of ctest_python job without breaking the CI pipeline.
989eb180 Catch exception when Faust.save() fails in dynamic library to avoid python/matlab script to crash.
744c36ea Fix of minor bug introduced in pyfaust.FaustFactory.fact_hierarchical() by a514bcb5 or 68796c85.
3a8a43df Update API doc for matfaust.FaustFactory.fact_hierarchical().
9547f51e Add pyfaust/matfaust.faust_fact() as a shorthand for FaustFactory.fact_hierarchical().
4cdb3e05 Minor change.
d8ddeaa2 Return to caller the parameters used in FaustFactory.fact_hierarchical().
5472bc28 Prepare setup.py to generate eggs and wheels binary packages.
ab78d4db Bind into pyfaust the prox operators from cpp core.
a74ae436 Bind into matfaust the prox operators from cpp core.
903047b2 Minor change.
667dd0bf Allow to get back lambda from (matfaust/pyfaust) FaustFactory.fact_hierarchical().
b1530d72 Add pyfaust/matfaust.factparams.ParamsFactFactory to build in transparency the simplified parameters (ParamsHierarchicalFactSquareMat/RectMat).
d8cb2db0 Impl. MEG/Rectangular matrix factorization simplified parameters.
6fd439a4 Impl. hadamard hierarchical factorization simplified auto-parameters.
6bb158a5 Do for pyfaust the same as the previous commit (f10ca9b3) did for matfaust.
6d3d5f65 Modify matfaust.factparams.ParamsFact and sub-classes to decrease the number of mandatory arguments.
688c6b34 Change expire duration for revision packages: from 6 months to 1 week.
818c03a6 Update pyfaust according to what the previous commit (78e526cd) did for matfaust and add function FactParams.is_mat_consistent().
c8b4bc5c 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().
95936673 Add alt. signature to Constraint* constructors to ligthen instantiation code (pyfaut and matfaust).
413d61b7 Fix matlab fft demo: re-add add tool scripts erroneously deleted by eee2ad44.
034836b0 Minor change.

Version 2.3rc12:

96f20abe Filter out from API doc the signature Faust(varargin).
6c4ffc69 Add uncomplete doc for both pyfaust and matfaust Faust.normalize().
c3076ec4 Extend pyfaust.Faust.normalize() and add unit tests.
d6179842 Secure Faust.normalize(): avoid trying normalize zero vectors (kept to zero).
c63541ff Add a wide covering unit test for matfaust.Faust.normalize().
83da89f9 Extend matfaust.Faust.normalize() to other available norms than 2-norm and for row-based normalization.
d8f3b90c Add figure plotting of bsl demo distance to sources (in pyfaust).
7bd89fbb Add figure plotting of bsl demo time comparison (in pyfaust).
8dc6b370 Add figure plotting of bsl demo speedup (in pyfaust).
464c0b79 Port BSL matlab demo to python into pyfaust.demo.bsl class.
c8308d49 Add pyfaust/matfaust.Faust.normalize() (currently normalizing only with the 2-norm).
8a43cd21 Extend pyfaust/matfaust.Faust.get_factor() to return a Faust composed of a sub-sequence of another Faust factors.
51a4403d Fix minor bugs in pyfaust.demo.quickstart.run().
f0594586 Port the Greedy OMP Cholesky algorithm from Matlab to Python in module pyfaust.tools.
00cfde5d Enhance and secure FaustFactory.eye(), add doc.
397ba846 Update pyfaust/matfaust API doc, in particular for Faust addition and substraction.
36957e8d Disable Faust constructor auto-opt. of factors by conversion to sparse from dense or inverse.
3da00f07 Add the function pyfaust/matfaust.Faust.isFaust().
493f1f7e Add the function pyfaust/matfaust.version().
e7870cfd Minor change.
6d97cd7a Add new function FaustFactory.eye() and modify/add/fix several things about concatenation, addition, substraction and real-complex conversion of Fausts.
8d0bfec8 Implement in pyfaust addition and substraction between Fausts or Faust and scalar.
4df8cd0d Implement in matfaust addition and substraction between Fausts or Faust and scalar. Add also unit tests.
8da6dd57 Impl. for pyfaust the division of a Faust by a constant, add also unit test and doxydoc.
9d0d5769 Impl. for matfaust the division of a Faust by a constant, add also unit test and doxydoc.
74c5f368 Impl. for pyfaust the multiplication of a real Faust by a complex Faust and add a unit test.
87cd5fb9 Impl. for matfaust the multiplication of a real Faust by a complex Faust and add unit test.
b5c87e8f Impl. for matfaust the mul. of a real Faust by a complex scalar, add related unit test along with Faust.complex().
e597a186 Impl. mul. of a real Faust by a complex scalar in pyfaust and complete mul. unit test.
bed5f630 Minor change in pyfaust unit tests.
64784b37 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.
cb487b60 Add pyfaust.Faust.pinv().
b438ce6e Add documented matfaust.Faust.mldivide() and pinv() functions.
f07e1ded Handle negative indices when slicing in pyfaust, add related unit tests.
ee0841db Update API doc and fix in matfaust.Faust the horzcat() and vertcat() functions (varargin wasn't set).
d10ec961 Minor change in pyfaust unit tests (same as 31fc9f9d).
0f0569e4 Block explicitely pyfaust.Faust fancy indexing when used in the both dimensions.
7ec7d55a Forbid slice step == 0 in pyfaust like numpy.
60b9005f Add pyfaust unit tests for 322c8533 (slicing with arbitrary steps).
5c6ecf88 Handle negative and >=1 slice steps in pyfaust and do the same as what 8db762bf did for matfaust.
2995b705 Minor changes in pyfaust slicing unit tests.
7d9ec383 Block in matfaust the kind of Faust indexing that create empty Faust and fix by the way bug of issue #30.
b97bbaf0 Add matfaust.Faust unit tests for indexing by vectors and slicing with negative steps, fix by the way a bug.
992ba784 Re-enable the slicing test using negative step thanks to e6faabc8.
1fc6e6d6 Add indexing by vector in matfaust.Faust.subsref() binding it to C++ core impl.
6966918a Simplify matfaust.Faust.subsref(): less lines same results with a loop (one ite. per dim.).
e3e8ac6d Add unit tests for pyfaust.__getitem__()/fancy indexing and fix a bug occurring for a 1-factor Faust fancy indexing.
a127751d Start implementing fancy indexing for pyfaust.Faust.__getitem__().
0bf0bd61 Add matfaust.Faust.imagesc() and pyfaust.Faust.imshow().
01ee148e Rename (py/mat)faust.demo.hadamardfact to (py/mat)faust.demo.hadamard.
1a5d7ce0 Rename in FaustFactory, hadamard() to wht(), fourier() to dft() (both for pyfaust and matfaust).

Version 2.3rc11:

a02d45e7 Transform matfaust.demo sub-namespaces into classes to be consistent with pyfaust organization.
ffb56c67 Add the plotting part of the norm hadamard pyfaust.demo.
0e0cc6b8 Port the computation part of matfaust.demo.hadamardfact.norm_hadamard() to pyfaust.demo.hadamardfact.
9857958a Fix a bug in matfaust.FaustFactory.fact_*() functions: the parameter is_update_way_R2L was ignored.
2a4e557b Update API doc.
91db967f Port matfaust.demo.speed_up_hadamard to pyfaust.demo.hadamardfact.
3371a7ad Disable unit test assuming an empty faust is authorized (because it's not since 097e9e43).
61dd93ce Update pyfaust/matfaust.Faust constructors to handle Faust(A) where A is a matrix/array and to forbid empty Faust creation.
8f5a9daf Complete pyfaust.demo.hadamard_fact with computation time gathering, result save and plotting/saving figure.
4e3ac8f1 Start the python port of demo_fact_hadamard.m into pyfaust.demo.hadamardfact class.
dea257d4 Fix a small bug in FaustFact.hpp: the switch case was missing SPLINCOL constraint type.
d0c51d28 Fix minor bug #67.
309b2659 Group factorization parameter classes into matfaust.factparams namespace.
80a4b818 Fix a bug in cmake ctest cmd for launching quickstart demo.
62ca9818 Merge pyfaust.params and pyfaust.constraints into one sub-module pyfaust.factparams in order to simplify pkg organization.
0ee027b9 Integrate python quickstart script into pyfaust.demo module.
b772ea99 Generate doxygen doc for pyfaust.constraints, pyfaust.params and pyfaust.demo and add a script to avoid fake namespaces generation.
078aa633 Simplify pyfaust.demo old sub-package to a module with fft, runtimecmp old sub-modules being now classes.
24c7377d Add pyfaust demo scripts (ported from matlab: fft, runtimecmp).
efa484d8 Minor fix.
0629720b Add in pyfaust and matfaust.FaustFactory.rand() the possibility to set the density per row or per column of each factor.
b657e30d 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.
c4bbdb8a (Unit)test faustpy.Faust.concatenate() for more configs.
23469329 Change the boolean is_real argument of FaustFactory.rand() to str 'complex'/'real' (for both pyfaust and matfaust).
2294eb63 Reorganize the pyfaust module into a real package with submodules.
c7adcadd Minor change.
5791b17d Avoid creation in demo scripts of output or Figures folders if exist already.
fe228306 Minor change.

Version 2.3rc10:

8f08db70 Remove totally misc/demo folder with its cmake scripts since all the matlab demos and data are handled by wrapper/matlab/CMakeLists.txt.
5381d615 Fix memory leak in Faust::TransformHelper::randFaust() (issue #63).
a10e6a9e Move misc/demo/run_all_demo.m to +matfaust/+demo/runall.m and enable it for doxydoc parsing.
f96c6a53 Integrate runtime cmp matlab demo scripts into matfaust.demo namespace.
890a62d5 Integrate bsl matlab demo scripts into matfaust.demo namespace.
e5d58eec Integrate fft matlab demo scripts into matfaust.demo namespace.
46f20745 Automatize/simplify the listing of *.m files in +matfaust and their copying/parsing for matlab inline doc.
59dd549a Implement in matfaust.cat() the recursive concatenation of n Fausts/matrices and update the API doc.
f8934a6d Implement in pyfaust.concatenate() the recursive concatenation of n Fausts/matrices.
a089fa35 Enhance speed of continuous integration by removing dmg generation (macOS) and passing cmake option BUILD_TESTING=OFF for all packages.
06511ff6 Integrate quick start matlab demo scripts into matfaust.demo namespace.
63e408e7 Minor change.
1440351e Fixing issue about not visible brief descs of vertcat(), horzcat() (raised by issue #50).
4524fc93 Implement the sparse/full-matrix-to-Faust concatenation with on the fly matrix-to-Faust conversion.
66e90076 Disable display of Faust small factors by adding an optional-default-to-false argument to to_string() and Display() functions.
73d2fb95 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.
ba835d3f Fix a bug in complex case of concatenation in matfaust.Faust.horzcat() and vertcat().
c9d4188d Minor change.
1d29dfec Add sub-namespace +matfaust/+demo/+hadamardfact with the demo scripts associated and integrate them to the doxydoc.

Version 2.3rc9:

98d960ae Fix a bug introduced by 68648185 into Faust::TransformHelper::fourierFaust().
8a7cbfeb Add to Windows build the conversion from doxy. doc to matlab inline doc.
ffd64df4 Convert doxy. doc. to matlab inline doc for all classes of matfaust namespace.
e60cbc51 Minor change in matlab inline doc generator.
19a43a67 Add code doc. for pyfaust.concatenate().
6d00170b Minor change.
e86091f8 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:

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

Version 2.3rc7:

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

Version 2.3rc6:

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

Version 2.3rc5:

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

Version 2.3rc4:

aa3d3c7f Slightly modify unit test for matfaust.FaustFactory.fourier().
244bdbab Fix a bug and add related unit tests about slicing a Faust and then slicing again the sliced-Faust.
363e66a1 Update the API doc.
b01a39ab Enhance FaustCoreCpp initialization by avoiding to create an empty/useless Faust::TransformHelper() into the default constructor.
338f2fc7 Optimize Hadamard and Fourier Faust::TransformHelper initializations (avoiding to copy the factor matrices created, directly using them).
748bf022 Hide scale argument in constructors matfaust/pyfaust.Faust() and display a deprecated warning if used.
a0f7bf43 Implement the commutativity in the mul. of a Faust by a scalar in matfaust.
bb0428fe Update quick start README and API doc.
ac1f3d00 Bind pyfaust to C++ impl. of Fourier Faust and add a py unit test for it.
51854821 Implement Cooley-Tukey in C++ and bind it into matfaust.FaustFactory.fourier(). Add a related unit test in FaustFactoryTest.m.
3ad43f82 Fix a bug in matfaust.Faust.get_factor() happening when the Faust is conjugate(-transpose).
2a4207e2 Add a unit test for matfaust.FaustFactory.hadamard() into FaustFactoryTest.
6b72c461 Bind the C++ impl. of Hadamard-Faust into matfaust.FaustFactory.hadamard().
22b99e8a Add a unit test for pyfaust.FaustFactory.hadamard().
507f4700 Implement Hadamard-Faust in C++ and bind it into pyfaust.
4ca0b570 Add a small unit test for pyfaust slicing.
d3d3cc21 Simplify the C++ impl. of Faust slicing and fix a mem. leak.
5eb91416 Implement multiplication by a scalar in pyfaust.Faust.__mul__().
612a88d6 Implement multiplication by a scalar in matfaust.Faust.mtimes.
4c160adf 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.
60edffa4 Update the doxygen doc's main page and the quick guide.
3d91797d 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.).
a870fb67 Minor change.
03dae3fa Minor change.

Version 2.3rc3:

80b0cbf1 Update the main doxydoc page and the quick guide README.
e0057a05 Fix a bug in matlab inline doc generator script.
335589fc Erase build directory if exists before building for Windows installer generation.
3a99953b Specify automatically the exact python 3 major-minor version used in README doxygen/html doc.
3164e6a9 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.
7c0698b8 Make Palm4MSA and HierarchicalFact. algos compatible with complex matrices (C++, Matlab, Python).
9306b220 Update doc.
b5c89cb4 Add a new way to find python2 in cmake script.
263528aa Minor change.
b94130ff Review slicing in pyfaust.Faust.__getitem__() and matfaust.Faust.subsref().
6e110ddd Change the default norm computed for a pyfaust.Faust to Frobenius norm.
18a1d95b Fix bug in mex cpp code for matfaust.Faust.display(): Windows version prints nothing in Matlab terminal.
de9cf834 Correct the matlab path to matfaust namespace in windows installer generator script.
65e53826 Add a gitlab yml job to generate a Windows installer for each git tag.
0e4fe835 Update gitlab yml job and nsi script to generate API doc for each commit and deliver it into Windows installer.
f62a277f Modify slightly cmake scripts to be able to generate doxygen API doc on Windows.
e5b8387a Add a gitlab yml job to generate a Windows binary package for each commit.
ca322104 Add NSI script for binary packaging of Faust on Windows platforms.
c3b106db Add pyfaust wrapper compilation support on Windows using MinGW.
41631fd6 Move above in the script the c++11 detection to fix a bug occurring with mingw compil. of faust (windows).
75caec5f Reenable Windows nightly tests.
744f2189 Update cmake scripts for matio header inclusion and library linking for Windows.
3b2f0d5a Simplify the bug fix made by 41312154.
b078abf7 Fix bug affecting MATLAB_ROOT path separator when using MinGW or gcc on Windows.

Version 2.3rc2:

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

Version 2.3rc1:

7244ac2a Add factorization algos unit tests.
64261b49 Separate constraints argument of Hierar. fact. in two args: factor and residuum constraints.
f6ba6b16 Remove from matlab doxydoc the function argument direction modifier: 'in'.
878f401f Verify pyfaust.StoppingCriterion construc. arguments consistency.
4d8dfac1 Minor change.
5b0123c1 Prevent explicitly complex matrix factorization.
f1660ddb Move totally Faust.rand() to FaustFactory.rand() and update API doc.
8dabef6e Simplify the way init_facts is used/defined in both matfaust and pyfaust FaustFactory.
17c9d8bf Update pyfaust wrapper (constraint and param classes for facto.).
be9ec34c Add FaustFactory.rand() in pyfaust and matfaust. Update FaustFactory API doc.
1ca0c9f8 Add matlab wrapper for factorization algorithms (palm4msa and hierarchical fact.).
3f5f518d Add function Faust::StoppingCriterion::Display().
e8e874d0 Add py wrapper for factorization (both palm4msa and hierarchical fact.).
186df11e Complete the cpp unit test for PALM4MSA.
2741ed28 Add a new constructor to Faust::StoppingCriterion.
bb7699d1 Add a new constructor to Faust::TransformHelper.
9990db4c Add the capability to do an optimized copy of factors to another Faust::Transform's constructor.
3730fd3f Fix cpp delete error.
cf7a3ee0 Minor change.
b2b682e4 Update gen_matlab_inline_doc_from_doxy_blocks.sh to make it work on macOS.
1029faaf Minor changes.
cd539411 Minor changes.
3f3f06b2 Minor changes.
b9791a51 Update API doc (py/mat).
060f073d Change display function for a Faust.
10720cb9 Enhance random Faust generation.
3fd33fdf Disable gen_matlab_inline_doc_from_doxy_blocks.sh on macOS because currently the script works only on Linux.
fcdb75ab Add expire dates for packages sent to gitlab and keep a local copy of revision pkg for macOS.
bec686d8 Add equivalent functions matfaust.Faust.numel() and pyfaust.Faust.size().
74eef57f Fix in cmake script a bug introduced by e92d4bc6.
c13a79c6 Fix missing namespace matfaust in matfaust.Faust.mtimes_trans() (next to 3f4d86cc).
270b1683 Update post-install script for py. wrapper (in next to edfcad65).
b6350ed5 Check that bounds are respected in matfaust.Faust.subsref().
7baa3513 Create a namespace for matlab wrapper: matfaust.
000aa27e Add a script for editing Faust.m to generate a Matlab inline doc from doxygen code doc.

Version 2.2rc20:

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

Version 2.2rc19:

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

Version 2.2rc18:

b6266a3b Reimplement completely pyfaust.Faust.__getitem__(): now it returns a Faust object instead of a ndarray.
931956ae Update API doc.
f1e8f320 Rename module FaustPy to pyfaust.
7cf2e14d Replace FaustPy.Faust.isReal() by a dtype property.
a0c1e8e8 Add property decorated functions FaustPy.Faust.H() and FaustPy.Faust.T().
3df5a15a Add postinst. script for macOS to open the readme automatically after installation.
b354a3d5 Set Faust.rand() more flexible in both wrappers by changing arguments (polymorphism).
687509f0 Temporarly disable Linux nightly tests.
743fe5d7 Rename matlab wrapper Faust.get_fact() to Faust.get_factor().
25149d10 Exclude Matlab wrapper functions mtimes_trans and subsasgn from doxygen doc.
39d662ae Rename Faust.todense() to Faust.toarray() and add a new Faust.todense() which returns a numpy.matrix.
ef586bb2 Update API doc.

Version 2.2rc16:

def1ee7a Rename FaustPy.Faust.get_nb_factors() to get_num_factors() and likewise for matlab wrapper get_nb_factor().
cd5da73e Modify the way identity matrix is initialized in cpp unit tests for mul.
62cc76a2 Fix wrong display of Faust transpose and update API doc.
89a1275a Override default __repr__() in Faust class and use it to refactor display().
bac3976e 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.
c5e67ca6 Delete FaustPy.Faust.get_nb_rows()/get_nb_cols().
23ac7a8a Rename FaustPy.Faust.size() to shape and use a property (decorator) instead of function.
1ab8e81c Rename nnz() to nnz_sum() (in matlab and py wrappers).
37ee5123 Minor fix in test script.

Version 2.2rc15:

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

Version 2.2rc14:

7ba20186 Update guide doc.

Version 2.2rc13:

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

Version 2.2rc12:

1a901d58 Update readmes and their generation cmake script.

Version 2.2rc11:

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

Version 2.2rc10:

97fc14bd Send packages linux and mac to gitlab.
8fe7be47 Update API doc.
c060da2f 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.
7ffaccb5 Update API/code doc.
d55e0ba5 Plot RC/density instead of RCG.

Version 2.2rc9:

0b037e09 Fix bug in Faust::Transform<FPP,Cpu>::updateNonZeros().
63bb1f16 Update API/code doc.
fd72d1b3 Fix python unit tests for RCG and density next to the fix c586c85b.
5fead365 Fix constructor ignoring of multiplicative scalar when Faust obj. is constructed from a file (matlab wrapper).
f63d27b9 Add a faust test script showing how the .mat file size is related to RCG.
79230b49 Fix Faust.density() and RCG() for Py2.
f9669775 Implement multiplicative constant to apply to a Faust at initialization time.
129688d4 Handle also sparse matrices (csr_matrix) in list_factors argument of constructor Faust().
6aad9cc4 Minor change.
f606396a Fix wrong index bug in one constructor Faust::MatSparse().
7d386c57 Add a script for showing truncated SVD accuracy versus the RCG.
a0acaa1e Minor change.
9481bb03 Add gitlab pages with doxygen doc for each tag.
68e70613 Add pkg postinst. script to symlink matio if needed on debian/ubuntu sys.
a2950f2c Shorten the commit sha to its unique eight first digits in package names and versions.
fa923e9a Replace in doxygen doc the static date by the date of generation and display the cpack package version.

Version 2.2rc7:

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

Version 2.2rc6:

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

Version 2.2-rc5:

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

Version 2.2-rc4:

332abefa Compile and test for python2 even if python3 is found and likewise search the two versions of python and cython.
0e7ad113 Minor changes.
178f31cb Minor change.
53dd03fd Add missing description for RPM package (based on debian pkg description).
2b2af0ca Minor change.
d1987824 Replace URL http://faust.gforge.inria.fr by http://faust.inria.fr in a lot of files.
4a9f2ea8 Minor change.

Version 2.2-rc3:

1ea25ea1 Avoid to exit in matlab postinstall script.
70f0ac5a Add a new postinstall script specific to macOS.

Version 2.2-rc2:

bbd03582 Remove /opt from auto filelist for rpm package because it's a conflict with filesystem package.
a3820f88 Specify dependencies for rpm package and filter matlab's.
2fb2b58d Update py wrapper doc.
304d04d7 Filter more properly the doxygen doc when excluding C++ doc/static lib to keep only Python and/or Matlab wrapper doc.
a84a680b Add package postinstall script to automatize py wrapper setup.
67c8808a Fix memory leak in Faust::MatSparse::randMat().
39ab8abb Add Faust.rand() to the matlab wrapper.
29666d98 Minor change.
54bd1255 Minor change.
281ebfe8 Update py. wrapper code doc.
765f513c Minor change in Matlab unit tests.
f93d9869 Fix two randFaust() bugs on MacOSX/clang/py2.7.
f658f1e4 Fix bug in py wrapper display() occurring for complex Fausts.
cc6e1be1 Add a random faust generation method in cpp lib and py. wrapper.
6afed193 Enable cmake code for C++ version detection and corresponding compiler flag setup.
80294b35 Implement Frobenius norm in cpp core lib. and bind py and matlab wrappers to it. Add related unit tests.
3ddb1815 Implement sparse matio/matlab file output for Faust factors with support of real and complex scalars, Faust's conjugate and transpose.
5c9d2cf0 Fix bug. Prevent save of empty Faust.
9fa87a55 Add L1-norm to core cpp lib, py. and matlab wrappers. Also add unit tests for this norm for py. and matlab.
0ce04cbb Minor change.
c7814fb7 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.
ce364670 Implement Faust over complex field into Python wrapper and add related unit tests.
21b920f7 Minor changes.
cbb49a53 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.
79a9fd03 Add unit tests for Faust deletion.
38d6bfd1 Move to a weak reference design pattern for Transform objects used in wrappers. Fix memory leaks for Transform.
3a41ff0d Add unit tests for Matlab wrapper Faust class.
48678a84 Slightly modify unit tests for norm(), __getitem__() and test params (num. of factors and dimension sizes).
9edf6d71 Handle save of complex or complex-transpose faust in Faust::MatDense::toMatIOVar().
058917e5 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.
1c4dd74e Add unit tests for not covered yet FaustPy.Faust functions.

Version 2.2-rc1:

32b5b9b4 Minor change. Simpler code and review error condition in mexFaust.cpp save() function.
05aa2ea8 Remove flag CMAKE_BUILD_TYPE=Release because it fails package generation for Linux.
779c8b82 Add matlab doxydoc if matlab wrapper is built.
c4b72939 Add post-installation scripts into packages for auto-setting matlab wrapper path into a matlab startup script.
8507413d Remove wrapper language specific code to save a Faust (Py and matlab).
13a79d03 Add doxygen code doc generation for the Matlab wrapper.
c0c5ac62 Add a Matlab unit tests class for Faust class defined in Faust.m.
58136e70 Fix and factorize Faust.delete().
65b16b8d Include licenses and README in MacOSX packages and doc directory at installation stage.
9fb1f229 Set the linux package version accordingly to the git commit/tag.
0ad1bdcb Add a unit tests script for Python wrapper main class FaustPy.Faust.
8860f2dc Fix bug into Faust::Transform::save_mat_file(), the number of faust factors saved was always two.
236f92ef Document the code by making profit of doxypypy and do other minor changes.
978e0103 Temporarly disable Windows nightly tests.
cd32e939 Check that FaustCorePy.get_fact() index argument is in correct range.
aac41383 Add API generated documentation files to packages.
1c9780d1 Bind matlab wrapper to Faust::Transform::save_mat_file().
99cb43d3 Minor change.
3d53c54f Add libmatio dyn. lib. to MacOSX in ci package generation.
e7b20f22 Add in core cpp lib the capabililty to write a FAuST into a Matlab file and link the Py wrapper to it.
a50cb6a2 Minor changes.
37374535 Remove empty definitions of multiply() in MatGeneric and replace by virtual pure function members.
c28e7c3b Make also a package with pkgbuild for MacOSX.
a5f6f49f Add FaustPy doxygen doc. generation.
39950dc4 Fix Faust.get_factor() for the transpose case and add related tests into quickstart.py.
80e429fb Add functions in the Py wrapper: size(), get_factor(), save() and adapt the constructor to read a Faust from file.
7dc4cc62 Update README.
d94b5f02 Add ftp command to upload package for linux.
ebd3f5e1 Minor change.
b8fd76bb Convert README from txt to Markdown.
3a70f2e0 Add methods to Py wrapper: nnz(), density(), RCG(), norm() and get_nb_factors(). These methods are already in Matlab wrapper.
0abc18d2 Install doxygen doc for core c++ API if core library's installed.
9a052a98 Strip binaries in Release build mode and optionally exclude core faust lib.
880ef58a Exclude git tags from non-related ci jobs.
34e8dd76 Reindent the code.
315f22ff Correct error in R2016a/gcc versions requirements.
9a365f4c Add ci jobs for packaging when git tagging.
095540a1 Minor change.
cb5ae67b Exclude clang/llvm from gcc/matlab versions verification.
4e69d1b9 Add tags and except sections to ci job for linux packaging.
c1217fd4 Add a ci job for packaging faust on Linux (only rpm and deb).
607bc2bf Check gcc version matches with Matlab's, block compilation if not.
aae2e903 Update MacOS packaging job.
26700192 Exclude scheduled ci pipelines from revision packaging job and add the commit sha as a suffix to package name.
fb11c63e Add switch to sudo in order to get pass from stdin.
5e3b8ff2 Add a new ci job for packaging faust on MacOS X.
0c009dad Avoid plotting faust time for py wrapper test when we are in test env. (with no display).
9adedc42 Fix bug with a matrix-vector product into py wrapper test.
6b4c5adf Fix 2 minor warnings in cmake scripts.
ef94ad2d Fix numpy array access bug, issue #9.
4920e0a8 Add gitlab ci job for Win7.
4877b215 Update CDashConfScript.cmake for Windows.
f80cc738 Decrease ci test time and add specific jobs for macos and linux nightly tests.
d2152258 Change installation prefix directory for testing.
28361250 Update CDashConfScript.
517c5fe2 Remove useless command ctest_empty_binary_directory().
99359a0d Remove useless ci job tags.
12b8bf77 Rename CDashConfScriptLinux.cmake to CDashConfScript.cmake.
eda3a100 Separate gitlab ci jobs into quick and slow jobs and add job tags for win and macos.
3345b23b Fix clang compilation error in matlab wrapper.
a171b435 Fix test related cmake error on Windows.
8fb7b266 Fix matlab mex compilation error on Windows.
25f30632 Fix bug with matlab environment probing on Windows.
f77381ad Add python and matlab wrappers to linux tests.
d4c88fb9 Update in order to make python3 available.
fbd6f253 Fix gcc/linux compilation errors for types uint32/64_t declared twice.
35db3ee7 Add CDash/CTest site name.
bf542555 Add ci yml script and ctest/cdash script called by it.

Version version_2.1.0:


Version 3.39.7:

cbfa2397 No parallel building for ctest_matlab.
d5c1ce18 Update VS Studio version in CDash config (fix for ctest_nightly).
f39fa0b3 Add sanity checks on report files of ctest* ci jobs + other checkings.
c62a6ac6 Fix minor bugs in GPU tests + update to gpu_mod@4408485.
4ef36643 Enable GPU C++ tests if the gitlab-runner has the cuda tag + refactor gpu_mod building in a specific script + parallel building.
52f6d6cb Add matfaust.Faust.insert/replace.
e28e98ba Minor changes.
11564806 Replace gcovr invocation in ctest ci job by an extern script.
45dab9b3 Add pyfaust.Faust.insert/replace.
75493775 Fix pkg_macos.sh undefined variable MACOS_PKG_STORE_PATH.
17a591b4 Set strict mode in script: not defined variable, nonzero exit/pipeline code raise an error.
67506834 Limit gcov flags to ctest ci job (C++ tests).
70a95dde Minor change.
84d93bbb Fix exp code example in pyfaust.fact.hierarchical_constends.
4010972c Minor change.
eaa37336 Add C++ test coverage badge in the README.
565a4455 Fix cpp test report path issue.
93ac249d Minor corrections in code doc.
cc2025b2 Fix coverage cmd and add the output dir to the job's artifacts + increase ctest timeout.
27b1e853 Add C++ ctest coverage with gcovr in ctest ci job.
98725a4a Fix GPU Matdense mul, multiplyLeft(MatSparse) tests and update to gpu_mod@47ad960.
905a5f67 Replace static changelog file by a script generator triggered in pages ci job.
f5b3cee3 Fix GPU batched SVD test in case of complex matrix.
0a81d1bc Fix GPU2 MatButterfly/MatPerm tests in case of double scalar type.
28b24fbb Fix a memory leak in Transform<FPP,GPU2>::tocpu.
36d00858 Fix MatSparse<FPP, GPU2>::tocpu(MatSparse<FPP, Cpu>&) in case of zero MatSparse.
cdd4f1ee Enhance MatDense<FPP, Cpu>::operator=(MatSparse&) in case of zero MatSparse.
deccea43 Fix unit tests of Vect<complex<double>, GPU2>.
03c046a3 Fix BSR block sizes in test_dynprog_mul_gpu.cpp.in.
a0063c3f Fix GPU2 MatGeneric::to_string wrong use of Cpu parameter for MatBSR.
b9ffc73e Update to gpu_mod@ef3d005.
62b98e15 Correct Vect::equality prototype, the precision is always real.
3bfcccec Add unit tests Vect<FPP, GPU2>.
7b9ae809 Fix function init_params_from_matiofile not found.
d98517f3 Update to gpu_mod@24ba075.
da72b2f4 Add commit sha in cdash build name.
c7156e7e Ignore skipped status for pipeline badge and remove badges in anaconda pkg desc.
0e539cee Minor fixes in READMEs titles + automatic TOCs.
91e0e7cc Remove erroneous preprocessing END keyword.
02f75df8 Integrate coverage badges and FAµST logo on pypi, readme and anaconda descriptions.
b02fbf50 Fix minor errors in doc string examples of pyfaust.fact.hierarchical_constends/palm4msa_constends.
77ba25ec Add a contributing guide + update other READMEs consequently.
0bc49813 Re-enable cdash report submission but with token auth.
7fc9306b Add gitlab coverage regex in pyfaust/matfaust code coverage ci jobs.
858e7a7f Update many things mostly around Faust scalar types conversions + wrapper building.
ad4557c1 Replace GPU2 MatSparse::resize test by a resize+set test (more assertions verified).
b0a38a7c Fix multiple bugs in GPU matfaust.Faust.real/imag/double/single for Faust SPARSE matrices.
cb6e53ea Fix multiple bugs in GPU matfaust.Faust.real/imag/double/single for Faust dense matrices.
400ce8cc Fix GPU pyfaust.Faust complex to real conversion.
705cb537 Update README.developer.
12233137 Add build pyfaust path to PYTHONPATH before sphinx doc generation.
e97fa4dc Add a dependency to pages ci job because it needs pyfaust shared lib to generate sphinx doc.
5c86db48 Set pyfaust version in sphinx doc.
67a92d60 Add a concurrent sphinx API doc for pyfaust and link it on the doxygen doc.
d0e52a73 Ease copy of examples in online API doc (chevrons and outputs are excluded from selection).
03446221 Minor fixes in two ci jobs.
1b8728a4 Add mul_perm option in matfaust/pyfaust.fact.butterfly.
195fe71d Replace py3.9 by py3.10 in package generations.
004b23f8 Update copyright years.
6ed3016d Fix issue #323 about libomp conflict between pyfaust and mkl.
5adaa57e Set a docker image (for linux) and doc to ease pyfaust building.
46ab1494 Remove the cloning part of the README now that the default way for cloning is ok (issue #294).
169be7be Fix matfaust_test_code_coverage ci job that now needs to download data before proceeding.
c01d7b47 Fix missing faust_quick_start.mat for matlab cmake configuring by launching the download automatically.
62c9c071 Fix pyfaust_test_code_coverage ci job that now needs to download data before proceeding.
966ddaa9 Cmake BUILD_TESTING defaultly OFF but ON in CDash/ctest config.
a1202218 Add a script to download misc/data instead of relying on local data.
6139886c Fix a bug in pyfaust.Faust.__getitem__().
77699a6a Complete README part about C++ tests.
1f1a7aa2 Renable nighly ctest ci job for Linux and Windows.
3d8cbc59 Update svdtj doc about experimental status and order of singular values.
6b330add Disable by default the benchmark part of MatBSR tests because ctest runs them in parallel so the times are biased on VMs.
e21e26cf Use the proper error and increase tol in svdtj tests.
2ac09cdb Update SVDTJ on stopping criteria.
fe79d902 Increase test timeout to fix MatBSR tests.
b311e9a6 Set different error tolerances for each scalar types in MatBSR tests.
c0413055 Fix missing cases for typeA/B == 'H' in gemm_core.
40d20acb Fix return ref to local value in BSRMat::operator().
1a00262e Fix faust_butterfly/perm_mat tests which were not compatible with real matrices because of FFT.
0b1e8d03 Fix config .mat filepath error.
8e982f99 Fix buffer overflow in MatSparse(MatDiag&) ctor.
1f72d16e Fix failed EigtJ test on MatSparse Laplacian because of default enable_large_Faust == false.
4dbfe553 Fix faust_multiplication ctest add without needed arguments and remove its complex versions.
c260f72e Set fixed seed.
03367de5 Add missing cpp tests to ctest.
800ae2af Enhance slightly error tol on ParamsPalm4msaWHT example.
6aac71c1 Document in FAQ the SafetyError warning when installing pyfaust with conda.
703c721c Review/correct/update FAQ entries.
13fbe2b9 Ease use of faust data downloader script by creating the output directory if it doesn't exist.
638ab14c Update/Correct system pkg installation guide.
a3fb0d1b Correct runner tags of test_macos_purepy_release* ci jobs (no need of macos tag if macos_pip_pkg_tester is set).
7e2c881b Build python wrapper cpp files independently to speed up/parallelize building.
d89545d6 Correct macos SZIP lib path (more standard).
dbe56ccd Add a specific tag for pip pkg ci jobs on macos because of _clock_gettime missing symbol on older macOS (10.9).
0df0b3e0 Add separate SZIP static lib path (to fix macos new link issue).
40a87f00 Parallelize more make calls with 4 or 8 jobs.
e14c9b67 Remove recursive strategy for submodule in macos jobs (don't need gpu_mod).
dcd0545b Fix errors in numpy min/max uses with numpy version 1.25.
4d74feee Fix paths for only:changes rule.
8a8f6d64 Fix faust_transform_omp_mul test (OMP/C++ threads Faust-matrix mul. parallel reduction).
21f77fd8 Replace clang 8 by clang 9 on macos gitlab-runners + correct typo into build dir of ctest_matlab.
9d81f9b1 Avoid Xcode's clang to be confused with gcc in matlab/mex matching test.
209a3622 Update doc for cpp tests/ci.
2a4498fe Update the script/guide for Mac OS X VM install.
2590093c Fix return ref to local variable in MatButterfly/MatPerm.
7c5750ab Increase error tol in EigTJ test.
4e5d2fa3 Fix EigTJComplexSparse test that was failing because of enable_large_Faust defaultly to false.
d5429634 Skip doctest of matfaust hierachial fact of MEG matrix (too long).
fa73e2d7 Fix build dir pattern.
ab8948f9 Replace git command by only-changes gitlab ci rules.
9bd8d51f Minor change (std prefix).
9599a692 Remove mention to py2.7 and adjust note about pygsp linking the notebook.
adb0f494 Exclude matfaust_test_code_coverage ci job of scheduled pipelines.
58c0e3ae Increase tolerance of test in float case.
7d9b9475 Add junit test report to ctest (cpp tests) ci job and refactor junit2html generation for all ctest_* jobs.
b9e18973 Add a note about matfaust test coverage and GPU code tests.
72467501 Add a hint about matlab savepath in install guide.
39b17330 Remove linux pkg download from matfaust_test_code_coverage ci job.
9969a123 Add matfaust test coverage ci job (using MOCov).
ac709a52 Filter <p/> html tag from matfaust inline doc blocks.
885c9a75 Fix testGetItem test that rarely failed.
5503e831 Increase error tol from machine epsilon to 1e-15.
fced1cbc Complete afeba5b0 to fix file conflict between parallel/sequential tests.
84336524 Fix missing hdf5 lib in macOS pkg and replace install path /usr by /opt
4d900541 Update readme with test coverage info.
947003ac Delete possible pre-existing file with the same name.
c0e89675 Take doctest into account in the pyfaust code coverage.
4ff7ecd8 Add a test code coverage ci job for pyfaust.
f8cc25d0 Add a README about ci tests and pkg release (to complete).
3b7ad5f6 Remove old link to lazylinop notebook.
2a2f467b Fix matfaust doctest loop (exit on first test).
1988c340 Minor change in unit tests: complex case and tol in cmp.
59a17687 Add BitReversalPermutation.m to install dir/package, it's needed for fact.butterfly.
269093f8 Fix doctest bug of experimental m-files by removing experimental tags/comments if EXPERIMENTAL_PKG=ON.
8403c7f5 Fix butterfly optimization segfault on already optimized Faust.
98539b6c Review/doctest matfaust.demo and add it to doctest ci job.
7ac304f2 Add matfaust.fact and .tools to doctest ci job.
9b06ea80 Review/doctest matfaust.tools.
5f05531e Review/doctest matfaust.fact.
68867a5f Fix missing std namespace.
24344391 Fix tolerance problem in matlab FaustTest.testcat.
8196441a Review/doctest matfaust.fact.butterfly and add it to doctest ci job.
c9d91413 Review/doctest matfaust.factparams and add it to doctest ci job.
cc73164f Review/doctest matfaust.poly and add it to doctest ci job.
435c733c Fix Windows filename too long error on.
f6dac72c Fix conda-build error on libomp patching, it fails libomp loading and so the package test.
253203e6 Filterout doxygen blocks from m-files of classes too and ensure it happens after doxygen doc gen.
b525332f Add an env var to disable libomp loading in pyfaust.
cafe77c5 Review/doctest matfaust.proj and add to doctest ci job.
5c09c76f Enlarge a little bit the error tolerance for matlab testFourier.
c922719b Add pyfaust.is_gpu_mod_working as in matfaust.
10354d4d Add matfaust.is_gpu_mod_working + Fix matfaust.device/clone doctest when CUDA is installed but no device is available (typically happening on VM).
c58b89c7 Fix missing function matfaust.rand_bsr after doxygen docstring filtering.
9ca97bfe Fix doc examples of matfaust.Faust.power_iteration/mtimes.
73a48f14 Add note in Faust/concatenation doc about use of LazyLinearOp to encapsulate a Faust.
f799dc86 Fix CPack .deb/.rpm generation error without failing the gitlab pipeline.
3d035a25 Delete cmake script part for installing project embedded matio 1.5.7 (it was deleted long time ago).
2dd1795e Delete object files asap in pkg_linux*/pkg_purepy ci jobs (limiting disk space consumption).
b34c075d Delete artifacts.zip after unzip and unzipped directory 'build' after rpm install (limiting disk space consumption).
0fc807ec 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.
8265037c Remove -nojvm matlab flag for doctest.
178ac49b Set BUILD_FLOAT_MEX=ON for matfaust doctest.
1e3b4842 Add nightly ci job for matfaust doctest.
959d792f Disable error prone ctest report submission to inria cdash.
60e0034e Remove again junk in output (matfaust test report was still too large: 30Mb).
fb17d565 Output test report link in ci job log of ctest_matlab/python
e8fb5f0c Fix false negative in matlab FaustTest.testNormalize unit test (NaN issue).
0ecf9151 Fix the unit test of matfaust.proj.spsymm and correct the doc part about k and the image nnz.
bbc714b9 Label all matfaust unit tests and remove junk output to lighten test reports.
43973491 Fix memcpy error in mex code faust_optimize_time.hpp for dense matrices.
01d18e46 Fix matfaust.dst complex(sparse_matrix) error for older versions of Matlab.
746b0b90 Fix minor error in (matlab) FaustTest.testDensity.
0f85566b Fix pyfaust.circ bug occurring if len(v) == 4.
808363fa Fix file conflict between test_matlab_faust.m MATLAB_FAUST_CONFIG_* tests which occurs because ctest might run them in parallel.
ca69db1e Add missing ParamsHierarchicalDFT.m.
3d4a4cae Make ctest_matlab ci job even stricter: even a unit test failure stops the pipeline.
1a0a1833 Fix minor error in matfaust optimize_time unit test.
45605295 Fall back to Faust.load because load_native doesn't handle BSR matrices (failing test testSaveBSRFaust).
c15c539f Fix matfaust.Faust.mtimes_trans and tests MATLAB_FAUST_CONFIG*, MATLAB_FAUST_SPEED.
ee6abf67 Add -nodisplay to speed up the matlab launch by ctest.
266c58e2 Finish doctest of matfaust.Faust.
c9374756 Adapt matlab inline doc gen script to not interfere with octave-doctest.
bd10602e Set up allow_failure in ctest_python/ctest_matlab in case of punctual need of more tolerant test (failure accepted).
fcb0c9c3 Almost complete the doctest review of matfaust.Faust.
cf717ca3 Add seed argument to matfaust.rand.
587f90af Fix ctest_python/matlab ci job status code in case of all tests passed.
cc5513d5 Make ctest_python/matlab ci jobs capable to fail the pipeline if unit tests are not all passed.
342f2979 Update ctest_matlab/python ci job to upload the test report whether the job fails or not.
7c1afe02 Partially review matfaust.Faust with doctest (to continue).
183fdfc8 Upload ctest report for matfaust as gitlab artifact.
1115ed73 Undo 0ae1252b and replace by libomp preloading.
5de531e8 Make ctest_python ci job fail on gitlab if any (unit) test have failed.
7500fb61 Enable float scalar in ctest_python ci job.
ab526c74 Fix MatPerm::multiply in transpose case.
f55c9296 Add adjoint test for DFT diag_opt=True and rand_butterfly.
04f4c5e7 Fix TransformHelperGen::factors transpose case bug.
6c21c9b6 Set/document min version of cmake needed.
6bdfdfec Fix MatPerm/Butterfly::to_dense.
ac43be3a Add a JUnit XML format output for ctest and, upload it as HTML to gitlab as artifact.
8479d482 Fix recent regression (fc3b0ec6) in complex scalar addition/subtraction to a real Faust.
89ca27db Use default compiler (gcc) for running tests (ctest).
381415d8 Make tests compatible with float32 dtype.
7b1e8d81 Secure/Simplify scalar detection and correct multiple dtype issues (float32).
6833bb03 Minor simplifications.
7dd8443b Fix pyx code of polyCoeffs and polyGroupCoeffs: bad dtype of output array if poly dtype is float32.
ae492bcb Fix Faust.average bug for float32 dtype (inconsistency between Faust and weights dtypes).
383b0c9a Run ci job pkg tests on complex in addition to double scalars.
ac32b2cd Fix pyfaust expm_multiply unit test.
ceff7fe2 Fix minor error in venv name (since move from py310 to py311).
70f7096d Remove version in rpm/deb package install prefix.
3db8af8d Replace old HTML tutorial using_gpu_matfaust by a real mlx matlab live script.
7cff526c Add a note about Faust deletion in live script.
57ff917b Fix issue #256.
134238c1 Add a note about Faust deletion in jupyter notebook.
5b89c89c Add matfaust.Faust.uminus and pyfaust.Faust.uplus overloads.
c69f8ef8 Simplify the CUDA install note for win10.
5d77c102 Set priority of CUDA versions in gpu_mod lib loading.
f218a10c Refactor windows gpu_mod building into script and fix interference between CUDA versions.
3bd79a2b Remove libgm symlink from wheel/pip package.
cd918429 Remove pylops from pyfaust dependencies.
010223b1 Enable cuda12.1 for windows packages.
ef1876c0 Update doc about CUDA/matio versions, contributors and teams.
6dcd8699 Upload package to gitlab package registry instead of gitlab-pages + update links in download page.
46c8c969 Limit CUDA pypi classifiers to cuda major version.
e61d042b Enable cuda 12.4 in Linux packages.
9fe0fa4a Disable cuda-9.2 support for gpu_mod.
e4abdcd4 Update linux library versions of matio and its deps to the latest ones.
fc0ace11 Update Matlab-gcc versions matching.
1459c348 Adjust MatSparse::toMatIOVar to matio >= 1.5.18.
ae9f298a Set numpy version specifier to >=1.23.
fa5bcb0a Fix deprecated uses of matplotlib in pyfaust.demo module + fix output of examples for doctest.
25b382ad Add needed sudo for rm.
d037bc9e Fix erroneous/old use or * instead of @ for Faust-matrix mul.
8a54ce24 Fix doctest ci job for pyfaust.fact module.
2f278954 Update doctest ci job to test latest dev version instead of published pip pkg.
5ec8d880 Fix correctness of poly module functions and display of Fausts they produce.
f8a6c144 Complete sptriu/tril/symm tests and precise the sparsity of spsymm in doc when k is odd.
5515d464 Add scheduled ci job for pyfaust doctesting.
cc876e90 Add missing exit code.
a3b28f2c Remove conda env after successful upload.
957a6b81 Link Faust.pinv doc to fact.pinvtj's.
53a11a69 Clean up use of Faust namespace in EigTJ modules.
46f0a612 Make optional (disabled by default) the copy of RPM/DEB pkg in /home/hinria.
c21cf426 Rename all givens_fgft to eigtj in matlab/python intermediate wrapper functions.
fceb010f Rename all C++ classes/files *GivensFGFT* to EigTJ.
e10cf343 Rename mexsvdtjReal to mexsvdtjdouble and mexsvdtjRealFloat to mexsvdtjfloat because both of them handle complex too.
8a2e8a71 Add unit tests for matfaust/pyfaust svdtj.
a0a1242a Fix macos sed command on meta.yaml.
de9f6fdc Fix license path in conda meta.yaml (relative to root dir project).
34becc6b Add a note in svdtj doc about error calulation two-times strategy.
02011e28 Rename TRIL_SP, TRIU_SP and SYMM_SP to SPTRIL, SPTRIU and SPSYMM.
93463f27 Fix svdtj mex missing symbol with float type.
4b35430e Remove old import to lazylinop.
2c7a472e Set EXPERIMENTAL_PKG variable for rpm/deb static matio release packages.
9f546cc4 chmod +x script.
e9884994 Add matfaust wrappers to TRIL_SP, TRIU_SP and SYMM_SP projectors.
f088404c Add doc for shape argument of pyfaust.proj classes.
afae7624 Fix missing attributes in copy/assignment operator overload of StoppingCriterion.
1c18e7c6 Document SIGINT stop of palm4msa and hierarchical in matfaust/pyfaust.
cac637ad Add SIGINT (CTRL-C) handler in PALM4MSA 2020 to stop on manual user interruption.
b3fc0b7f Fix format of brief line of pyfaust.proj.spcol API doc.
b1412aeb Remove the lazylinop module from matfaust + remove associated unit tests.
35832b62 Remove from pyfaust the lazylinop module, its unit tests and notebook.
d0dbb82f Add explicitly the license file in conda package.
84441c1b Fix typo.
6d3f75dd Fix conda multiline description and misleading license name.
cd900bff Fix #319 (compilation issue on Windows VS).
02fd1166 Secure SVDTJ two-errors strategy in case of very large tol or zero matrix sum.
b68577ec Update findEigenLib for Windows: find eigen3 locally instead of using an embedded archive.
3365331e Add matfaust.fact.pinvtj and update svdtj doc.
20792b50 Add pyfaust.fact.pinvtj and update svdtj doc (error/tol changed).
ec1ce630 Implement optional pseudoinverse error in C++ svdtj.
f02287d4 Implement two-stage error strategy in SVDTJ c++ code.
3ec1c20f Add a doc reference about the error calculation of eigtj in C++ code.
127b6d7e Update verbose mode of SVDTJ (clearer msg on error + U/V tag of eigtj factor).
caa35c87 Add err_period argument to matfaust eigtj.
e09837bb Add err_period argument to pyfaust eigtj.
95e3c3ba Minor change in C++ SVDTJ: more information on error of U and V in verbose mode.
65d78e33 Add err_period attribute to GivensFGFTGen classes.
077340df Modify svdtj c++ step mode to stop when the singular values become worse (error increases of one order of magnitude or more).
92a68a0f Update matfaust svdtj.
00fc5f98 Fix FaustVec2mxArray complex case.
599c1553 Add pyfaust.fact.svdtj err_period argument.
082086ff Fix Faust::prox_symm_sp comparison to zero in case matrix scalar type is complex<T>.
d63ebafa Extend pyfaust svdtj to set different nGivens, nGivens_per_fac for U and V + update doc with examples + update C++ unit tests.
8e7f44da Clarify svdtj singular values are always in descending order (doing as matlab / numpy).
528596cf Fix triu_sp, tril_sp and symm_sp wrong super call and erroneous examples.
151e00b1 Fix prox_tri_sp and prox_symm_sp in GPU code.
cb8c3678 add symm_sp constraint, add missing semicolon
2599439c add generic code for triu_sp and tril_sp constraints
12dcef08 add tri_sp constraint
679bcef4 Defaultly use only scipy.signal.convolve2d in lazylinop.convolve2d.
efc967de 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.
4fc094d9 Fix Visual Studio build errors with numeric_limits::max.
a1c040d2 Update matfaust.svdtj: remove old square matrix restriction and fix S shape in case of rectangular M.
b6edf52c Fix symbol conflict (stop_crit attribute and stop_crit macro).
0b7ee5ac Add ci job script for static matio rpm/deb release packages + use it to simplify .gitlab-ci.yml.
87363af3 Update release rpm/deb generation ci job script: concise output (with full log in /tmp), var. env. sanity check, temporary cpack files deletion.
47b20e20 Replace deprecated np.float by np.float64 in tests.
7a108316 Update test_svdtj.cpp: fix SVD error calculation in case of ascending order singular values, refactoring + debug info.
21693f26 Avoid useless extra ordering in the end of SVDTJ + handle ascending order in addition to descending order.
881be9fe Add opt. argument order in GivensFGFTGen::get_ord_indices and fix missing initialization of D_order_dir attribute in ctor.
4c68c41b Renew the SVDTJ algorithm: more accurate error stopping criterion and other enhancements.
c502359f Add argument for inplace transpose, conjugate and adjoint in TransformHelper.
2277d646 Minor add in Transform assignment operator.
1c176a04 Add a FAQ entry about glibc confusing error when installing pyfaust in conda without conda-forge channel.
76691745 Add StoppingCriterion.erreps in matfaust to parameterize PALM4MSA/hierarchical 2020.
2cb44ec4 Update cpp StoppingCriterion: add copy ctor, assignment operator overload and integrate erreps in to_string().
3f695e3d Fix missing new line in matfaust.Faust.disp output due to a recent change in C++ to_string (c647a625).
908bd6b9 Fix a regression side effect bug in FaustCore copy of factors due to b2d3fe85 (as_faust arg of matfaust.Faust.factors).
0db4d29b Minor fix in pyfaust.fact.eigtj doc: swallowing of @ python mul operator by cmake @ variable parsing.
a0d39cec Add StoppingCriterion.erreps in pyfaust to parameterize PALM4MSA/hierarchical 2020.
0e07e404 Update pyfaust install in anaconda.
118b0835 Remove pygsp from pyfaust dependencies and add a hint for pip install in the related notebook.
74d59eda Add optional argument use_pylops to pyfaust.lazylinop.kron and zpad and enablediag_opt optimization in pyfaust.dft call of lazylinop.convolve2d.
8ab4a929 Fix compilation issue of mexPALM4MSA2020 (constness of StoppingCriterion) due to previous change in PALM4MSA2020 cpp impl.
ed06bfc5 Enable StoppingCriterion epsilon error change to 1e-6 by default in PALM4MSA 2020 implementation.
16956364 Add the epsilon on error change for Faust::StoppingCriterion.
6e77e55f Add scale arg in pyfaust.lazylinop.fft2 doc.
37eb0d2b Fix issue #308 (GPU2 compilation error).
a1f2ba67 add relative change stopping criterion
df3da55f Add pyfaust.lazylinop.convolve2d + doc.
d95e6396 Fix minor errors in pyfaust.lazylinop hstack/vstack related code.
b95dcc47 add numpy.get_include() to setup include_dirs
6b953b10 Update pyfaust.Faust.__mul__ and add Faust._eltwise_mul to allow elementwise mul of two Fausts or a Faust and a matrix.
34ff4214 Change the impl. of pyfaust.lazylinop.zpad, it is more similar to pylops.Pad now.
8352c2ae Update cmake finding of Eigen (version 3.4 is required).
2b79b221 Minor change in conda pkg gen. script (error msg).
0ec12982 Fix cmake script consistency issues about NO_MATIO and BUILD_READ_MAT_FILE options.
0c6c99bd Enable conda generation pkg for py3.11 on macOS in ci job.
70f557be Add pyfaust.lazylinop.fft2 + doc.
0422c6d6 Minor fix in pyfaust.lazylinop.zeros.
5c48e20f Add pyfaust.lazylinop.fft + doc.
10998bdd Switch windows packages from py3.10 to py3.11.
9ea7e067 Specify CUDA is optional.
09f1303e Add LINUX_DEFAULT_COMPILER_FOR_PYTHON cmake option + doc.
62f22646 Fix typo on CUDA issue.
3061b52c Update the README with deps, cloning and build information.
14a30844 Add NO_MATIO CMake option to make MAT-IO library optional.
135376a1 Add matfaust.lazylinop.zpad + doc.
feb4eb21 Fix matfaust.lazylinop.horzcat multiplication (exceeding row dimension of operand).
e046a993 Shorten ci job commands using PYVER variable.
4da99eb4 Fix dimensions check in n-dimensional case of pyfaust.lazlinop.zeros mul.
2c5218fd Fix matfaust LazyLinearOp.pagemtimes: falling back to mtimes if op is two dimensional.
fe81bd3d Add matfaust.lazylinop.zeros + doc.
bd71f781 Correct PYVER variable and help scipy/matplotlib install on macOS (ci job).
df5ffbc6 Update to gpu_mod@1fbd46f.
5629aeb6 Pin versions of matplotlib and scipy only for macosx pip package tests.
82e85f63 Update to gpu_mod@7a176f11.
75a71fc0 Undo e2644968 and ad4b9a47 (forced matplotlib and scipy versions in tests).
3328cbaf Change extra python version of macOS packages from 3.10 to 3.11.
f4f01434 Change on numpy version.
6e92ad52 Make possible to set independent versions of python for macOS and linux system packages.
4c3b0106 Add lazylinop.zpad + doc.
19f794f9 Add lazilinop.zeros + doc.
f5dd789a Pass linux ci jobs from py3.10 to 3.11.
f9b2d6a3 Config packages to numpy >=1.24.
ac93899a Remove np.float, np.complex, np.long and np.int occurrences as they are deprecated in newer versions of numpy.
c4ea9d72 Implement cpp anticirculant projector/constraint and add it in matfaust and pyfaust.
d0195555 Doctest review of pyfaust.proj + minor reformatting in pyfaust.factparams.StoppingCriterion.
41c23307 Simplify the C++ code of circ projector.
cde95f8a Doctest review of pyfaust.factparams.
ba74007b Fix dtype issue #298: lazylinop mul functions in complex case when a numpy array is initialized with np.empty (float64 default dtype).
05093b5d Fix issue #299 (LazyLinearOperator call with dtype).
d5ac3582 Fix issue #301 (test_svdtj linking error for complex<float>).
d016277f Add doctested example for pyfaust.fact.svdtj.
35a385a1 Add a C++ unit test for svdtj.
5e742930 Fix minor bug in ParamsHierarchicalRectMatNoResCons (missing parameter P).
6a00e6e7 Add verbosity level 2 in pyfaust.fact.svdtj2.
f3345886 Fix buggy svdtj cases in C++ code (rect matrix and empty Fausts).
e8e1d5cc Display input configuration if verbosity level > 1 in GivensFGFT(Parallel)Gen C++ code.
e352d724 Document the light git-clone (issue #294).
42de8d72 Update the project README.md.
bd2b148d Fix pyfaust.fact.svdtj2 which wasn't able to factorize a rectangular matrix properly.
ce31cea7 Update pyfaust.svdtj2 exp code to remove deprecated use of * for Faust-matrix product.
874dbd9c Doctest review of pyfaust.fact examples.
e76d520a Add non regression unit test for #296.
89e0842f Fix issue #296 (Faust conjugate multiplication error).
bef20f48 Move doctest verification of pyfaust from pages job to pkg_linux_purepy_release.
2b2db19f Review/Validate with doctest all examples of pyfaust.lazylinop.
8ef8ef37 Review/Validate with doctest all examples of pyfaust.tools.
fdec065d Add doctest verification in pages ci job.
17f71064 Review/Validate with doctest all examples of pyfaust.* (excluding other modules).
10ddd687 Reformat the displaying of a Faust (C++).
c69eb410 Remove the memory address of Matrix output (as it was before).
1a1e1ef0 Bind C++ Faust::seed (faust_prng) into the python wrapper (pyfaust.seed).
b7488c35 Externalize initialization of Faust PRNGs in a specific module (faust_prng).
ca5de711 Add seed argument to C++ randFaust and bind it into pyfaust.rand.
b3559e2d Add matfaust.aslazylinearoperator shape optional argument and document it.
c49cbf2c Add pyfaust.aslazylinearoperator shape optional argument and document it.
79fd77e9 Update matfaust.Faust.factors/left/right with new as_faust argument + doc.
430117fb Update pyfaust.Faust.factors/left/right with new as_faust argument + doc.
d2a3c207 Minor doc change in matfaust.Faust.
fcbe6a83 Update pyfaust.factors equivalently to 59baec41 + minor doc changes.
244c63cb Add missing GPU2 overloads in mex faust_factors.* (matfaust.factors).
70a87997 Update matfaust.Faust.factors/left/right and mex code to handle retrieving factors as Faust.
f3f6826f Add TransformHelper<FPP,DEV>::factors() to get a subset of factors as a Faust::TransformHelper without copies.
00c10a47 Add conversion CPU MatButterfly/MatPerm on the fly conversion to MatSparse in mex code of matfaust.factors.
dd5bfbc9 Update pyfaust.factors/left/right cpp code to convert MatButterfly and MatPerm to scipy csr matrices.
67e4369e Set identity flag to false in MatPerm/Butterfly<FPP,Cpu>::toMatSparse.
4397ff5e Fix issue #293 (win compilation error).
def96aec Fix ctorMatButterfly(const MatSparse<FPP, GPU2> &factor, int level)
61f1e455 Add a new overload of MatSparse<FPP, GPU2>::tocpu.
e0a4a29d Enable GPU diag_opt (butterfly optim.) for matfaust.circ/anticirc/toeplitz.
7f566a14 Remove TransformHelperButterfly_gpu.h/hpp and all references to it as it not used anymore.
e23033db Specify the absolute path for cwd in matfaust.enable_gpu_mod.
bb18f687 Enable pyfaust.toeplitz gpu and diag_opt features.
43b0df43 Remove TransformHelperButterfly<FPP, GPU2> use in cpu to gpu Faust cloning of python wrapper cpp code.
4c4f3eda Rewrite TransformHelper<FPP, GPU2> fourierFaustOpt and optButterflyFaust without using TransformHelperButterlfy<FPP, GPU2>.
e289a6a7 Fix Transform<FPP, GPU2> update_total_nnz wrong const attribute and add an optional argument to scalarMultiply (for selecting the multiplied factor).
fc703c99 Fix TransformHelper<FPP, GPU2>::multiply(MatDense<FPP, GPU2>) test (the CPU Faust wasn't the same).
7b2d2821 Rewrite all remaining members of Transform<FPP, GPU2> except slice/indexMultiply to be independent from gpu_mod.
9bf36fe4 Rewrite Transform<FPP, GPU2>::to_string/Display to be independent from gpu_mod + refactor all GPU matrices Display/to_string in MatGeneric parent.
3e477c4b Rewrite Transform<FPP, GPU>::get_total_nnz independently from gpu_mod and remove multiply(const FPP&) duplicate of scalarMultiply.
c6debcf3 Add Transform<FPP, GPU2>::adjoint and rewrite power_iteration and spectralNorm to be independent from gpu_mod.
1b935afb Add MatDense<FPP, GPU2>::setRand.
c5c6e5a9 Fix MatDense<FPP, GPU2>::multiply(MatDense<FPP, GPU2>& other, const char) const
9259c70a Update Transform<FPP, Cpu>::get_product replacing uncomplete downcasting by generic to_dense call.
57174f0a Add MatSparse<FPP, GPU2>::spgemm unit test.
41f04ccf Fix MatSparse<FPP, GPU2>::spgemm when C is non-initialized or wrongly dimensioned.
a8bd4d31 Implement to_dense (MatGeneric abstract method) in all subclasses both on GPU and CPU.
535a566d Add a unit test for Transform<FPP, GPU2>::multiply(const FPP&).
36ef436a Rewrite Transform<FPP, GPU2> getNbRow/Col, size, multiply(const FPP&) to be independent from gpu_mod.
7ea21feb Add operator*=(const FPP&) overload in MatGeneric<FPP, GPU2> (abstract method) and implement it in child classes.
e80c8a80 Move non needed template Transform function specializations into template functions (from .cpp.in to hpp).
b10ca730 Rewrite Transform<FPP, GPU2>::multiply(MatDense<FPP, GPU2>, ...) without relying on gpu_mod + add its unit test.
de45fab9 Add abstract "MatGeneric<FPP, GPU2>::multiply(MatDense<FPP, GPU2>&, const char) const" and a fix of its overload in MatDense<FPP, GPU2>.
60867b66 Fix outdated sliceMultiply cpp test.
da4e1071 Fix in MatButterfly missing default ctor call needed for a proper ini.
89c61d60 Fix use of deleted CPU TransformHelperButterfly in cpp unit tests.
ed62343a 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>’
ee90109d Enable on GPU the butterfly optimization of pyfaust.circ and anticirc.
35f43863 Add CPU MatButterfly level getter.
d1cd3b46 Add GPU2 MatButterfly new ctors and a getter.
33d2c89a Fix GPU2 MatButterfly dtor.
154404b3 Add GPU2 MatPerm new ctors.
d2ab8f18 Fix GPU2 MatPerm dtor segfault.
87381e10 Integrate GPU2 MatPerm in TransformHelperButterfly to replace old code.
8c92b28e Add full MatPerm<FPP, GPU2> implementation and its unit tests.
bc3147b4 Fix missing transpose copy in assignment operator overload of MatButterfly<FPP, GPU2>.
62e81648 Remove ButterflyMat from TransformHelperButterfly<FPP, GPU2> and use the new independent MatButterfly<FPP, GPU2> instead.
305a4392 Add copy and default ctor, assignment overload + getter and multiply overloads in GPU2 MatButterfly.
cfa2968c Add GPU2 MatButterfly get_gpu_mat_ptr, conjugate, adjoint, Display and unit tests.
dab3da47 Add GPU2 MatButterfly::getNonZeros()/transpose() and unit tests.
71d4408a Add GPU2 MatButterfly::get_cols/rows, norm, clone and their unit tests.
3f42c120 Add GPU2 MatButterfly::toMatSparse and its unit test.
60c4a73f Add GPU2 MatButterfly::multiply(MatSparse<FPP, GPU2>, const char) and its unit test.
3f1dcf52 Add GPU2 MatButterfly getNbRow/Col/getType and unit tests.
e7821d10 Add skeleton for GPU2 MatButterfly + multiply(MatDense), setZeros(), getNBytes() and corresponding unit tests.
0ed8e01c Fix use of undefined type 'Faust::TransformHelperButterfly<FPP,GPU2>' in mexFaustGPUCplx (issue #292).
b7d1e673 Delete TransforHelperButterfly<FPP, Cpu> which is not used anymore.
06054e03 Fix TransformHelper<FPP,GPU2>::fourierFaustOpt.
2625bf18 Minor correction in lazylinop.ipynb.
517cebe2 Choose a specific version of scipy in test_unix_purepy_pkg (fix macos scipy building error by using older wheel packages).
4defe4fa Minor change in matfaust.opt_butterfly.
1bcf2a5b Complete unit tests of matfaust.circ/anticirc/toeplitz for the diag_opt optional argument (butterfly matrix opt.)
3c87bc01 Enable butterfly matrix optimization in matfaust.toeplitz.
b7a97288 Enable butterfly matrix optimization in matfaust.anticirc.
699dee5b Enable butterfly matrix optimization in matfaust.circ.
bddf85f9 Enable MatButterfly/MatPerm composed Faust in matfaust.opt_butterfly_faust wrapper (instead of using TransformHelperButterfly).
8809daed Enable MatButterfly/MatPerm composed Faust in matfaust.dft wrapper (diag_opt option).
61ae92c8 Update lazylinop notebook: add a listing of available structure LazyLinearOp-s, a pointer to pylops and minor corrections.
6e09bcbc Complet unit test of pyfaust.circ/anticirc/toeplitz for diag_opt=True (butterfly structure opt.).
3fa4c0a0 Fix in MatButterfly::toMatSparse the bug found on pyfaust.circ().toarray().
c312ac7f Fix ambiguous conj call compilation error.
9d556920 Update C++ unit test of TransformHelperButterfly::fourierFaust replaced by TransformHelper::fourierFaustOpt.
f3b34dfa Enable butterfly diagonal optimization in pyfaust.anticirc and toeplitz.
1959b188 Disable virtualslicing/indexing on TransformHelper/Faust when they contain non-MatDense/MatPerm matrices (not yet supported).
b53d395a 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.
b9999081 Refactor CPU fourierFaustOpt using optButterflyFaust and add its GPU2 version.
6ac69808 Bind pyfaust.opt_butterfly_faust to TransformHelper::optButterflyFaust and add a (not yet implemented yet) GPU2 version of this function.
a7f0a56b Add TransformHelper::optButterflyFaust to implement pyfaust.opt_butterfly_faust without TransformButterfly.
00f7af82 Extend Faust::gemm_gen to MatButterfly/MatPerm.
c3713d36 Add a unit test for MatButterfly::adjoint.
ea7a1c35 Fix MatButterfly::conjugate (transpose state wasn't handled).
6d98c987 Fix call to real in faust_conj.cpp.
89f7e1b0 Add MatPerm::isPerm.
a3bdf0a9 Enable butterfly and permutation optimizations of the dft in pyfaust.circ (diag_opt arg.).
91ca514a Replace the use of TransformHelperButterfly::fourierFaust by TransformHelper::fourierFaustOpt in pyfaust wrapper cpp code.
31a41511 Add TransformHelper::fourierFaustOpt and tweak TransformHelper::multiply(FFP* v, ...) to benifit of this optimization on Faust-vector mul too.
2a368fec Make two Transform::multiply functions compatible with MatPerm and MatButterfly.
40aaa28d Update MatGeneric::to_string for MatPerm and MatButterfly compatibility.
6cd0367d Add missing std namespace qualifiers.
9846a76f Integrate MatPerm use in TransformHelperButterfly.
bcdc34f0 Fix wrong call to update_dim in MatSparse::nonzero_indices (862cff77).
fb12d463 Add MatPerm default ctor.
63f9a043 Add unit tests for Faust::MatPerm.
8466f490 Compress the sparse matrix to nonzeros before enumerating them in MatSparse::nonzeros_indices.
f163f8f9 Add a sanity check on indices in MatButterfly::operator(), remove/add TODOs.
b3e97a56 Add a new matrix type: Faust::MatPerm.
7cab5aa0 Integrate MatButterfly use in TransformHelperButterfly and remove old ButterflyMat first prototype.
d6862e1d Fix std::conj calls in MatButterfly functions (the return type can't be always complex it must be the same type as input here).
9c8752a1 Add a generic conj function that returns the same type as in input contrary to std::conj.
d31e9e04 Add a unit test for MatButterfly::faust_gemm.
4b1447e9 Fix bugs in MatButterfly::faust_gemm and implement a conjugate argument to multiply prototypes.
699b17d7 Implement MatButterfly::faust_gemm.
88dd27e3 Add a unit test for MatButterfly::normL1.
a97d03c6 Set optional MatButterfly::normL1 transpose argument and fix a bug on MatSparse size of MatButterfly::toMatSparse.
f35a7f4d Implement MatButterfly::get_col(s)/row(s) and normL1.
db136edf Add a unit test for MatButterfly::nonzero_indices.
e3a8e422 Add a tol(erance) argument in MatGeneric::nonzero_indices and make the change in subclasses definitions.
6951a9cc Implement MatButterfly::nonzero_indices.
38c05d7f Implement MatButterfly::setZeros.
22fc70e1 Implement MatButterfly::containsNaN and its unit test.
15023135 Implement MatButterfly:operator(i, j) (item access) and its unit test.
16628690 Implement MatButterfly::toMatSparse along with its unit test.
694ada4d Impl. MatButterfly::norm() with its unit test.
7493b1b4 Add Butterfly in enum of matrix types.
719455b5 Add unit tests for MatButterfly getType and operator*=(FPP) + refactor equality tests in functions.
722728d9 Implement MatButterfly::operator*=(FPP).
326440ae Add a unit test for MatButterfly::getNonZeros and getNBytes().
1804fc40 Implement MatButterfly::getNonZeros() and getNBytes().
fbf26f8e Add more unit tests for MatButterfly::transpose.
23edad79 Fix a bug on transpose case of MatButterfly multiplication and impl. conjugate and adjoint member functions.
420c548b Add unit test for MatButterfly::transpose and refactor clone unit test in its own function.
22149efa Implement MatButterfly::transpose with a cache mechanism.
1ddbb4cc Add a unit test for MatButterfly::Clone.
bca1cd0b Add MatButterfly copy ctor and assignment operator and implement the Clone member function.
c42a0e41 Add a unit test for MatButterfly-MatSparse multiplication.
310da14c Add MatButterfly::multiply definitions (by a MatDense/MatSparse).
ce9b80ec Make MatGeneric::getNbRow/NbCol virtual in order to override them in MatButterfly.
320f11bb Minor correction in notebook.
603d05cf Add a C++ unit test for MatButterfly-vector multiplication.
baef45a6 Minor change.
faaf8b20 Add missing prototypes and fix constness in multiply(Vect) of MatButterfly.
756540a9 Start impl. of MatButterfly as a MatGeneric child class.
3ed52bbf Add a unit test for matfaust LazyLinearOp.pagemtimes.
2c3cd2a1 Implement matfaust LazyLinearOp pagemtimes and add error for array of N > 2 dimensions in mtimes.
5cf7f454 Minor change in doc of matfaust LazyLinearOperator.
8bad959b Add a unit test for pyfaust LazyLinearOp matmtul by a numpy ndarray.
049e884b Add pyfaust LazyLinearOp support of matmul by a multidimensional numpy array (nd greater than 2).
eda6ac6a Add MatDense<FPP, Cpu>::setRand.
f50a60c6 Fix pyfaust LazyLinearOp indexing by just an int (eg. lop[0]).
301bd00b Verify consistency of dimensions in pyfaust.lazylinop add and sum.
c03ca844 Add unit tests for matfaust.lazylinop.sum.
521c54b0 Add unit tests for pyfaust.lazylinop.sum.
a9e497c6 Add unit tests for matfaust.lazylinop.blkdiag.
dd2df41f Fix matfaust.lazylinop.blkdiag for transpose/adjoint case and block offsets.
a4b9acdf Add unit tests for pyfaust.lazylinop.block_diag.
29b4776c Ensure blocks passed to block_diag can be LazyLinearOp-s.
c75d6e41 Fix two bugs in pyfaust.lazylinop.block_diag.
351612eb Remove old matfaust asLazyLinearOp function and document new aslazylinearoperator function.
f4412dd3 Add matfaust.lazylinop.sum with its doc.
ca6711d3 Add matfaust.lazylinop.blkdiag with its doc.
c34884f1 Minor changes in pyfaust.lazylinop.block_diag.
4ac0c4f5 Add pyfaust.lazylinop.block_diag with documentation.
5c585c63 Add pyfaust.lazylinop.sum with documentation.
9713ce7c In pyfaust.lazylinop fix eye when m==None and add doc for eye and diag.
2a4493c2 Add examples to matfaust.lazylinop.eye.
fd127448 Minor change in matfaust.lazylinop.diag doc example.
0b08e4e4 Update Doxygen config for matfaust.lazylinop doc.
9aec580c Add an example in matfaust.lazylinop.diag doc.
c4095427 Add unit tests for matfaust.lazylinop.diag.
a3d0d56c Add matfaust.lazylinop.diag.
fe2f0d75 Fix pyfaust.lazylinop.diag case k == 0.
fb0181ff Add doc for matfaust.lazylinop.eye + fix of matfaust.lazylinop brief desc.
625d42c7 Add unit tests for matfaust.lazylinop.eye.
bf488ea2 Replace optional key-value arguments by optional arguments in matfaust.lazylinop.eye.
9475a753 Add matfaust.lazylinop.eye.
acecb391 Minor fixes in option parsing of member functions of matfaust LazyLinearOp.
38a78b12 Add unit tests for pyfaust.lazylinop.diag.
97878f42 Add unit tests for pyfaust.lazylinop.eye.
2ce29ce0 Fix pyfaust.lazylinop.eye in case k=0.
319668fb Make np.ndim(x) work on x a Faust/LazyLinearOp.
cf26c3fc Update pyfaust.lazylinop.diag.
8af7dc12 Add pyfaust.lazylinop.diag (not handling mul to another LazyLinearOp yet).
e4c52455 Add pyfaust.lazylinop.eye with doc.
f19f84c6 Minor fix in compute_XY_on_gpu.
fd363b17 Minor fix in pyfaust.proj.blockdiag doc.
db486bcf Add time measurement in test and optional GPU module initialization.
9f218e61 Integrate the GPU batched SVD in butterfly right/left factorization C++ impl.
421e4e19 Add set_row/col_coeffs overloads in Faust::MatDense<FPP, Cpu>.
0e534907 Fix GPU code of butterfly balanced facto.
2c3ef12b Update c++ test of butterfly balanced factorization for GPU use.
05feacb6 Integrate the GPU batched SVD in butterfly balanced factorization C++ impl.
5ded8fa1 Lower level prototypes of submatrix member function in MatDense and MatSparse (Cpu).
96089117 Update to gpu_mod@ce1c816.
1eb0c3d6 Add a unit test for the GPU partial svd (batched_svd).
90ae7a46 Add another prototype of GPU batched_svd and copyBufBlock function in MatDense<FPP, GPU2>.
4c5f1c5d Add MatDense::print_mat utility function
ba963ef0 Add a test of GPU batched SVD.
bcd227fa Add GPU batched_SVD updating to gpu_mod@4bfc92d
5f252c1f Update to gpu_mod@a33c81e.
4e3ce547 Update lazylinop jupyter notebook.
71857df5 Update matfaust.lazylinop multiplication by scalar to be less costly.
3cde8cdf Switch to column-major order eye in pyfaust.lazylinop.LazyLinearOp.toarray to be compliant with Faust __matmul__.
e9875d56 Fix pyfaust LazyLinearOp.imag ; it must be real.
4d08e24c Update to gpu_mod@009f116.
a542befa Udpate to gpu_mod@42c82e7.
ce5dac34 Update matfaust.lazylinop doc and minorly pyfaust.lazylinop'.
5d28c317 Update matfaust.lazylinop.kron to fit the new implementation of LazyLinearOp and update related unit tests.
97f6a6f0 Fix matfaust.lazylinop.LazyLinearOp.mtimes in case the operands are reversed like in M * L (where M a matrix and L a LazyLinearOp).
dbdb334e Minor change in lazylinop.py kron error message.
f0603505 Add matfaust.lazylinop.LazyLinearOperator ctor and update unit tests consequently.
869ea005 Add matlab unit tests for LazyLinearOp defined from functions (here fft).
4b1f9580 Re-implement matfaust.lazylinop.LazyLinearOp with multiple lambdas (as done for pyfaust) + update unit tests + add aslazylinearoperator function.
a4cf611e Fix lazylinop.LazyLinearOp.imag multiplication lambda.
208e0288 Minor changes and fix in lazylinop.py.
26508f31 Fix missing lambdas for conjugate LazyLinearOp in create_from_op and create_from_funcs functions (pyfaust).
94f0ea56 Update pre-rendered version of the pyfaust lazylinop notebook.
141f38dc Exclude some symbols of pyfaust.lazylinop from public doc.
f45fd8f7 Update doc of pyfaust.lazylinop.
92e4dec0 Update the lazylinop notebook with explanations on creation with matmat/matvec functions and an example based on scipy fft.
35cc5c42 Minor change in pyfaust LazyLinearOperator doc.
451f8a6a Fix a bug in LazyLinearOperator occurring when applying to a 1d vector a lazy op defined upon a matvec function.
ec69f323 Update the lazylinop notebook in the next to the new impl.
952848b6 Update unit tests of LazyLinearOp to handle the switch to the new impl. by default.
b9db4ab4 Replace previous LazyLinearOp impl. by the new one (renaming LazyLinearOp2 to LazyLinearOp).
2ec6613b Add pyfaust.lazylinop.kron2 (based on LazyLinearOp2 instead of LazyLinearOp) and associated unit tests.
17faaefb Make pyfaust LazyLinearOp * a synonym of @ except if the operand is a scalar (following scipy LinearOperator behaviour).
cd73786a Add pyfaust.LazyLinearOperator and aslazylinearoperator.
013aae0d Add general indexing support to pyfaust LazyLinearOp2
7ba6a066 Add unit tests for pyfaust LazyLinearOp2.
27aa848e Add a new lazy linear op impl.: LazyLinearOp2.
89421c48 Update: same as 1eeee543 for matfaust.
7869f54c Update pyfaust circ/anticirc for arbitrary length vector + associated unit tests.
d87df8fc Add SVD alternative analytical solution for rank-1 approximation.
6cfb1e53 Reduce the size of the tested Faust in lazylinop notebook.
9f34f532 Add best_low_rank2 and replace Eigen JacobiSVD by BDCSVD.
036efa6c Enable openmp in solveDTO.
e00599f4 Update lazylinop notebook.
495a2632 Fix regression 4615e5c6.
5d985225 Add a link to LazyLinearOp jupyter notebook on the main page of doxygen doc.
189afc94 Update the lazylinop jupyter notebook.
d21db77f Minor correction in F_CONTIGUOUS conversion of complex operand in pyfaust.Faust.__matmul__.
0cee041e Update pyfaust LazyLinearOp: use .T.conj() instead of .H for larger compatibility (fix for scipy svds).
36c9af01 Update pyfaust LazyLinearOp ctor: verify that the starting object has two dimensions (only one is forbidden).
004e9a6f Complete matfaust LazyLinearOp.mtimes unit tests, in particular for the LazyLinearOp * sparse matrix case that must be computed.
fd7a701e 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).
39a21e17 Update pyfaust.Faust.__matmul__ to handle coo_matrix and bsr_matrix (by conversion to csr).
776286c4 Complete pyfaust LazyLinearOp.__matmul__ unit tests, in particular for the LazyLinearOp @ scipy matrix case that must be computed.
4068e626 Update pyfaust LazyLinearOp.__matmul__ to evaluate the result of self @ op if op is a scipy matrix (as made for op a np.ndarray).
742d23eb Add a unit test for pyfaust rand_butterfly/opt_butterfly_faust and complete the unit test for the dft butterfly opt (transpose case).
cc8facbb Implement (C++) transpose case of butterfly Faust optimization on CPU.
456e82fc Fix missing link in lazylinop jupyter notebook.
71b4aedb Simplify gitlab-runner tags for pages ci jobs.
c92375b1 Add lazylinop module jupyter notebook and pre-rendered html version.
042dc39e 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).
925ea7a8 Document matfaust/pyfaust.lazilinop kron and LazyLinearOpKron.
08ce0556 Add unit tests for matfaust LazyLinearOpKron.
cd3e6634 Implement matfaust LazyLinearOpKron and matfaust.lazylinop.kron.
0abe924e Fix matfaust.Faust errors in cat [matrix; Faust], [matrix, Faust] and addition/subtraction matrix +/- Faust (in this order).
4f031db9 Update pyfaust LazyLinearOp and LazyLinearOpKron:
63e06fe7 Complete unit tests for pyfaust.lazylinop.LazyLinearOpKron/kron.
f6c005cd Add pyfaust.lazylinop.kron and LazyLinearOpKron associated class.
a4665048 Replace tux_packager ci job tag by rpm_deb_release.
d644e972 Fix root classes of pyfaust not showing up in the doc + typo.
e4aac8b2 Document matfaust.lazylinop and update pyfaust.lazylinop doc.
6e82921f Update pyfaust LazyLinearOp vstack hstack and concatenate to handle any number of arrays.
8cf6d20f Review pyfaust.lazylinop doc.
af3efeea Add unit tests for matfaust LazyLinearOp.
81cd2ea8 Update matfaust LazyLinearOp.
ed1ad836 Impement mafaust lazylinop module: LazyLinearOp class and related functions.
5f94d597 Warn of beta status of pyafust LazyLinearOp.
b7ea7439 Update pyfaust LazyLinearOp ctor and transpose/getH functions.
0a2f2e92 Fix LazyLinearOp.__add__/__sub__ and __getitem__
c20f8ffd Add pyfaust.lazylinop.vstack/hstack and their unit tests.
e884e3cc Add dev argument to matfaust/pyfaust circ, anticirc and toeplitz functions.
22cf1c27 Extends scipy LinearOperator into pyfaust.lazylinop.LazyLinearOp.
de318fc6 Add pyfaust.lazylinop.asLazyLinearOp and its unit test.
670c5527 Add FaustLazyLinearOp.imag and its unit test.
dd747d97 Add FaustLazyLinearOp.real and its unit test.
494a35c5 Fix pyfaust.LazyLinearOp.concatenate resulting shape and complete the corresponding unit test.
924edd60 Fix pyfaust.LazyLinearOp.__getitem__ infinite recursion and add a unit test.
f91f1d95 Review/harmonize matfaust/pyfaust circ, anticirc, toeplitz, dct, dst, dft.
eb4a3fd2 Raise matfaust/pyfaust.dst an error if n is not a power of 2.
ce3b81d3 Add unit tests for pyfaust.LazLinearOp.
18daf38a Update pyfaust.LazyLinearOp
ae351eec Restrain the matplotlib versions in test_unix_purepy_pkg (fix macos matplotlib building error by using older wheel packages).
77431e5d Add pyfaust.lazylinop to namespace filtering (doxypypy).
92e4e15c Fix make-install command.
66646f53 Correct variable name for the matio static lib path in linux pip package jobs.
7ecc3dda Fix two dimensions slicing bug (issue #285).
8e60c133 Update to gpu_mod@062c29d.
2fdc55eb Add Faust.__ifloor___ (not supported) and fix __imul__, __isub__ and __iadd__ error.
9b5bfd94 Add (undocumented, experimental) LazyLinearOp.
5fb627dc 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.
ca58d19d Correct pyfaust.Faust in-place operations (iadd, isub, imul, imatmul).
db72ef86 Optimize ButteflyMat<FPP, GPU2>::multiply by using a dedicated kernel (gpu_mod@837684f).
8970c50d Fix the script shebang.
8f8ebfc0 Update to gpu_mod@5e2a81b.
db91ef42 Refactor pkg_macos_release and pkg_macos ci jobs into a unique script.
4fed8d59 Fix multiple errors in TransformHelperButterfly<FPP, GPU2> (wrong buffer size, forgetting the Faust scale factor, and other minor errors).
435a5792 Add copy and assignment operator overload to Faust::TransformHelperButterfly<FPP, GPU2>.
3d7c6398 Set multiply member functions to virtual in order for the TransformHelperButterfly (GPU2) redefinitions to be called.
7b87dee1 Fix Vect<FPP, GPU2>::operator= (the source vector hasn't to be of the same size for the copy to work.
0f7f5ae1 Refactor static library paths for macos and linux into environment variables.
1211fb8b Implement GPU Butterfly Faust optimization in the C++ core.
4919663d Implement elementwise multiplication with arbitrary element order (MatDense<FPP, GPU2>::eltwise_mul) + its unit test (test_eltwise_mul_ids_vec).
ef175550 Fix test_eltwise_mul_vec unit test + update to gpu_mod@4dafb3a
c24493ce Overload + operator for matfaust/pyfaust.Faust class
bd3bdca6 Add GPU elementwise multiplication for MatDense and a unit test.
d534cc08 Implement diag_opt option for matfaust.fact.butterfly.
5bfb26f9 Implement diag_opt option for pyfaust.fact.butterfly.
0dc2d39b Make optional to multiply the permutation to the last butterfly.
72998d8f Move bitrev from tools module to pyfaust root as it was done for bitrev_perm.
7646dd02 Update to gpu_mod@befc138
ccd0bdc3 Minor fix in fgft_palm Faust call ctor.
b08a1f9c Move/alias bitrev_perm in matfaust/pyfaust package root and document it.
6eb6e8b6 Update test pip wheel package ci job: upgrade pip before testing.
ed8271cb Clean conda cache after pyfaust pkg upload.
069cce0a Redefine TransformHelperButterfly::to_string to show butterfly opt flag.
54ed2916 Add diag_opt option to pyfaust/matfaust.rand_butterfly.
4116ac22 Add the wrapper matfaust.opt_butterfly_faust to optimize any butterfly Faust (in addition to the DFT).
c2185ab0 Fix 6c8419af that filters all the tests instead of only faust_butterfly_transform.
daeb6b4a Fix GPU faust core compiling error due to missing TransformHelperButterfly<FPP,GPU2>::optFaust function (implemented only on CPU).
e3d8a160 Add the wrapper pyfaust.opt_butterfly_faust to optimize any butterfly Faust (in addition to the DFT).
202eebc3 Add the c++ function TransformHelperButterfly::opt_faust to optimize any Faust with butterfly factors.
f233c202 Add a python unit test for the diagonal optimization of DFT (with or without normalization).
338cc41e Add a matlab unit test for the diagonal optimization of DFT (with or without normalization).
6a67f8cb Replace the workaround in FaustCore by a copy argument and use it in butterfly, hierarchical and palm4msa.
33ec1ac0 Minor change in faust_fourier.hpp mex dft wrapper (specify std C++ namespace and init ptr to nullptr).
5a04b8f8 Change the return type of TransformHelperButterfly<FPP,Cpu>::fourierFaust to parent TransformHelper (does'nt change anything).
ecc3f47a Fix normalization issue of pyfaust/matfaust.dft when diag_opt is True (#275).
3a12594a Fix old license in header.
b69d9950 Update matfaust.eye to rename dtype argument to class (more matlab compliant).
40b0f259 Set the field argument as deprecated in pyfaust.rand and ensure field an dtype consistency.
40d14079 Ensure all compatible dtype synonyms support in pyfaust with utility function pyfaust.tools._sanitize_dtype (issue #273).
00fc5472 Enable float support for GPU pyfaust.eye/wht.
e99e3719 Replace pyfaust.eye t argument by more standard dtype argument.
41f68f70 Fix pyfaust.circ for size = 2 and 4 (bug introduced by 16b900fb).
11b8ddcd Update matfaust.circ/anticirc/toeplitz API docs.
b1663611 Optimize matfaust.circ by merging intermediate permutation and diagonal factors.
a028ff3d Fix test built for unforseen real/complex types.
8003c82d Fix compilation error: reference to ‘ButterflyMat’ is ambiguous.
57db852f Fix type genericity break.
1272b490 Fix preprocessor directive and eigen macro call.
3b73b6af Add (disabled) pythonic (pythran) code for the Faust-vector multiplication in TransformHelperButterfly code + disable use of Eigen::placeholders::all for old eigen versions.
8611c5d6 Minor change in pyfaust.dft doc.
fd1d1f54 Add butterfly diagonal optimization option (diag_opt) to matfaust.dft.
bec3943e Add unimplemented GPU2 TransformHelperButterfly and undo 23347c5e.
4a1b8651 Optimize pyfaust.circ by merging permutation factors into the following factor and update doc of circ/anticirc/toeplitz.
4189f6f4 Review pyfaust.circ/anticirc/toeplitz doc.
4fc1f123 Remove kwargs from pyfaust.circ prototype (the diagonal factor is always multiplied).
73fb851d Fix issue #280 on MatDiag multiply (adjoint case) and add a unit test for it.
814122da Fix auto-ref in doc of pyfaust.rand_butterfly;
6617901a Exclude pyfaust.tools.bitrev from doxygen doc as bitrev_perm is and also because matfaust API doesn't expose these functions.
df2a03c6 Document pyfaust.tools.bitrev and bitrev_perm.
987da1f9 Handle class argument in matfaust.dct/dst.
4dc598c1 Fix matfaust.Faust.single regression due to a e2a04b60 workaround.
d4b9f9ca Rename dst.butterfly utility function to butterfly_ to avoid confusion with matfaust.fact.butterfly and filter out this function from API documentation.
ef6a6e7a Add dtype argument to pyfaust.dct/dst.
73236343 Fix wrong call of TransformHelperButterfly::fourierFaust from python wrapper GPU code (it is not supported on GPU).
2467267d Show the Faust density in example of pyfaust/matfaust.dct/dst.
91134fa0 Update matfaust.dct/dst unit tests to handle/check normed argument.
25ae82c9 Add normed argument to matfaust.dct/dst + fix swapped examples.
9c0caa52 Use eigen DiagMat for D1, D2 etc., stuck to omp-loop for multiplying vectors but use eigen for multiplying matrices (faster).
2f3e20e5 Handle adjoint case in MatDiag::multiply.
a09027b7 Add normed argument to pyfaust.dct/dst and update doc and unit tests consequently.
d1857042 Fix pyfaust.dft and matfaust.dft doc.
a1f9d480 Update the wrapper an add a diag_opt argument to pyfaust.dft for using the TransformHelperButterfly product.
af99ab90 Implement TransformHelperButterfly multiplication by MatSparse.
15bd4284 Add multiply(MatDense) to TransformHelperButterfly.
d7a79488 Integrate a new kind of Faust to optimize Butterfly Faust - vector multiplication.
70b6ea91 Minor fix in fft_factors (missing std namespace).
e23510d2 Add minor todos and code doc in CPU TransformHelper.
bd243957 Add ButterflyMat::Display function in butterfly opt test.
1a646960 Add in tests AVX, OpenMP SIMD, Eigen (template exps) to the ways of computing the Faust DFT-vector product using diagonal opt.
47f44bfe Compute the elementwise multplication manually (without eigen) using OpenMP to parallelize and avoiding to reorder the multiplied vector (rather indexing it).
f7a494ee Add a simple test of the implementation of DFT/Butterfly faust product optimization (#275).
795d9963 Refactor pkg_linux and pkg_linux_release ci jobs into a bash script.
b6fc39b7 Refactor pkg_win and pkg_win_release ci jobs into a batch script.
3a013d76 Fix dtype error in Faust pyx ctor part for bsr_matrix factors.
36ca8183 Update to gpu_mod@da4f843.
6e148bf3 Avoid useless copies of A and B matrices in GPU2 spgemm and bsrgemm.
a03a4d3a Fix non-initialized pointers in GPU2 gemm_gen.
28807c6a Disable test_win_pkg_release ci job mistakenly re-enabled before.
000c1e2a Fix symlink loop on gpu_mod shared library which occurs if cmake is ran two times in a row.
9fe5e789 Set the pkg_win_release ci job as a need of pages ci job.
a11b49c0 Remove erroneous USE_MATIO_STATIC_LIBS option from pkg_win_realease ci job + add MATIO_LIB_FILE option for python build cmake too.
8a1042f8 Re-enable windows release ci jobs.
6d5153a0 Add a Faust::bsrgemm GPU2 unit test.
c1e9b12e Fix possible erroneous size of C (output) in MatBSR<FPP,GPU2>::bsrgemm.
e4ba4c82 Update to gpu_mod@d76e343.
69150528 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).
f12fea0d 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).
9256df0b Rely on matio standalone static library instead of simple matio + dependencies static libraries for matlab wrappers too.
ea7971dc Stop relying on HDF5 and SZIP (matio dependencies) objects for compiling matfaust mex-s (as did for pyfaust in 52915f27).
5b81962d Update about windows matio library and openmp (details below)
ac0bffb7 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).
cab381a2 Enhance the building of the python wrapper for Windows.
62f3d8f2 Remove pruneouts from pyfaust.Faust.real/imag (too costly: e.g. 44s instead of 63ms without it in real).
6cad64a4 Handle charset detection in post_docgen_html_tags_filter.py to avoid error reading non utf8 files.
15eed53a Fix matlab cpp compilation error in faust_optimize_time_prod (GPU version).
3840a7eb Rely on generated header of gpu_mod for CUDA 11.4 in faust_linear_operator module.
71849edf Update win installer script since CUDA9.2 support has been removed.
9caa4a4e 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.
962ecc10 Remove from CMake script the cuda version 9.2 if windows (forgotten in e8e7fd3fca06e96fe498694779bfd04120e8b84a).
55bcfa69 Lighten matio, zlib and hdf5 Windows library paths (all in one folder named faust_libs).
72cf3eaa Remove flag detection for outdated C++0x and make optional the success of that of C++11 (the compiler should be up to date).
07ec94a2 Update matio linking on Windows with HDF5 dll auto-loading from pyfaust wrapper.
0fa63b6c Drop support of Visual Studio 14 2015, use now only Visual Studio 16 2019 (#218).
98228a1c Drop CUDA 9.2 support for gpu_mod build on Windows.
3d736c93 Enable DYNPROG Faust product (Faust.toarray()) for GPU.
9376f0a7 Move TransformHelper<FPP, Cpu>::set_FM_mul_mode to the parent class TransformHelperGen to use in TransformHelper<FPP,GPU2> too.
f7f3aa08 Integrate BSR matrix in GPU2 gemm_gen using bsrgemm.
486e8b27 Add a BSR Faust test in dynprog_mul c++ test.
6e193ade Implement bsrgemm in faust_linear_algebra GPU2 module.
528ac10f Implement MatBSR<FPP, GPU2>::bsrgemm and update to gpu_mod@a1dd1ad.
b85f96fd Fix GPU2 MatDense move ctor, undue freeing.
c477df16 Implement GPU2 spgemm prototypes as on CPU and use them to implement gemm_gen for GPU2 + update to gpu_mod@0f2c75e.
3ed7504a Fix missing gpu_mod loading in test_dynprog_mul_gpu and updade to gpu_mod@48c6b03.
b3e4b105 Fix missing HTML anchor for cuda installer Q&A in doxygen doc FAQ + slight rewriting.
7a296338 Add GPU test for cpp dynprog_multiply.
032d9dec Update set real generic code in faust_prod_opt_gen by using FDevice enum instead of specific Cpu value.
1a5fd078 Add MatBSR<FPP, GPU2> getNbBlockRow/Col and getNBlocks functions + update to gpu_mod@1488445.
9edb74f7 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).
319d600e Add a unit test for (faust_prod_opt) dynprog_multiply C++ function.
99ef5d23 Update MatGeneric::to_string to print the factor memory address of CPU matrices as done already for GPU.
73d1b403 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).
0193d68e Update macosx pkg license file with 3-clause BSD and scipy license.
5c98d8e7 Add scipy license to pyfaust pip package.
2dfb541b Use scipy license file (code used here ./src/utils/faust_scipy.h*).
2ccabcec Temporarily disable win release pkgs.
968689a3 Fix pyfaust rand_butterfly doxygen doc error (the brief description must fit into one line.
dd1ad91a Update matfaust/pyfaust wht, dft, dct, dst, rand_butterfly API doc.
b6a4b4d3 Iterate again on matfaust/pyfaust butterfly doc (minor changes) + add references to wht, dft and rand_butterfly.
ce272825 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.)
08329d26 Minor changes in the doc of pyfaust/matfaust butterfly function.
b1f17086 Add in mat/pyfaust butterfly doc a note about converting permutation matrix <-> permutation list of indices.
e9744a66 Add matfaust.rand_butterfly to the doxygen doc.
fc25889a Update matfaust/pyfaust.fact.butterfly doc to point out the BP structure.
892b8f02 Correct permutation matrix to indices conversion in pyfaust and matfaust wrappers.
182fb4f1 Fix matfaust unit tests of dct, dst, toeplitz, circ/anticirc.
a4c6e3b1 Fix a memory bug of Faust created from different mex shared lib than the main ones (mexFaustReal/Cplx/Float).
566c0182 Review the matfaust/pyfaust.fact.butterfly doc after Rémi's comments.
106bc187 Fix matfaust/pyfaust butterfly unit tests of DFT factorization (it needs the perm='bitrev' argument now).
1b6a88e7 Add unit tests for pyfaust/matfaust rand_butterfly.
e7bb053c Add paper reference for the 8 default permutations of matfaust/pyfaust.fact.butterfly.
fac21fa7 Update pyfaust/matfaust.fact.butterfly: add 'bitrev' option for perm argument and complete the doc.
85c82b31 Add matfaust.rand_butterfly.
3ff17375 Update C++ Faust::butterfly_hierarchical
a1667bbf Add pyfaust.rand_butterfly.
e96ae67a Refactor the bitrev_perm matfaust function to its own file in tools.
28e49ca1 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.
79b5b41b Enable Faust::TransformHelper lazy indexing on GPU.
68a39e96 Fix Windows VS compilation issue of Transform<FPP, GPU2>::indexMultiply casting issue (#272).
4dfcc420 Update to gpu_mod@b5966c7 (fix).
90fe65d4 Fix pyfaust.tests launching melting field and dtype.
5faf8524 Fix TransformHelper<FPP, GPU2>::indexMultiply X_nrows initialization.
358493ec Remove a multiplication test using the old GPU implementation (deleted before).
40c73783 Add a script helper to launch manually a gitlab-runner on macOS.
2d64aa03 Update to gpu_mod@0aff3aa.
f0fe457d Make indexMultiply available in pyfaust GPU wrapper.
733be5e1 Implement Faust::TransformHelper<FPP, GPU2>::indexMultiply.
93216a54 Update gpu_mod@c815fd3
fd8cfb52 Fix of TransformHelper<FPP, GPU2>::sliceMultiply in case of nullptr out buffer + update to gpu_mod@c815fd3.
f2d972ce Enable lazy slicing for TransformHelper<FPP,GPU2> and special optimizations (with sliceMultiply) for Faust-vector/matrix multiplication from wrapers.
605a32b8 Add missing slicing/indexing evaluation in Faust::TransformHelper get_total_nnz update member functions.
494d3197 Fix TransformHelper<FPP, GPU2>::sliceMultiply (X_nrows wasn't right).
7b380326 Set Slice::display to const.
8a5d5aeb Fix missing gpu test faust_gpu_mod.
d3178193 Refactor sliceMultiply in C++ code of the python wrapper to make it available for GPU too.
195df869 Add a cpp test for TranformHelper<FPP, GPU2>::sliceMultiply.
25d1ebbd Handle the case of nullptr out buffer in TransformHelper<FPP, GPU2>::sliceMultiply.
d764dbde Set TransformHelperGen::is_row_sliced and is_col_sliced to const.
71d4d973 Filter out utility function of matfaust.fact.butterfly from doxygen doc.
27aa8306 Correct butterfly permutation feature to obtain a F that approximate M instead of M*P
ef26d239 Add TransformHelper<FPP,GPU2>::sliceMultiply and update to gpu_mod@f6f99e4.
45a7038b Remove conjugate and transpose optional arguments from TransformHelper*::multiply functions.
b2c2e3fa Fix a bug introduced by beb43d26 in pyfaust.Faust.imag.
5c996ec2 Fix zip command in faust data archiving cmake script.
8ea2b2a6 Stop passing transpose flag argument from matfaust.Faust.mtimes* to C++ core.
1a20325e Remove conda virtual environment after uploading the package.
be0f54c1 Minor fix in matfaust.Faust.real unit test.
14bd37e7 Add analytical formula in DCT/DST doc.
0af95302 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.
5906c227 Replace in matfaust/pyfaust.Faust.real/imag the [I_n ; 0_n] factor by a column slicing F[:, :n].
ce48a150 Exclude *cplx2real_op symbols from doxygen doc.
c0e6e89c Complete pyfaust.Faust.astype for complex to float32 dtype conversion using Faust.real.
d66297fb Add unit tests for matfaust.Faust.real/imag.
7529f302 Rewrite matfaust.real/imag as done for pyfaust in e2139a44.
40aa33c1 Add unit tests for pyfaust.Faust.real/imag.
6ab93b63 Rewrite pyfaust Faust.real/imag functions to obtain a real dtype and set these functions as properties (update DST and DST consequently).
584ad61d Update pyfaust.fact.butterfly doc and code according to the previous commit on matfaust.fact.butterfly.
4c7c517f Document matfaust.fact.butterfly and correct the permutation case in which F is an approximation of M*P.
3fe8d601 Add the default_8 option (8 deft permutations) to matfaust.fact.butterfly.
d0f7bf05 Implement matfaust.fact.butterfly option to evaluate the factorization on mutliple permutation and keep the best.
bdb5e5d4 Update matfaust.fact.butterfly to optionally pass one permutation to the mex code.
87d55588 Adjust mex butterfly code for complex type case.
b5dc5030 Add mex code for permutation argument of matfaust.fact.butterfly.
ab20e3c8 Fix constness inconsistency (between decl and def) of permutation argument of butterfly_hierarchical.
52fd0b9c Allow to try multiple permutations in butterfly and keep the best corresponding approximation Faust + documentation and examples.
567c6b8f Remove erroneously added butterfly symbol to EXCLUDE_SYMBOLS list of Doxygen (it was removing butterfly from the doc).
1ea9cb39 Add perm argument to pyfaust.fact.butterfly and update the wrapper accordingly.
7ab8672c Add permutation argument to C++ butterfly_hierarchical.
90fb1aa7 Fix a bug in a MatSparse ctor ; dimensions inconsistency against eigen internal matrix.
0085daf1 Optimize matfaust/pyfaust.anticirc: permutation matrix set to sparse.
bffe47b2 Optimize pyfaust.Faust.__add__: last Faust factor was in dense format for no reason, set it to csr.
091e26b7 Refactor bit_reversal_factor functions and add a permutation parameter to butterfly_support function.
4008fc9f Document pyfaust.toeplitz/circ/anticirc with examples.
9f053a46 Filter out internal functions from API doc.
1ebbe720 Document matfaust.antircirc and hide internal outputs.
fc3cd5dd Verify that c argument of matfaust.circ is a numerical vector.
281d8dfc Document matfaust.circ with an example.
527f0b9f Complete matfaust.toeplitz doc with an example.
4ca01cc2 Verify matfaust.toeplitz r and c arguments and allow to pass indifferently a row-vector or a column-vector.
a579cbde Verify matfaust.toeplitz r and c arguments and allow to pass indifferently a row-vector or a column-vector.
999ecd41 Fix missing matfaust version in fourth livescript.
7d21f272 Fix conda pkg build ci job for Windows, it wasn't waiting for the process to finish.
0ad6cf8b Minor fix in URL parsing of wheel package in conda pkg building script.
0c15037d Avoid downloading unnecessary artifacts in conda_*_pub jobs.
3b9c5198 Optimize matfaust/pyfaust.dst and dct by buiding only sparse matrices.
078fb6a1 Complete the matfaust/pyfaust.dct/dst API doc.
2adfe1b3 Add conda pkg building and uploading ci jobs.
7730a31a Add matfaust.dst + its unit test (minor changes in pyfaust.dst too)
7d69e57b Minor fix in matfaust.dct
eb655ac8 Add matfaust.Faust.real/imag.
06a6e4a9 Add another fix to libomp not loaded for macOS pyfaust python package (using install_name_tool)
b2f05a22 Add Faust.real(), Faust.imag() and update pyfaust.dst/dct/Faust.astype with real.
bef8d562 Add pyfaust.dst and its unit test.
1e1d2f53 Add matfaust.dct + its unit test.
92a5bc0f Update conda pkg build & upload script for Windows.
c9aa155a Add some precisions in system package install guide.
bd9f0434 Update pyfaust install in virtual environment guide for Anaconda packages.
fb2d930d Fix windows too long filepath bug introduced by cc5488f1 (issue #270).
7c82d4c5 Fix missing dvp.m and normalizeCol.m utility scripts in macOS and linux pkgs (mandatory for the BSL demo).
939db99f Update/Review 'Using the FAµST API in Algorithms' livescripts and notebook.
f8b4438e Add conda pkg building and uploading script.
c48d6272 Review/Update Faust manipulation livescript and notebook.
f2acc84e Hide output in matfaust.Faust.conj.
9ea1de18 Add a unit test for pyfaust.dct.
dd3c1db5 Add pyfaust.dct.
eaab198a Update/Correct the 'Faust creation' live script.
85259cae Correct grammar error (information is uncountable) and other minor change.
a8df125e Add unit tests for matfaust.circ/anticirc/toeplitz.
b7d44dd6 Add matfaust.toeplitz + related changes in matfaust/pyfaust doc.
946b8b32 Add matfaust.circ/anticirc functions, to the doxydoc too and update their code code in pyfaust too.
6a1fa04a Prefix filename by parent package for matfaust modules/functions to avoid conflict (e.g. same function names in two different matfaust sub-packages).
c099fda2 Add pyfaust.toeplitz and its unit test.
2c3a4546 Hide sliceMultiply and indexMultiply from doxygen doc as they shouldn't be used directly by users.
d2fdc06b Add pyfaust.circ and anticirc along with their unit tests.
55599cc4 Complete the pyfaust.Faust.right/left unit tests with transpose and ajdoint cases.
39bd6a0d Fix TransformHelperGen::left/right functions in transpose and conjugate cases.
a45c9eb8 Fix the link of tomp.mlx in html rendering of 'Using the FAµST API in Algorithms' live script.
ce69f1af 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.
62a4cbcb Add a FAQ entry about F[I, J] operation that is not supported in pyfaust.
9272413a Minor correction in faq entry.
e3bbc207 Fix erroneous assertions in TransformHelperGen::init_fancy_idx_transform.
04649f57 Add a FAQ entry about Segmentation Fault error when using pyfaust and torch in the same script on Mac OS X.
0a349233 Add new unit tests for pyfaust lazy slicing/indexing.
f309e53b Fix regression due to d99715f8 which prevent F[::step, J] or F[::step, I] to be handled in pyfaust.
11551f37 Set python3.9 for default version of revision/release whl packages and 3.10 for extra version.
3de9589c 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.
39017bf2 Add Slice assignment operator.
8de9a16f Prevent trying to compile TransformHelper::indexMultiply/sliceMultiply and MatSparse::eigenIndexMul when the Eigen version is used is older than 3.4.
75cf8d04 Add scipy namespace.
3bd15f2d Update MatSparse::get_rows with the scipy method to be consistent with get_cols last update.
8ac7844f Optimize MatSparse::get_cols using scipy method for slicing columns (as it works faster).
d92ae5af Don't allocate two buffers in Transform::multiply if the Faust has only one factor.
1c8a89aa Optimize Faust row/column indexing by avoiding to convert a full slice ':' into indices.
d315ff27 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).
d0b1f4b3 Fix issue #263 compiling error of TransformHelper GPU2.
cf5be245 Display a warning when the numpy array to multiply is not in column-major order.
834f30db Add TransformHelper::indexMultiply prototype that avoid copies by writing directly in the output buffer (update the pyfaust wrapper consequently).
34ca4e72 Fix Faust::TransformHelper::<FPP, GPU2>::init_fancy_idx_transform (issue #262).
2e465ed2 Fix issue #260 Windows compiling error because of older Eigen version (doesn't know Eigen::placeholders, Eigen::all).
bb1a5d11 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.
2a60bfed Implement Faust lazy row/column indexing with indexMultiply optimization in case of dense CPU Faust.
f6989772 Handle Faust-matrix mul in TransformHelper::indexMultiply (in addition to Faust-vector mul.) and update the pyfaust wrapper consequently.
45e9e633 Update pyfaust.Faust.indexMultiply wrapper to handle both dimensions in indexing.
391108cb Update TransformHelper:::indexMultiply (wasn't complete in 69a988c6).
635f0fcd Fix MatDense::eigenIndexMul (mixup of cols_ids and row_ids)
dc0a3702 Manage indexing for the two dimensions in TransformHelper::indexMultiply and fix bugs in MatSparse::eigenIndexMul.
0331c9c9 Add MatSparse::eigenIndexMul.
e5e18509 Add MatDense::eigenIndexMul.
c8183a97 Update indexMultiply in pyfaust wrapper and C++ core to index only the Faust columns (not the vector).
e1ca0733 Fix a bug introduced by 5676f1 in TransformHelperGen::eval_sliced_Transform.
654bad84 Reduce the number of copies in TransformHelper::multiply (for Faust-vector mul).
9266ea7b Update Vect::multiplyLeft to handle adjoint matrix case.
95ad86dc Add the indexMultiply C++ def (yet to implement) in the pyfaust wrapper.
0e0d1081 Use the optimized def of eval_sliced_Transform for GPU too (but lazy slicing is left for later).
7d155e21 Handle complex conjugate and adjoint in sliceMultiply C++ core and pyfaust wrapper.
1b987e23 Update sliceMultiply in C++ core and pyfaust wrapper to reduce the number of copies.
a6046153 Handle successive virtual slices made in a row.
e839ca5c 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.
3c950986 Modify sliceMultiply to take the vector as is (without vector slicing, the callee must send a vector of the proper size).
5071aff0 Add Slice::size().
f4a25744 Update the pyfaust wrapper of sliceMultiply next to 04a157b6 modifications.
3e1dea1b Generalize sliceMultiply to handle the case when a slicing of the Faust is made on both dimensions.
ee2b0c4a Implement lazy slicing for TransformHelper<FPP, Cpu>.
aa127e10 Simply/Optimize eval_sliced_Transform for the CPU case.
8f26223c Add Slice::display().
5d107ed8 Add python wrapper to TransformHelper::indexMultiply/sliceMultiply into pyfaust.Faust.
3368b4ac Add TransformHelper::indexMultiply.
2b2907c1 Add TransformHelper::sliceMultiply.
1eb69e8e Document matfaust.Faust attributes.
f96d49e2 Review Faust.rcg and Faust.pinv API doc.
44821b99 Update/review Faust.optimize/optimize_memory/optimize_time/pruneout API doc.
b87c789a 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.
02ef9229 Review/Update matfaust.Faust.numel/numfactors (also add alias length) and pyfaust.Faust.size/numfactors (which already has its len alias).
00003970 Review/Update Faust.normalize doc and remove debug outputs in mex code.
2c73a6eb Minor typo.
1d2cd5b2 Document and implement matfaust.Faust.double wrapper with its mex C++ code.
bf54d2e8 Review/update doc of Faust.nbytes, Faust.nnz_sum.
baeac4a3 Fix matfaust.Faust.factors when the factor is a single (precision) sparse matrix.
acddaccb Fiter out <code> tags in matlab inline doc.
8507ae96 Update/review pyfaust.faust.__matmul__, __mul__, __rmul__ doc and remove deprecated code.
5e42fbc6 Review/update matfaust.Faust.mtimes doc.
37b0caa9 Review/update Faust.+ Faust.- doc.
80870101 Review/update pyfaust.Faust.matvec doc.
754c6e04 Review/Update Faust.save/load/load_native functions doc.
60e38727 Review/Update Faust.left/right functions.
01a64f02 Review/Update matfaust.Faust.isreal doc. Rename isReal attribute to is_real to avoid confusion with function in doc gen.
303e1e71 Update/Review Faust.issparse doc. and make possible to consider BSR matrices as sparse matrix too.
953f7edc Review/Update Faust.isdense doc.
7e10ccf8 Fix matfaust.Faust.imagesc (deprecated matlab suptitle function) and review its doc as well as pyfaust.Faust.imshow'.
3247533d Document matfaust.Faust.get_handle.
d214998a Review/Update pyfaust.Faust.toarray/todense, matfaust.Faust.full doc.
dcf6685a Review/update Faust.factors doc.
e2cf4167 Review/Update matfaust.Faust.end.
d12fbf98 Review/update pyfaust.Faust.display.
f23edada Review/Update Faust.device doc.
766c4d53 Review/Update Faust.density doc.
bb4b23ec 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).
0facdb80 Review/update pyfaust.Faust.astype doc.
835149fb Review/Update Faust.clone doc and argument parsing.
ecbc3f06 Review pyfaust dtype and matfaust class functions.
61c694ad Review Faust constructor API doc.
cf1d1555 Fix issue #253: is_gpu_mod_enabled symbol conflict with Faust package.
a2a8f95e Review matfaust.create_bsr().
ae3ea9c8 Review matfaust/pyfaust.dft doc.
6f6e033b Review matfaust/pyfaust.eye doc.
83507e9d Replace use of deprecated class matfaust.ParamsHierarchicalSquareMat by ParamsHierarchicalWHT in ParamsFactFactory.
14e81fad Add missing matfaust.is_enable_gpu an update doc in both pyfaust and matfaust.
05a4dd99 Review isFaust doc.
8bdadf48 Minor change in license files.
1d57e518 Minor fix in pinv code and doc.
25045f20 Update/enhance matfaust/pyfaust.rand doc and options parsing.
faa8038b Add sanity checks, warnings and review the doc of rand_bsr.
37dc9af1 Exclude symbols about libomp loading in pyfaust from doxygen doc.
613c9975 Review Faust concatenation functions doc.
346761b8 Review wht doc.
a5001352 Add pyfaust/lib/libomp* to the list of installed files (it is needed for macosx).
68a0545f Set pyfaust package to numpy==1.22.
b49071d6 Disable .dmg package creation in pkg_macos_release ci job.
ec809c2a Update parameter parsing and doc of ParamsHierarchicalRectMat + fix missing ceil in matfaust structure.
109425a8 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.
c1fae822 Enforce same version of python for pkg_macos_purepy_pkg and test_macos_purepy_release jobs.
8efc7c27 Update the doc of ParamsHierarchicalRectMat with a picture defining the sparsity of the resulting Faust and other details to clarify a bit.
264f3220 Update macosx setup script about dot, python and matio install/config.
42c1572f Update TransformHelper::pruneout to remove 0x0 factors and optimize_multiply to keep the transposition config in the new Faust.
89ef3e4a Stop generating class diagram and using graphviz dot in doxygen doc.
606cc72e Update/Fix TransformHelperGen::optimize_memory.
9188c1d7 Disable doxygen doc generation in pkg_*purepy* jobs (the doc is not included in the .whl packages anyway).
40e1dcff Update macosx vm setup script for libomp config.
067dfcc8 Python3.10 building pip whl pyfaust release on macos.
4c3d4e2e Re-enable pypub and pages jobs for publishing release packages.
ca1677f9 Add ParamsHierarchicalRectMatNoResCons.m to doxydoc gen.
4eb1e49f Integrate GPU BSR matrices into matfaust.rand_bsr.
d9694198 Fix MS VS compilation error due to min/max macros.
3df1e006 Enable GPU Fausts for pyfaust.rand_bsr_faust.
4c541449 Update CMake script to add faust_MatBSR_gpu.cpp.in files to the building process (missing commit).
8c6ca58d Fix GPU2 MatBSR::setZeros, the def is a template specialization not a template function.
64c24abb Temporarily disable pypub and pages jobs for testing release packages without publishing.
3539cf4b Implement TransformHelper<FPP,GPU2>::push_back bsr factor prototype.
9568ff61 Update Transform<FPP, GPU2>::to_cpu for MatBSR<FPP, GPU2> and update to gpu_mod@1ec8077.
72bc1779 Add MatBSR<FPP,GPU2>::to_dense and its unit test.
0636f298 Implement GPU2 TransformHelper::randBSRFaust + its unit test and modify push_back to handle BSR factors appending.
3e654bb3 Move MatSparse<FPP, GPU2> from .cpp.in to hpp file because it's not a template specialization.
31ff52ec Implement MatBSR::clone/Clone, ctor copy and add their unit tests.
b2147f1b Implement MatBSR<FPP, GPU2>::get_nrows/get_ncols and add their unit tests.
0b8575dd Implement MatBSR<FPP, GPU>::getNbRow/getNbcol/getNonZeros/getNBytes/getDevice/norm/setZeros and their unit tests.
f5a7f449 Fix MatBSR<FPP, Cpu>::transpose for complex case (it was adjoint instead of transpose).
2ad805e4 Implement MatBSR<FPP, GPU>::adjoint, conjugate and add their unit tests.
f5d6c44f Implement MatBSR<FPP, GPU>::transpose and add its unit test.
56dd0403 Minor changes in MatBSR<FPP, CPU> (MatBSR::print_bufs and std::move in BSRMat::rand return).
afe154b4 Add MatSparse<FPP,GPU2>::to_bsr and an associated unit test.
2decb3c5 Add a default ctor to MatBSR<FPP, GPU2> and implement set_gpu_mat_ptr.
a4829ee2 Add MatBSR<FPP, GPU2>::to_sparse and its unit test.
77281694 Update to gpu_mod@d7cb67c.
8ba17fa5 Implement MatBSR<FPP,GPU2>::multiply(Vect<FPP, GPU2>&) and add a unit test.
b8f56d2b New ctor Vect<FPP,GPU2>(Vect<FPP,Cpu>&) (copy from CPU vector).
6c14bf7e Fix Vect<FPP,Cpu>::mean_relative_error: avoid nan when zero is encountered in both vectors.
d2a1ee2c Fix MatBSR<FPP,Cpu>::multiply: the resulting vector wasn't resized.
5ccef30f Add MatBSR<FPP, GPU2>::multiply(MatDense<FPP, GPU2>) and its unit test.
e9dbefaa Fix non-declared symbol (BSRMat) in Faust::Transform<FPP,Cpu>::multiply.
e6d9ea51 Add GPU MatBSR CPU-GPU round trip test.
41106267 Add GPU MatBSR (class skeleton + few implementations: instantiation and tocpu func.).
e93f86ee Integrate BSR GPU(_MOD) function structure initializations and getters into faust_gpu_mod_utils module and update to gpu_mod@e37ee8a.
608071e2 New constructors to MatBSR and buffer read-only access member functions.
bbc8e6d6 Complete the documentation of matfaust.fact.hierarchical with examples of factorization withouth constraints on residual factors (proj_id).
909af32d Add matfaust.factparams.ParamsHierarchicalRectMatNoResCons and integerate it to ParamsFactFactory.
12631ecb Minor changes in matlab doxydoc gen scripts.
4e0a79f2 Simplify pyfaust.ParamsHierarchicalRectMatNoResCons by refactoring in parent class.
2d1bb4c3 Increase test timeout time (macOS VM can be very slow).
d67b3682 Add matfaust.factpararms.ParamsHierarchicalWHTNoResCons and adjust pyfaust counterpart doc.
999a03f1 Fix ConstraintMat::project, is_constraint_name_mat() and get_equivalent_constraint() about identity projector/constraint.
fc6baab2 Add matfaust.factparams.HierarchicalParamsNoResCons with doc and example.
aced5639 Add matfaust.ParamsFact.get_constraints (equivalent to pyfaust get_constraints).
1cfba84a Fix minor bug typo in matfaust.ParamsHierarchical.to_mex_struct.
f21d637a Add matfaust.proj.proj_id.
1f2779fe Rename pyfaust *ConsSimple* params class to *NoResCons* (more explicit).
8c8f1e01 Add/use ParamsFact.get_constraints to simplify/unify pyfaust.proj.proj_gen to pyfaust.factparams.ConstraintGeneric in ParamsHierarchical and ParamsPalm4MSA.
72815a6d 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.
86bc266a 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).
255d58b8 Disable Faust::TransformHelper matrix chain optimization when the Faust is only one factor long (it fixes by the way some error on GREEDY_* methods).
41a2f966 Fix hierarchicalFactorization_double/float C++ test (lambda value).
3c2fc13b Fix TransformHelperGen::get_fact_type which was buggy in case of transpose Faust.
2baef604 Fix test_pyFaust_time.py.
41b6da16 Fix test_pyFaust.py and pyfaust.demo.quickstart, pyfaust does not permit to use int dtype.
186299d5 Remove float32 part of Faust.load_native unit test because this type is not enabled in revision builds.
2bb16f4d Matlab test scripts.
fd07cf24 Fix C++ complex sparse matrix copy from matio var.
9e65c422 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.
36db4f1f Fix complex MatDense data reading from matio variable.
d78b418f 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).
80998e6a Fix MatDense::from_matio_var bug on complex date.
4a616ffd Fix tested error messages in test_matlab_faust2.m.
200eb5dd Fix hierar_fact_test old test script/mex API (new constraint attributes needed -- pos and normalized).
e58ebd64 Fix one-factor-loading from .mat file (C++ Transform::get_mat_file_type error).
29655663 Return to HTTPS for CTest-CDash (because HTTP doesn't work) but stop verifying (at least temporarily) the certificates to use HTTPS (curl options).
681ec31c Fix matfaust Faust-matrix multiplication in case of tranpose Faust.
9f59d964 Fix three bugs in Faust-vector matrix.
a93e3caa Fix TransformHelper<float>::pack_factors() unit test.
a99ab70d Fix C++ prox_blockdiag unit test.
b9f0fe5c Fix issue #251: windows compilation error because of a double-to-enum cast.
80b2f4b2 Fix several matfaust factorization algorithms unit tests.
76030b50 Fix matfaust fgft_palm: ignored normalized and pos parameters for constraints and also step_size and grad_calc_opt_mode.
8900eeee Handle missing parameter grad_calc_opt_mode in matfaust ParamsHierarchical and associated mex code for the hierarchical algorithm.
ca122d91 Display used parameters in HierarchicalFactFGFT ctor if verbosity enabled.
00fe9028 Fix syntax error in matfaust.factparams.ConstraintMat.
e71bcc60 Fix matfaust.Faust testProdOpt unit test.
ac2f46da Update researchers contributors list.
997bc7a5 Fix pyfaust.Faust.__add__ when the Faust is complex (test_Faust.testPlus/testMinus tests are green).
4d1082f7 Fix unit tests about pyfaust.proj.* and pyfaust.factparams.ParamsPalm4MSA.
7e73fbb0 Fix a bug in pyfaust.fact.fgft_palm caused by fa991b69.
50a94e93 Fix issue #250, matio helper functions not found because of recent move of them to the Faust namespace + one typo.
33a38c44 Fix issue #249: Windows VS linking error, missing symbol faust_matio_read_variable (located in src/utils/matio/* modules).
5098dadf Integrate matfaust.Faust.load_native for loading .mat files (using C++ recent code instead of matlab Faust.load).
23c65653 GPU code compatibility for read_mat_file in C++ core and pyfaust wrapper pyx code.
0d9bfd76 Update Transform::read_from_mat_file the Faust nnz after reading the factors in .mat file.
92370714 Add a unit test for pyfaust.Faust.load_native().
de660bc1 Add pyfaust.Faust.load_native (wrapper to load a Faust from a .mat).
a27e0f67 Faust::Transform(Helper)::get_mat_file_type.
264f0afd Add fix float real sparse matrix read in .mat + exception instead of exit in case of error.
9f46fb4b Unit test for Faust::Transform(Helper)::read_from_mat_file().
a57e9725 Implement Faust::Transform(Helper)::read_from_mat_file().
5060abc7 Add faust matio module in include directories of the python wrapper building script.
062941a1 Add C++ .mat backup/restore test of MatDense and MatSparse.
f58068f8 Implement MatSparse::from_matio_var, read_from_mat_file and save_to_mat_file.
8b6c0292 Switch temporarily to HTTP because cdash-ci.inria.fr certificate has expired.
69315a05 Refactor matio module.
cb5f4912 Implement MatDense::from_matio_var, read_from_mat_file, save_to_mat_file and update Mat*::toMatioIOVar to allow specifying a matrix variable name.
6dfbe0ee Minor fix in pyfaust unit tests (hierarchical and skperm) because of recent changes (default argument values etc.).
7ac3684f Fix _palm4msa_fgft (unit test green).
9758944f Remove unused C++ constructor in Faust::Params.
9adbf6eb Add matfaust.factparams.ParamsPalm4msaWHT (same as the one added for pyfaust by 7add1321).
e4627a9a 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).
79c916ef 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).
68c90509 Update cpp ConstraintGeneric Display and add pos/normalized getter.
c0382679 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).
c02dbdf3 Handle more uniformly/generically the setting of normalized and pos attributes of matfaust.factparams.Constraint* classes
0fae63ec Add pyfaust.factpararms.ParamsPalm4msaWHT to factorize a Hadamard matrix using SKPERM and add the Tung paper reference in the doc.
200d3a81 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.
cbfc66aa Fix SKPERM infinite loop (issue #248).
5db6d40c 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.
b51b989d Update pyfaust.fact.palm4msa and hierarchical and C++ core to take into account the pos(sitivity) and normalized attributes of pyfaust.proj.proj_gen.
d928fe84 Enhance pyfaust.proj.* and pyfaust.factparams.Constraint*
e5c977eb Specify key argument names to avoid confusion between arguments of ConstraintMat ctor (especially since the recently added shape optional argument).
7881f5bc Minor change in formatting of fact.py.
add40fd3 Fix regression provoked by 39b96491: the constraint mat wasn't properly converted in pyx code which made fail the hierarchical factorization of DFT matrix.
ea0d434b Update PALM4MSA2020 to defaultly init factors as eyes + zero (zero for the first factor to update in PALM4MSA, eyes for the other)
0ddeb2a1 Stop on fatal error if PALM4MSA 2020 descent step is zero because of zero 2-norm of L or R factors.
7a8253cc Change the reference paper for butterfly and the default type argument to bbtree.
5bcdc101 Minor change in power_iteration (warning message).
0c6176be Workaround the eigen BDCSVD bug for double (2^14)^2 Hadamard factorization using exceptionally JacobiSVD.
6303f25a Minor fix in butterfly factorization cpp tests.
5a7bd55a Add RefManager::print_refs().
9bb967de Add a minor sanity assert in row_nonzero_inds.
4f9ec905 Update butterfly factorization functions.
c7f0390f Update butterfly bbtree factorization to use sparse factors for factors too (not only for supports).
cb0e3a10 Add MatSparse::submatrix.
135cdb7f Update butterfly factorization to use sparse supports instead of dense ones (it speeds up the execution a lot).
61a180e7 Add MatSparse::col_nonzero_inds, row_nonzero_inds.
4fff39b5 Update bbtree butterfly factorization algorithm C++ impl. to use the lifiting method instead of DTO.
0c9d77ca Remove ConstraintGeneric::get_type definition (really messy for nothing) and set the function as pure virtual for simple implementations in subclasses.
2db31be7 Add matfaust mex wrappers bsr_mat_to_sp_mat functions.
68d8961f Minor fix in API doc of pyfaust/matfaust.
da1d4480 Fix several inconsistent floating types in pyx python wrapper code for palm4msa and hierarchical.
2fa6ebaf Add simplified pyfaust.fact.hierarchical parameterization structures: ParamsHierarchicalSimple, ParamsHierarchicalWHTSimple, ParamsHierarchicalRectMatSimple and the related documentation.
751754c5 Bind the C++ prox_id into pyfaust.proj.proj_id + doc.
74101a38 Minor change.
8ddb8387 Add prox_id for CPU, GPU in default and MatGeneric versions.
33b0445d 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.
864074a6 Fix typo in pyfaust.fact.butterfly doc.
55d164e9 Add a unit test for ParamsHierarchical.are_constraints_consistent (sucess and error cases).
d9feb1c2 Add a unit test for ParamsPalm4MSA.are_constraints_consistent (sucess and error cases).
a7493c23 Add pyfaust.factparams.ParamsHiearchical.are_constraints_consistent and use it in pyfaust.fact.hierarchical as it was done for PALM4MSA by 043de22d.
6231eab5 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).
9b65ac32 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.
afa81eb7 Apply more properly the BUILD_EIGTJ_SVDTJ cmake option by ignoring related pyx code in python wrapper compilation.
2be2c901 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).
4d2def11 Update MatBSR::BSRMat::rand() to generate complex matrix with nonzero imaginary part when the scalar type is complex.
aaa148fd Update matfaust.Faust.factors to handle BSR matrix retrieval (converting it to a sparse matrix because matlab doesn't support BSR matrices).
9b68582a 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.
36f670b8 Add a test for pyfaust.Faust.factors when the Faust contains BSRMat-s.
3dcc8abd 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)
80dfd2eb Fix two bugs in MatBSR: in copy_bdata and BSRMat::operator=.
2fee72eb Implement Faust.factors for returning scipy bsr_matrix (update in pyx/C++ core code).
ae202127 Decrease the release packages ci expiration time to 1 year.
5f369543 Update GPU2 C++ core to follow CPU TransformHelper/MatDense/Matsparse::to_real changes made by 4fa8fbf9.
9b80a412 Add a new FAQ entry about using single/float sparse matrices in Matlab which doesn't support them natively.
71f0ea95 Implement matfaust.Faust.single to convert double Faust to float/single Faust.
f2080128 Add more information when MatBSR matrix is displayed: size and number of nonzero blocks.
4a8add51 Remove old unused PALM4MSA 2020 implementation (cf. issue #244).
72be7706 Update Faust::power_iteration to workaround Faust::Transform<float> NaN eigenvalue (due to zero eigenvector approximate) by recomputing the power_iteration in double precision.
6dbf00f8 Remove now useless called regarding deleted old_matlab tests/directory in cmake files.
e14b697f Remove wrapper/cmdline but keep matio module in src/utils/matio, update CMake scripts accordingly.
3719c3ad Remove wrapper/matlab/old_matlab (Luc's PALM4MSA/hierarchical pure matlab impls) and update tests accordingly.
cde62bc4 Update Faust::power_iteration by defaultly using random vector initialization and always the same seed for reproducibility.
a5a58eac Remove embedded libxml and matio archives for unix, they are easily installable directly from this type of OS.
86ab27f5 Fix issue MSVC compiling error (issue #243): out of space memory. Using older version of eigen (3.2.8 instead of 3.4.0).
8616f34a Fix issue #232 M_PI not defined on MSVC.
de303a41 Remove OpenBLAS windows binary package in the next to linux removal (49079e78).
52784b4c Remove repo. embedded Eigen library zip for Windows, download it if needed (updating by the way to 3.4.0).
1233256b 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).
ef25da67 Update Faust::dynprog_multiply to handle BSR matrices with specific product cost calculation.
7cd7ca50 Fix issue #241 VS C++ compiling error (std::iota not found).
90c624d9 Bind the randBSRFaust C++ function into the pyfaust and matfaust wrappers (cf. documented matfaust/pyfaust.rand_bsr).
c2ca5d6e Fall back to truncated SVD for the butterfly factorization (it has proved practically to be more efficient).
ccdbbbda Enhance sigma sign determination in MatDense::approx_rank1.
113541dc Update matfaust/pyfaust butterfly documentation with article reference.
2f8bda26 Replace truncated SVD by a rank-1 approximation using power iteration in butterfly solveDTO.
606e0789 Add MatDense::approx_rank1.
39b82d57 Add optional arguments to power_iteration: output buffer for copying the eigenvector and a boolean for random initialization.
ffbea0dc Fix issue #239 (butterfly C++ compiling error on MS VS).
0a1627c4 Update butterfly matfaust and pyfaust wrappers to handle the bbtree kind of factorization + documentation.
bb5d2640 Add C++ of balanced binary tree butterfly factorization + C++ tests.
ccbac495 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).
af9b2a87 Add template function helperCreateNumMxArray to refactor FaustVec2mxArray and FaustMat2mxArray.
3b4dbdd8 Disable pytorch-Faust class experimental code by default (new cmake option to enable/disable it un pyfaust).
7ce649e2 Fix two bugs in matfaust.susbref (getitem part) due to a past refactoring and since getitem (through slicing) optimization.
045c6878 Strengthen the matfaust.Faust constructor handling of different type (real/complex) and precision (single/double) of input factors.
fa22f1f4 Fix mex newMxGetData added in cd72e390.
43a48e29 Enforce index buffer types of matfaust BSR matrix cell to int32 (as in C++).
41911a16 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.
dc2132f0 Minor fix in matfaust.factparams.StoppingCriterion.display.
1a919b68 Add an help function to access mxArray data in FaustMat2mxArray when interleaved complex API (R2018a) is enabled (#3).
1d5cc280 Add matfaust PALM4MSA 2016/2020 unit tests.
bb39efc2 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.
57d08b13 Add alternative mex code compatible with R2018a interleaved complex API (#13).
f05149a4 Add MATLAB_2017_API CMake build option (disabled by default) to possibibly configure the API version used especially for complex matrices (#13).
7fe18e4d Add C++/Python/Matlab unit test for BSR Faust save in .mat file.
57f5a6cd 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.
572660a3 Minor change in matfaust.create_bsr.
c75d5706 Fix mex new_faust wrong size of created MatBSR browptr buffer.
905c8412 Fix typo on class type in MatDense::toMatIOVar (introduced by 6224728).
5b4d0c15 Add pyfaust.Faust.load to refactor .mat file Faust loading from ctor and handle BSR matrices.
c9b9ef49 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.
2b0fd98f Add a unit test for matfaust.create_bsr and matfaust.Faust(mat_bsr).
80efa41b Add a pyfaust unit test of a single factor BSR Faust.
340a3818 Integrate Rémi's review of create_bsr doc and complete the BSR input verifications.
6f1ded0e Complete the doc of pyfaust.Faust with BSR Faust examples.
3c847b85 Fix BSR data dimension sizes order in pyx Faust ctor.
108c5d75 Fix GPU2 mex error in BSR Faust creation.
d2f33478 Add the BSR matrix support to matfaust.
77cc63c1 Fix multiple errors in gemm_gen function which was modified recently to handle MatBSR A or B arguments.
d2ad6ca7 Update pyfaust.Faust ctor doc, primarily to mention bsr_matrix support.
063ab5a8 Authorize to define a pyfaust.Faust with COO sparse matrices (auto-converted to CSR matrices).
dbe44ab9 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.
fb24cd0d 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.
134546a2 Update the FAQ fifth entry.
d89f2cf2 Update credits section of the doc.
c709c035 Fix typo in FAQ.
03383b11 Add BSR pyfaust benchmark script to the doc to make them public.
8b656854 Add benchmark and plot scripts for BSR Fausts.
851750ce Add a pyfaust unit test for BSR Fausts.
f4471fcd Undo 0d3341fe experimental change of power_iteration.
4966213e 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.
1dd6fae3 Update Faust::Transform<FPP,Cpu>::multiply(const FPP* A,...) (multiply without operand copy) to be compatible with BSR Fausts.
a78b0576 Add BSRMat::apply_op to factorize adjoint and transpose methods.
90909b47 Update the pyfaust wrappers to allow scipy BSR matrices in Fausts.
5717763e Fix stack variable reference returned in MatBSR::operator(int,int).
a0231327 Fix multiple details in MatBSR and unit tests to allow non square BSRMatrix and non square nonzero blocks.
caf0a023 Fix MatBSR::containsNaN unit test and re-enable MatBSR::operator(int,int) unit test.
ffa51e14 Fix MatBSR::operator(int,int).
79065943 Add a new unit test for randBSRFaust and benchmark pure BSR Faust compared to pure Sparse/Dense Faust.
6af46c9f Fix BSRMat::to_sparse.
6c10a869 Update Faust::TransformHelper (CPU): new random generation randBSRFaust, update convertToDense/Sparse for BSR matrices and refactor getNBytes by using MatGeneric::getNBytes.
ec0b97bf Update gemm_gen to handle MatBSR too.
ce8e8d2a Add MatDense<FPP, Cpu>::update_dim.
7642d3c8 Add a first test of a Faust containing a MatBSR.
476e00ff Add MatBSR unit tests for get_cols, get_rows, containsNaN, operator(int,int) and to_sparse.
f20d12f8 Update MatBSR: new ctor, get_cols/rows signature fix (id type), new to_sparse function.
8377d375 Correct the constness of MatGeneric/MatDense/MatSparse/MatDiag::containsNaN and simplify their defs by using eigen hasNaN.
df26aea1 Add unit tests for MatBSR::transpose, conjugate, adjoint, getNonZeros, getNBytes, operator*=(FPP), get_col.
3370290f New member functions for MatBSR: getNBlocks, getNbBlockRow/Col, getNbBlocksPerDim + fix get_col.
9967376c 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).
4101985c Add unit tests for MatBSR (multiply(MatDense), multiply(MatSparse), faust_gemm).
cd0a40ad Implement MatBSR::faust_gemm and fix MatBSR::multiplyRight.
f72df61f Patch the PALM4MSA 2020 C++ implementation to correct the float 2-norm resulting in NaN by recomputing them exceptionally using double precision.
3c7f798d Fix MatBSR::multiply(Vect&, char) signature (no optional argument) and implement 'Vect MatBSR::multiply(Vect&) + its unit test.
d8721629 Fix MatBSR::transpose signature and MatBSR::Clone + Add unit tests for MatBSR 1-norm, Clone, multiply(Vect).
666c1fd4 Add the new matrix type MatBSR with its uncompleted test (test_MatBSR).
dd40bbea Fix issue #235. VS linking error: multiple TransformHelper::real symbols.
814c6776 Fix issue #234 about GPU2 MatDense and MatSparse constructor calls ambiguity in faust_TransformHelper_gpu.hpp.
0c971655 Minor change: exception message for forbidden use of pyfaut.Faust * operator.
710a013c 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.
69d6c949 Implement MatSparse<GPU2>::real, updating to gpu_mod@748e3c9.
6698f877 Rename ParamsHierarchicalSquareMat to ParamsHierarchicalWHT but keep the former available (as a deprecated class) in matfaust and pyfaust (issue #208).
f552d422 Fix issue #232, minor typo in ci job pkg_macos variable.
eec94ce7 Update hierarchical/palm4msa 2020 C++ test next to the new no_lambda parameter.
08b30e06 Add the no_lambda option to the C++ core and the python and matlab wrappers.
62512c63 Fix issue #231 in macOS pkg postinstall script.
556ca9bb Disable temporarily the linux pyfaust-torch package gen ci jobs.
01f64a78 Fix issue #230 in postinstall script for deb/rpm pkgs (wrongly set PY_MAJOR_MINOR_VER variable when using python 3.10).
ffc466c6 Fix issue #229. PY3_MINOR_VER wrongly set for python3.10.
36a30d45 Fix issue #228 (python3.10 pathlib install error).
740b3f69 Replace python 3.8 by 3.10 in ci jobs (3.9 still supported).
1a713d4e Fix openblas license embedded even if openblaso not enabled.
7da113fa Fix matlab wrapper env setup in faust NSI installer for Windows.
b7b5116a Embed OpenBLAS license into the pyfaust-openblaso package.
f2d09bc3 Add a ci job for testing pyfaust_openblaso whl package.
30dc0817 Embed/load also libgfortran for OpenBLAS-OpenMP because the version can differ from a system to another.
39401037 Add a new gitlab CI job to generate an OpenBLAS-OpenMP enabled pyfaust whl release package.
50683f58 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.
9b669436 Disable verbose mode of libomp loading.
14c096f7 Minor fix: update hierarchical calls in tests to follow (no_normalization) signature change.
cd5f4b29 Document the no_normalization PALM4MSA parameter in the FAQ.
af2bcc35 Update toch loading to run the install_name_tool only on macOS.
f4c371a3 Minor fix in enable_gpu_mod mex code to avoid a matlab error when cmake option USE_GPU_MOD is OFF.
5cfe7809 Add the new no_normalization option to matfaust.fact palm4msa and hierarchical (2020 backend only).
3d66a158 Add the new no_normalization option to pyfaust.fact palm4msa and hierarchical (2020 backend only).
13d9c9e5 Integrate the no_normalization parameter into 2020 C++ implementations of PAL4MSA and hierarchical algorithm.
0ad299d9 Add and handle the no_normalization parameter in PALM4MSA and hierarchical algorithm C++ parameter structures.
40761840 Add the normalizing attribute to the Constraint class hierarchy along with an associated setter.
29b693d1 Disable the egg python package generation in ci jobs.
654a2b18 Restrain artifacts downloading for all ci jobs of stage pkg (to avoid consuming to much space disk with useless artifacts of pkg_purepy stage).
e6d53cc1 Specify the package name to install with the os name in .test_unix_purepy_pkg ci job.
d0312f80 Update the FAQ entry about pyfaust/OpenMP/Mac OS X as the libomp is now embedded in the package itself.
3a6121da Set the proper stage (pkg_purepy) to the ci jobs pkg_purepy_release and children.
24c07438 Update embed_sys_libomp_into_pyfaust.txt by searching libomp in (DY)LD_LIBRARY_PATH if defined.
6532df9c Set the cmake target to embed libomp in the package as the default target.
7d36c31c Avoid building the the python wrapper shared lib again if it already exists (it must be asked explicitely)
c241f731 Add a cmake target to embed the libomp of the building system into the pyfaust package (in its lib directory).
4ac97547 Fix bug about saved float Faust loaded as a double Faust from file.
2b08e8e0 Optimize ci jobs for revision packages by building only one time the python wrapper for each OS and sharing the binary between packages.
1d215f9a Add unit tests runs for float Faust in pre-release tests ci jobs.
f0a64b4e Modify the pypi_pub ci job to ublish the pyfaust_torch package on pypi.
6743b130 Temporarily limit the gitlab-runners capable to build py torch pkg for linux to this ci job only.
8e92d2b3 Fix no version number in macos pyfaust-torch and revision python whl package.
392181e9 Fix the bug of issue #141 (libtorch/openmp loading).
3ba758cb Pass also to clang the ci jobs pkg_linux_purepy_release*.
baf9fc10 Add a ci tag to limit the pyfaust torch whl package generation to specific gitlab runners.
f048a9be Fix linux clang issue about not resolved openmp symbol (issue #215).
1c5cf78f Update to gpu_mod@b98b78f and fix specialization after instantiation error in faust_Transform_gpu.cpp.in.
895940ea Re-enable gitlab pages and pypi pub ci jobs.
9590ef7d Optimize Faust item access for matfaust and pyfaust.
bb295ff8 Temporarily disable pypi pub. and gitlab-pages jobs.
f42927b0 Fix issue #225 by using python3 in the shebang instead of python in faust_data_downloader.py (pyfaust.datadl).
37d7727a Review/Update the GPU pyfaust jupyter notebook.
a3c189bc Add cmake option DISABLE_ALGO_PYX to speedup the python wrappers building if no need of algorithms (just Faust class).
5884d087 Update/Review MHTP algorithms jupyter notebook.
9efc183e Update cmake script to link torch libs to faust_torch test automatically.
7528836a Update/Review the jupyter notebook 'Using FAuST in Algorithms'.
34d00676 Update/Review Faust projectors jupyter notebook.
cc820941 Update/Review Faust factorizations jupyter notebook.
26dfb7d1 Update/Review Faust optimizations jupyter notebook.
6065c635 Update/Review Faust manipulation jupyter notebook.
be427ab9 Fix issue #224 by choosing explicitely the R2017b API to build the mex tools code.
eca6b81d Review/Update Faust creation jupyter notebook.
97a761b2 Update FAQ entries about CUDA to take into account CUDA 11 (in addition to CUDA 9).
75252595 Switch default enable_gpu_mod to silent mode.
97e60989 Extend pyfaust.Faust.astype to support Faust conversion from/to float32 dtype.
f6e20a69 Update pyfaust.Faust.concatenate for dtype consistency.
ffc0d012 Update pyfaust.Faust ctor to handle missing Faust creation by float array list on GPU and secure Faust dtype consistency.
a2d748ee 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.
f52a2030 Update matfaust.Faust ctor to auto-convert factors passed as arguments for type precision consistency (all factors must be of the same matlab class).
3efd830c Hide matfaust.poly.calc_coeffs from doxygen doc as it's a private utility function.
39b8946e Add a note in matfaust.Faust.factors about the fact that float sparse matrices are not supported by Matlab.
5a9d3f64 Add a warning in matfaust.rand raised when a user tries to create a complex Faust in single precision (not yet supported, cf. #223).
3cc14b1e 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).
95ac184a Update matfaust.Faust.
26fa14ce Fix wrongly allocated nonzero array in transformFact2SparseMxArray.
11ea5eb8 Add code doc for dev (gpu) param of matfaust.dft.
ec598fd6 Update matfaust.eye to support CPU and GPU float type.
aa9f822f Update matfaust.wht to support CPU and GPU float type.
ce811c09 Update mexHierarchical2020_gpu2.cpp.in to support GPU float in matfaust 2020 hierarchical.
7c21e3b2 Add support of GPU float type to matfaust.fact.palm4msa.
b3ee387b Update Faust.complex to support GPU float Faust.
06b7e435 Fix typo in matfaust.Faust.call_mex in mexFaustGPURealFloat call.
ba101df2 Fix dtype argument parsing of matfaust.rand.
b0346a91 Update matfaust.enable_gpu_mod function to manage multiple versions of gpu_mod (for cuda9.2 and cuda11.4).
834a8397 Update to gpu_mod@96cd28f.
e846f7f9 Support float scalar type for matfaust.poly.* functions.
c2395cb4 Add Faust.class method.
41684013 Support float scalar type for matfaust.proj.* functions.
4c9a700b Support float scalar type for matfaust.fact.palm4msa (2016 and 2020 backends), eigtj, svdtj and butterfly.
d634ebf9 Fix mexsvdtj (template) compiling error (issue #217).
77e4d815 Support the float scalar type for matfaust.Faust constructor, matfaust.rand and matfaust.fact.hiearchical (2016 and 2020 backends).
1881b0fd Fix pypi classifier error: CUDA 11.4 is not classified on pypi (so put only CUDA 9.2 in classifier list)
67d61711 Add a default library symlink to the gpu_mod library that support the most recent version of CUDA.
32aaa98d Re-enable release package hosting on pypi and gitlab.
969a2e27 Use high level function _is_gpu_mod_enable() instead of checking the library handle is NULL (in pyx code).
f4066405 Fix nullptr handle of gpu_mod library used for loading.
480675da Patch pkg_win_release ci job to force using VS 2015 to build the python wrapper.
f67bd418 build gpu_mod for pkg_linux_release_static ci job too.
520ad713 Secure libomp copying / erasing for macos ci jobs (avoiding losing macports version as it happenned sometimes).
56fb88e3 Generate cuda 9.2 and 11.4 gpu_mod libraries for the linux release purepy packages too.
36f4271d Temporarily disable release package hosting on pypi or gitlab.
41784d08 Update to gpu_mod@8558039
4b6670d5 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.
87eedbd0 Fix erroneous gpu_mod library names in CMake script, setup.py and cython pyx code.
8c290f02 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
6dc021f3 Update ci jobs specifying which cuda toolkit to use for the build on Windows.
311b6cbb Update faust.nsi (win installer) to install cuda9.2 and cuda11.4 version of gpu_mod.
50731fd4 Integrate cuda (11.4, 9.2) multi-support in pyfaust/gpu_mod.
dbecefbf Use clang to build the pyfaust wrapper on Linux instead of gcc.
e2b02c6e Fix in PALM4MSA 2020 1) the float MEG factorization warning/error 2) NaN in the numerator and denominator of lambda.
b7943413 Allow to normalize a MatDense through another norm than Frobenius + add MatDense::nonzerosToOnes function.
28e85449 Minor fix in lambda isnan check.
78f27a65 Add support of float32 dtype for projectors (of pyfaust.proj) and review the doc.
507a35c0 Document pyfaust fact and poly functions about the dtype that can be float32 or double/float64.
f276b5a0 Fix dtype error in pyx code of polyCoeffs and polyGroupCoeffs.
7b1fa8a3 Add containsNaN functions in MatGeneric<Cpu> and subclasses.
9137b947 Connect the pyfaust wrapper functions svdtj, eigtj, poly.*, hierarchical/palm4msa 2016, to their float pyx code.
104426cb 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).
4ac31915 Update to gpu_mod@56a78ab.
8197677f Support float/double alternative for GPU pyfaust.rand.
c004615b Fix GPU gemm in case where C is not initialized.
0b7e3cde Temporarily disable ctest ci job.
f817ec99 Fix uninitialized (to nullptr) gp_funcs_ pointer leading to partial failure of gpu_mod library loading of functions.
e0b0f6b0 Temporarily use py3.8 linux rev pkg and disable pkg_linux ctest_matlab/python jobs
2f6ba091 Temporarily isable silent flag of enable_gpu_mod call in pyx.
45084e8e Fix compiling issue #214 on Windows VS.
a6fb389b Enable BUILD_FLOAT_PYX in pkg building jobs.
38505f3d Add to pyfaust the support of float on GPU (not tested yet).
347fe2b2 Minor change 2.4 FAQ entry.
b9158234 Adjust test_prod_opt/testProdOpt for pyfaust/matfaust because FaustMulMode.GREEDY constant has been deleted (the method is hidden).
dc591a4c Fix issue #213 (compilation error on Windows).
26ac24e2 Make float precision available to pyfaust algorithm wrappers but only on CPU.
2487f12d Update the faust_SVDTJ module for genericity.
8416d06a Add CUDA entries in the FAQ and reformat the document.
abd34faa Cast properly lambda/beta scalar argument in gemm calls to avoid non-consistent/non-defined calls mixing float and double types.
9d0fe010 Change the default template type parameter from float to Real<FPP> (more consistent).
b292ba9b Add advice to close Matlab before installing on Windows.
519f9ae1 Mention Inria RH in license.txt.
c5a337d9 Update install doc and add a faq entry.
119a5745 Enhance NSIS installer by using py launcher instead of python.
3c93d941 Make float precision available for pyfaust.Faust.wht, eye and rand.
512aef61 Update MatGeneric::get_scalar_type_str to be more precise than 'real' specifying 'float' or 'double'.
493daf5b Add support to float in pyfaust.Faust wrapper (not algorithm) and the cmake option to enable it at build time (not enabled by default).
cb2d2247 Fix in NSIS installer the expfiltered directory present in matlab folder after install.
3c2cf22c Remove old mention to python 2.7 in install guides (general part and windows specific part).
ff5d1d33 Update NSIS installer: try to uninstall previously installed Faust before installing the current version.
bc4011c6 Fix Debian package name delivered matio static library.
a122f024 Add version footer in the new notebook and live script.
0f7fd0a0 Add 'Faust optimizations' jupyter notebook and matlab live script and integrate them in the doxydoc and zip archives.
21f8311e Update MacOS X VM setup script.
8a9117ae Minor change in matfaust.Faust.optimize_time (preventing mat output).
cd034376 Minor changes in pyfaust code doc formatting.
97fb1c3f Minor fix: rename FAµST to FAuST in some strings to avoid issues on windows (utf-8 error).
4b6f8c08 Add hidden options (through environment variables) in PALM4MSA 2020 (no_lambda_error, use_grad1).
92349594 Minor change in backend argument documentation of palm4msa and hierarchical.
881d32d0 Handle complexity of sparse products in DYNPROG method (removing from wrapper now almost always slower GREEDY method and disabling it in optimize_time).
89264855 Optimize C++ Transform::get_product (DEFAULT_L2R meth) and TransformHelper::get_product (for other methods).
38a28294 Fix dtype constraint in Faust.optimize_time constraint (F.dtype == M or S.dtype) and adjust the doc for matfaust and pyfaust.
a3c8870d Minor change in the MEG factorization C++ test (changing a preprocessor directive).
cf7ed28c 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).
4f9dd278 Update the DYNPROG meth C++ code to compute the product cost taking the sparse format into account.
70a6cf45 Fix and optimize C++ optimize_storage.
c7b66531 Replace deprecated time.clock (removed in python 3.8) by time.process_time in pyfaust.demo.
b39bab2c Re-enable pages and pypi_pub job.
feaa2e5f Adjusting the pyfaust code doc to the new version of doxypypy.
bbaee093 Replace switch from py3.7 to 3.8 for python wheel package (on macOS, Linux and Windows).
6f94fd66 Fix missing bracket (when FAUST_TORCH is on).
7eba59ef Update faust data archive URL.
ae950dd7 Print name instead of id for the best method chosen by optimize_time (C++).
51dc99fb Add matfaust unit tests of DYNPROG and GREEDY Faust product optimization methods and also for Faust.optimize_time.
af6ebe0d Add python unit tests of DYNPROG and GREEDY Faust product optimization methods and also for Faust.optimize_time.
7feb16e9 Fix dynprog_multiply to handle the single factor Faust case.
28056aee Add the mat argument to matfaust.Faust.optimize_time as c95a253c did for pyfaust.
b3b9fede Add a mat argument to pyfaust.Faust.optimize_time in order to run the benchmark on F@mat instead of F.toarray().
c75d035d Enable most of the Faust product optimization methods to Faust-MatSparse multiplication as it was already for Faust-MatDense multiplication.
319ca901 Minor fix in faust_torch: raise an exception if a MatGeneric to multiply is neither a MatSparse or MatDense.
f81d4dd3 Delete get_Fv_mul_mode method and make related changes since 430188 disabled the Faust-vector mul alternative methods.
33aff8f5 Clarify FaustMulModeOpt Torch based methods and update their names and doc.
e5364104 Disable experimental GREEDY* methods in Faust optimize_time, keeping only GREEDY_ALL_BEST_GENMAT.
c438210d Rename enum constants of prod_opt_ module.
69ec731f Remove functions (C++, py/matfaust) related to Faust-vector product optimizations.
5b602719 Fix missing version in pyfaust whl package for MacOS X. This bug was introduced by fce9ece8.
fc805db3 Fix a bug in optimize_time/multiply; the faust-vector mul was overridding the Faust.toarray() test.
2c4c4311 Fix compiling issue of Faust::gemm_gen on Windows MSVC (issue #211).
64e024dc Update/extend faust_prod_opt module and its use; mostly adding the DYNPROG method.
bc6cdd85 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).
d645e691 Fix MSVC min/max macro confusing with STL numeric_limits::max (issue #210) in faust_linear_operator target.
6fdf1f7c Implement GPU MatDense::real() and add a unit test for it.
52c1efae Implement Faust::TransformHelper::real on CPU and bind it into the pyfaust.Faust.astype (issue #183).
1dfdfdf0 Add MatSparse::real(MatSparse&) and MatDense::real(MatDense&) functions.
0408aa1a Handle easily the excluding of faust_torch.cpp from cpp files to compile.
7a445c97 Update pkg_macos_purepy ci jobs to force using the MacPorts clang 8 instead of Apple clang 6 installed on the VMs.
586402f2 Fix cmake script to add Torch to includes of faust_linear_algebra target + reformat faust_torch.cpp and fix missing namespace.
c1b294a6 Fix ignoring faust_torch.cpp on setup.py for Windows. (when FAUST_TORCH is OFF).
c10ecc46 Fix MatSparse::get_cols, the column indices might be repeated through the list (it wasn't taken into account).
60246b8b Complete the matfaust.Faust.cat unit test for the concatenation of an arbitrary number of Fausts, arrays.
12ee8fa5 Fix multiple definitions of faust_torch module.
ebce23d6 Minor fix in pyfaust.Faust.concatenate and and a new unit test for the concatenation of arbitrary number of Fausts, arrays.
f4351f2b Minor fixes and simplifications in Faust::Transform::norm* and MatDense::normL1.
33969a03 Change the default config of batch_size and full_array in matfaust/pyfaust.Faust.norm and update the doc consequently.
d1d87775 Document the new full_array and batch_size arguments of the pyfaust/matfaust Faust.norm function.
902eaae7 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.
3e7f60c1 Add Faust C++ is_all_sparse/dense and pyfaust matfaust bindings issparse isdense.
cfcdc93f Bind new arguments full_array and batch_size into matfaust.Faust.norm wrapper function.
430d889e Update the pyfaust wrapper to bind the Frobenius and Inf norms full_array and batch_size arguments.
f3a74f33 Add norm computation without full array for Inf-norm and Fro-norm.
8beb1ed1 Add new get_rows function overloads (refactoring others) in MatDense and normInf in MatDense and MatSparse.
327efe40 Check index of rows/cols in MatDense get_rows, get_cols functions.
5c045c5a Implement (in C++) a batch_size argument to compute the 1-norm of a Faust and bind it into the pyfaust wrapper.
ce83d746 Optimize MatSparse::get_cols()/get_rows() by removing the MatDense conversion and writing pure MatSparse operations.
c9b910ca 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()).
e41fdef0 Add an overload of MatSparse::get_col and refactor the other.
11658a8b Review header documentation of pyfaust/matfaust.Faust class.
aa258e63 Update to gpu_mod@746033d.
dbeaadb9 Fix a bug in pyfaust.Faust.astype, the device must be preserved when the Faust is type converted.
ee6c839d Update to gpu_mod@23ea61a.
45d918d5 Update to gpu_mod@ba21999.
b3c901e0 Update the developer oriented README for the python wrapper next to the major reorganizing/refactoring of code in previous commits.
cb83a488 Minor fix in pyfaust.tests sub-package.
f49a6a79 Refactor/rewrite the python wrapper (pyx, pxd, C++, cmake script) to make as generic as possible the CPU and GPU code parts.
d57ff957 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).
15e0c4e6 Add a FaustAlgoGen pyx class to enhance the genericity of the python wrappers (no code duplicates for complex and double).
ab72ce31 Fix slowness of PALM4MSA 2020 on Hadamard factorization compared to 2.5.46.
34ae006b 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).
453683e4 Add a module faust_linear_algebra with gemm and gemv (as in CPU equivalent module) relying on MatDense<GPU2> (now static) eponym methods.
f633a9a8 Use gemm_gen in palm4msa 2020 for computing the gradient.
f0eb6229 Add a new signature of multiply_order_opt_all_ends to work on MatGeneric.
ee44fc8b Add new signature of spgemm and gemm_gen functions to faust_linear_algebra.
6c160c5b Fix a segfault in PALM4MSA2020 when packing_RL == false.
82b65a0c Reduce noise in TransformHelper<FPP,Cpu>::set_FM_mul_mode where silent argument default value changed from false to true.
f1cce588 Add an example to hierarchical for the DFT factorization with matfaust or pyfaust.
9798d444 Add two unit tests for matfaust and pyfaust DFT factorization (factparams.ParamsHierarchicalDFT).
b8350fce Add unit tests for matfaust.fact.palm4msa/hierarchical_mhtp.
17047077 Add a unit test for pyfaust.fact.hierarchical_mhtp.
caff9e8e Add a bash script to count C/C++, Python and Matlab lines of code (useful for APP deposit).
500889df Add a unit test for pyfaust.fact.palm4msa_mhtp.
396f41ee Add matfaust.factparams.ParamsHierarchicalDFT simplified parameter structure to factorize a DFT matrix with matfaust.fact.hierarchical.
76cf1517 Add pyfaust.factparams.ParamsHierarchicalDFT simplified parameter structure.
5f62b8db Minor changes in pyfaust.tools.omp.
449afc4e Remove experimental flag on pyfaust/matfaust.fact.butterfly.
0b84d70b Add support of complex matrices in matfaust for the 2020 versions of PALM4MSA and hierarchical algorithm (CPU & GPU).
72efe2ae Force the factor_format to 'dense' for palm4msa/hierarchical 2020 when the matrix is complex.
6a918fc2 Fix GPU python wrapper of hierarchical2020 compilation error (issue #207).
8038559a Optimize update_lambda computing in C++ PALM4MSA 2020 by decreasing the number of matrix products needed to compute S full array.
f02508e5 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).
48b7a96c Minor changes in lambda and init_facts scalar type checking and conversion in palm4msa2020 and hierarchical2020 cython code.
f1890e07 Minor fix: calling the wrong wrapper of pALM4MSA if the numpy array is complex (2016 instead of 2020).
3680b4f0 Add support of complex matrices to hierarchical PALM4MSA 2020 (python wrapper and C++ core).
4fd095c9 Add support of complex matrices to PALM4MSA 2020 (python wrapper and C++ core).
c3097081 Minor change in GPU pyx code (remove unused dtype-s).
527bb189 Remove now useless entry about the float128 undefined numpy dtype on Windows VS env (because it was fixed in 3.2.14).
e7b8188d Minor change in the FAQ.
0c8c7595 Fix possible linking error in python shared library path to OpenMP library on macOS by editing it manually.
67009d6d Fix 2 minor bugs in complex part of the wrapper pyx code of hierarchical (2016).
e239f16a Add an entry in the FAQ (PALM4MSA failing on Windows when running on a complex matrix).
501d1e25 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.
4c6a5bab Fix a nullptr error in C++ MHTP module (due to 60524e31 update).
8b1edf2f Modify the butterfly C++ to handle a matrix size program argument + keep using JacobiSVD (instead of BDCSVD) on Windows VS.
e057b18d Add fno-wrapv opion (disabling fwrapv opt. option) because it slows down the butterfly factorization.
36135ea4 Use BDCSVD instead of JacobiSVD in MatDense::best_low_rank() (the former is faster than the latter on large matrices).
0305a54a Optimize the butterfly C++ module. Pre-compute the supports for all the factorization to avoid computing twice the same product.
ac240786 Add unit tests for pyfaust and matfaust butterfly function.
dafc37f4 Document matfaust.fact.butterfly and add dir='left'|'right' argument.
9aab054f Document pyfaust.fact.butterfly and add dir='left'|'right' argument.
2aa7646d Support the factorization direction parameter for the C++ impl. of butterfly hierarchical factorization.
abc3c898 Add pyfaust.__version__ in addition to pyfaust.version() (more standard).
42ea80a6 Update "Using the FAµST API in Algorithms" notebook with pyfaust version footer.
4a71c271 Fix an error in the optimized version of the C++ Faust by vector multiplication, in case the Faust is transposed.
251eaefb Slightly update of several pyfaust jupyter notebooks.
a36d45de Add matio static RPM/DEB packages to the download page.
155f61a4 Ignore python2.7 in linux RPM/DEB post-install script (py2.7 is not longer supported).
866be969 Make more consistent the way the failed symlinks are counted in the RPM/DEB post-install script for pyfaust.
68287239 Upload also the static version of the RPM/DEB packages to gitlab-pages.
67339c3c Update test_linux_pkg_release to test also the static version of the RPM package.
c6fef1aa Replace the use of Faust * by @ in (not all) tests (issue #161).
d3786ef2 Re-enable the Faust.power_iteration function on complex Fausts in matfaust and pyfaust.
443f30f9 Add wrapper matfaust.power_iteration and update pyfaust.power_iteration to be consistent.
16a9f256 Update the pyfaust.Faust power_iteration wrapper and make it public (both for CPU and GPU).
199e614a Add GPU TransformHelper::power_iteration support.
8e50a9b6 Fix a bug on normed parameter of matfaust.wht and dft and complete their unit tests.
7496f047 Remove complex scalar test in hierarchical butterly C++ test (because only hadamard factorization is tested).
e15bd554 Update the C++ butterfly module to add the bit reversal permutation when the matrix to factorize is complex (a DFT matrix).
aae84ecb Add matfaust wrapper to C++ Faust::butterfly_hierarchical (for experimental pkg).
5033b632 Adjust Faust::MatDense::submatrix for windows VS 14 which doesn't succeed to compile eigen3.4rc1 (slicing support).
6d1d850d Add pyfaust wrapper to C++ Faust::butterfly_hierarchical (for experimental pkg).
faf7d81b Complete and clean the solve_DTO function (butterfly module).
71463a96 Fix (issue #205) inability to compile faust_butterfly C++ module when BUILD_MUTLITHREADING is OFF.
dd6cb0b8 Fix issue #204 (compiling with complex<float>).
92d6bfe7 Add a C++ test for the butterfly hierarchical factorization (Hadamard factorization).
208d31f0 Add the butterfly factorization C++ module.
f2b765b5 Add member functions to MatDense: setNZtoOne, set_row_coeffs, set_col_coeffs, kron(ecker).
3d3d8d8d Add member functions to MatDense: eq_cols, eq_rows, sum_col, sum_row, best_low_rank, row_nonzero_inds, col_nonzero_inds, submatrix.
8a6d658d Update notebook/livescript (use_csr parameter replaced by factor_format).
7ebdc735 Fix ctest on MEG matrices factorization, the reference lambda value had to be changed because of different default parameters of the 2-norm.
6de2507d Fix unit test on TransformHelper::pack_factors by deleting useless overload of this function in TransformHelperGen.
69267e7f Fix bug on unit test of MatSparse::vstack which was due to MatSparse::randMat() failure when FPP==float.
b1e8b1bf Update C++ tests since use_csr has been replace to factor_format.
e555f004 Fix inconsistent C++ decl. issue #203.
f8001b28 Add static member function pyfaust.factparams.ParamsFact.factor_format_int2str.
91ca664c Update matfaust and mex wrappers (of factorization algorithm) to support the new factor_format parameter (replacing old use_csr).
a9d2e69a In PALM4MSA 2020 impl. if custom factors are defined at initialization, convert them to the configured FactorFormat (AllSparse, AllDense).
24f47cae Replace obsolete use_csr by factor_format in pyfaust test python scripts.
d0d2276c Replace the use_csr (boolean) parameter by the new factor_format (:='dense'|'sparse'|'dynamic') parameter everywhere it applies in the pyfaust package.
2ed2239c Update PALM4MSA 2020 impl. to allow dynamic output format in proximal operator.
dd03ef10 Try to fix issue #202 by using python os.system call instead of batch start/call.
778e6305 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).
581b43d8 Disable test_win_pkg_release because the call (or start) command blocks the job indefinitely. Renable the pypi_pub job.
3476db61 Adjust start use in test_win_pkg_release job.
c52f8f8a Add a test of the NSIS Windows installer.
79772305 Build an uninstaller for the windows NSIS installer.
cb0dd1a6 Add missing dynamic output CPU proxs (output: MatDense/MatSparse as MatGeneric). Update dynamic sp prox test.
eaa33a76 Set a default choice for MessageBox of NSIS installer when running in silent mode (non-interactive mode).
d45d6790 Update faust.nsi (NSIS installer script): don't edit matlabrc/startup.m if already configured for matfaust.
07f0e604 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).
6870d187 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).
556e2b14 Hide pyfaust.tests package from doxygen API doc.
8a216bfb Update linux deb/rpm package matlab post-install script as already done for macos (by 37d9452b).
6d113fc6 Add a ci job to test the RPM FAµST package before uploading to gitlab-pages.
a6c55cc9 Fix include of deleted faust_gpu_mod.h cpp header in several tests.
a615e759 Add unit tests for pyfaust.poly.poly and pyfaust.poly.expm_multiply.
516f4c5f Simplify the code and fix a crash in TransformHelperPoly<FPP>::polyFaust(const FPP* coeffs).
cba4ca2a Fix typo in postinst_matlab.sh.in.
fbc4d50b Change packages order (in sys alphabetical order), limit sha256sum output to the hash.
b335e959 Fix issue #201 (missing pyfaust.tests content).
da2798f3 Add a script to generate a package download page and call it in ci gitlab-pages job.
826e3af8 Modify macos pkg postinstall script: in matlab startup test that mexFaustReal is present to decide modifying the path (instead of matfaust.version).
63de996a Re-enable pypi_pub ci job.
4fdb9329 Add a unit test for pyfaust.poly.basis used with a arbitrary T0.
ee16d72f Fix bugs in TransformHelperPoly occurring when the lazy instantiation is used and T0 is arbitary (false information were displayed).
73e77c40 Add TestPoly and inside a unit test for pyfaut.poly.basis.
3f425f25 Upload packages on gitlab-pages (disabling pkg_upload job).
29e99c0c Refactor the pyfaust.tests module in a modular package in order to properly receive more tests.
872dd655 Add a CI job to upload the release packages (except the whl/pip packages).
b27d83d0 Fix issue #200 (python wrapper compilation error for macOS clang).
9e4f3e16 Make possible to use ParamsPalm4MSA.init_facts for the 2020 implementation of matfaust.
0c1d3ecd Update step-by-step_palm4msa.py since it's now possible for the PALM4MSA 2020 impl. to use ParamPalm4MSA.init_facts (f78c96a3).
8c26b422 Make possible to use ParamsPalm4MSA.init_facts for the 2020 implementation of PALM4MSA (of pyfaust).
9c2d92fd Remove experimental status of MHTP functions and structures (pyfaust/matfaust).
91b201e0 Fix MacOSX/Linux linking error with the function (in py wrapper) convPyxMHTPParams2FaustMHTPParams.
319ff6ef Add links to the MHTP tutorials in the doxygen main page + review of the doc (slight modifs).
0cf473a5 Add the pre-rendered HTML version of the MHTP live script.
a0d7c62e Add missing gpu argument in API doc for matfaust.fact.hierarchical.
291cb634 Add a FAQ entry about running PALM4MSA in step-by-step mode with pyfaust.
f7d8e360 Add a step-by-step PALM4MSA test python script.
51b2857d Ensure in the python wrapper that the initial factors sent to PALM4MSA (2016) are in column major order or fail.
32d8a384 Add the live script about the MHTP algorithm.
94f78ac0 Add a notebook about the new MHTP algorithm/functions and a HTML pre-renrendered version.
2c715435 Update the MHTPParams.__repr__ function (displaying all attributes).
3645ab9d Fix C++ mex/tests occurred because of function signature chnage since new MHTP.
f772b58b Add matfaust.fact.hierarchical_mhtp (mex, matlab function and API doc).
dd50067a Update Palm4MSA (2016 C++ impl.): adding functions get_RE() (relative error), and print_state().
650e45b3 Add matfaust.fact.palm4msa_mhtp (with underlying mex code and API doc).
606b2d82 Add matfaust.factparams.MHTPParams.
a5704842 Add pyfaust.fact.hierarchical_mhtp with its pyx and C++ code + Python doc.
bf96b5bf 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.
56394136 Add pyfaust.fact.palm4msa_mhtp (as experimental code), document this function and pyfaust.factparams.MHTPParams.
53a9aa39 Update/Refactor MHTP algorithm in its own module.
7900acf5 Update MHTPParams: refactoring the ctor in .hpp (initializing all the attributes), adding a to_string member function.
85c899cf Enable constant_step_size and step_size attributes of MHTPParams in PALM4MSA2020 (C++ code).
1caf5116 Add a MHTPParams structure both in pyfaust and C++ core (for all the MHTP algorithm parameters).
cf8e489d Implement MHTP in C++, accessible from pyfaust.
68a39325 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).
6ce2ec4b Fix issue #197 (windows compilation error introduced by c5496442).
62709c51 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.
299bda95 Refactor pip requirements list into cmake script and add auto-install commands in Windows NSIS installer.
a6bbb72f 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).
1c327a9c Minor changes in matfaust/pyfaust.poly code doc (dev argument) and useless 'if branch' (in pyfaust expm_multiply).
d16907ee Add the pre-rendered version of matfaust.poly live script, update the doc links and few things in pyfaust.poly notebook.
c75d1b94 Fix Windows NSIS installer: ignore the stage of install into python environment if python wasn't found.
f25e4952 Add matfaust.poly.FaustPoly to uniformize the API (with pyfaust) and cleanup matfaust.Faust of matfaust.poly related methods.
edf70bd3 Update to gpu_mod@9936424.
28c5bd58 Add a FAQ entry about matlab path update issue.
9b306b6c 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.
961cc7fd Update GPUModHandler::get_singleton: switch silent argument default value from false to true to avoid flooding matlab with warning messages.
99aaaa04 Minor corrections in code doc (python and c++).
512d5774 Add matfaust.poly livescript and update pyfaust.poly jupyter notebook.
c5de45d5 Display the poly jupyter notebook in the doxydoc main page and integrate it the notebook zip archive.
51c997e8 Update the pyfaust.poly jupyter notebook and add the HTML pre-renredered version.
1fc4ddf2 Remove the experimental status of matfaust/pyfaust.poly module (except for invm_multiply that is still a wip regarding the performance / numpy-scipy).
9a457174 Add pyfaust.poly jupyter notebook.
1285bb3d Mark poly modules as beta in pyfaust/matfaust doc.
bb4e6e03 Limit calls to astype in check_matrix/pyx code (to decrease the number of copies).
7bf2bee2 update setup.py by being explicit on the minimum numpy version needed to avoid ABI incompatibilities.
a1f56309 Add tradeoff argument to expm_multiply and invm_multiply both in matfaust and pyfaust.
abd3aed0 Optimize pyfaust expm_multiply by using the new out argument of poly.
b106c986 Optimize pyfaust/matfaust.poly.expm_multiply: avoid recomputing T*B for each tau.
17061642 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).
6c4a344e Enable GPU in matfaust.poly/invm_multiply/expm_multiply and pyfaust.poly.invm_multiply/expm_multiply.
f8f26bee Enable matfaust.basis native GPU impl (argument dev).
c07ea42f Fix issue #196: Windows VS error on Faust::MatDense<FPP,GPU2>::MatDense multiple conversions of instantiations in Faust::TransformHelperPoly (error C2666)
c260d23f Fix issue #193 (Windows VS bug on OMP TransformHelperPoly).
0d914533 Fix issue #195 and factorize the two overloads of TransformHelperPoly::multiplyPoly_gpu.
f2503ac4 Implement GPU version of multiplyPoly -- F*X and linear combination at the same time with X a vector or a matrix.
abb3686c Update Faust::poly C++ function to be able to compute the polynomial linear combination on GPU and enable it in pyfaust.poly.poly.
bf7cf6c1 Implement the GPU version of the TransformHelperPoly Faust-matrix polynomial specialized multiplication.
324fa67f Implement MatSparse<GPU2>::multiply(MatDense<GPU2>), Matdense<GPU2>::multiplyLeft(MatSparse<GPU2>).
196d0707 Enable the C++ GPU implementation of the FaustPoly multiplication into the pyfaust.poly module (basis function).
0c034cbe Implement the TransformHelperPoly Faust-vector polynomial specialized multiplication on GPU.
cd61c0db Implement c++ Vect<FPP, GPU2>::multiplyLeft(MatSparse<FPP, GPU2>).
f8e8eb29 Update to gpu_mod@8260c08.
99a7a152 Add matfaust.poly.expm_multiply with its documentation and other related minor changes.
c8881458 Add matfaust.poly.invm_multiply.
e5f22b9f Add the wrapper to multiplyPoly into matfaust.poly as done in 4fb300c1 for pyfaust.
27e97ad9 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).
407e2d83 Overload of slice in TransformHelperPoly.
56dbf3ea Optimize TransformHelperPoly::multiply(MatSparse) (Faust factor not created to compute the multiplication).
d8bdcab1 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).
1758a35b Refactor MatGeneric/MatDense/MatDiag/MatSparse to_string function with new static function and get_scalar_type_str.
2a5720b6 Fix a minor bug in Faust::TransformHelperPoly: in case of NOT lazy instantiation the is_fact_created vector wasn't initialized before use.
b7af8bf8 Switch to a simpler (eigen standard) but maybe less efficient version of MatSparse::vstack.
1fcbc9c5 Modify pyfaust.poly.expm_multiply to pass directly the time points as a list instead of a np.linspace style arguments.
df168463 Minor fixes in pyfaust.poly.expm_multiply (among what: default time point is a negative value).
089101c4 Add Faust::TransformHelper::power_iteration and a pyx wrapper to it (not yet added in pyfaust itself).
d6234a70 Refactor to make TransformHelperPoly::next() and T0 arbitrary polynomial matrix consistent to lazy instantiation of factors.
98d73d27 Override the most part of the TransformHelper(Gen) member functions in TransformHelperPoly to implement a proper lazy instantiation.
79c44268 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).
2f561b62 Remove use of deleted light/partial GPU impl. in 2020 PALM4MSA and hierarchical algorithms.
977d2a82 Add pyfaust.poly.invm_multiply and its doc.
9cf8cbf7 Add pyfaust.poly.expm_multiply and its doc.
4df87674 Minor fix of pyfaust.poly pyx (wrapper) code in case that basisX.ndim == 1.
610de11b Remove the light GPU implementation (aka FaustGPU) as it was an experimental implementation based on gpu_mod (while GPU2 is the full implementation).
b2a42ce5 Minor changes and fix in pyfaust.poly and C++ backend.
b0cbfdda 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
7953d741 Fix windows compiling issue #191 (mexPoly.cpp.in).
6deaf83e Fix windows compiling issue #190.
31c5ebbd Fix GPU2 missing multiply signature (issue #189).
8d5269a8 Optimize C++ Faust*Dense-matrix especially for pyfaust.
6abda28b Optimize TransformHelperPoly<FPP>::multiply(MatDense) avoiding 3 copies per iteration/column (using Eigen Map -- views)
c607c0c4 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).
03e2c9c8 Add matfaust.poly.next with its mex code (wrapper to Faust::TransformHelperPoly::next()).
823f63ab 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.
453c4099 Add matfaust.poly.poly wrapper, update basis wrapper and add documentation for the both of them.
35960f49 Update pyfaust.poly doc, fix a minor bug in pyfaust.poly.basis (occurring when basis is a str) and verify that L is square.
225dcc81 Add chebyshevBasis matlab mex wrapper.
b5800ab3 Update MatSparse copy functions.
472d46aa Update TransformHelperPoly functions.
1e928020 Implement T0 arg for native impl. of pyfaust.poly.Chebyshev.
db62c243 Take into account pyfaust.poly in the doc filtering process (symbols excluded, namespace filtering).
ea64fcb1 Update pyfaust.poly doc, add examples and fix minor details in API/code.
a0c91a4e Minor change in Faust::TransformHelperPoly::polyFaust (variable name).
6f27de7b Use memcpy directly instead of eigen in MatSparse copy ctor and assignment operator= overload.
c58b4085 Update basisChebyshev and co. (don't skip the degree-0 polynomial anymore and modify all related functions in consequence).
3e79d1b2 Modify ci job test for windows whl pyfaust pkg (no need to specify the version when the virtual env. is already loaded).
4c8ff061 Optimize again TransformHelperPoly::multiply() (by vector) and basisChebyshev.
a6b6ad97 Add MatSparse::conservativeResize() and fix a bug in vstack.
23bfd5a8 Fix a bug introduced by 0ac2f190 which happens when X (in F*X) has more than one column.
18fcab40 Update to gpu_mod@2097f63.
dfa55be8 Remove old GPU implementation (replaced by external gpu_mod project/shared lib and GPU2 binding implementation).
a6bd57e1 Implement generator mechanism for Faust::TransformHelperPoly and add it in the pyfaust wrapper.
48adedd9 Optimize Faust::TransformHelperPoly::poly through a zero copy approach using Eigen Maps (view) instead of Faust::Vect and Faust::MatDense.
b815e8d0 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).
72880940 Optimize Faust::TransformeHelperPoly::multiply(Vect) (F@x in python).
32d965ae Optimize Faust::Transform*::multiply(MatDense), multiply(Vect)
b4c6ee08 Add move and assignment operator= overload, Vect::operator=.
ad8d2fe6 Update pyfaust.poly with new wrappers of impls of C++ poly, uniformize all impls in single functions.
89024747 Update Faust::TransformHelperPoly.
c85f2569 Override C++ Faust mul by vector in the special case of the Chebyshev polynomial basis (class TransformHelperPoly).
d54f8bd6 Fix errors in Faust::Vect::operator-= functions (arg. vect or scalar).
a4d0843f Add wrapper pyfaust.poly.basis_cpp and C++ implementation behind (for chebyshev).
cee71204 Fix memory bugs in MatSparse::vstack/hstack and add print_* functions.
0d8efda1 Minor corrections in using_gpu_matfaust/pyfaust tutorials.
e6436f66 Add MatSparse::vstack and MatSparse::hstack along with their unit tests.
4a4e7c62 Modify pyfaust.poly to be able to handle a L indifferently whether it's a csr_matrix or a Faust.
bd9d5dde Update pyfaust.poly function signatures and remove special case ChebyshevPhi.
2483283f Update pyfaust/matfaust GPU notebooks since the GPU performance is in fact better than indicated.
ef0d0902 Fix pyfaust.Faust.clone(), cpu to gpu conversion wasn't working.
46c4c661 Update macOS jobs (no need of the password anymore) and a note in macos setup script.
db173e4f Update things about C++ proxs.
61945343 Update to gpu_mod@8843946.
3252abb1 Update PALM4MSA/hierachical 2020 C++ impl.:
ae0b908e Update pure gpu splin, spcol, sp proxs tests (prog. arguments and output).
51b659dc Minor fix on MatSparse ctor: if nnz==0 can't build any triplet of row_id, col_id, value.
09c59b20 Update MacOS X VM setup script.
ae1d9854 Fix issue #185, minor error on prox_sp* GPU decls.
9d73e9ca Add prox_spcol and prox_splin pure GPU implementations along with a test/benchmark.
b242af8b Update to gpu_mod@f94b91b.
a3672b36 Add prox_sp GPU2 implementation with gpu_mod@422d2d7 and a test/benchmark (test_prox_sp_gpu).
49113b78 Update gpu_mod@70d319e.
a14d52f5 Update to gpu_mod@430e43c.
45ed3373 Add a new version of prox_sp that authorizes dynamically to output a MatSparse or MatDense image.
d754acb8 Secure input argument type in Cpu TransformHelper::update.
bee683e7 Add two new ctors to MatSparse.
c1e74642 Small fix in cmake script for experimental code filtering.
6776809e Chebyshev polynomials as Fausts added a experimental module in pyfaust.
e4be0be3 Enable py3.9 for win pyfaust pip packages(build and test for releases).
3f6eaac6 Inform macOS users when libomp is not found at pyfaust loading and explain how to install.
9741e7b5 Enable linux python 3.9 package pub to pypi in pypy_pub gitlab ci job.
e95bbbe7 Add new Q/A in the FAQ (about demos and tests).
81bf8691 Minor fix in pyfaust runtimecmp demo.
55857463 Update matfaust.quickstart.factorize_matrix demo to enhance the Faust speedup.
ce4a867b Fix matfaust.rand misuses in documentation examples and install guide (due to change in API).
ddd72bf2 Few changes in projectors (about splincol/skperm) and gpu nobtebooks.
5f0ebb05 Enable macos x python 3.9 package to pypi in pypy_pub gitlab ci job.
fa578bcd Double the jobs for macos x pyfaust pip package (build and test) to support two versions of python (3.7 and 3.9).
00afcb09 Publish and update matfaust GPU wrapper tutorial.
ac503492 Minor change: update pypi project description formatting.
7b6c6af9 Fix hadamard demo that was in experimental mode and using bits of deprecated/outdated pyfaust API.
7c6cb360 Add a tutorial to use GPU with matfaust (equivalent to the pyfaust jupyter notebook which was updated by the way).
4221793a Add cpu <-> gpu support to matfaust.Faust.clone.
26a9fc51 Add matfaust.Faust.device function.
3692de49 Add pyfaust.tests module (old tests pyfaust_simple_test.py) and integrate it in the release pip package tests of gitlab ci.
fee124aa Update pyfaust tests.
d08a1c44 Update pyfaust wrapper (details below).
abc01d1a Update to gpu_mod@66fe38a.
add893fc Add a simpler set of unit tests for pyfaust (easier to apply to GPU Fausts).
1be0d9a5 Fix a bug in GPU2 MatSparse tocpu() and secure GPU2 Transform tocpu().
de6d8c43 rename mex faust_prox.h* files to avoid confusion with C++ faust.prox.h*.
1ddd3973 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).
57333754 Add GPU2 wrapper in matfaust for Faust functions: mul_faust, vertcat, horzcat, subsref, subsref_byvec.
ebfd8790 Add GPU2 wrapper in matfaust for Faust functions: nnz, optimize_time, optimize_storage, optimize, multiply.
3ab0cd33 Add matfaust.Faust.transpose/ctranspose/conj GPU2 wrappers.
63ad747f Add matfaust.Faust.save GPU2 wrapper.
09fec4fb Minor change: refactoring isConjugate in parent class TransformHelperGen.
9043c95a Add GPU2 wrapper in matfaust for functions: factors, numfactors, nbytes, disp, full, norm, normalize, size.
b02cbc77 Implement (partially) matfaust.Faust wrapper to GPU2 (ctor, dtor and disp).
fbe232a2 Minor fix Faust::TransformHelper ctor.
906aaa58 Implement set member function in CPU and GPU2 Faust::MatDense and GPU2 Faust::MatSparse (already defined for CPU's).
6766b1ff Fix deprecated use of matfaust.rand in FaustTest (due to update by 257f6643).
c779ccfe Refactor mexFaust new cmd into separate module new_faust.h(pp) and optimize the Faust creation (one useless copy per factor removed).
96a44290 Add matfaust wrapper for hieararchical factorization (2020 backend, tested on a CBP's GPU).
6a3fef3b Finish PALM4MSA 2020 GPU2 wrapper for matfaust (tested on a CBP's GPU).
9d1bb8f9 Handle use_csr and packing_RL parameters in matfaust.fact.palm4msa (as it is already in hiearchical) for the 2020 impl.
c2784a75 Secure/Fix non-initialized pointers in GPUModHandler.
8fe20761 Update to gpu_mod@01a3977 to fix issue #181.
8e88e45e Adjust C++ test_transform_gpu_mod to test complex<double> too (in addition to double).
a29f7be4 Update pyfaust jupyter notebook about GPU (complex support).
37d4d55d Update the project README (license and other details).
4813a816 Add support of GPU complex Faust in pyfaust.
fed57eb3 Adjust GPU2 Faust::MatDense, Faust::MatSparse and Faust::Vect to support complex scalars (updating to gpu_mod@3920c36).
64642111 Update to gpu_mod@ed251cf (1.2.6).
1a61db8e Automatize PYPI release on push-tag (only if whl pkg tests succeeded).
ec13288a Minor update in doc.
dd6b1062 Update pyfaust install guide (now that pyfaust is hosted on pypi).
6b898d28 Update GPU notebook and pyfaust factorization wrappers.
153e91c3 Update pyfaust.demo:
e7fb4cbc Fix forgotten conflict to solve in license.txt.
c7178aa1 Fix a bug on GPU2 imple. of PALM4MSA 2020 (after a538c8) and refactor the functions defined to compute factor gradient (useless arguments removed).
295fe88e Update GPU pyfaust notebook (with Rémi's annotations).
59c7aba1 Minor fix in matfaust.Faust.clone().
9e55c46c Add matlab live scripts about factorization algorithms + update corresponding pyfaust notebook.
9406fe21 Temporarily re-establish the doc of Constraint* classes.
cd5c4084 Fill other info fields to publish on pypi repo. and update license to BSD 2.0.
089c7143 Update and re-publish the jupyter notebook about factorization but removing the part about PALM4MSA based GFT algo.
885b31bb Link livescripts about projectors in doxygen doc main page.
903bb975 Add matfaust projectors livescripts.
a4a4a82c Minor fix in matfaust normcol/normlin output.
ff5b009d Missing matfaust files for projectors added in a65434aa.
3e3fc098 Add livescript Use_of_Faust_objects_in_algorithms, integrate it in doc and zip archive.
0112a0b3 Update livescript to fill section 1.3 and set internal links (of toc).
3ec41612 Fix matfaust.Faust.imagesc.
88a597e3 Minor fixes in omp.m.
3ebe1b21 Minor Fixes in faust.nsi.
2b093554 Minor change in matfaust.Faust.
2a138c55 Minor correction in pyfaust install in venv guide.
7c7d58be Add a pip wheel install test for the windows version.
12c6930a 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).
cfd5a527 Update setup_macosx_for_faust.sh (jpeg dependency).
33b7923a Add a gitlab ci test job of pip wheel release package for macOS (installing and executing a small pyfaust code).
0ebd7e2e Add matlab and python basic tests of resp. matfaust and pyfaust after macos pkg installation in the test_macos_pkg_release gitlab ci job.
2e01e8b7 Add a macos pkg test job.
1abcdd1c Fix macos libomp restoration in .gitlab-ci.yml.
b3c022e0 Delete all modules, uses and any references about OpenBLAS along with its packages embedded in the project.
6e42f0d2 Fix issue #177.
e3eb227f Update MEG factorization test to compare 2016 and 2020 implementations.
cd73cbff Add/enable an alternative method (Faust::compute_n_apply_grad1()) to compute-apply the factor gradient in C++ PALM4MSA 2020 impl.
39cfb7dd 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.).
7c1ae459 Add timers (enabled in verbose mode) for spectral norms and factor gradient computation in PALM4MSA 2016 C++ impl.
b885f461 Fix minor bug/typo in OpenBLAS trans* parameter.
2407659a Minor change: adding a note about matlab install and conf for gitlab-runner.
b6f4ca43 Add FAµST data download log output in macOS post-install script.
a3ca877d Build in two times matlab and python wrappers because of different OpenMP libraries to use.
279b0cc5 Fix data URL (filename must be excluded).
ca30f89c Update macos pkg matlab postinstall script: handle the case when matlab path is a symlink.
e00901d0 Add "Faust manipulation" matlab livescript and update equivalent pyfaust notebook, with link in doxygen doc and into zip archive.
c9fc361b Minor change in matfaust.Faust.cat (removing output of local variables).
54a37faa Set macOS pkg post-install scripts more verbose.
8a151848 Add missing matfaust.Faust.nbytes function.
3683e14b Minor fix in matfaust doc, matfaust.isFaust was missing in doxygen doc.
ad61cb2c Minorly update macos post-install script (print MATLAB_ variables).
c0be1038 Implement Faust::TransformHelper<FPP,GPU2> iterative concatenation functions and refactor CPU and GPU2 cat functions in separate files/modules.
b35f847e Add a notebook to introduce GPU pyfaust API and integrate it in the doxygen doc and notebook zip archive.
b65bff62 Optimize gitlab pipeline by executing the ctest pipeline only if the C++ tests or the C++ library code changed.
2ea62d1c Using gitlab DAG to reduce pipeline times.
5588d2b6 Udpate 'Faust creation' jupyter notebook.
a312f720 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).
199f11c9 Change the matfaust.rand() prototype to be consistent with pyfaust.rand (key-value pair scheme for optional arguments.
53d53b56 Add a script to configure ci.inria.fr Mac OS X instances for FAµST building, testing, package generation.
0d63723f Remove pre-ADT ci test scripts (not used anymore).
4f8dc333 Add dev argument to experimental 'pure' python hierarchical_py/palm4msa_py to possibily use gpu wrapper (not tested).
0bff26ba Make possible to use SPLINCOL or SKPERM in parameter structure pyfaust.factparams.ParamsHierarchicalSquareMat.
2bb1cc9e Fix mul by lambda on Faust returned by hierarchical2020_gpu2 wrapper (the bug came from update 710dab55).
0cda5786 Fix variable length arrays on stack by using arrays on heap (issue #173)
a3fe9b6a Disable python2 (option NOPY2 to ON) by default in cmake config.
ce290582 Minor change in pyfaust GPU documentation.
f41a8148 Auto-install gpu_mod library on gitlab-runner home after building (continuation of 2bb6295a).
37532c1b Restrain gitlab-pages job execution to 'pages' tagged gitlab-runner.
a19e7442 Update to gpu_mod@c656d08 to fix issue #172 (windows VS14 linking error).
d8cea029 Add a pyfaust wrapper function to check if gpu_mod is loaded properly and block dev='gpu*' argument use (exception) if not.
82539bce remove pyfaust.Faust._add_nonopt (only here for benchmarking).
71b0f2ab 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).
752cb38d Fix ignored 'silent' option in gpu_mod loading and update to gpu_mod@835083e (fixing a loading bug when cuda is not available).
3a45a933 Modify GPU2 randFaust impl. as it was for Cpu impl. by 7b6287f2.
9b157d9b Optimize pyfaust concatenate (replacing recursive meth. by iterative meth to reduce the number of copies).
745e2c92 Change pyfaust/matfaust.rand() definition to be more alike to numpy and matlab rand functions.
bfecd50c Warn user that matfaust.rand can hide matlab rand builtin.
0de3f86e Fix pyfaust.concatenate args.
e9526e0e Fix __array_ufunc__ to handle 'subtract' passing the args to Faust.__rsub__.
f4b7a7da Fix __array_ufunc__ to handle 'add' passing the args to Faust.__radd__.
a3a45856 Optimize gpu_mod use: don't compile the lib if already installed on the system.
f6e5b689 Optimize cuMatArray mul by scalar for GPU2 -- smallest factor copied (issue #159).
d521ca10 Document pyfaust.Faust.astype and __str__.
b030a918 Minor changes.
b8678008 Document pyfaust.Faust.swap_rows and swap_cols, change the default value of permutation argument to True.
56e36d09 Secure, fix minorly and document pyfaust.Faust.average.
80159a82 Fix pyfaust.Faust.sum, secure its args and document it.
91d0dcaf Filter pyfaust symbols from the doc.
ec714c25 Fix issue #165, python3 must be used by rpmbuild (not python2).
af944b0d Fix issue #164 (Visual Studio error C2131).
9fcb7472 Fix issue #163 (matlab deprecated API error for complex matrices).
193e9020 Fix #162 (missing getNBytes() functions in GPU2 backend.)
8728ba12 fix index out of bound error in min size factor research of Faust::Transform ctor.
00c441eb Add __array_ufunc__ to handle ufuncs functions.
7d696ee4 Update pyfaust.Faust ops (indexing, elt-wise mul., addition).
e4e5cee6 Fix minor bug introduced by f4fd45f0 in Faust::Transform ctor.
d575b306 Add inplace pyfaust.Faust ops: +=, -=, *=, @=.
ecccf93d 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).
bf4c7f6d Optimize Faust by scalar multiplication by copying-multiplying the smallest factor (wrt memory size).
b31af53f Add MatGeneric<FPP,Cpu>::getNBytes() and subclass impls + refactor TransformHelperGen::optimize_storage.
5721be1c Finish swap_rows/cols (with transpose handling) in Faust::TransformHelper and bind it into the wrapper.
d4d2d322 Optimize Faust.__add__ vector broadcasting over a Faust (use one mul. instead of multiple concatenation).
5e8270be Add TransformHelper swap member function.
8161b1ab Update pyfaust Faust.__add__ to handle vector broadcasting from array (ndim==1) or Faust (whose one dim. size is 1), and add issparse.
5f36e6f2 Add pyfaust.Faust methods: average, asarray and astype.
9af7ad25 Merge windows and unixes extension compilation code in setup.py.in (issue #91).
978827a7 Refactor char2gm_Op into faust_gpu_mod_utils module.
e9064507 Try to fix issue #158 (windows, VS).
2bb51ccd 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).
ee48d360 Add optimize_memory to the GPU pyfaust wrapper and update many dependent C++ functions behind (details below).
560f8cf9 Update to gpu_mod@7920c9a.
cc9b7879 Add support of the Faust-by-csr_matrix mul. to GPU pyfaust.
6e8d628e Add normalize() support to GPU pyfaust.Faust.
c008b3a3 Fix GPU2 TransformHelper vertcat/horzcat.
df5e2377 Fix GPU2 TransformHelper mul. by a scalar (a Faust is immutable, a new Faust is returned when multiplying).
b415e91b Fix add of GPU Fausts.
b34c122d Fix support of CSR input matrices GPU pyfaust.Faust.
5738ec97 Add GPU support for Faust.save() in pyfaust wrapper.
d8b26d4c Add GPU Faust fancy idx support in pyfaust wrapper.
8ed1dfa4 Add GPU Faust slice support in pyfaust wrapper.
832a75a3 Refactor and make more consistent/reusable the state copy of TransformHelper<FPP,DEV> (transpose, conjugate, slice, mul. mode).
3fe98bd8 Add pyfaust.Faust.device property and cpp impl.
7e82b0ba Add GPU pyfaust.Faust wrappers for concatenate, vstack, hstack, clone.
970b840e Update to gpu_mod@d800359.
805db8cb Add GPU pyfaust.Faust wrappers for transpose, conjugate, pruneout.
46ce49d9 Implement GPU pyfaust.Faust.factors(), left(), right() functions and all their dependent operations in C++ core.
fe5b8e48 Minor fix: don't build mexPALM4MSA2020_gpu2 when USE_GPU_MOD is OFF.
a99be472 Separate FaustCore and FaustCoreGPU in two pyx files, the same for corresponding pxd files. New pyfaust GPU2 wrapper functions: scalar mul, norm, nnz_sum.
335ffb4e Update palm4msa_2020.cpp.in to disable GPU2 code when CMake variable USE_GPU_MOD is OFF.
2f460b41 Add mexPALM4MSA2020_gpu2.m.in (forgotten in a previous commit).
f37b9cb5 Add GPU pyfaust.Faust functions toarray(), Faust by Faust mul, nbytes.
9e21061f Implement GPU hadamardFaust, eyeFaust and add a device argument to pyfaust.eye,wht(dev=cpu|gpu).
66ab44af Implement GPU randFaust and add a device argument to pyfaust.rand(dev=cpu|gpu).
cd19248f Start the GPU Faust class python wrapper with the Faust constructor (from numpy arrays), display function and multiply by a numpy aray.
b5ff23ef Prepare TransformHelper<FPP,GPU2> to the python wrapper (functions are defined but left to define later).
d237b12d 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).
1855ea8f Add optional parameter FDevice DEV to FaustCore as a step toward a GPU Faust class pyfaust wrapper.
5a07fdc6 Allow to use GPU2 impl. of palm4msa2020 in test palm4msa_2020.cpp.in.
a9535e3b Add the matfaust wrapper to palm4msa2020 with GPU2 backend.
b0e1d507 Update matfaust.enable_gpu_mod to load the library from current directory as a fallback solution.
d555f582 Implement the pyfaust wrapper for the GPU2 palm4msa2020 algorithm.
89659f9b Implement the pyfaust wrapper for the GPU2 hierarchical algorithm (2020 backend).
e55f35dc Add functions to Transform(Helper)<FPP,GPU2>: tocpu, save_mat_file.
2aede5ce Add test MEG_factorization (GPU2, FaustGPU and CPU).
432e773c Allow to cut the execution of hierarchical2020 past n factorizations in tests hierarchical2020Hadamard and hierarchical2020Hadamard_gpu2.
91d4089d Fix is_fact_side_left==true in hierarchical 2020 and complete Params output (use_csr and packing_RL options).
2fb6ce0a Fix memory leak in TransformHelper<FPP,GPU2>::pack_factors and useless copies in TransformHelper<FPP,Cpu>::pack_factors.
7744363d Minor changes.
a542cdb1 Fix Visual Studio errors in GPU2.
393c6ba2 Update to gpu_mod@f1e6c96.
34e1cbfa Minor fixes in Faust::Vect<FPP,GPU2>.
5837e274 Update to gpu_mod@2178bf0.
6dbccfaf Fix issue #154 (macOS linking error).
8fdbe781 Update to gpu_mod@af1104f.
f7cdf4bc Disable python2 in pkg_macos_release/rev ci jobs.
5dd65723 Allow pyfaust hierarchical wrapper to use skperm prox.
2f727ad5 Allow to use SKPERM or SPLINCOL in GPU2 test of hierarchical2020.
fc9c838b Allow using SKPERM prox in PALM4MSA by updating faust_ConstraintGeneric.* and faust_ConstraintType.h.
5ca7ee9c Minor changes.
cd000c8f Add copy operator= in Faust::TransformHelper<FPP,GPU2>.
c07403f0 Fix a memory leak (affecting both GPU2 and Cpu impls) into palm4msa 2020.
0e58cc5f Fix misc issues about USE_GPU_MOD and BUILD_MULTITHREAD options for cpp tests and matlab wrapper.
cd82243c Minor change about pack_factors in TransformHelper (GPU2 and Cpu) -- calling parent method.
ebd25f2b Fix documentation example code of matfaust.Faust.cat that induced a rendering bug in horzcat documentation.
ef1b5065 Minor fix in test_matsparse_gpu_mod.cpp.in (free memory in test_clone()).
9bae8277 Get use_csr option from environment in hierarchical2020Hadamard_gpu2.cpp.in.
1ac99d1e Minor update (for test purposes) of hierarchical2020_gpu2.cpp.in (updating to gpu_mod@dbf4133.
1be7f08c Free clone GPU matrix in test_clone() of MatDense<FPP,GPU2>.
1158ed0c Free explicitely gpu factors in test of Transform<FPP,GPU2> (it makes easier to diagnose GPU memory leaks).
6b46062e Copy GPU factors to avoid double-free corruption in test of TransformHelper<FPP,GPU2>.
fa584144 Refactor minorly Faust::Transform (CPU) updateNonZeros (alias) and clear/operator=.
42e8ffa7 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.
136423fc Minor fix in TransformHelper<FPP,GPU2>::pop_front.
a67daa58 Minor change: add getNbRow/getNbCol() in TransformHelper<FPP,GPU2>.
4e4e61bf Manage GPU memory references with RefManager in Transform<FPP,GPU2>.
327322f4 New test for GPU2: misc/test/src/C++/hierarchical2020Hadamard_gpu2.
b8977c5c Update TransformHelperGen hierarchy for GPU2 (pack_factors, erase, insert functions).
28e8e75d Update GPU2 MatDense and MatSparse.
1a9cecea Cleanup headers of useless Faust:: prefixes and remove declaration of types (MatDense etc.) in default namespace.
bc387168 Fix Transform<FPP,GPU2> is_fact_sparse/dense (copy is useless) and iterator::operator++ (recursive infinite call).
1e3a3b27 │Fix a bug in MatDense<FPP,GPU2>::tocpu and a memory leak in copy operator=, set constness of norm functions.
63079513 Add faust_prox_gpu.h/hpp (GPU2 light impl. -- using CPU prox) and include them in Constraint* files.
556ece73 Fix include directories for faust_linear_operator target (needing GPU_MOD).
46613a51 Update FAuST external data archive link (moving from gforge to gitlab).
6aaf25aa New test for hierarchical2020 with GPU2 backend/types instantiation.
b42c12dd Remove template type specialization to Cpu, keep FDevice DEVICE to allow both GPU2 and Cpu instantiations of palm4msa2020 and hierarchical2020.
124d451a Add in MatDense<FPP,GPU2> trace() and copy ctor.
caae9a27 Update TransformHelperGen hierarchy and particularly TransformHelper<FPP,GPU2> (new methods).
042dcd6c New TransformHelper<FPP,GPU2> class and misc update in other GPU2 classes.
59467cfe Fix issue #153 (matlab wrapper build with gpu_mod).
f901fddc Update to gpu_mod@1fd7b2e.
d6927d4b Fix cpp files erroneously added to build when USE_GPU_MOD is OFF.
2c286424 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).
93f38749 Add Transform<FPP,GPU2> functions and tests / MatGeneric<FPP,GPU2> methods.
4c4f0cfd Add class Transform<FPP,GPU2> (not fully impl.) with unit tests, update MatGeneric<FPP,GPU2> hierarchy.
765bc77e Add MatGeneric<FPP,GPU2> abstract parent class for MatSparse/Dense<FPP,GPU2> and implement getNbRow/Col() in child classes.
ec4c4f4f Minor fix: remove old TODO about norm.
cfcc57ee Add to_string() and Display() methods to MatSparse<FPP,GPU2> and MatDense<FPP,GPU2> methods.
1a3996eb Update/fix C++ and python wrappers to follow recent updates with gpu_mod interfaces (faust_gpu_mod_utils module).
44bf249a Add cuda current device set/switch/get, counting devices capabilities (faust_cuda_device module), update tests and MatSparse/Dense<FPP,GPU2>.
ec0714f2 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).
853db464 Add MatSparse<FPP,GPU2>::add/sub with tests.
0c353252 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).
90ce47e2 Update to gpu_mod@aff4369 with the new MatSparse<FPP,GPU2> and unit tests for the implemented functions (through gpu_mod).
423c4532 Update to gpu_mod@a353f78 and add gemm function for MatDense<FPP,GPU2>.
e6ce2cf0 Add MatDense<FPP,GPU2>::operator*= (alias to scalarMultiply).
902b6b20 Update to gpu_mod@f813005, handle stream and multi-GPU capability for MatDense<FPP,GPU2>.
d4ccf15d Update to gpu_mod@1cd2516.
98c27ca5 Add MatDense<FPP,GPU2>::operator= overloads (from CPU or GPU2 MatDense or CPU MatSparse).
98dd2a57 Update to gpu_mod@1cd2516, new functions in MatDense<FPP,GPU2>: operator+=, sub, operator-=, multiplyRight, multiplyLeft, operator*= with corresponding tests.
f769d6ca Add MatDense<FPP,GPU2>::add(MatSparse<FPP,Cpu>) and a test (update to gpu_mod@862ed4d).
2d1487c4 Update to gpu_mod@bd7eced and add functions to MatDense<FPP,GPU2>: add, abs, normL1 with tests.
dfa70815 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.
c4f42d45 Update to gpu_mod@666a08a in order to add MatDense<FPP,GPU2>::resize, setOnes, setZeros, setEyes, clone.
3376b752 Update MatDense<FPP,GPU2>::multiply(MatSparse<FPP,Cpu> freeing gpug memory and add a new signature to output in MatDense<FPP,GPU2>.
2ac9f7ba Update to gpu_mod@a242b93.
a42f4b65 Add new signature for MatDense<FPP,GPU2>::multiply and update tests.
500667b8 Add test to MatDense<FPP,GPU2>::mutliply.
cf8679a7 Implement MatDense<GPU2,FPP>::multiply(MatDense<GPU2,FPP>).
be554a03 Mention the skperm projector in notebook about projectors.
57567168 Minor change.
9e237801 Start new MatDense<FPP,GPU2> impl. using GPU_MOD (to replace later MatDense<FPP,GPU>.
700297ac Update to gpu_mod@b0c110b.
ee20fd41 Update to gpu_mod@ee6c57c.
8eb41a20 Minor change.
f1a59a91 Update to gpu_mod@8e3bbe5.
d7c79e88 Update to gpu_mod@8f667ac.
b2742855 Update pyfaust.enable_gpu_mod to hide all messages by default (issue #151).
e5f05626 Fix missing file in gpu_mod (https://gitlab.inria.fr/faustgrp/faust/-/jobs/736345).
37a65780 Update to gpu_mod@2a3eed8.
7ab39667 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.
a0fed293 Update GPU power iteration algorithm to support complex Faust.
2d57ef77 Minor change in matfaust.enable_gpu_mod doc.
307bc48d Minor change.
708df5a3 Add support for 'pos' and 'normalized' to skperm projector and update the API documentation.
65486539 Fix nbytes computation formula in TransformHelper::optimize_storage() and getNBytes() functions.
fdff24bd Add FaustMulMode and set_FM_mul_mode/set_Fv_mul_mode in matfaust as it was added into pyfaust.
946de29d Minor change.
aca472a8 Refactor again Faust::skperm, this time in a single implementation both for double/float and complex<double/float>.
f3e1e022 Add matfaust and pyfaust unit tests for the skperm projector.
f4c2ea3f Add the matfaust wrapper to skperm.
07561723 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).
20023ff0 Implement SKPERM projector and add its pyfaust wrapper too.
30353389 Fix tensor transfer to device in experimental FaustTorch class.
f0138d72 Update to gpu_mod@44023b2.
2afdbe31 Fix pyfaust_torch C++ symbols error: missing _ZN3c105ErrorC1ENS_14SourceLocationERKSs.
381bb0d0 Update gpu_mod@4a824ad.
c0db9a9f Minor changes in misc/test/C++ (comments and outputs).
b21c3cab Minor changes related to eigtj.
8b560917 Minor change.
ea647bab Minor changes in code doc.
244d5b72 Fix FaustGPU::pop_front, FaustGPU::power_iteration2.
950987b6 Fix 2 particular bugged cases in Faust::multiply_omp.
e384097e Minor change.
f2c2bdd0 Minor change.
43fd166a Minor change: adjust pyfaust ParamsHierarchical* displaying format/content.
c66cc996 Minor change: add a warning when pyfaust hierarchical2020/palm4msa2020 are gpu enabled.
fd703109 Fix bug https://gitlab.inria.fr/faustgrp/faust/-/jobs/712989.
e19566d9 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().
ffba7a80 Update matfaust.factparams.* code/API doc and a few in pyfaust.factparams too.
06d39154 Remove the mingw/cython build code in CMakeLists.txt (issue #91)
38b10b94 Add a unit test for pyfaust.factparams.ParamsPalm4MSA (issue #81).
c2a291f8 Add __repr__ functions to StoppingCriterion, ParamsHierarchical/Palm4MSA, ConstraintGen and function ConstraintName.name_int2str.
d105bb5f Add Faust::StoppingCriterion::to_string() and reformat Display() output, update faust_Params, ParamsPalm to use it.
5cdd8d80 Remove duplicated C++ unit tests (forgotten by 49f58e61).
09e7f79a Use mathjax displayer for doxygen doc latex code.
0c0c6a63 Update post-install scripts for matlab on macOS and Linux to frame the code injected by a warning identifying clearly faust.
06fd191b Embed Faust projector notebook in doxygen the documentation and also in the pyfaust notebook zip archive.
028e739a Minor change: document the matfaust.fact.palm4msa optional backend argument.
e39a546c Increase timeout of slow tests.
835c9b31 Minor change: test lambda value after computing error.
365255d0 Update nightly test jobs.
e64048e8 Update install guide doc (especially for matlab).
8e880917 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.
a8c0126d Fix matlab/matfaust expfiltered folder being installed instead of ignored.
e87c8dfb Remove from pkg post-install scripts the matlab userpath startup.m edition to avoid redundancy.
e489ae2b 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.
f7fd5c9c Fix matfaust.version displaying variable instead of the version.
0fd86f94 Fix matlab non-member functions inline doc issue (visible doxygen syntax).
4c378e7c Fix faust_TransformHelper.hpp warnings.
ba31c61c Fix warning about deleting of C++ object whose class ctor is non-virtual.
22c5ea31 Fix -Wreorder warning (C++ ctor arguments order).
405fc1d6 Minor change: add to the readme a troubleshoot to matlab non-default path issue.
1a274e3f Minor change: copyright year.
3fbebe89 Accelerate macOS pkg post-install script in the research of matlab and fix the case in which matlab is not installed in /Applications.
84e4d83a Fix MacOS X pkg generation to include libomp pkg ect.
32ffc9e1 Allow pyfaust.Faust ctor to receive a filepath as first non-keyword argument (issue #78).
77842535 Delete matfaust/pyfaust.fact.fgft_givens alias of eigtj (issue #120).
a812b7e8 Fix Faust::Transform::spectralNorm issue #111.
57f6377a Update/Add transpose/adjoint/conj methods of faust_MatGeneric class hierarchy.
688afd90 Refactor mex_params initialization for matfaust palm4msa and hierachical.
dfbe7a0b Update the doc and projectors notebook (after the change of blockdiag def.).
7c9b8b28 Simplify blockdiag proj. def. (issue #144).
3c6024de Set a default value for norm arg in matfaust/pyfaust normlin/col projecctors.
589f4b4f Minor change: output message added to the formfeed filtering (c)make target.
e5466110 Secure normlin/normcol norm parameter to be >= 0 (otherwise an error is raised).
76db5504 Update prox notebook.
d4226d4d Fix Visual Studio error C2131: expression did not evaluate to a constant.
4c687a4f Make possible to call without recompiling Faust::multiply_omp and automatically if BUILD_MULTITHREAD is ON.
7d25350f Fix MSVC error C2248 in FaustGPU
aa9d8429 Update to gpu_mod@6e39c0e.
4033aee4 Update doc/code about Faust product optimization (pyfaust and C++ core).
4018d379 Update many things about projectors.
6779f65b Add directories in matlab path with a finer granularity to avoid conflicts with matlab built-ins eye, rand functions.
09015814 Set projectors normalized default argument to False and remove that argument and pos argument as well for normcol and normlin projectors.
376a2649 Minor change: change the way data files are accessed in pyfaust test.
99490e02 Fix issue #86.
0ff2ef60 Handle division by zero error in MatDense::Normalize().
98034e21 Minor change in README (indicates the preference for python3 instead of py2).
e8020553 First version of the pyfaust.proj jupyter notebook.
268aa1b0 Update the OMP/C++ Threads parallel reduction of the Faust-Matrix product to compare properly the calculation times as shown in issue #125.
528ff0ec Implement the spectral norm (operator L2 norm) using gpu_mod@7d259af.
4ba82adb Minor change: correct constness for Slice arguments.
84518605 Refactor product optimization methods into a specific module.
475f88b9 Port hierarchical2020/palm4msa2020 to GPU for the multiplication.
695b587e Make palm4msa2020 (impl1) capable to do Faust/matrices muls on GPU.
156fed08 Minor change: refactor gpu factors loading/acquiring in TransformHelper.
5e29b843 Update FaustGPU: cpu_gpu_map is only used when RefManager is enabled.
403f3e97 Add RefManager::contains().
2fbb2a40 Make palm4msa2020 (impl2) capable to do Faust/matrices muls on GPU. Update the test for it.
e6aa48a2 Use (optionally) a RefManager into FaustGPU and update ctors and methods for the last update of gpu_mod.
14930262 Minor change (simplification): replacing Faust::Transform::delete callback def by a lambda expression passed directly to the RefManager.
136e98a0 Refactor palm4msa2020 by using MatDense::adjoint() and new function fill_of_eyes().
f7b45660 Add MatDense::adjoint().
c49a46ec 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).
b327fb34 Increase cpp test timeout including that of MATFILE_FACT_HIER_float.
c2357db0 Fix MatSparse::randMat() bug with FPP==float.
32f31f05 Make possible to run the pyfaust.demo.bsl on GPU (cuda).
cbb9e854 Fix Faust::TransformHelper::optimize_multiply when in_place==true.
c02c0ffc Minor fixes in FaustTransformHelper related to faust_gpu.
9af86e80 Add a TOC in faq doc page.
bc422197 Secure input matrix major order in pyfaust hierachical wrappers (2016 and 2020).
055a6c34 Update to gpu_mod@1.1.2 and update faust_gpu_mod consequently
3945339d Update C++ gpu_mod wrapper to compute 'toarray' of transpose and adjoint of a Faust.
b4ceb2fb Add a new method Faust.clone() (matfaust and pyfaust).
d46c6964 Separate Faust-vector mul. optimization/method choice from that of Faust-toarray and bind the wrappers.
f5eb01b6 Add Faust::Vect::Rand/setRand().
6a93d779 Minor change: modernize C++ in faust_MatDense by using nullptr instead of NULL.
073a8486 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).
97ae5fe2 Refactor enable_gpu_mod() (and by the way fix a bug occurring when libpaths is None) in pyfaust and update documentation in both wrappers.
83f7b7bf Minor fix on matfaust doc.
08e469be Fix HTML anchor bug with doxygen 1.8.18.
5a08ce43 Make the (doxygen) doc target depend on matfaust files filtering targets to allow fix missing code doc (bed65cb6 regression).
89051fa4 Update .gitlab-ci.yml.
14e1eaf1 Replace uses of numpy.matrix by parent class numpy.ndarray (ndim == 2) to prepare pyfaust to the deprecation of numpy.matrix.
f4f855b4 Explicitely disable FAUST_TORCH in wheel pkgs for Linux et macOS.
a6971eed Secure array format (col. major order) in FaustCore.pyx fact_palm4msa_gen.
aaec7a9b Minor changes.
65da9d8d Fix a bunch of warnings in C++.
b8fc4bf9 Update FaustTorch class (pure py.) exprimental code with a new method totensor() and refactor __mul__ method in this goal.
782365a2 Uniformize cmake script for WIN32 mex building to finalize what was done for macOS/Linux in 1ea31014.
aeb159e6 Add pathlib pip dependency which is only useful when FAUST_TORCH is true.
199ea74b Minor change: disable gitlab ci job for generating py. wheel pkg for raspberry pi (as it's unavailable at the moment).
d6508c30 Minor fixes.
e28173ba 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.).
9571ea94 Configure and integrate OpenMP library into macOS .pkg (release and rev.).
e2fa5a15 Patch cmake script for finding OpenMP on macOS/clang.
ab9acd24 Enable multithreading (OpenMP) in gitlab ci for tests and macOS packages.
f6721d74 Enhance cmake post-processing of matfaust scripts (experimental code filtering and inline doc generation).
ccae65d6 Modernize mex building cmake script and uniformize macOS/Linux code.
30b05e5a Enhance cmake code for BUILD_MULTITHREADING and refactor a bit cmake scripts.
9fc69e9b Minor change.
2ce11a90 Enable OpenMP for windows packages (both for matfaust and pyfaust).
358e3d72 Modify an old test to measure time on sparse factors Faust (instead of numpy dense arrays).
644f5ed2 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.
f4d4ae2c Minor fix: protect PYTHON_PATH expansion from space issue in .gitlab-ci.yml
7c1799e4 Fix index out of bounds issue in Faust mul. optimized method 2.
a6ea289a Fix bug on hierarchical 2020 impl.
6c2fc7dd Fix for windows the experimental code filter script.
45fa6ae1 Set up gpu_mod auto-load in matfaust wrapper with function enable_gpu_mod().
f61be614 Update generation of Windows packages to integrate gpu_mod and enable it in pyfaust wrapper.
84528ceb Update to gpu_mod@a2f16c9 (1.1.0).
184f5e77 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).
fd34bac0 Simplify CMake script for finding Eigen3 package (on UNIX systems) and specify the minor version needed according to issue #93.
a1901e2d Build and integrate libgm (gpu_mod) in package_linux and package_linux_purepy* gitlab ci jobs and pack.
17b36c4e Disable py2 in gitlab pipeline jobs for linux package generation.
48cd1923 Set gpu_mod submodule address as relative URI.
61c14f91 Handle the different configurations for python tests (py2 and py3 found and NOPY2 enabled).
a93103fb Fix test_palm4MSAFFT.cpp.
b84f435b Disable Python2 in tests jobs and for Linux packages (as py2 is not supported anymore since january).
8f6e2779 Minor change.
c1b2a0e5 Integrate gpu_mod into Faust with tests for double and complex<double>. Faust optimize_time is capable to use gpu_mod.
95e4de46 Fix numeric_limits::max issue on Visual Studio 14.
690d3d3e Minor fix/change.
3fe23c52 Fix bugged init_facts default initialization (when is_update_R2L is True) in FaustFact.fact_palm4msa_gen (_FaustCorePy.pyx).
09e650b3 Setup the gitlab pipeline and dynamic (down)loading of libtorch for pyfaust pip packages (macOS and linux x86-64).
f503aa6a 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).
b9b67cf5 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.
ca65e1b5 Minor changes in faust_torch module.
73a57855 Update faust_torch module.
4e6a1efb Update faust_torch test.
5b1fd412 Update faust_torch module.
eb82e402 Optimize faust_torch module to avoid cloning data (by default) when possible.
f42fb075 Custom the faust_torch cpp test.
7869d1e1 Add the faust_torch C++ module for computing a Faust-Matrix product using torch CPU and a cpp test.
6b3dc4c9 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).
5bd062b1 Add pyfaust.FaustTorch class as experimental code.
df1473ce Refactor largely Faust::GivensFGFTParallel/GivensFGFTParallelComplex algorithms into a new class GivensFGFTParallGen and update unit tests.
8bbab83a Add argument nsamples to matfaust/pyfaust.Faust.optimize_time(). [skip ci]
6a887227 Overload Faust::multiply_order_opt_all_best() and add a test (faust_mult2).
2d46f5fa Minor change: update doc.
2823274f Optimize pyfaust palm4msa as fd17c283 did for matfaust.
d2863e93 Optimize mex palm4msa output: avoid copying each factor when creating TransformHelper object and choose the proper storage format (sparse or dense) to save memory.
fc9a8a3f Hide pruneout npasses and only_forward arguments (in matfaust and pyfaust).
b18d6c13 Update the matfaust/pyfaust.Faust class doc, rename some functions (optimize_*), change minorly arguments of pyfaust.Faust.norm.
b3eb1c92 Fix pruneout bug due to use of not copying ctor.
085554a7 Add argument inplace (default to false) to Faust.optimize_mul.
fb55ef45 Minor change.
95443833 Optimize pyfaust.Faust.toarray() and C++ impl. TransformHelper::get_product() with the pre-existing opts used in TransformHelper::multiply(MatDense)
bc110346 Document StoppingCriterion class in pyfaust and matfaust.
49a6edae Add unit tets for matfaust/pyfaust palm4msa2020 and hierarchical2020.
9aeeaf07 Add matfaust wrapper to palm4msa2020 and refactor 2016 palm4msa mex code.
fb6fd077 Fix compilation issue on Matlab R2018a,b.
b8dea691 Add pyfaust wrapper to palm4msa2020.
b18bde64 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.
b21f4c24 Minor change.
a47996d9 Add an overload of Faust::hierarchical2020 to use Faust::Params the same parameter structure as Faust:HierarchicalFact(2016).
a2c12fb5 Make constant_step_size and step_size parameters available for hierarchical2020 (c++ core and w rappers).
3ffb44d8 Make verbose mode available for hierarchical2020 (cpp core and py/matfaust wrappers).
9d591246 Define Faust::ConstraintGeneric::Display() and specialize the method in other constraint classes. Use these functions to refactor Faust::Params.Display().
b4f69d64 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).
bd96eb57 Minor change: hierarchical wrapper doc. update.
5a41502d Fix palm4msa2020 error C2131: expression did not evaluate to a constant.
12dbcd7c Minor changes: typos in doc.
efcf6dac Minor fixes: typo in mx2Faust.hpp and reference values of tests (due to 2-norm default parameters change).
23e2627c Add benchmark script to compare pyfaust hierarchical 2016, 2020, hierarchical_py and Luc Giffon (pyqalm) hierarchical Palm4MSA implementation.
13d145fa Update matfaust/pyfaust to premultiply output Faust by lambda with 2020 backend (as it's done with 2016 backend -- consistency).
a9103aa3 Simply/Optimize Faust::TransformHelper mul. by a scalar (avoid copying factors, only the one multiplied is copied).
c3992569 Rename faust_palm4msa.h/hpp to faust_palm4msa2020.h/hpp to avoid confusion with faust_Palm4MSA.h/hpp (especially on case insensitive systems).
45c5d7f2 Update Hierarchical/Palm4MSA about norm2_max_iter/threshold.
20b13b9a Re-enable missing test in 3e609ad2 and fix a small bug in test hier_fact_test arguments (CMakeLists.txt).
ee93c36b Update matfaust tests as 4b3cc14f did for pyfaust (change in default norm2 parameters).
f84234f8 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).
0ec0178d Add wrapper to hierarchical 2020 impl. into matfaust.
6d5b6b29 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.
2a619363 Make the 2020 hierarchical implementation available from the same pyfaust.fact.hierarchical function as the 2016 impl. (with a new argument named backend).
94a2d567 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.
9ef906d3 Add argument packing_RL to hierarchical2020 and palm4msa2 in C++ core and pyfaust wrapper.
81902885 Minor fix: disable missing C++ test.
448e6c59 Fix matlab wrapper issue with TransformHelper variadic template.
a50df69a 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.
59bfa111 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.
8e65979c 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.
513ef38c 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).
ef267ce4 Add optional arguments to hierarchical_py and palm4msa_py about norm2 computation and projected matrix storage format.
7d8d48fe 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().
c0540d51 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).
a54a543f Optimize Transform and TransformHelper ctors (avoid copies).
403e8e4e Add a variadic template ctor for TransformHelper, add push_back_() related functions and a test.
c6d84531 Implement factor iterators in Faust::Transform(Helper) and hence foreach loop (with a unit test).
e54c6522 Add copy ctor and copy assignment to TransformHelper and corresponding unit tests to test also Transform copy ctor (refactored) and operator=.
77cb4be0 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.
e297cee9 Minor change: simplify/refactor pyfaust __*mul__ ops, error handling and isinstance callseverywhere in the class.
765c2dab Extend Faust::MatSparse::setEyes() to allow eye non square mat and simplify MatSparse::eye() static function by using setEyes().
bddcf30e 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).
e394b9ac Modify power_iteration stopping criterion in order to fix issue #131.
681cd4b1 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).
f62b54b9 Add unit tests for matfaust spcol/lin normcol/lin supp const sp and fix normlin error.
9f7fd058 Enable multithreading for the linux builds by default.
386f1151 Update pyfaust.factparams.ParamsHierarchicalRectMat and pyfaust.fact.hierarchical doc and remove UML collaboration diags from doxydoc (quite useless).
b476506d Minor doc update/fix in pyfaust ConstraintMat and supp proj.
ec72b5ff Minor change: doc example for ConstraintList.
c67d1b28 Adjust matfaust (including mex funcs) to support blockdia proj or constraint.
68c2e95d Make blockdiag constraint available in palm4msa algorithm.
91da2f42 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.
3d8dc38e Update the factorization jupyter notebook since the update of eitj wrapper.
dac94d87 Make pos and normalized options available for new projectors: toeplitz, circ, hankel and blockdiag (matfaust, pyfaust, cpp core), update the pyfaust doc.
5f586bda Update pyfaust palm4msa and hierarchical params doc.
224c9247 Bind wrapper to Faust::prox_blockdiag into matfaust.proj.blockdiag class/functor.
9518cbaa Exclude the raspberry pi package gen. job from revision pipeline (only for tags).
a09a3fe2 Bind wrapper to Faust::prox_blockdiag into pyfaust.proj.blockdiag class/functor.
885ed7c5 Fix version missing in pip package for raspberry pi.
6959cd87 Implement BLOCKDIAG proj in C++ and add a test.
85823db7 Add pure python prototype for BLOCKDIAG projector.
79d3897f Add a gitlab ci job to generate a package on raspberry pi.
6d99d43b Fix synchronization issue in Faust::multiply_par_run() (multithreaded product of N factors).
56878960 Minor change in Faust mul C++ test debug output.
92c9f1a1 Add examples for pyfaust projectors.
d5fbc993 Fix pyfaust projectors unit tests (bugged because of bad import since the module change).
54e25f88 Review the doc and fix imports.
15e6582e Disable formfeed filtering when matlab wrapper is not built.
e532666c Enable projectors for palm4msa()/hiearchical() only supporting ConstraintGeneric/ConstraintList before. Update the doc (mostly for projectors).
80bd9e3e 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).
ba36c34c Allow pyfaust ParamsHierarchical ctor to receive a list of pyfaust.proj.proj_gen.
c3c564e3 Add matfaust wrapper to TransformHelper::optimize_multiply() and fix VS14 specific error (C3863) into TransformHelper::optimize_multiply.
dd031ac4 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).
157fe919 Minor changes/fixes.
b2cda15a Enable non-documented *faust class filtering in gitlabpages generation.
cd1d16ed Refactorize MatDense code to get/set diags/antidiags and fix toeplitz and hankel projs for rect. matrices.
18b9855e Minor change: update projectors doc.
61e22943 Minor change.
05199f8b Minor change.
68bcdae7 Move projectors in a specific package py/matfaust.proj.
2987c59a Finish filtering of non-documented classes both for matfaust and pyfaust.
b92472b5 Filter excluded/non-documented classes from doxydoc (only for pyfaust).
76fb0c8e Add a CMake option to disable python2 support.
4d9e9042 Add the matfaust wrapper Faust.optimize.
8de83d82 Add the pyfaust wrapper Faust.optimize.
a3e33dc1 Add TransformHelper::optimize() and a C++ test: it does a pruneout + optimize_storage and choose the quickest method for the Faust-matrix product.
3b8495a9 Bind cpp optimize_storage() into matfaust.Faust and add Faust.nbytes attribute (as ndarray provides).
b8b61ba5 Add C++ hankel prox test.
66bd3edd Add pyfaust/matfaust wrappers for hankel prox.
b4971522 Add Faust::prox_hankel and Faust::MatDense::adiagonal().
670a3573 Fix the error VS14 C2131 issue (https://gitlab.inria.fr/faustgrp/faust/-/jobs/512998).
d7aeea57 Add to pyfaust wrapper the binding to Faust::TransformHelper::optimize_storage().
17a00d0a Add circulant proj and a test, bind toeplitz and circ projs into matfaust and pyfaust.
0574cbdc Write the toeplitz projector in C++ Faust namespace and add a unit test.
9f07b9b1 Add Faust::MatDense::diagonal().
b635b646 Add Faust::Vect::mean().
92e38424 Minor fix.
d048198c Document pyfaust projectors.
4e87db82 Implement an optimization based on storage format of each factor with a criterion choice: time of matrix-vector mul or memory footprint.
744b4f61 Minor fix to VS14 compilation issues.
93b0ad24 Bind Faust::TransformHelper::pruneout() into matfaust and update doc.
332f33a3 Bind Faust::TransformHelper::pruneout() into pyfaust.Faust.pruneout().
14131835 Handle compiling issues with optional OpenMP (CMake scripts, setup.py, ...).
07e4e435 Finish pruneout C++ impl. for Faust::TransformHelper and add a unit test.
eba1278a Start pruneout port to Faust C++ core.
3330d6f1 Implement a C++ threaded version of the previous OpenMP impl. of the parallelization of the Faust-matrix product.
d413efc4 Add in matfaust projector functors (sp, splin,...) as defined already for pyfaust.
ac2d6b21 Add pyfaust.Faust.matvec to be compliant with scipy.sparse.linalg.aslinearoperator.
9cc66941 Fix matlab mex compiling with openmp/gcc on *nix platforms (except macos).
2773c152 Fix namespace issues due to the choice to avoid 'using namespace' in cpp headers.
836902ac Implement an OpenMP parallelization of the Faust-Matrix product (new test: faust_transform_omp_mul.cpp.in).
34f6a3e2 Update pyfaust eigtj/svdtj doc, undocument/hide verbosity argument for svdtj.
b6356096 Minor fix in pyfaust wrapper for svdtj (enable_large_Faust argument not passed for one function signature).
d2b3747f Minor fixes about C++ namespaces.
7c64228e Implement pyfaust.fact.hierarchical_py (pure py version).
f29315d2 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.
97bf52a1 Add an option in Faust::TransformHelper to choose to optimize or not the Faust-matrix multiplication and bind this functionality into pyfaust.
d41cc07e Implement a C++ optimization of N matrices by choosing the best order of multiplications while cb82a735 optimized only for 3 factors.
2d889ec7 Minor change: wrong license indicated in setup.py.
a6e14650 Make available the grad_calc_opt_mode option in matfaust.factparams.ParamsFact. This option has been added in C++ core by 28f1510f.
5b3a6727 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.
97e04449 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.
e0010b8e Update pyfaust and matfaust unit tests in consequence of the fix bc7de9e1.
114e4322 Fix 2 minors bugs in Palm4MSA c++ and pyfaust wrappers occurring only with a complex input matrix.
cc2e7f59 Refactor the mexFaust function: the code blocks for hadamard, fourier and eye Faust are now in separated functions.
9e04ceb6 Avoid the warning about scalar mul of a Faust at creation stage when the creation is done internally (in the C++ backend).
fcb998be Simplify pyfaust.fact.palm4msa_py using functors from previous commits (no need of the dims argument anymore).
6911d6b0 Update pyfaust projectors sp, splin etc. to set them as real functors (callable objects), allowing to access the underlying constraint as an attribute.
df3c91dc Implement enable_large_Faust for matfaust.fact.svdtj (by using the C++ backend).
6916bba8 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).
3b3ca784 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.
8ac1653d Update matfaust.fact.eigtj/svdtj doc (Rémi's review).
8ce1ba87 Add a "pure" python implementation of PALM4MSA as an experimental block of code (filtered out of release packages).
b72b0349 Minor change in pyfaust.Faust.norm (keyword argument handling -- spectral norm specific parameters).
7bb78ee5 Clean the code of complex type uses when floating type actually needed: norms, step size and lambda for PALM algorithms.
62b1c2e7 Complete pyfaust.factparams unit tests of projectors (spcol, splincol, normcol, normlin, supp, const).
2e18a375 Continue the refactoring started with bb417591, this time refactor Faust::GivensFGFT by calling code from parent GivensFGFTGen instead of duplicating.
634c8213 Minor changes.
7f45dba7 Fix issues found with 6a34474c on projectors and add a pyfaust unit test for spcol.
f2bb23a9 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.
6ef64982 Add a unit test for pyfaust.factparams.splin, fix a bug in matfaust.ConstraintGeneric and modify pyfaust projectors to be compatible with py2.7.
9e4d6938 Update minorly eigtj/svdtj related codes and doc (benchmark, matfaust, pyfaust, pyx and C++ backend).
7a5896f9 Change API of constraints/projectors and the C++ backend.
5455f779 Bind to matfaust the new proxs added by 5901bfca.
332dacc9 Add C++ missing non-normalized proxs for discrete sparsity and bind them into pyfaust(.factparams.ContraintInt).
90bfc17f Minor changes in eigtj C++ backend classes and related python unit tests.
5f2d117a Update doc of mat/pyfaust.fact.eigtj/svdtj, other guides and notebooks.
b669200e Update matfaust.fact.eigtj as previous commit did for pyfaust, handle issue with absolute and relative errors.
fc4f85f8 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.
911f1588 Simplify/optimize GivensFGFT*::update_err().
80bd57a0 Update GivensFGFT C++ tests: refactor/document/simplify/reinforce with additional assert() calls.
bacb7590 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.
e9725b89 Optimize/Simplify and factorize the recomputation code of the 'Givens' coefficients in case of nonzero pivot image in GivensFGFTComplex/GivensFGFTParallelComplex.
2332fb6f Minor change (disable debug info.)
e4a6b08a Fix a bug in pyfaust.Faust.__rmatmul__ (lhs*Faust) and __rmul__ (Faust*rhs).
f8e8a5c1 Update how multiplication of Faust::Transform(Helper) (or computation of its full mat) is made when the Faust is conjugate, transposed, transconjugate.
3bfab31f 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.
41b85733 Bind complex svdtj into pyfaust.
ae67a66a Update svdtj() to request ordered eigtj eigenvector transforms to get order-consistent U and V transforms.
29b268dd Remove the permutation factor from Truncated Jacobi Faust::Transform (replaced by a mul. of the last factor).
f5f2b66e Add two unit tests for matfaust.Faust by sparse matrix mult.
8e186244 Secure svdtj pyx function, the input matrix must be in fortran/column major order.
7d62e8c9 Support pyfaust.Faust-csr_matrix/dia_matrix multiplication for complex Faust/matrices and update related pyfaust unit tests.
7c701546 Minor change in MatSparse::multiply(MatSparse).
f04b3486 Fix a bug in Faust::MatDense::multiply(MatSparse) occurring when opthis==T and matrices are complex.
612a2945 Fix memory leak in C++ svdtj and update its matfaust doc.
84950f7d Add support to pyfaust.Faust-dia_matrix multiplication (issue #116).
7addac9a Optimize C++ Faust normalization (multiply the scaling factor instead of appending it) and handle Faust transpose situation.
1ccb995b 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.
8f117682 Fix a bug in Parallel Truncated Jacobi algorithm (GivensFGFTParallel/Complex).
a2fd3aba Handle in gemv() the mul. A'*v with A a complex mat.
35dc155f Update C++ and mex code to make matfaust.fact.svdtj compatible with complex matrices.
8f2d968c Update svdtj documentation with description from issue #95.
4e8a1632 Migrate to cdash-ci.inria.fr (cdash.inria.fr is deprecated).
e73f33bd 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.
c036de0a Undo the cmake FILE(REMOVE) for +factparams as we don't want it as experimental for the next release.
b0375acb Remove PALM based algos from exp. mode (temporarily for the next release).
f37ac29d New prototype of svdtj in pyfaust wrapper for supporting (sparse) csr_matrix.
a358fb02 Update svdtj to multiply directly the last eigenvector transform factor by the signed permutation matrix
51bcabec Fix minor error in pyfaust hpp svdtj definition (opt. args).
0c7eac28 Bind pyfaust.fact.svdtj() to C++ core impl. (only for dense real matrix).
9873ab78 Refactor mex svdtj function into Faust C++ core (in order to be reusable for pyfaust).
9b0eb8f2 Update C++ mex svdtj: add signed-permutation factor to U transform and permutation factor to V (the function is fully functional).
b6fb73e7 Update mex C++ svdtj to sort singular values in descendant order.
e34b939b svdtj C++ version (WIP).
c04aaeae Faust-sparse matrix multiplication available also for matfaust.
fbb50cff Fix missing identity default to false in MatGeneric deft ctor.
7ff3b084 Implement in C++ the Faust-SparseMatrix multiplication and bind it into pyfaust.
78747ec6 Minor fix in MatDense (forgotten renamings).
6f9b5fc5 Update matfaust.eye and its mex code to bind them to the new C++ core impl. of Faust eye.
3b840f47 Implement the optimization of eye faust in C++ core and bind it into pyfaust.
fb33aea5 Set the experimental mode for revision packages and exclude all experimental code (and documentation) from the release packages.
28b5d5be Minor fix in benchmark_eigtj and rise of number of runs
7d3a990e Minor update in doxydoc mainpage layout.
42f4b99d Update pyfaust.Faust.imshow() as asked by #102.
3ee8947c Update matfaust.Faust.imagesc() as asked by #102.
507d5fc7 Update OMP notebook to remove the references to factorization notebook and integrate it to zip archive and doxydoc links.
d87e2198 Rewrite Faust::MatDense::abs() to enhance compiler compatibility.
04b0df45 Update wrapper eigtj doc and backend C++ code too.
79b14ce6 Minor fix in Faust::MatDense to satisfy Visual Studio.
dddb93af Add forgotten test GivensFGFTComplexSparse.cpp.in.
8a03e5ea Fix two bugs related to the recent refactoring of matfaust.
ed5f50cf Add a new error measure in benchmark_eigtj.py. The error is measured on the largest eigenvalue.
2c1f2c6e Add a script for testing eigtj decomposition of a circulant symmetric matrix and comparing it to the DFT matrix.
07e9bdc6 Update benchmark_eigtj.py to test eigtj on Hermitian matrices built from real Laplacians by random phase multiplication.
d76a9944 Add a new benchmark script to compare complex truncated Jacobi algorithms to real versions.
3bd7075a Modify pyfaust/matfaust eigtj to return real part of eigenvalues array (removing the almost zero im. part).
229fcd01 Minor changes about hermitian prop. checking (eigtj) and doc.
d57ff3f3 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).
09c887d5 Make GivensFGFTComplex and GivensFGFTComplexParallel available in matfaust wrapper (fgft_givens/eigtj).
fb2e3f27 Add a non-functional C++ impl. of Parallel Truncated Jacobi for Hermitian matrix (GivensFGFTParallelComplex) and plug it to the pyfaust wrapper.
1cc35e15 Update GFT test script (next to the refactoring of FaustFactory into pyfaust.fact).
7dd4cad2 Add a test for GivensFGFTParallelComplex (upcoming code).
ba230203 Fix several points and connect GivensFGFTComplex (C++) to pyfaust.
504a2000 WIP GivensFGFTComplex updates: correct S'*L*S and other details.
2ffbe9a1 WIP to implement complex (Laplacian) Truncated Jacobi.
43572089 Update FGFT pyfaust benchmark to compute errors on 'optimal' signed permutation of Uhat.
8b4ad5a1 Update experimental code filter added by ebc954ec and use it CMake scripts for pyfaust and matfaust.
83a12924 Modify order argument of eigtj to be 'ascend', 'descend' or 'undef'
f3a54328 Update pyfaust as d2991db9 did for matfaust.
69058176 Minor changes in doc.
f342cb1f Add to matfaust eigtj/fgft_givens an order argument to define the eigenvalues sort.
9dc07208 Update matfaust to follow 037f674a, update svdtj, eigtj, fgft_givens API, doc and tests.
196d0b0f Update pyfaust eigtj (and fgft_givens) to respect the conventions established by numpy.linalg.eigh.
7378832a 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.
3502b320 Update OMP notebook to measure more multiplications in ending benchmark.
cfffefd7 Attempt to optimize GivensFGFT(Parallel) for L residual being a MatSparse.
8bf4da62 Add a python script to filter out exprimental code in pyfaust and matfaust.
b6a2cd5a Add unit tests for pyfaust/matfaust sparse versions of GivensFGFT(Parallel).
66f3bbb5 Make the direct use of sparse Laplacian available from matfaust.
efedd1e7 Make the direct use of sparse Laplacian available from pyfaust.fact.eigtj/fgft_givens.
dd7e8b32 Rename ParamsHierarchicalFact* structures to ParamsHierarchical* everywhere.
246971ef Update constraint table description by adding a new column for exactness guaranty.
45043b34 Minor fix in matfaust documented file list.
eb4d0478 Update notebooks and the API accordingly.
3c7f0bfd Re-enable faust_decompose.m filtered out from sys. packages by 8b182bcf for #64.
6ce51fae Update pyfaust.demo consequently to bf3ebccb.
fb81dfb3 Remove prefix fact_ in matfaust/pyfaust functions (and tests, doc).
bd5a643f Delete file of abandoned class matfaust.FaustFactory.
10cb1982 Refactor pyfaust/matfaust.FaustFactory into a new module: pyfaust/matfaust.fact with all implications (tests, doc, doc gen).
31636d3c Move functions dft, wht, eye and rand from FaustFactory to pyfaust package root, update tests, documentation and notebooks to respect this change.
e802a9b3 Move functions dft, wht, eye and rand from FaustFactory to pyfaust package root, update tests, documentation and notebooks to respect this change.
790f9836 Align MatDense to_string()/Display() with MatSparse's version.
cc025958 Rename FaustCorePy to _FaustCorePy to hide from completion.
9dffca20 Implement pyfaust.Faust.left/right functions as requested by #69.
029044a6 Implement matfaust.Faust.left/right functions as requested by #69.
8794bde5 Add an alias matfaust/pyfaust.isFaust to matfaust/pyfaust.Faust.isFaust.
5392ef30 Rename get_factor() to factors(), get_num_factors() to numfactors() (hopefully) everywhere in pyfaust/matfaust, the doc, the notebook, tests...
5d0d3d2c Fix Windows Visual C++ issue: it needs fully qualified namespaces for MatDense and MatSparse.
df41d438 Temporarily remove the third notebook (factorization) from the zip archive and from the doxydoc links.
ca82bdb2 Set public the access modifier of GivensFGFT::update_L() to fix clang-macOS (suprisingly) specific error of compilation.
e28f2bfb Finish updating GivensFGFT/GivensFGFTParallel to be compatible with a Sparse residual/Laplacian and add Sparse version of existing tests to validate the modifications.
d7d0e7c8 Add/implement nonzero_indices() in the whole MatGeneric class hierarchy.
0e58cde7 Fix reference return issue in MatSparse::operator().
7bacdd70 First try: convert L to MatGeneric which implies to declare in MatGeneric and implement in subclasses a bunch functions.
f8308fae Fix reference return issue in MatSparse::operator().
9aa63c31 Add new multiply Faust::MatSparse member functions and a unit test.
19d47b71 Fix #114: char encoding issue on Windows.
0dae13df Update calls to numpy.linalg.lstsq as indicated in the doc to silent warnings about precision.
b83f6879 Add a py script to filter out HTML tags in pyfaust modules and a CMake target to call it after doc generation.
a170b347 Remove unused matlab (tools) scripts from cmake install target as requested by #64.
7b56cceb Execute pkgbuild with admin. rights.
a3a53458 Make doxygen doc generation depending on notebooks zip creation in makefile.
c6a5ac87 Implement/document matfaust.tools.omp for equivalency to pyfaust.tools.omp.
9932c96d Fix windows bug with getting the python3 minor version (added by f683704b).
42c16d9e Generate a zip file of published notebooks to be hosted on gitlab pages with the doc.
a3628944 Update the OMP notebook after Rémi's review along with the HTML pre-rendered version.
5b2f2445 Update the pyfaust.tools.omp prototype and the bsl demo to avoid altering results.
0ceb8360 Automatize the assignment of SUPPORTED_PY3 variable.
c5b1222e Update the notebook again for minor changes and the html version (with results).
901a8c44 Filter omp (from pyfaust.tools) in the namespace list of the API doc.
ff28d917 Update the OMP notebook regarding the recent changes.
a369628b Update pyfaust.tools omp API: rename the function, update stopping criterion arguments, update and simplify the documentation, remove useless variables.
5fd6f6bc Add the OMP Cholesky impl. of pyfaust (tools module) to the generated documentation.
bfb0ca39 Implement in C++ and enable in matfaust the default normalization for FaustFactory.dft().
6308c50a Implement in C++ and enable in pyfaust the default normalization for FaustFactory.dft().
610cadaa Enable default normalization in mataust.FaustFactory.wht() using C++ backend code (added by 7daa5b22).
715f4623 Integrate to pyfaust.FaustFactory.wht() the use of normalization by default (added to C++ core by 7daa5b22).
4bc3f337 Update the pyfaust bsl demo in particular because of an update of matplotlib which removes find().
e521fa1f Implement the optional normalization of Hadamard transform in the C++ backend (yet to use in wrappers).
8a819ef5 Update pyfaust.tools.py since e66ab87d removed conversion to numpy.matrix in Faust mul result (added before by 421e8251).
3d6fc5b5 Update the OMP notebook.
32b8ec1d Update matfaust dft and wht as 964b7776 did for pyfaust.
f1098fb4 Setup a workaround to the 2-norm normalization bug on complex Faust exclusively occurring on matfaust (pyfaust is ok).
b6e9cca0 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).
3acdc0c9 Add pyfaust.Faust.ndim as numpy.ndarray.ndim.
4e39c59c Make the Faust-by-vector multiplication return a 1D vector as numpy does (instead of a matrix with a dimension size at 1).
351380c6 Update the OMP jupyter notebook with a new section about Greedy OMP-Cholesky.
0086a7c9 Minor changes.
b2387760 Update the OMP notebook in order to simplify x0 choice of nz coeffs and to complete the last test (where nnz=98).
fa57c3a3 Add a test for pyfaust concatenate/hstack/vstack.
1fdfea2e Update the notebook to use simpler hstack call instead of Faust.concatenate.
9f46afba Add in pyfaust the numpy-like functions hstack, vstack and concatenate.
8f7537bf Optimize Faust Fro. norm computation in case of a Faust equal to Q1 Q2 ... QN S1 S2 ... SN where the Qi factors are orthogonal.
a5648dd9 Fix minor compiling error on macOS/clang 'faust_TransformHelper.hpp:582:14: error: invalid suffix 'd' on floating constant'.
c500b5e0 Update the OMP notebook after Rémi's review.
68b49f4e First impl. of norm-2 optimization of Faust composed of sequence of orthogonal factors in their extremities.
cc31b026 Optimize FaustFactory.wht() C++ backend; only one factor is really created in memory because all others are in fact the same.
74c0fe07 Add a test for pyfaust.tools.UpdateCholeskyFull() used by OMP-Chol.
aebf2f37 Add a fourth notebook to demonstrate the use of FAµST API to write algorithms like OMP.
e23a5333 Review jupyter notebooks.
4c934124 Add matfaust.FaustFactory.fact_hierarchical_constends(), review fact_palm4msa_constends(), add examples.
a3387cf5 Add the matfaust version of FaustFactory.fact_palm4msa_constends().
0a6a6dba Make matfaust ConstraintList ctor accept ConstraintGeneric arguments as pyfaust version does.
9e5b9389 Fix 2 bugs on matfaust proxs: one concerning 'const' prox and the second all proxs but only for complex matrices.
a5c9c83a Add an example for pyfaust.fact_palm4msa_constends() and avoid A to be multiplied (the lambda scalar).
1c2979a8 Add a package function pyfaust.pinv() to link Faust.pinv() and make it return a numpy.matrix instead of an array.
ec0395a8 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.
af677be6 Add pyfaust.FaustFactory.fact_palm4msa_constends().
9ef1e5a2 Add pyfaust.FaustFactory.fact_hierarchical_constends(), partially documented and with a test example.
f72509d5 Enhance pyfaust.factparams.ConstraintList.
5168536e Fix typo bug in pyrex code (is_mat_constraint()).
db6cbeda Fix in pyfaust a possible bug because of non-same storage order between input and output of prox_const.
980314fc Refactor fact_hierarchical_gen into two different functions, one for real the other for complex numpy arrays.
d5cfd092 Add links to gitlab ci artifacts in README.md.
e3549681 Move postinst_py.sh (rpm/deb post-install scripts) to python 3.7.
9e925ade Minor changes.
cb20b461 Add pygsp in pyfaust pip/setup.py dependencies, a note about it in quick install guide and update windows installer guide section.
43f9d741 Remove warning about buggy Faust indexing for Windows pyfaust (as 8fb4df1 6658f9a5 fixed it).
c96b108e Fix pyfaust.Faust slicing/fancy idx win10-py3.6-VS specific bug.
3fda17ae Fix pyfaust fancy idx bug on py2.7.
36756863 Update lightly the third jupyter notebook.
3626139c Update the fgft_palm() example in API doc and notebook.
3653f896 Fix 2 pyfaust windows bugs.
3460cbcb Misc minor changes.
ea950c0a Fix pyfaust windows minor bug: occurring on not defined _NSI_INSTALL_PATH when pip package is used.
1b767a2c 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.
06aee336 Misc updates.
d17e2d0d Simplify the script test_svd_rc_vs_err.py (used in notebook 2: Faust manipulation).
2bc667aa Fix issue #101 on pyfaust.Faust mul. by a ndarray of ndim == 1.
f7bd1ba8 Update the Jupyter notebooks and link the third one on doxydoc main page.
964587c4 Add a jupyter notebook about factorization wrappers.
4995cb0e Update Faust.normalize() doc. and jupyter notebook consequently.
dc3c733f Implement pyfaut.Faust.__matmul__() (@ overload), dot() and change __mul__() to rely on @ when it applies.
5df55133 Update pyfaust.Faust.imshow() to limit the number of columns when there is too many factors (displayed modulo max_ncols).
a762484b Add a Jupyter notebook about Faust objects manipulation and link it from the main page of doxydoc.
208c7eb6 Minor fix.
844989a4 Update the python script plotting sparse faust size (bytes) versus RC.
4cdc56a0 Add pyfaust.Faust.conjugate() alias of conj() as it exists in numpy.
80b50a55 Update Paper references in doxydoc mainpage.
7844d97f Minor refactoring in matfaust.eigtj()/svdtj().
f6299b5b Fix 'desc' key value to 'descend' in sort() because Matlab R2016 doesn't want it
9de10cc7 Workaround memory issue in matfaust.Faust.svdtj().
795ff00a Fix erroneous use of spdiag() coming from smallbox (replacing it by sparse(diag()).
e56ab7c0 Update few things in API doc and modify matfaust.Faust.imagesc()/pyfaust.Faust.imshow() in order to print titles.
fb426cc9 Add a Jupyter Notebook to introduce the different ways to create a pyfaust.Faust.
419d593c Misc minor changes.
5d595cb2 Configure faust.nsi to open online doc as a workaround to issue #99.
deb039b9 Add MatDiag::get_rows()/get_cols() (random rows specified by indices).
172039e2 Add MatDiag::get_rows() (for getting contiguous rows).
71d30c58 Add MatDiag::Clone(), norm functions, get_col(), get_cols().
a53ac1c2 Add MatDiag::multiply(MatDense), MatDiag::multiply(Vect), MatDiag::transpose(),conjugate(), ctor for non-square diag. matrix.
2ae7855e Minor change.
256bf9a9 Continue the impl. of MatDiag.
88f53236 Add a FAQ with an explanation on how manually download faust external data.
4cd4d352 Fix bad path in doc for Windows.
3df5d3a5 Replace FAµST by FAuST in all python pyfaust files to avoid charset issue on Windows doc.
8de4108c Try enhancing speed by adding more jobs for ctest.
686318db Specify charset UTF8 at make-install stage too (gitlab ci macOS package job).
7c0e4371 Add CMake option NOCPPTESTS (OFF by default) to do pure wrapper test in gitlab ci jobs ctest_python, ctest_matlab.
e4b9ccc6 Update windows nsis installer to download FAµST external data with powershell as a fallback solution when python was not found.
6ab7ab4f Refactor data URL and filename into variables.
4de04228 Make the windows installer (nsis) able to download faust data.
97fefda3 Update gitlab and CMake build scripts to download data files in package post-install scripts.
13707104 Handle in pyfaust auto-downloading of FAµST remote data (only for pip package).
93675bda Add a python script for downloading and uncompressing FAµST package data.
eb363e61 Fix startup.m overwriting issue in package post-install script (linux/macos).
cc0a8509 Update faust.nsi to edit user's startup.m for faust path auto-setup at installation on Windows.
8cb6d9df Replace FAµST by FAuST in all matlab files to avoid charset issue #37.
89ba0e72 Minor change.
fb21f452 Update macOS and linux post-install scripts to edit also user matlab startup script (not only system's).
6c2b5b0d Update doc links in quick start guide, making difference between local and online doc.
89a45357 Complete/Correct memory management of Faust::Transform by RefManager.
dcfee93d Update license headers and documents.
2a91a4c4 Update the guide for pyfaust install in virtual environments.
5c2b61d7 Add a skeleton for Faust::MatDiag (yet to implement) and a starting test.
7a562862 Minor changes.
c994c303 Update matfaust API doc.
72931da0 Secure Faust::RefManager::release() by raising a runtime_error when an unknown pointer is asked to be removed.
b501d591 Optimize memory usage for slicing and normalization by using Faust::RefManager added by b758c6a3
3fb9018d Add a first implementation and a basic test for the Faust::RefManager which will be dedicated to a memory optimization of Faust::TransformHelper.
2e97329f Make threshold and max_num_its parameters available for matfaust/pyfaust.Faust.norm(2).
29a9211e Refactor the duplicated Faust::power_iteration() codes into one function for all Faust::LinearOperator hierarchy of classes (CPU).
ed7ed28b Add a benchmark script for FGFT algos accuracy and execution time (box plots).
71a68eb7 Document pyfaust/matfaust.FaustFactory.svdtj and fix bug in case of non-square matrix.
cd26d18e Optimize algorithms Faust::HierarchicalFactFGFT and faust::Palm4MSAFGFT.
0b23bbd5 Undo one condition added by ce4d08ad in Faust::prox_sp() because MatDense::getNonZeros() is not optimized with caching.
f787849c Update Faust::spgemm (faust_linear_algebra) to support computation on adjoint/transconjugate matrices.
ba9dbed8 Add pyfaust.FaustFactory.svdtj().
59bc398a Add matfaust.FaustFactory.svdtj().
f960e4d8 Try to optimize GivensFGFTParallel::update_L() by using OpenMP to parallelize the product of each parallel Givens matrix with L but it was unfruitful.
3acd33ab Optimize Faust::GivensFGFTParallel::update_L().
a7917ace Optimize Faust::GivensFGFT::update_L().
97c9d8b3 Minor change: rely rather on Eigen to compute addition in Faust::Vect += operator.
45fc99b1 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'.
d0585ef8 Replace use of MatSparse by Vect for D in Faust::GivensFGFT* algorithms.
1197fa32 Catch exception raised in (pyfaust) FaustFact.hpp when Palm4MSA or Hierarchical PALM algos fail on an infinite lambda.
0a718bc5 Add faust_WHT.h(pp) to move wht factors computation from faust_TransformHelper (Refactoring).
4d0b7343 Refactor fft_factors() code from faust_TransformHelper.h(pp) to algorithm/factorization/faust_FFT.h(pp).
cc7be7a7 Minor change: properly rename Faust::HierarchicalFactFFT to HierarchicalFactFGFT, Palm4MSAFFT to Palm4MSAFGFT and their params classes too.
ff1b04b2 Minor change.
7f4d5e52 Fix bug in pyfaust FaustFactGivensFGFT.hpp, t == 1 wasn't triggering the Givens algorithm but the parallel Givens algorithm.
1cda1295 Fix matfaust for missing return of diagonal eigenvalues arg in fgft_palm (and mex function) and update a API doc.
05a635df Add the alias eigtj() for matfaust fgft_givens() and the verbosity argument to these functions.
f5d02e59 Add verbosity argument to pyfaust fgft_givens() and eigtj() functions.
6ea4b6d3 Write matfaust wrapper to cpp Faust::GivensFGFT and GivensFGFTParallel with unit tests.
0a963162 Minor changes related to GivensFGFT.
375ae80a Minor fix in pyfaust.FaustFactory.eigtj() code example.
39d5bd8b Update license notice and code headers for pyfaust (GNU AFFERO to INRIA license).
9654664b Write the matfaust wrapper for C++ Faust::HierarchicalFactFFT and add a unit test.
9de703ba Simplify/Secure the mexHierarchical_fact function by reviewing the translation of matlab params struct to C++ Faust::Params equivalent.
5524052e Add compute time measure and plot in FGFT benchmarks.
8baeb1f5 Minor change.
0a8babdc Add FGFT error benchmark scripts (python and matlab) and a graph generation script using GSP matlab toolbox.
1e330111 Unhide fgft_givens() in pyfaust, rename eig_palm to fgft_palm and document fgft_palm() and FaustFactory.
11bb527c Update documentation and API for pyfaust FGFT functions.
9abc0d4a Hide pyfaust.FaustFactory.fgft_givens() and rename trunc_jacobi() to eigtj() with a new doc.
94626147 Fix matfaust product M*F (with M a matrix and F a Faust).
21d21ff6 Add a verbosity attribute in Faust::GivensFGFT.
fd37d5ee Minor change.
6f985cf3 Implement pyfaust wrapper FaustFactory.fact_hierarchical_fgft() and add a unit test to validate equivalence to C++.
372734a7 Add a pyfaust trunc_jacobi() alias for fgft_givens() and document it.
324a79d7 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.
06dae648 Implement/Document/Unit-test pyfaust wrapper function fgft_givens() binding C++ core algos GivensFGFT and GivensFGFTParallel.
311459ef Add a TransformHelper ctor signature to authorize Transform object argument to be moved internally (instead of being copied).
0f5c9f0d Add move Transform ctor and move affectation operator overload with a unit test to check it's working.
df3fda37 Document the GivensFGFTParallel C++ class and update doc for GivensFGFT parent class.
7668db28 Update doxygen doc for GivensFGFT.
2bc8a100 Update/Fix a few elements to validate GivensFGFTParallel C++ impl.
e1118da7 Add GivensFGFTParallel and a test (not validated yet).
e1d95ef1 Minor change.
0a10a2b1 Add MatDense::nonzeros_indices() and a unit test.
bf8d666f Add MatDense::lower_tri()/upper_tri() and a small unit test.
e8ebf4bf 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.
a3cf00ed Add new function GivensFGFT::compute_fourier() to return the fourier matrix approximate.
d7987512 Fix MatDense compilation error occurring on Visual Studio by renaming min() to min_coeff().
379970a4 Modify GivensFGFT::get_D() with opt. bool arg. to make possible to get ordered D (in ascendant order of eigenvalues along the diagonal).
fbbc815a Add reference matlab impl. and test scripts for Givens Diagonalization.
771cacf3 Update GivensFGFT test: correction of Fourier matrix approximate, displaying pivot choices (c++ vs matlab).
6cd3f219 Update GivensFGFT::update_err() to calculate the error through the same formula matlab script uses and with a period of 100 iterations.
de96b7d1 Complete GivensFGFT test and add test data test_GivensDiag_Lap_U_J.mat.
4e63fb74 Implement substeps GivensFGFT::update_fact(), update_L(), update_D() and update_err().
d79e8551 Fix missing return in Faust::Vect<FPP,Cpu>::min().
d0396b89 Add MatDense::get_cols(vector<int>) and MatDense::setOnes().
661a37f2 Add MatSparse::setCoeff().
25469778 Implement substeps GivensFGFT::max_L_into_C(), choose_pivot() and calc_theta().
aeff8ace Add MatDense::get_row() with a test.
4174df30 Add MatDense::rowwise_min(), rowwise_min(int* col_indices), MatDense::min() and a test.
df6f1f1e Add Faust::Vect::min() and min(int* index) with a unit test.
9d7cb4fc Update GivensFGFT by adding the main loop calling the substeps with a generic function pointer.
1eebc177 Add GivensFGFT's getters.
2922fbe3 Update GivensFGFT skeleton.
d9c91526 Add C++ skeletons for Givens FGFT diagonalization algo. and a test.
4cd71d69 Update the pyfaust doc for SPLINCOL constraint and add an example.
1bcaebec Update HierarchicalFactFFT, Palm4MSAFFT and their tests.
0b54ea70 Update Palm4MSA and HierarchicalFact python/matlab/C++ tests since 64bbc2f0 modified Palm4MSA when running on a complex matrix.
b10edd22 Handle Hermitian matrix product in gemm_core() function (faust_linear_algebra) and use it in Palm4MSA(FFT) algos.
3fcf374f Fix constraints related bugs in pyfaust.factparams.
529d3e78 Add a first implementation of HierarchicalFactFFT (along with ParamsFFT and a test which compiles).
829b864b Update several elements to finish the Palm4MSAFFT impl.
7f9c00e0 Implement Palm4MSAFFT::compute_grad_over_c(). Fully implement Palm4MSAFFT (in waiting for validation).
a58590e6 Implement Palm4MSAFFT::compute_grad_over_c().
372729a1 Add a skeleton for Palm4MSAFFT with the two methods to override from parent class Palm4MSA: compute_grad_over_c() and compute_lambda().
a7fe01d4 Add MatDense::eye() static function.
c45e3862 Add a skeleton for ParamsPalmFFT.
2a862d9e Minor fix.
a8085742 Minor change.
c9497455 Add a small note about Anaconda env. in doc.
13344ec7 Minor changes.
073c4dac Minor fix in matfaust.faust_fact().
0d77a499 Set tag matlab to gitlab pages job.
cf32849c Add a guide doc for installing pyfaust in python virtual environments.
9b05cf9b Set the cython compiler directives with language_level attribute to avoid error with python 2.7.13.
3b701ea0 New gitlab job tags matlab and tux_packager.
ec52e5ce Delete test_wrapper stage, jobs moved to test stage to increase speed of gitlab ci pipelines.
439032f9 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.
243dd6e9 Fix error on doxydoc generation for pyfaust on Windows and macOS.
59dad04e Add a Windows sub-section in installation section of the quick start guide.
2969c461 Update constraint.png table, add its odt origin file and add the link into matfaust.factparams.ConstraintName API doc.
66293eef Fix missing @staticmethod decorator for several functions in pyfaust.demo (it's mandatory for python 2.7).
d8ba8c1a Document a little more pyfaust/matfaust.demo.runall().
07f17f30 Fix memory leaks in TransformHelper::eval_sliced_Transform() and eval_sliced_Transform().
ddbe6c76 Add a gitlab job for generating a pip package on Windows 10.
808ae0a6 Optimize eval_slice/fancy_idx_Transform() by removing in-heap arrays and fix by the way a bug introduced/revealed by 66166131.
cdf824f6 Update py wrapper cmake script and setup.py.in to compile the wrapper with VisualStudio (instead of MinGW).
657c6a75 Adjust cpp code because of Visual Studio.
2033b428 Minor fix.
2edfb4f6 Minor changes/fixes.
f1736f23 Add zlib and hdf5 licenses.
66280431 Fix a bug in pyfaust.demo due to deprecation in matplotlib.
7bce0a08 Correct error on CI_COMMIT_TAG variable used for windows pip pkg generation.
0e2cc8d0 Use matio static lib when compiling/linking for generation of macOS/linux wheel pip packages.
b09a43ff Strip and set optimization -O2 for py2,3 shared libs.
466037ae Update C++ license header: copyright year and authors.
84dd1f58 Add function pyfaust/matfaust.license() displaying FAµST license ref. and update copyright time etc.
51519b3a Automatize with cmake the insertion of license header in each *.py of pyfaust wrapper.
e2986984 Complete pyfaust.demo API doc and correct few things: function names, arguments by default...
bc53a014 Fix ctest_python gilab job failing on setup.py because of empty cpack version variable, undo workaround e1209bc9.
92cbad19 Add pyfaust.demo.runall(), pyfaust.demo.allfigs().
72629da9 Update doc output folder to always use the name last-doc (gitlab pages job).
4069ff64 Update pyfaust/matfaust.FaustFactory.fact_palm4msa() to optionally return the lambda scalar.
22f98f31 Call pyfaust.ConstraintGeneric.project() parent method in child class methods (for argument M checking).
a916c98d Update pyfaust.factparams API doc, in particular for the constraints/prox. ops.
bd5f048e Include license files (Faust and matio) in pip packages and specify the type of Faust license in pip manifest.
0397ca81 Fix Faust.normalize() for the case: normalizing rows with 1-norm or inf-norm.
813df938 Add utf8 encoding header in demo.py for handling non-ascii characters in python 2.7.
45d5e260 Fix a segfault bug located in c++ Faust::MatSparse::randMat() occurring on Faust addition py. unit test (because of randFaust()).
fdf3f587 Update API doc by fulfilling all brief descriptions of matfaust/pyfaust modules and classes.
cf0ab3a7 Add matfaust.factparams.ConstraintList in the same idea than previous commit did for pyfaust.
bc82167f Introduce class pyfaust.factparams.ConstraintList in the ongoing effort to simplify facto. algorithm parametrization.
8443a17e Fix last commit changes in factparams.py for py2.7 and set the pyfaust/matfaust.ConstraintGeneric class abstract.
d61c7b1c Update pyfaust for handling correctly the simplified parametrization form ( ['rectmat', j, k, s], {'rho':.4, 'P':.7 }).
892e81c6 Add gitlab ci jobs for windows pip-wheel pkg generation and a custom setup.py.
4cf17b83 Update faust.nsi and pyfaust.demo to retrieve demo data folder in different situations: install from nsis package, install from pip package on windows.
38ff7991 Update setup.py to embed the demo data mat files in pyfaust wheel packages.
c242598e Add pyfaust wheel/egg release package jobs and refactor revision pkg jobs.
ee260469 Update pyfaust API doc (fact_hierarchical()).
970a3c84 Update matfaust API doc (fact_hierarchical()) and add ParamsHierarchicalFactSquareMat.m and ParamsHierarchicalFactRectMat.m to doxydoc parsing file list.
a08c510f Add ci jobs for pyfaust egg/wheel revision packages generation.
a97e62c2 Allow temporarly the failure of ctest_python job without breaking the CI pipeline.
989eb180 Catch exception when Faust.save() fails in dynamic library to avoid python/matlab script to crash.
744c36ea Fix of minor bug introduced in pyfaust.FaustFactory.fact_hierarchical() by a514bcb5 or 68796c85.
3a8a43df Update API doc for matfaust.FaustFactory.fact_hierarchical().
9547f51e Add pyfaust/matfaust.faust_fact() as a shorthand for FaustFactory.fact_hierarchical().
4cdb3e05 Minor change.
d8ddeaa2 Return to caller the parameters used in FaustFactory.fact_hierarchical().
5472bc28 Prepare setup.py to generate eggs and wheels binary packages.
ab78d4db Bind into pyfaust the prox operators from cpp core.
a74ae436 Bind into matfaust the prox operators from cpp core.
903047b2 Minor change.
667dd0bf Allow to get back lambda from (matfaust/pyfaust) FaustFactory.fact_hierarchical().
b1530d72 Add pyfaust/matfaust.factparams.ParamsFactFactory to build in transparency the simplified parameters (ParamsHierarchicalFactSquareMat/RectMat).
d8cb2db0 Impl. MEG/Rectangular matrix factorization simplified parameters.
6fd439a4 Impl. hadamard hierarchical factorization simplified auto-parameters.
6bb158a5 Do for pyfaust the same as the previous commit (f10ca9b3) did for matfaust.
6d3d5f65 Modify matfaust.factparams.ParamsFact and sub-classes to decrease the number of mandatory arguments.
688c6b34 Change expire duration for revision packages: from 6 months to 1 week.
818c03a6 Update pyfaust according to what the previous commit (78e526cd) did for matfaust and add function FactParams.is_mat_consistent().
c8b4bc5c 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().
95936673 Add alt. signature to Constraint* constructors to ligthen instantiation code (pyfaut and matfaust).
413d61b7 Fix matlab fft demo: re-add add tool scripts erroneously deleted by eee2ad44.
034836b0 Minor change.
96f20abe Filter out from API doc the signature Faust(varargin).
6c4ffc69 Add uncomplete doc for both pyfaust and matfaust Faust.normalize().
c3076ec4 Extend pyfaust.Faust.normalize() and add unit tests.
d6179842 Secure Faust.normalize(): avoid trying normalize zero vectors (kept to zero).
c63541ff Add a wide covering unit test for matfaust.Faust.normalize().
83da89f9 Extend matfaust.Faust.normalize() to other available norms than 2-norm and for row-based normalization.
d8f3b90c Add figure plotting of bsl demo distance to sources (in pyfaust).
7bd89fbb Add figure plotting of bsl demo time comparison (in pyfaust).
8dc6b370 Add figure plotting of bsl demo speedup (in pyfaust).
464c0b79 Port BSL matlab demo to python into pyfaust.demo.bsl class.
c8308d49 Add pyfaust/matfaust.Faust.normalize() (currently normalizing only with the 2-norm).
8a43cd21 Extend pyfaust/matfaust.Faust.get_factor() to return a Faust composed of a sub-sequence of another Faust factors.
51a4403d Fix minor bugs in pyfaust.demo.quickstart.run().
f0594586 Port the Greedy OMP Cholesky algorithm from Matlab to Python in module pyfaust.tools.
00cfde5d Enhance and secure FaustFactory.eye(), add doc.
397ba846 Update pyfaust/matfaust API doc, in particular for Faust addition and substraction.
36957e8d Disable Faust constructor auto-opt. of factors by conversion to sparse from dense or inverse.
3da00f07 Add the function pyfaust/matfaust.Faust.isFaust().
493f1f7e Add the function pyfaust/matfaust.version().
e7870cfd Minor change.
6d97cd7a Add new function FaustFactory.eye() and modify/add/fix several things about concatenation, addition, substraction and real-complex conversion of Fausts.
8d0bfec8 Implement in pyfaust addition and substraction between Fausts or Faust and scalar.
4df8cd0d Implement in matfaust addition and substraction between Fausts or Faust and scalar. Add also unit tests.
8da6dd57 Impl. for pyfaust the division of a Faust by a constant, add also unit test and doxydoc.
9d0d5769 Impl. for matfaust the division of a Faust by a constant, add also unit test and doxydoc.
74c5f368 Impl. for pyfaust the multiplication of a real Faust by a complex Faust and add a unit test.
87cd5fb9 Impl. for matfaust the multiplication of a real Faust by a complex Faust and add unit test.
b5c87e8f Impl. for matfaust the mul. of a real Faust by a complex scalar, add related unit test along with Faust.complex().
e597a186 Impl. mul. of a real Faust by a complex scalar in pyfaust and complete mul. unit test.
bed5f630 Minor change in pyfaust unit tests.
64784b37 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.
cb487b60 Add pyfaust.Faust.pinv().
b438ce6e Add documented matfaust.Faust.mldivide() and pinv() functions.
f07e1ded Handle negative indices when slicing in pyfaust, add related unit tests.
ee0841db Update API doc and fix in matfaust.Faust the horzcat() and vertcat() functions (varargin wasn't set).
d10ec961 Minor change in pyfaust unit tests (same as 31fc9f9d).
0f0569e4 Block explicitely pyfaust.Faust fancy indexing when used in the both dimensions.
7ec7d55a Forbid slice step == 0 in pyfaust like numpy.
60b9005f Add pyfaust unit tests for 322c8533 (slicing with arbitrary steps).
5c6ecf88 Handle negative and >=1 slice steps in pyfaust and do the same as what 8db762bf did for matfaust.
2995b705 Minor changes in pyfaust slicing unit tests.
7d9ec383 Block in matfaust the kind of Faust indexing that create empty Faust and fix by the way bug of issue #30.
b97bbaf0 Add matfaust.Faust unit tests for indexing by vectors and slicing with negative steps, fix by the way a bug.
992ba784 Re-enable the slicing test using negative step thanks to e6faabc8.
1fc6e6d6 Add indexing by vector in matfaust.Faust.subsref() binding it to C++ core impl.
6966918a Simplify matfaust.Faust.subsref(): less lines same results with a loop (one ite. per dim.).
e3e8ac6d Add unit tests for pyfaust.__getitem__()/fancy indexing and fix a bug occurring for a 1-factor Faust fancy indexing.
a127751d Start implementing fancy indexing for pyfaust.Faust.__getitem__().
0bf0bd61 Add matfaust.Faust.imagesc() and pyfaust.Faust.imshow().
01ee148e Rename (py/mat)faust.demo.hadamardfact to (py/mat)faust.demo.hadamard.
1a5d7ce0 Rename in FaustFactory, hadamard() to wht(), fourier() to dft() (both for pyfaust and matfaust).
a02d45e7 Transform matfaust.demo sub-namespaces into classes to be consistent with pyfaust organization.
ffb56c67 Add the plotting part of the norm hadamard pyfaust.demo.
0e0cc6b8 Port the computation part of matfaust.demo.hadamardfact.norm_hadamard() to pyfaust.demo.hadamardfact.
9857958a Fix a bug in matfaust.FaustFactory.fact_*() functions: the parameter is_update_way_R2L was ignored.
2a4e557b Update API doc.
91db967f Port matfaust.demo.speed_up_hadamard to pyfaust.demo.hadamardfact.
3371a7ad Disable unit test assuming an empty faust is authorized (because it's not since 097e9e43).
61dd93ce Update pyfaust/matfaust.Faust constructors to handle Faust(A) where A is a matrix/array and to forbid empty Faust creation.
8f5a9daf Complete pyfaust.demo.hadamard_fact with computation time gathering, result save and plotting/saving figure.
4e3ac8f1 Start the python port of demo_fact_hadamard.m into pyfaust.demo.hadamardfact class.
dea257d4 Fix a small bug in FaustFact.hpp: the switch case was missing SPLINCOL constraint type.
d0c51d28 Fix minor bug #67.
309b2659 Group factorization parameter classes into matfaust.factparams namespace.
80a4b818 Fix a bug in cmake ctest cmd for launching quickstart demo.
62ca9818 Merge pyfaust.params and pyfaust.constraints into one sub-module pyfaust.factparams in order to simplify pkg organization.
0ee027b9 Integrate python quickstart script into pyfaust.demo module.
b772ea99 Generate doxygen doc for pyfaust.constraints, pyfaust.params and pyfaust.demo and add a script to avoid fake namespaces generation.
078aa633 Simplify pyfaust.demo old sub-package to a module with fft, runtimecmp old sub-modules being now classes.
24c7377d Add pyfaust demo scripts (ported from matlab: fft, runtimecmp).
efa484d8 Minor fix.
0629720b Add in pyfaust and matfaust.FaustFactory.rand() the possibility to set the density per row or per column of each factor.
b657e30d 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.
c4bbdb8a (Unit)test faustpy.Faust.concatenate() for more configs.
23469329 Change the boolean is_real argument of FaustFactory.rand() to str 'complex'/'real' (for both pyfaust and matfaust).
2294eb63 Reorganize the pyfaust module into a real package with submodules.
c7adcadd Minor change.
5791b17d Avoid creation in demo scripts of output or Figures folders if exist already.
fe228306 Minor change.
8f08db70 Remove totally misc/demo folder with its cmake scripts since all the matlab demos and data are handled by wrapper/matlab/CMakeLists.txt.
5381d615 Fix memory leak in Faust::TransformHelper::randFaust() (issue #63).
a10e6a9e Move misc/demo/run_all_demo.m to +matfaust/+demo/runall.m and enable it for doxydoc parsing.
f96c6a53 Integrate runtime cmp matlab demo scripts into matfaust.demo namespace.
890a62d5 Integrate bsl matlab demo scripts into matfaust.demo namespace.
e5d58eec Integrate fft matlab demo scripts into matfaust.demo namespace.
46f20745 Automatize/simplify the listing of *.m files in +matfaust and their copying/parsing for matlab inline doc.
59dd549a Implement in matfaust.cat() the recursive concatenation of n Fausts/matrices and update the API doc.
f8934a6d Implement in pyfaust.concatenate() the recursive concatenation of n Fausts/matrices.
a089fa35 Enhance speed of continuous integration by removing dmg generation (macOS) and passing cmake option BUILD_TESTING=OFF for all packages.
06511ff6 Integrate quick start matlab demo scripts into matfaust.demo namespace.
63e408e7 Minor change.
1440351e Fixing issue about not visible brief descs of vertcat(), horzcat() (raised by issue #50).
4524fc93 Implement the sparse/full-matrix-to-Faust concatenation with on the fly matrix-to-Faust conversion.
66e90076 Disable display of Faust small factors by adding an optional-default-to-false argument to to_string() and Display() functions.
73d2fb95 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.
ba835d3f Fix a bug in complex case of concatenation in matfaust.Faust.horzcat() and vertcat().
c9d4188d Minor change.
1d29dfec Add sub-namespace +matfaust/+demo/+hadamardfact with the demo scripts associated and integrate them to the doxydoc.
98d960ae Fix a bug introduced by 68648185 into Faust::TransformHelper::fourierFaust().
8a7cbfeb Add to Windows build the conversion from doxy. doc to matlab inline doc.
ffd64df4 Convert doxy. doc. to matlab inline doc for all classes of matfaust namespace.
e60cbc51 Minor change in matlab inline doc generator.
19a43a67 Add code doc. for pyfaust.concatenate().
6d00170b Minor change.
e86091f8 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.
65e2e0a6 Add code doc. for matfaust.Faust.cat()/horzcat()/vertcat().
541447c7 Remove a line about scale arg. in code doc. Should have been removed by 3b3f82e5.
27c2e582 Manage out of memory errors for FaustFactory.fourier()/hadamard() and limit order to 2^31.
8e507563 Add a unit test for pyfaust.Faust.concatenate().
67c6974a Add a unit test for matfaust.Faust.cat/vertcat/horzcat().
a64f11a6 Implement concatenation of Fausts in C++ and bind the wrappers py/matfaust to it.
46498651 Add new static function Faust::MatSparse::eye().
34caf175 Make the cmake option BUILD_TESTING useful by ignoring test compilation if set to ON.
124204c0 Modify slicing part of old test script for pyfaust because of d6d75e96.
a971c28b Add unit tests for Faust mul. by a real scalar (pyfaust and matfaust).
4f28eb9d Add unit tests for pyfaust.Faust.size and equiv. matfaust.Faust.numel.
79dfc22d Fix a bug: pyfaust.Faust.__getitem__() returns a Faust when indexing an element F[i,j].
c408f913 Fix windows package missing demo. mat files.
9bc2e64f Handle mul. of Faust by a cplx matrix in pyfaust and add unit tests.
c70d2241 Update demo scripts to conform to last changes in API.
2d229740 Overload in matfaust.Faust the functions reshape, cat, horzcat, vertcat only for blocking their utilization clearly.
964f4970 Implement inf-norm for pyfaust/matfaust.Faust and validate with unit tests.
aa3d3c7f Slightly modify unit test for matfaust.FaustFactory.fourier().
244bdbab Fix a bug and add related unit tests about slicing a Faust and then slicing again the sliced-Faust.
363e66a1 Update the API doc.
b01a39ab Enhance FaustCoreCpp initialization by avoiding to create an empty/useless Faust::TransformHelper() into the default constructor.
338f2fc7 Optimize Hadamard and Fourier Faust::TransformHelper initializations (avoiding to copy the factor matrices created, directly using them).
748bf022 Hide scale argument in constructors matfaust/pyfaust.Faust() and display a deprecated warning if used.
a0f7bf43 Implement the commutativity in the mul. of a Faust by a scalar in matfaust.
bb0428fe Update quick start README and API doc.
ac1f3d00 Bind pyfaust to C++ impl. of Fourier Faust and add a py unit test for it.
51854821 Implement Cooley-Tukey in C++ and bind it into matfaust.FaustFactory.fourier(). Add a related unit test in FaustFactoryTest.m.
3ad43f82 Fix a bug in matfaust.Faust.get_factor() happening when the Faust is conjugate(-transpose).
2a4207e2 Add a unit test for matfaust.FaustFactory.hadamard() into FaustFactoryTest.
6b72c461 Bind the C++ impl. of Hadamard-Faust into matfaust.FaustFactory.hadamard().
22b99e8a Add a unit test for pyfaust.FaustFactory.hadamard().
507f4700 Implement Hadamard-Faust in C++ and bind it into pyfaust.
4ca0b570 Add a small unit test for pyfaust slicing.
d3d3cc21 Simplify the C++ impl. of Faust slicing and fix a mem. leak.
5eb91416 Implement multiplication by a scalar in pyfaust.Faust.__mul__().
612a88d6 Implement multiplication by a scalar in matfaust.Faust.mtimes.
4c160adf 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.
60edffa4 Update the doxygen doc's main page and the quick guide.
3d91797d 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.).
a870fb67 Minor change.
03dae3fa Minor change.
80b0cbf1 Update the main doxydoc page and the quick guide README.
e0057a05 Fix a bug in matlab inline doc generator script.
335589fc Erase build directory if exists before building for Windows installer generation.
3a99953b Specify automatically the exact python 3 major-minor version used in README doxygen/html doc.
3164e6a9 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.
7c0698b8 Make Palm4MSA and HierarchicalFact. algos compatible with complex matrices (C++, Matlab, Python).
9306b220 Update doc.
b5c89cb4 Add a new way to find python2 in cmake script.
263528aa Minor change.
b94130ff Review slicing in pyfaust.Faust.__getitem__() and matfaust.Faust.subsref().
6e110ddd Change the default norm computed for a pyfaust.Faust to Frobenius norm.
18a1d95b Fix bug in mex cpp code for matfaust.Faust.display(): Windows version prints nothing in Matlab terminal.
de9cf834 Correct the matlab path to matfaust namespace in windows installer generator script.
65e53826 Add a gitlab yml job to generate a Windows installer for each git tag.
0e4fe835 Update gitlab yml job and nsi script to generate API doc for each commit and deliver it into Windows installer.
f62a277f Modify slightly cmake scripts to be able to generate doxygen API doc on Windows.
e5b8387a Add a gitlab yml job to generate a Windows binary package for each commit.
ca322104 Add NSI script for binary packaging of Faust on Windows platforms.
c3b106db Add pyfaust wrapper compilation support on Windows using MinGW.
41631fd6 Move above in the script the c++11 detection to fix a bug occurring with mingw compil. of faust (windows).
75caec5f Reenable Windows nightly tests.
744f2189 Update cmake scripts for matio header inclusion and library linking for Windows.
3b2f0d5a Simplify the bug fix made by 41312154.
b078abf7 Fix bug affecting MATLAB_ROOT path separator when using MinGW or gcc on Windows.
8cecb7db Ensure to return sparse factors in Faust::Transform object resulting of Palm4MSA and HierarchicalFact for the two wrappers.
19b9be71 Add Faust::transform() constructor for definition by MatSparse factors and fix bug in scalarMultiply().
0a3386ac Block matfaust.Faust by sparse matrix multiplication and display error msg.
8ad07584 Fix bug in matlab wrapper unit tests launching.
7244ac2a Add factorization algos unit tests.
64261b49 Separate constraints argument of Hierar. fact. in two args: factor and residuum constraints.
f6ba6b16 Remove from matlab doxydoc the function argument direction modifier: 'in'.
878f401f Verify pyfaust.StoppingCriterion construc. arguments consistency.
4d8dfac1 Minor change.
5b0123c1 Prevent explicitly complex matrix factorization.
f1660ddb Move totally Faust.rand() to FaustFactory.rand() and update API doc.
8dabef6e Simplify the way init_facts is used/defined in both matfaust and pyfaust FaustFactory.
17c9d8bf Update pyfaust wrapper (constraint and param classes for facto.).
be9ec34c Add FaustFactory.rand() in pyfaust and matfaust. Update FaustFactory API doc.
1ca0c9f8 Add matlab wrapper for factorization algorithms (palm4msa and hierarchical fact.).
3f5f518d Add function Faust::StoppingCriterion::Display().
e8e874d0 Add py wrapper for factorization (both palm4msa and hierarchical fact.).
186df11e Complete the cpp unit test for PALM4MSA.
2741ed28 Add a new constructor to Faust::StoppingCriterion.
bb7699d1 Add a new constructor to Faust::TransformHelper.
9990db4c Add the capability to do an optimized copy of factors to another Faust::Transform's constructor.
3730fd3f Fix cpp delete error.
cf7a3ee0 Minor change.
b2b682e4 Update gen_matlab_inline_doc_from_doxy_blocks.sh to make it work on macOS.
1029faaf Minor changes.
cd539411 Minor changes.
3f3f06b2 Minor changes.
b9791a51 Update API doc (py/mat).
060f073d Change display function for a Faust.
10720cb9 Enhance random Faust generation.
3fd33fdf Disable gen_matlab_inline_doc_from_doxy_blocks.sh on macOS because currently the script works only on Linux.
fcdb75ab Add expire dates for packages sent to gitlab and keep a local copy of revision pkg for macOS.
bec686d8 Add equivalent functions matfaust.Faust.numel() and pyfaust.Faust.size().
74eef57f Fix in cmake script a bug introduced by e92d4bc6.
c13a79c6 Fix missing namespace matfaust in matfaust.Faust.mtimes_trans() (next to 3f4d86cc).
270b1683 Update post-install script for py. wrapper (in next to edfcad65).
b6350ed5 Check that bounds are respected in matfaust.Faust.subsref().
7baa3513 Create a namespace for matlab wrapper: matfaust.
000aa27e Add a script for editing Faust.m to generate a Matlab inline doc from doxygen code doc.
ada0c0d6 Bind the C++ faust mul. (cb58f3a9) into matlab wrapper Faust.mtimes().
9a2a3051 Implement the mul. of two Fausts in C++ and bind py. wrapper to this impl.
23e012df Bind matlab Faust.susbref() to the new impl. of slicing/subscript (c4c2c431).
96ec38f9 Minor change.
45fc79d4 Fix Faust::MatSparse::get_rows/cols(): nnz wasn't updated in submatrix.
b6266a3b Reimplement completely pyfaust.Faust.__getitem__(): now it returns a Faust object instead of a ndarray.
931956ae Update API doc.
f1e8f320 Rename module FaustPy to pyfaust.
7cf2e14d Replace FaustPy.Faust.isReal() by a dtype property.
a0c1e8e8 Add property decorated functions FaustPy.Faust.H() and FaustPy.Faust.T().
3df5a15a Add postinst. script for macOS to open the readme automatically after installation.
b354a3d5 Set Faust.rand() more flexible in both wrappers by changing arguments (polymorphism).
687509f0 Temporarly disable Linux nightly tests.
743fe5d7 Rename matlab wrapper Faust.get_fact() to Faust.get_factor().
25149d10 Exclude Matlab wrapper functions mtimes_trans and subsasgn from doxygen doc.
39d662ae Rename Faust.todense() to Faust.toarray() and add a new Faust.todense() which returns a numpy.matrix.
ef586bb2 Update API doc.
def1ee7a Rename FaustPy.Faust.get_nb_factors() to get_num_factors() and likewise for matlab wrapper get_nb_factor().
cd5da73e Modify the way identity matrix is initialized in cpp unit tests for mul.
62cc76a2 Fix wrong display of Faust transpose and update API doc.
89a1275a Override default __repr__() in Faust class and use it to refactor display().
bac3976e 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.
c5e67ca6 Delete FaustPy.Faust.get_nb_rows()/get_nb_cols().
23ac7a8a Rename FaustPy.Faust.size() to shape and use a property (decorator) instead of function.
1ab8e81c Rename nnz() to nnz_sum() (in matlab and py wrappers).
37ee5123 Minor fix in test script.
0004e5b2 Rename RCG() to rcg() (matlab and py wrappers).
7ba20186 Update guide doc.
34692403 Add a new cmake option (and impl.) to generate a README with install. instructions for all systems.
86468b83 Install macOS release version into prefix /opt/local/faust like for linux (removing tag from folder name).
1a901d58 Update readmes and their generation cmake script.
58efd773 Limit the gitlab-pages directory to doc/html (not the whole doc anymore).
71c830c3 Update doxygen mainpage.md
adaee785 Update macOS installer readme.
97fc14bd Send packages linux and mac to gitlab.
8fe7be47 Update API doc.
c060da2f 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.
7ffaccb5 Update API/code doc.
d55e0ba5 Plot RC/density instead of RCG.
0b037e09 Fix bug in Faust::Transform<FPP,Cpu>::updateNonZeros().
63bb1f16 Update API/code doc.
fd72d1b3 Fix python unit tests for RCG and density next to the fix c586c85b.
5fead365 Fix constructor ignoring of multiplicative scalar when Faust obj. is constructed from a file (matlab wrapper).
f63d27b9 Add a faust test script showing how the .mat file size is related to RCG.
79230b49 Fix Faust.density() and RCG() for Py2.
f9669775 Implement multiplicative constant to apply to a Faust at initialization time.
129688d4 Handle also sparse matrices (csr_matrix) in list_factors argument of constructor Faust().
6aad9cc4 Minor change.
f606396a Fix wrong index bug in one constructor Faust::MatSparse().
7d386c57 Add a script for showing truncated SVD accuracy versus the RCG.
a0acaa1e Minor change.
9481bb03 Add gitlab pages with doxygen doc for each tag.
68e70613 Add pkg postinst. script to symlink matio if needed on debian/ubuntu sys.
a2950f2c Shorten the commit sha to its unique eight first digits in package names and versions.
fa923e9a Replace in doxygen doc the static date by the date of generation and display the cpack package version.
751766fa Enhance deb/rpm post-installation script for matlab wrapper (more info and verifs).
56f48b0f Enhance deb/rpm post-installation script for python wrapper (more info and verifs).
daa2823d Generalize matio static libs option to matlab in addition to python (143be5e4).
c6ba730c Add a new package generation for linux using static libs for python wrapper.
207f423d Refactor raw coded data about matio from setup.py.in to CMakeLists.txt.
332abefa Compile and test for python2 even if python3 is found and likewise search the two versions of python and cython.
0e7ad113 Minor changes.
178f31cb Minor change.
53dd03fd Add missing description for RPM package (based on debian pkg description).
2b2af0ca Minor change.
d1987824 Replace URL http://faust.gforge.inria.fr by http://faust.inria.fr in a lot of files.
4a9f2ea8 Minor change.
1ea25ea1 Avoid to exit in matlab postinstall script.
70f0ac5a Add a new postinstall script specific to macOS.
bbd03582 Remove /opt from auto filelist for rpm package because it's a conflict with filesystem package.
a3820f88 Specify dependencies for rpm package and filter matlab's.
2fb2b58d Update py wrapper doc.
304d04d7 Filter more properly the doxygen doc when excluding C++ doc/static lib to keep only Python and/or Matlab wrapper doc.
a84a680b Add package postinstall script to automatize py wrapper setup.
67c8808a Fix memory leak in Faust::MatSparse::randMat().
39ab8abb Add Faust.rand() to the matlab wrapper.
29666d98 Minor change.
54bd1255 Minor change.
281ebfe8 Update py. wrapper code doc.
765f513c Minor change in Matlab unit tests.
f93d9869 Fix two randFaust() bugs on MacOSX/clang/py2.7.
f658f1e4 Fix bug in py wrapper display() occurring for complex Fausts.
cc6e1be1 Add a random faust generation method in cpp lib and py. wrapper.
6afed193 Enable cmake code for C++ version detection and corresponding compiler flag setup.
80294b35 Implement Frobenius norm in cpp core lib. and bind py and matlab wrappers to it. Add related unit tests.
3ddb1815 Implement sparse matio/matlab file output for Faust factors with support of real and complex scalars, Faust's conjugate and transpose.
5c9d2cf0 Fix bug. Prevent save of empty Faust.
9fa87a55 Add L1-norm to core cpp lib, py. and matlab wrappers. Also add unit tests for this norm for py. and matlab.
0ce04cbb Minor change.
c7814fb7 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.
ce364670 Implement Faust over complex field into Python wrapper and add related unit tests.
21b920f7 Minor changes.
cbb49a53 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.
79a9fd03 Add unit tests for Faust deletion.
38d6bfd1 Move to a weak reference design pattern for Transform objects used in wrappers. Fix memory leaks for Transform.
3a41ff0d Add unit tests for Matlab wrapper Faust class.
48678a84 Slightly modify unit tests for norm(), __getitem__() and test params (num. of factors and dimension sizes).
9edf6d71 Handle save of complex or complex-transpose faust in Faust::MatDense::toMatIOVar().
058917e5 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.
1c4dd74e Add unit tests for not covered yet FaustPy.Faust functions.
32b5b9b4 Minor change. Simpler code and review error condition in mexFaust.cpp save() function.
05aa2ea8 Remove flag CMAKE_BUILD_TYPE=Release because it fails package generation for Linux.
779c8b82 Add matlab doxydoc if matlab wrapper is built.
c4b72939 Add post-installation scripts into packages for auto-setting matlab wrapper path into a matlab startup script.
8507413d Remove wrapper language specific code to save a Faust (Py and matlab).
13a79d03 Add doxygen code doc generation for the Matlab wrapper.
c0c5ac62 Add a Matlab unit tests class for Faust class defined in Faust.m.
58136e70 Fix and factorize Faust.delete().
65b16b8d Include licenses and README in MacOSX packages and doc directory at installation stage.
9fb1f229 Set the linux package version accordingly to the git commit/tag.
0ad1bdcb Add a unit tests script for Python wrapper main class FaustPy.Faust.
8860f2dc Fix bug into Faust::Transform::save_mat_file(), the number of faust factors saved was always two.
236f92ef Document the code by making profit of doxypypy and do other minor changes.
978e0103 Temporarly disable Windows nightly tests.
cd32e939 Check that FaustCorePy.get_fact() index argument is in correct range.
aac41383 Add API generated documentation files to packages.
1c9780d1 Bind matlab wrapper to Faust::Transform::save_mat_file().
99cb43d3 Minor change.
3d53c54f Add libmatio dyn. lib. to MacOSX in ci package generation.
e7b20f22 Add in core cpp lib the capabililty to write a FAuST into a Matlab file and link the Py wrapper to it.
a50cb6a2 Minor changes.
37374535 Remove empty definitions of multiply() in MatGeneric and replace by virtual pure function members.
c28e7c3b Make also a package with pkgbuild for MacOSX.
a5f6f49f Add FaustPy doxygen doc. generation.
39950dc4 Fix Faust.get_factor() for the transpose case and add related tests into quickstart.py.
80e429fb Add functions in the Py wrapper: size(), get_factor(), save() and adapt the constructor to read a Faust from file.
7dc4cc62 Update README.
d94b5f02 Add ftp command to upload package for linux.
ebd3f5e1 Minor change.
b8fd76bb Convert README from txt to Markdown.
3a70f2e0 Add methods to Py wrapper: nnz(), density(), RCG(), norm() and get_nb_factors(). These methods are already in Matlab wrapper.
0abc18d2 Install doxygen doc for core c++ API if core library's installed.
9a052a98 Strip binaries in Release build mode and optionally exclude core faust lib.
880ef58a Exclude git tags from non-related ci jobs.
34e8dd76 Reindent the code.
315f22ff Correct error in R2016a/gcc versions requirements.
9a365f4c Add ci jobs for packaging when git tagging.
095540a1 Minor change.
cb5ae67b Exclude clang/llvm from gcc/matlab versions verification.
4e69d1b9 Add tags and except sections to ci job for linux packaging.
c1217fd4 Add a ci job for packaging faust on Linux (only rpm and deb).
607bc2bf Check gcc version matches with Matlab's, block compilation if not.
aae2e903 Update MacOS packaging job.
26700192 Exclude scheduled ci pipelines from revision packaging job and add the commit sha as a suffix to package name.
fb11c63e Add switch to sudo in order to get pass from stdin.
5e3b8ff2 Add a new ci job for packaging faust on MacOS X.
0c009dad Avoid plotting faust time for py wrapper test when we are in test env. (with no display).
9adedc42 Fix bug with a matrix-vector product into py wrapper test.
6b4c5adf Fix 2 minor warnings in cmake scripts.
ef94ad2d Fix numpy array access bug, issue #9.
4920e0a8 Add gitlab ci job for Win7.
4877b215 Update CDashConfScript.cmake for Windows.
f80cc738 Decrease ci test time and add specific jobs for macos and linux nightly tests.
d2152258 Change installation prefix directory for testing.
28361250 Update CDashConfScript.
517c5fe2 Remove useless command ctest_empty_binary_directory().
99359a0d Remove useless ci job tags.
12b8bf77 Rename CDashConfScriptLinux.cmake to CDashConfScript.cmake.
eda3a100 Separate gitlab ci jobs into quick and slow jobs and add job tags for win and macos.
3345b23b Fix clang compilation error in matlab wrapper.
a171b435 Fix test related cmake error on Windows.
8fb7b266 Fix matlab mex compilation error on Windows.
25f30632 Fix bug with matlab environment probing on Windows.
f77381ad Add python and matlab wrappers to linux tests.
d4c88fb9 Update in order to make python3 available.
fbd6f253 Fix gcc/linux compilation errors for types uint32/64_t declared twice.
35db3ee7 Add CDash/CTest site name.
bf542555 Add ci yml script and ctest/cdash script called by it.
0b2fd719 TODOLIST.txt
0601af68 docu TODOLIST developper
19d866ec README wrapper python
676de5db CTest_nightly : script.sh
f8f3af7c test update message error
6ada935b ajout doc gettingStartedFAuST-version 2.1
507d7751 various little change
86a5a445 reorganisation/documentation test
1e234533 test VM option de config BUILD_READ_XML à OFF
a931a60d documentation wrapper matlab
53bf1423 documentation developpeur wrapper matlab
eb12bb43 documentation CTest nightly
5905a872 bug installation
38a498c6 doc gettingStartedFAuST-version2_1 + wrapper python doc
9e00233c matlab wrapper conj raise error
815f618f test wrapper python
56c08f9b wrapper matlab operator .' not implemented
1a55a9a0 documentation wrapper python
88c94d53 doc
1ec6010d wrapper python : installation dans homedir/Documents/PYTHON/faust
98851c33 demo experience speed_up_Fourier
a1686773 matlab wrapper : compatibilite multiplication faust reel avec matrice complexe
98538c51 wrapper matlab resolution bug demo speed_up_hadamard
bff69e68 [wrapper matlab] generate_Faust_config with various density
fe2d51a5 wrapper matlab : compatibilite matrice sparse et complexe
4460c123 src/cblas_algebra / throw error for complex scalar (gemv / gemm)
dc831489 wrapper matlab test : multiplication by complex vector/matrix test
52a718fc wrapper matlab [compatibilite complex test MATLAB_FAUST_CONFIG_CPLX1 Ok !
52365af5 wrapper matlab compatibilite avec les complexes : structure du code OK, reste à implémenter le coeur des fonctions
db99f6c3 wrapper matlab : mexFaust (preparation a la compatibilite complexe)
a9c11edf [gen_doc]Annexes : MATLAB MEX
39ea4c04 wrapper matlab check scalar compatibility (real only compatible with real, not complex)
71834d5d ajout method isReal a la classe Faust::Transform
a46390d7 compatibility with complex scalar : unitary test
183245f6 wrapper python compatibility with MatGeneric
af97f67d wrapper matlab test
548c1fba solve pbm test CMakelist
d743a579 reorganize wrapper matlab faust test
52b270b6 wrapper matlab resolution bug
be93c51d MATLAB wrapper (debut compatibility Faust::MatGeneric)
6595c621 avoid memory leak due to std::vector<Faust::MatGeneric*>, solution: create virtual destructor for abstract class Faust::MatGeneric
e6e6c657 oubli fichier commit 1103
741fa57e faust_transform peut etre multiplié avec des matrices denses
9db54c4c C++ matrice generic clone intelligent
892844c6 ajout fichier recapitulant les log
cbee35d8 [trunk] merge avec branch Faust_mat_generic : les faust sont une liste de matrice generique, pas forcement des matrice creuses
038c2917 class faust_transform attribut t_multiply_vector mutable
4612a6b2 wrapper Python ajout fontionnalite slicing F(2:3,4:7)
84b2e826 renommage wrapper Python class Faust
e4fdff14 wrapper python : ajout operation transposition nouveau module FaustPy
dd70163d modif AL doc latex doc GPU
c56cd213 modif gpu test include
9d928dfc readme modif
1163b9b0 image latex
62bf678c wrapper python : test method todense
dc01b44c CTest nightly wrapper python mac
7a0e987c readme faust
7f098efc wrapper python : module matplotlib
946eab69 wrapper python : compatibilite scipy version
14ce0f07 python
ba94e14e wrapper python test
7e6e188a wrapper test python
ee3cb1e5 wrapper python test comptime
2389c6b4 modif readme
16201d56 new readme 4 dev
dbadcfc4 modif cmakelist
7ccf2028 readme
5483f29b doc faust
443e49d4 modif option name 4 Matlab and python wrapper
a7491abf wrapper python : test VM ubuntu Openblas
4466eb1a wrapper python : compatibilite avec openblas
0139a3e1 script CDash avec Python machine Linux sans openblas
e7a5114c wrapper python adaptation ubuntu
95d035b5 python wrapper : check if module cython and numpy are installed
8de46a58 wrapper python : find cython module
7bdbae3c wrapper python ajout test
6500873c AJOUT wrapper PYTHON
b7928546 name package
5ec58e0e doc latexPDF
dc2e9c7a modif doc latex
961d99c1 Corrections doc
b79b0275 name package
d91601fc modif readme
52e25cb0 modif name doc
4c8fc7d8 doc latex clean
d163b583 latex pdf
27cba9c7 modif name
a8d9cc8f modif name
37191c4e modif name
bbe51be6 modif name
bfc4398b modif doc latex
c1770c4a cpacke source clean
2e649ba8 modif latex
805edf5d modif Latex
b5d330f6 doc latex
120b0959 renommage experience factorise 2 factorize
a51caf10 doc LaTeX
65f7b081 license pour le wrapper matlab
a846a996 license tool de la demo MATLAB
2cff1ef8 Doc Latex chap QuickStart et Working Progress
046fb694 rename pdf
64ac899a add pdf start
0fd24b24 modif latex
a45fb322 modif latex
dd756137 modif latex
34d9b74c doxygen
478d4f6f modif files
a360c72b delete Description file
b5e1b28d modif name PDF
8f8c0041 modif latex
e8e29122 modif faustpdf
b876cbce delete log
260e0e9a No binary install directory for version 2
28a9b481 doc doxygen
ebf58863 doc latex
59ae6ccd doc LaTeX
03279e20 modif doc latex
f53067d6 bug Faust à 1 facteur solved
9f60fac0 doc latex construct Faust from matrix
53505034 MATLAB class Faust subasgn
b2c6ed63 undo test Mac Xcode
ae0d5ddd enlever test pour VM Mac sous Xcode
f17ad140 doc Latex
08b8a9b7 pdflatex
02cfdd74 image latex odp
9c67bef5 image latex
705560c1 Faust structure pdf image latex
3cf14ea8 doc latex
98de005d doclatex
816b4f73 doc latex
8eadf280 header cmake
7d619cbb delete useless .cmake file
009c42fe doc latex
c74731ac header matlab bat file and delete useless bat file
eec19046 doc latex
ced8d267 header batch file
447f2a0e header dans fichier *.cmake
8a23b723 demo fact hadamard bug solved
526d3b78 new VM MAC Xcode
37186eae modif G build 4 ctest
d9158c3c matio and xml not in the source package
18303097 doc latex
c64d0c1a Eigen use only Mozilla Public License
bb00582d doc latex
072a5286 figure latex
2d1d85ff test matlab
92a54d96 doc latex
55e835f6 test matlab sous windows
85df235e debug xcode
3447d636 test xcode
12292847 test xcode
d0811dd4 test xcode
5adaab7e test xcode
67a4ff35 test xcode
9046cba0 test xcode
eee2ef1e test xcode
2a33a7f6 test xcode
68d3f24e test xcode
facdbfe8 test xcode
fb30af18 test xcode
aae31382 test xcode
aa73dc88 test xcode
65f3fd6a test xcode
cbf07dda test xcode
202e1bb3 test xcode
26df05db test xcode
16ab4b32 TEST MATLAB WINDOWS
eb256d2d test xcode
a539bfbb test xcode
920661aa test xcode
d47dd8d4 test xcode
cb466931 test xcode
6f7b25c5 test xcode
4992cdde test xcode
f5a01670 test Xcode
2f9d4b2d doc latex
5c1e3206 7z
3387b7c8 debug ctest windows
be5ef0d9 doc latex
e7d49e40 doc ok
af07380a doc latex
d8f1157c LATEX DOC MATLAB COMPILER WINDOW
1bec28cf Latex MATLAB MEX compiler
b58a0c56 doc latex
58a45794 test Cdash 4 windows
ec88d37d debug extension mex
531a73f5 debug extension mex 4 windows
e825050d header matlab dvp.m
286bd24b doc latex
ea56cd41 installation du wrapper matlab faite en une fois
f1ab294b CMakeList installation demo Matlab
3d673382 Matlab Faust class doc
56dcf6ef cmake ok
d3ba89fa matlab demo runtime_comparison
89bd9d1a doc latex
002ec269 matlab class error save and load solved
857b5b93 doc latex
cca25c10 doc Latex
6be15132 docu QuickStart
29847be5 Documentation Matlab class Faust
3942d705 modif latex
8277d673 modif create install directory during cmake
1a7c7cd8 modif for windows visual studio
9af8c8a1 modif latex
33d3345c modif doc latex
66a7aa99 doc latex fichier matlab white background
8adf7472 docu Latex : chapitre InstallUnix
5833b2f5 demo matlab hadamard
6af7b2be run_all_demo modification
52b5b981 experience QuickStart
4afc0d5b doc latex
64f67608 test ctestnightly windows
6745102d doc latex
45a64854 doc latex
70c275ee doc latex
8a4f7616 doc latex
85d0b62a delete dll not use
ded7a70b modif 7z
aae37262 add annexe file
0e4e650c doc latex
cead7fad add picture for doc latex
c394f94a doc latex
69a413d2 doc LATEX
0baf1e77 description 4 cpack
abc589fb Latex Documentation chapter Quick Start
4e8e756a doxygen doc class
36e5ecd4 wrapper matlab : replace method get_product by matlab builtin method full
614577ad test matlab
19a3992e repertory demo quickstart
0a556bf6 make install organisation
bc5884ee header su set_path
5926c341 test matlab change path
744dd6af matlab demo quick start
f3edb968 debug permission
9ed0e659 new install doc
52bfcf3e new cmake
d41b7c66 new cmake
6b51bf7a security
04d949d1 new main cmakelist
70895bde new main cmakelist
e78c64d2 permission sudo make install
aa687636 test data visage
9a81d230 readme
2b9a9536 readme
561af552 package source
d75d9ff3 test machine virtuelle multithreading set omp number of thread
a5e13bf0 make install with different permissions
28a0eec0 modif AL
13b73ba8 faust_multiplication (probleme transposed solved)
99cc0c26 test MEG et MEG transposed
00a42090 cmakelist windows openmp
fbb063bb ctest 4 windows
c9e4f396 debug cmakelist
442002db debug cmake list fopen
3f4f80fd bug GPU - CPU for copying data
6cb5a9d6 migration de data misc/demo/BSL vers misc/data
8c3ace1f debug GPU multiplication
36148a73 debug ctest multiplication
d6210bf9
b241bcd7 add ctest faust not Faust
dad80ed9 debug cmakeliste
105c3be9 debug mode OK
0e73f415 debug mode cmake liste
ea9a42d2 debug 4 hierfactorization 4 GPU
fc7e8f70 cmdline wrapper (separation donnee data
058015cf demo matlab (separation config et data)
c35c92a2 test VM ubuntu multithread on
72e1d78c separation donnee et config dans wrapper matlab
f318f835 algo hierarchical fact : separation data et parameter
f2ad51ea hierarchical_fact algo : separation params and data (matrix to be factorized)
ca8b7592 add vm mac 4 openblas ctest
7081dfae test matlab remise timeout
3639952e ctest windows 4 cdash
10f7bed1 bug cmakelist
ef97eac6 add header for cmakelist
f8eb4425 cmake entete
62cc4519 test matlab MATLAB_FAUST_1 bug fixed
5c62672d latex
99d7e915 latex
b81ea342 header matlab dans misc/test/src
37074e62 old_matlab : bug mac solved (MATLAB normc)
e16a691d test de factorisation matlab (version mex et pure matlab)
0da986e8 time comparison for factorisation between matlab and matlab mexfunction
93bbbd02 ajout code faust 1.02 (only matlab code)
1da83b0a ubuntu ctest
22222188 latex
8f0fa402 logo
b7238d19 logo
2112e85c renommage test
c4b7e4b5 bug test DEMO_MATLAB_INSTALL solved
3bcc9447 suppression chapInstall.tex et ajout installation matlab
41c591f1 doc hadamard message
2bb5ca3a ajout test Faust multiplication
994622d2 nouveau test MEG_MULTIPLICATION
d881a580 fichier inutile
2b44543d fichier inutile
9e9a4fd2 multiplication_compare_time.cpp.in
6fb2d134 legere modif
b9497a32 matlab install dir display
3510b6c6 suppression test MULTIPLY_COMPTIME
134bfee7 logo dans le talex
72985399 new cmakelist
d07cdd3d doc latex
646f18aa new cmakelist
9362c2f6 new cmakelist
476e548e bug regrex windows
4340a69e add bin openblas windows 64bit
32a2a345 external openblas windows ok
b544c0b8 debug openblas 4 windows
c8ec97af MEG data inutile enlever
64b10c50 cmakelist modif
bf068ced new faustPDF
a2dddc41 add VM windows mingw openblas
79172b92 modify name of build machine for CDASH
694c4580 affichage demo_BSL
fca6c54a add cpack tools
a260f695 delete message
881404df delete message
908c934e cpack add
9c371fdf makefiles latex
71c55bdc latex make file
d61110f9 test demo install et demo build
b949e7ab header matlab wrapper
0a92b876 add header cpp h
0f3c0503 add header cpp h
e04c2cb5 add header cpp h
1d1fa561 HEADER MATLAB CLASS
30ce2a24 demo matlab runtime comparison header
5a11171e header demo matlab folder tools
2515e41a add header
a66288d1 headercpp
1d6214e0 headercpp
e32ba2db headercpp
2e22ed3c clean headercpp
983b11e5 MAJ
deb3f636 debug release vs debug
65d3e9af debug release vs debug
7b9606b2 timers ajouté pour la classe Faust::Transform<FPP,Cpu>
0df5a8de make install 4 windows
b06cca1d modif install dir
983c0825 wrapper/matlab/tools/ header
bab49b4e demo hadamard matrix
423bcde4 header BSL
51ffbd74 find openblas
a1d7a485 faust header modif
e7f021c9 add openblas 4 windows
f540b915 add header files
eaf90ba9 modif 4 7z
8acf902f add 7z
9be170da modif 7z
0f10dcd6 externals 4 windows
4754d5c7 new doc latex
a4288826 add figure to latex
e30a9482 demo BSL rectification error norm
6e3cb875 add installdoc
42843562 latex DOC install
6a026052 debug findmatlab
af622671 bug windows ok
72802832 debug windows find matlab
0cfe9891 debug windows find matlab
ef20cedf debug windows find matlab
6812b5c7 debug windows find matlab
99838dcd modif verbose
c7a85bdf bug find matlab in windoxs
4b5cfac4 find matlab windows
2621a7ce bug run nightly
e112db22 find matlab windows
8a6cfe94 modif al
1fc5bfcd modif find matlab windows
a965b6a1 findMatlab
c7f246a1 readme modif
3e8ca0e4 doc LAtex
03fe3972 doc latex
bd212d82 move Faust.pdf
7a0a7056 comment friend function header multiply . error using visual studio c++ compiler
810471d2 doc latex
61dd3169 add pdf
8b305045 doc latex
39e2d033 add documentation in Latex
ddf4749f doc
cee58e9d new machine virtuel
c7174d0a modif ctest windows
2fb99156 modif AL
a5ca4e4f modif al
edcbc294 demo matlab BSL
64a24646 modif ctest for windows
48a69f35 info find matlab windows
5c7d174c demo : BSL simplification
c39148ed new find matlab 4 windows
1e7ee422 find matlab bat
99f623f2 modif matlab find
b4e89c24 wrapper matlab
4503967d wrapper matlab : surcharge function nnz , ajout function density, ajout function RCG
b68784a5 demo matlab : norm_hadamard ajoute
7bd536ff latex modif
7148c8ee test : ajout test_matlab_faust2.m (test the matlab wrapper Faust with incorrect parameter)
661bed1d latex doc
526b43f2 wrapper matlab : save a transposed faust
b2914171 wrapper matlab : doc latex + test
f92abf59 wrapper matlab : class faust bug 2-norm solve
c100f744 wrapper matlab : overload matlab builtin function end for Faust class
dc80bd92 wrapper matlab : ajout 2-norm of a faust
b09039ad modifying cmakelists
ff7ae7e3 test : modification de la precision des resultats attendu
d1a429b2 wrapper matlab : boolean passer en parametre de mtimes_trans
fca4275e wrapper matlab oubli renommage
c2f6075d latex Intro
549e0b2e latex Intro
9d094357 maj latex doc
ba072329 test MEG fact precision changée
be5cc8fa wrapper matlab : classe matlab_faust renommer en Faust
fcad2320 svn diff
19c46a48 otipmisation du slicing pour la classe faust matlab
ca2d9c95 doc sur subsref matlab operator
53000626 commentaire sur la classe matlab_faust_core
51520cac classe matlab ajout operator A(i,j)
d2f4ee75 LateX doc : chapFirstUse.tex
bc900eec run windows
dc94be2d pthread mac remote
5f559e38 BSL opt_handle a off
12e43aa1 wrapper matlab faust plus de copie memoire lors de la transposition
9a2f086a add Latex Documentation
6a7cce2d test speed up matlab
89ff8cd2 test matlab_faust plus robuste
c944e20d test al debug
bdc3bc33 test al debug
5175166e test al debug
2da3cb20 test al debug
c07b4ca1 debug find matlab OSX
4ef8f91b debug run ctest
4a14a4ed debug run OSX
b97b0bda debug run OSX
a3b376ec wrapper matlab ajout attribut transpose_flag
1749737c doc sur la VM ubuntu
552a50b5 test VM ubuntu : matlab find openblas at runtime
bbe34f3c test matlab en premier
3216a58e test 4 cdash
67c5e04c ¨test
185707d1 test
8c7dff8d BUG make for windows
2539f3ec wrapper matlab test
08e02835 Ajout roadmap
3510423e compatibilite ubuntu , Cmake doit ater recent
d850c29f
ed202fff
abf5a286 modif timeout test demo_matlab
07e9cb8a enlver openblas=ON sur VM ubuntu
0ddc6cee
de88d196
606110ac
11e2646e legere modif demo
cdcb85ea compatibilite mac
57eda023
bb647e71
ba4db576
53327436
19070691
fb495248
549a75fd delete windows sh
7181ab19
5c1d4c4a
1e50d6b9 cmakelist waper matlab
5f9111ce finMatlab windows
6afeff40 readme
a196c60b ajout fonctionnalite matlab save and load faust
cb0d06c2 multiplication faust-matrix transposee en matlab
457d305b windows
4308404d nouveau test matlab
2bdae3fc new run files
e3035fea add ctest 4 windows
37ec4d25 ¨gcc
b29b7a56 demo
c2d3b0fd code faust_MatGeneric.hpp
bede6de9 multiplication entre la transposee d un faust et un vecteur wrapper matlab)
25e6e721 run ctest plombier
27384b14 demo test
802b4159 xml lib ok
e2c5bdd2 debub externals lib
695ef4f8 debug lib externale
0445b609 bplot demo
9b73ea08 demo hadamard
d53c9508 externals lib update
f4da991f hadamard demo
c0fe085d demo hadamard fix
4082e735 new name
47c62f2b new name option input
1de444c8 test matlab robustification
f01497b8 xml lib defaut path
3ab54fe3 new name BUILD
a50f6a09 run cormier
712ea8ad nex name option BUILD
88d7d641 runing cormier
08c13156 cormier runing
d8b87b7b new name option cmakeList
6f9094a8 option : default value FAUST_USE_OPENBLAS off
5ab57bec demo runtime comparison
6660f056 modif AL secure
7a381952 modif AL secure
6b298bcf ubuntu run
a0395abb commit bidon
b1454863 ctest return matlab info in Meg fact algo
35693888 modif AL
82b3287b modeif AL test lib ubuntu
02861d67 revert faust_Transform
a1a9c5d5 modif AL externals lib
5ce69406 xml lib
0f890b00 xml lib
59772a00 new version lib
ccf0bf24 nettoyage classe C++ faust_core : method push_back push_first
9a361bd6 modif AL
374e1a1c modif AL
6ac0ab00 modif AL
3963858f modif AL
79a5eb6a test AL
2cce60e0 demo BSL affichage modification
84676023 warning binary xml
348e9136 external lib
9f6b512f test mac
cd63fd57 run nightly cormier pb matlab
708f78e4 test matlab find ok
f2d31429 legere modification wrapper matlab et demo
b6d4e003 test matlab find
b28966fa modif install lib
01f267dc matio lib
358787c6 add matio lib
9f74d4bf modif run nightly
f2f70e82 external lib matio auto
aae7b18c macOS PB matlab
c2e43da0 find matlab
0c6e71ef external lib modif
80ccb1cd run nightly OSX
4f923dff modif run nightly
4e00125c bug (resolu) transpose matlab mais (A'*x) lent par rapport a (trans_A=A';trans_A*x
bf381fe6 externals library
5a80ab82 test library
42089dae win directory
d8c3d1ab modif cmakelist
b62da1d8 add cmake file 4 external library
cbed0f7d ajout demo speed-up hadamard
37d278fa modif externals
a0b7fbe6 externals modif
a6368829 externals lib
eff6fe95 install eigen ok
c0e022c2 install eigen ok
0cd27c0a modif Name
3896c014 modif name in CMAkeList.txt
1e4c7e2b cmakelist modif name
9534a0a2 makefile delete from svn
c1a3d455 ajout demo matlab hadamard factorization
5962cfa3 demo Brain Source Localization
1530351d modif for CTest
35155f60 modif for CTest
5d0954a3 modif for CTest
0e9794e4 mex setPath debug
9208fb91 demo Brain Source Localization marche
175e1ee4 faust version
d5d6b24f faust version
a6769df6 new cmakelist
21724c19 doc : fichier d installation
a950e61a demo dir suppression fichier inutile
985a7ce1 documentation mexfunction
1890e6fa begin of the naming conventions in Faust
98a8800d wrapper/matlab nettoyage et documentation
d95f9170 put mexfile in build_dir/wrapper/matlab/mex directory
183b2574 mac cdash test script
b4f927f0 CMakelists supression variable LINUX non stable
c7514818 mexfile compatibilite mac
7141e04b prox compatibilite mac
b2e058fa prox compatibilite mac
29453d67 test AL ctest
e287567d test AL ctest
1793edd4 test AL ctest
8c18263b test AL ctest
cf0cfcbc test AL Ctest
137b0072 test AL Ctest
22d5a704 test AL ctest
c32ad5ea test AL ctest
29247f01 test AL Ctest
39f2b5f4 test AL Ctest
228d3574 test AL Ctest
8194e595 test AL ctest
0e18741f test AL ctest
1b8eeeb2 test AL ctest
7d2df804 test AL ctest
d00e7b74 test AL ctest
bfd508f4 add faust_prox
dedbb1a1 add readme
6b5066f0 add faust_prox
7b88ca8f add faust_prox
e13abb8f add faust_prox
c5f4e80a adding namespace faust
09a52407 modifying name of linear operator for GPU
8f1f5515 cblas_alegebra dans src/faust_linear_operator/CPU
6362c11e get rid of tautology warning
4ac413c9 ajout script test pour Mach
e4d155a6 script ubuntu ajout FAUST_USE_MEX=ON
80e54249 configure : affichage OPENMP actif
1bc8d33a modification multiply_compare_time.cpp.in(compatibilite OS X (Mach))
a026a3ad faust_Timer (compatible OS X (mach))
4d77c474 flag CMAKE:BOOL FAUST_USE_OPENMP
5aec70d0 legere modif faust_timer
a648f729 modif FAUST_USE_MEX
c453e734 mis a jour du wrapper cmdline(xml)
316f5228 update wrapper matlab version CPU
c76689fe option de compilation : CXX_FLAGS ajout -02 (tps d execution)
0d61af0d test src modification multiply_compare_time.cpp.in
f885c19d attribut de faust_Transform redevient public, remise des friend function
7a19fff3 modifying name function
270babdb name funcion
32739aaa adding namespace for function
8db22b5e delete faust constant
a17842bb delete faust constant
1ea45fc4 rename files
4cfd2e51 rename files
ee038cac modifying files
9af9fe92 modifying name files and name class
8bbfd737 modifying name files and name class
ea998757 modifying file name
04c1ec0d modifying file name
29f0fc67 changing function names
c4f045d1 add file readme license
3f174368 changement de nom de classe Hierfact Palm4MSA et StppingCriteria
800b2ffe modif Linear algebra
908ee0b4 modif CMakeLists.txt
4b7be292 modif CMakeLists.txt
c01f4add ajout des news fichiers
79146493 remplacement des fichiers Hier Palm Stopping
734734e9 new version of ctest experimental
73aa3d59
7e2debbd
452059ac
b3cd6224 test AL
cf383738 test AL
f950d4cd testAL
409ccbeb Ctest readme
18685443 adding misc directory
92b49fce adding new version of project FAUST_v1.10
d8041ef3 test ci new
bc38e387 deleting Faust_v1.00 project to add the new version Faust_v1.10
99d88d85 deleting Faust_v1.00 project to add the new version Faust_v1.10