.

Dr. Arno Formella, Departamento de Informática de la Universidad de Vigo

Código Abierto



C/C++

Alineamiento de conjuntos de puntos

Implementación basada en la librería GSL del algoritmo de Kabsch (publicado en: W. Kabsch, A solution for the best rotation to relate two sets of vectors, Acta Cryst., A32, pp. 922-923, 1976 y W. Kabsch, A discussion of the solution for the best rotation to relate two sets of vectors, Acta Cryst., A34, pp. 827-828, 1978 ) que calcula la transformación de sólido rígido óptima para alinear dos conjuntos de puntos tridimensionales. El algoritmo es una extensión del trabajo de Kabsch porque incluye a parte de la translación y rotación también el escalado óptimo.

kabsch.h
kabsch.cpp

Los siguientes ficheros contienen una versión del algoritmo para puntos bidimensionales.

kabsch2d.h
kabsch2d.cpp

Está otro algoritmo iterativo disponible que calcula la transformación rígida y (localmente) óptima (incluyendo escalado) y que permite funciones arbitrarias para la medida de las distancias, p.ej., distancia media o distancia máxima (observa que Kabsch trabaja solamente con RMS).

El método implementa un algoritmo de minimización sin el cálculo de derivadas basado en el trabajo Ubaldo García-Palomares and José Rodríguez, New sequential and parallel derivative-free algorithms for constrained optimization, SIAM Journal on Optimization, 13(1):79-96, April, 2002 :

la clase base: optimize.h
la clase del algortimo: dfmpr.h
template implementations:dfmpr.cc
un ejemplo:opt.cpp
se compila con

g++ opt.cpp


Área de intersección entre círculo y rectángulo

cir_rect.h
cir_rect.cpp


Java

JabRef 2.1.1

El fichero jar [3.4MB] implementa una extensión del JabRef reference manager (versión 2.1, 9 de agosto de 2006). La nueva versión (código fuente [2.6MB]) permite la inclusión de nombres de directorios como entradas en el fichero BibTeX cuyo contenido se puede inspeccionar con aplicaciones apropiadas. (Esta versión es una extensión no-oficial de JabRef.)

Implementación de una lista concurrente

El paquete [38k] implementa una lista concurrente que permite el manejo de una lista con varios hilos a la vez. Casi todas las operaciones de una lista normal están disponibles.







© Arno Formella, last update: October 13, 2006

e-mail: formella@uvigo.es