Dr. Arno Formella, Computer Science Department
C/C++Point Set AlignmentImplementation of the Kabsch algorithm (based on the library GSL) as published in: W. Kabsch, A solution for the best rotation to relate two sets of vectors, Acta Cryst. (1976), A32, 922923 and W. Kabsch, A discussion of the solution for the best rotation to relate two sets of vectors, Acta Cryst. (1978), A34, 827828. , which computes the optimal rigidbody transformation to align two threedimensional point sets. The algorithm is an extension of the work of Kabsch, because besides the translation and rotation the optimal scaling is computed as well. The following files contain a version of the algorithm for bidimensional points. There is another iterative algorithm available which computes the (locally) optimal rigid motion transformation (including scaling) allowing arbitrary functions for the distance measure, e.g., average distance, or maximum distance (note Kabsch only works with RMS). The algorithm implements a new derivativefree minimization algorithm for nonsmooth functions based on the work Ubaldo GarcíaPalomares and José Rodríguez, New sequential and parallel derivativefree algorithms for constrained optimization, SIAM Journal on Optimization, 13(1):7996, April, 2002 :
the base class: optimize.h g++ opt.cpp Area of intersection between a circle (disk) and a rectangleJavaJabRef 2.1.1
The jarfile [3.4MB] implements
an extension of the
JabRef reference manager
(version 2.1, August 9th, 2006).
This new version
(source code [2.6MB])
permits the inclusion of names of
directories as items in the BibTeXfile; their content can
be inspected conveniently with appropriate applications.
(This in an unofficial version extension of JabRef.)
Implementation of a Concurrent ListThe package [38k] implements a concurrent list where several threads can manipulate the list simultaneously. Almost all operations of a normal linked list are available. 

© Arno Formella, last update: October 13, 2006
email:
formella@uvigo.es