theochem / procrustes

Python library for finding the optimal transformation(s) that makes two matrices as close as possible to each other.
https://procrustes.qcdevs.org/
GNU General Public License v3.0
109 stars 20 forks source link

OptPSDP (Spectral Gradient Projection Method for PSDP) #195

Closed banrovegrie closed 1 year ago

banrovegrie commented 1 year ago

@FanwangM @PaulWAyers This is the interim implementation of OptPSDP (the required third algorithm). Tests have passed on my local machine.

The algorithm appears to provide us with better error thresholds when compared to the previous algorithms. However, the threshold is quite nominal for the examples we have had in place. Optimizing the algorithm for the case when $A$ is a diagonal matrix remains.

Thanks to @abhishekmittal15 for helping me understand the MATLAB implementation provided here!

codecov[bot] commented 1 year ago

Codecov Report

Merging #195 (1df336b) into master (c8564cc) will decrease coverage by 0.08%. The diff coverage is 93.54%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master     #195      +/-   ##
==========================================
- Coverage   94.38%   94.30%   -0.09%     
==========================================
  Files          11       11              
  Lines         695      755      +60     
==========================================
+ Hits          656      712      +56     
- Misses         39       43       +4     
Impacted Files Coverage Δ
procrustes/psdp.py 94.66% <93.54%> (-0.89%) :arrow_down:
banrovegrie commented 1 year ago

Some linting issues remain. Will fix them as soon as possible. Let me know if there is anything

banrovegrie commented 1 year ago

Resolved some of the issues, and I will fix all of them by tomorrow night. I will tag you when I finally push the updated code.

FanwangM commented 1 year ago

Resolved some of the issues, and I will fix all of them by tomorrow night. I will tag you when I finally push the updated code.

Thanks.

FanwangM commented 1 year ago

Can you push your local work to fix the problems so that we can move forward to final cleaning up/reafactorization for GSoC? Thanks. @banrovegrie

banrovegrie commented 1 year ago

Yep, I was having a few issues regarding refactoring the code. I will get them done right away.

banrovegrie commented 1 year ago

@FanwangM The code has been reformatted.

banrovegrie commented 1 year ago

Should we merge this and open a new PR for fixing tests? @FanwangM

banrovegrie commented 1 year ago

@FanwangM let me know if I need to do anymore updates before we merge this.

FanwangM commented 1 year ago

@FanwangM let me know if I need to do anymore updates before we merge this.

Sorry for the late reply. I am going to merge it soon after one minor fix.