Skip to content

Releases: jewettaij/superpose3d_cpp

updated submodule (jacobi_pd) to latest commit

29 Nov 09:28
Compare
Choose a tag to compare

Very small update. After updating to the latest version of jacobi_pd, a few namespaces and include files needed to be updated ("matrix_alloc"->"matrix_alloc_jpd"). (Both superpose3d.hpp and test_superpose3d.cpp borrow the short routines for allocating 2D arrays located in the "matrix_alloc_jpd.hpp" include file.)

bugfix: I no longer assume namespace std is enabled

23 Sep 04:19
Compare
Choose a tag to compare

Replaced "vector" with "std::vector".
Thanks to github user KeeganBruer for reporting this.

updated jacobi_pd

05 Sep 07:39
Compare
Choose a tag to compare

Updated jacobi_pd to the latest version.
Made corresponding changes to peigencalc.hpp.
The functionality of the library should be unaffected.

hardened against nonsensical input

25 Feb 16:53
Compare
Choose a tag to compare

now accepts arrays of length 0 or 1 without crashing

quaternions are available

21 Feb 03:32
Compare
Choose a tag to compare

The quaternion, q, (corresponding to rotation R) is now available to the caller. Like R, T, and c, the quaternion, q, is a public data member of the Superpose3D class. From it, the rotation angle and rotation axis can easily be determined.

initial stable release

13 Feb 03:03
Compare
Choose a tag to compare

testing is complete. code has been cleaned up. documentation is (hopefully) accurate.

generalized arrays + bugfix (when allow_rescale=true, ie. when c≠1)

12 Feb 03:46
Compare
Choose a tag to compare

Two big changes: 1) all input arrays (X,x,w) have been generalized. Any C++ object that supports indexing [] can be used, including vector<vector> and double**, for example. 2) BUGFIX: RMSD is now calculated correctly when allow_rescale==true. (Equivalently, when c≠1. Note: The optimal rotation and translation are not effected. They continue to be calculated correctly. However the estimate of the RMSD was incorrect. Now RMSD is reported correctly.) This bug was detected using more rigorous automated testing than I used in the past. Those tests are now included in "tests/test_superpose3d.cpp" and ".travis.yml". Tests for memory safety and code coverage have also been added.

speed enhancements (new eigenvector code)

10 Feb 13:31
Compare
Choose a tag to compare

speed improvements (due to replacing the eigenvector calculation code). Also: The copy and move constructors, assignment operator are now public. (They were accidentally left private in earlier versions of the code.).

WARNING:

I may need to change the API in future updates.

updated include paths

16 Dec 05:10
Compare
Choose a tag to compare

Updated to the newest version of the "lambda_lanczos" submodule.
This should make it cleaner and easier for everybody who uses this library because now they can simply copy all of the header files from "include/" and "lambda_lanczos/include/" into the same directory. When they wish to compile your code, then set your include path to include that directory.

(Previously it was necessary to mention the name of the subdirectory where the lambda_lanczos.hpp header files were located ie. "lambda_lanczos/lambad_lanczos.hpp".)

initial release

06 Dec 14:10
Compare
Choose a tag to compare
initial release Pre-release
Pre-release

This version of superpose3d.hpp passes all tests, but I have yet to test it for memory leaks. I'll try running valgrind on it soon.