Skip to content

Rust implementation of Anderson Acceleration (Pulay Mixing)

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

dialect-rs/ac2o3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ac2O3

CI

Rust implementation of an Anderson Acceleration algorithm based on Ref [1].
Please note: There is an original Matlab implementation as well as a slightly modified implementation in C (including a Python interface) by the authors of the paper.
Ac2O3 is a port of the C implementation to Rust.

Dependencies

Building Ac2O3 requires the following to be installed:

  • OpenBLAS:
    On linux systems you can either install it by just executing sudo apt-get install libopenblas-dev or follow the instructions on the repository page. On macOS OpenBLAS can be installed using HomeBrew: brew install openblas. Make sure that the homebrew path is included in $LIBRARY_PATH. So you might need to execute:
    export LIBRARY_PATH=/opt/homebrew/Cellar/:$LIBRARY_PATH (on Apple Silicon/M1 processors)
    export LIBRARY_PATH=/usr/local/Cellar/:$LIBRARY_PATH (on Intel processors)

References:


[1]: J. Zhang, B. O'Donoghue, and S. Boyd, Globally Convergent Type-I Anderson Acceleration for Non-Smooth Fixed-Point Iterations, 30(4):3170–3197, 2020. SIAM Journal on Optimization

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Rust implementation of Anderson Acceleration (Pulay Mixing)

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages