Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stdlib lstsq #93

Closed
wants to merge 121 commits into from
Closed

stdlib lstsq #93

wants to merge 121 commits into from

Conversation

loiseaujc
Copy link
Member

  • fixed typos
  • Changed all occurrences of to .
  • Revert "Changed all occurrences of to ."
  • FYPP implementation until QR factorization.
  • Test Driver.
  • Remove outdated example.
  • LightKrylov Constants module.
  • Removed outdated example (toml file)
  • Remove old code case.
  • Remove old installation scripts.
  • Python scripts .fypp -> .f90
  • Added Fortran files.
  • Arnoldi implementation + bug fixes.
  • Lanczos bidiagonalization.
  • Lapack wrappers.
  • Updated strings in tests to conform with FORD
  • Eigs implementation + validated tests for real matrices.
  • svds implementation + tests validated for real matrices.
  • GMRES implementation + validated tests for all real/cmplx types.
  • SPD/Hermitian linop + Conjugate Gradient + tests.
  • Added basic operations on arrays of abstract_vectors.
  • Added Schur factorization.
  • Added schur / ordschur lapack wrappers.
  • Added adjoint of linear operator.
  • Added Id operator, alphaA operator and alphaA + beta*B operator.
  • Misc.
  • Changed the definition of abstract_spd_linop to abstract_sym_linop.
  • Added lanczos_tridiagonalization + tests.
  • Added eighs for symmetric/hermitian operators (+ some clean-up).
  • Fixed issue with linear_combination_matrix_*
  • Fixed missing allocation in schur for real types.
  • Krylov-Schur restarting procedure for arnoldi.
  • Tests for Krylov-Schur.
  • Added Krylov-Schur restart capability to eigs.
  • Fixed missing initialization for in .
  • .
  • Remove matrix output in test.
  • Fix residuals allocation in .
  • Updated the ginzburg-landau example to use complex types.
  • Implemented the dense matrix exponential.
  • Implementation of the Krylov exponential.
  • Changed to relative tolerance.
  • Added Simon as co-developper + version beta 0.1.0
  • Started to update documentation.
  • Made comments consistent with FORD.
  • Fixed missing definition in put_data_vec_basis.
  • Added permutation/inverse permutation for arrays.
  • Changes following stdlib update.
  • Added kexpm_mat (albeit not working).
  • made comments consistent with rest of toolbox (FORD style)
  • Changed intent in abstract_exptA_xxx interfaces to "inout" to allow the integration time to be set in an external propagator
  • fixed typo in fypp scripts.
  • add sqrtm function
  • add zero_basis function
  • added forgotten export of zero_basis
  • Fixed typo and added diag import from stdlib_linalg
  • Export abstract_preconditioner.
  • Export abstract_precond.
  • Made apply public in precond.
  • export zero_basis
  • added sqrtm for hermitian pos. def. matrices
  • eigh -> eig for complex sqrtm
  • Changed integer(int_size) to integer for sorting following stdlib update.
  • changed QR default verbosity to false
  • Added test for real/complex matrix sqrt
  • Streamlined fypp code for sqrtm (real/complex). Added sqrtm testsuites. Completed missing error handling and output for eig routines.
  • Add missing v = transpose(conjg(vt)) in Utils/svd
  • Implemented rudimentary logging via stdlib_logger
  • Resolved conflicts + regenerated .f90 files from .fypp ones.
  • successful exit only written to debug log
  • added module name parameter
  • add module name parameter
  • Revert "successful exit only written to debug log"
  • Revert "add module name parameter"
  • success logged only in debug mode
  • add module name as private variable for logging
  • set inout on linop argument for k_exptA
  • added innerprod_vector. Changed the interface for consistency. BREAKING CHANGE!
  • Added orthonormalisation routines for vectors and bases sp/dp/csp/cdp. Routines not yet deployed to QR etc.
  • Improved error handling for orthonormalization
  • moved one/zero defs to Constants
  • included EVP tests again
  • Corrected miscellaneous error message and added eighs
  • fixed typos and added one/zero
  • fixed typo in error string
  • typo
  • added zero/one, suggestion for eigvec tests
  • added zero/one
  • added one/zero (apart from TestVectors). Uniformization of fypp.
  • Added assert variation for vectors
  • Added error handling for orthogonalization routine
  • Refactoring of orthogonalization routines & deployment in QR, Arnoldi, Lanczos iterations.
  • Cleanup
  • deployed new orthogonalization routines
  • fixed typo
  • Homogenized code
  • Streamlined Tests to reduce the number of solves.
  • Added basis orthonormality test for QR
  • Added eigenvector checks for eigenvalue solvers and svd, including orthonormality checks where appropriate.
  • Logger.f90: added logging for orthonormality check within orthonormalize_against_basis and for double_gram_schmidt_step.
  • Basekrylov.f90: Added double_gram_schmidt_step and deployed it with logging. Replaces update_hessenberg_matrix. Added optional orthonormality check in orthogonalize_against_basis. Set this check to false in all performance-critical routines in the core. IterativeSolvers.f90: Deployed double_gram_schmidt_step. Deployed orthonormalize_against_basis.
  • Replaced in-house lapack wrapper for lstsq by stdlib implementation.
  • Make use of in for redibility sake.
  • Cleaned-up gmres implementation a bit.
  • Changed from intent(out) to intent(inout) in to allow for non-zero initial guess.
  • Aesthetic changes/Minor code clean-up.
  • Removed uneeded kind from stdlib imports.

Simkern and others added 28 commits June 12, 2024 12:13
…ize_against_basis and for double_gram_schmidt_step.
    Added double_gram_schmidt_step and deployed it with logging.
    Replaces update_hessenberg_matrix.
    Added optional orthonormality check in orthogonalize_against_basis.
    Set this check to false in all performance-critical routines in the core.
IterativeSolvers.f90:
    Deployed double_gram_schmidt_step.
    Deployed orthonormalize_against_basis.
Major refactoring of the codebase.
@loiseaujc loiseaujc closed this Jun 13, 2024
@loiseaujc loiseaujc deleted the stdlib_lstsq branch June 14, 2024 06:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants