Match -- a program for matching star lists

This program is designed to match up items in two different lists, which may have two different systems of coordinates. The program allows the two sets of coordinates to be related by a linear, quadratic, or cubic transformation.

There was a major change in version 0.15 (and 0.16): the first stage uses the clever method of finding the most likely triangles described in Tabur, Publications of the Astronomical Society of Australia, vol 24 , page 189 (2007). This replaces the more brute-force-ish method of Valdes et al., Publications of the Astronomical Society of the Pacific, vol 107, page 1119 (1995), which was employed in version up to 0.14.

I have since decided that my attempt to incorporate this method is not a success -- no doubt my own fault. I have returned to the method of Valdes et al. for my own use, and for versions starting with v1.0. MWR 6/16/2017

The program was designed and written to work on lists of stars and other astronomical objects, but it might be applied to other types of data. In order to match two lists of N points, the main algorithm calls for O(N^6) operations (yes, that's N-to-the-sixth), so it's not the most efficient choice. I find myself becoming impatient for N >= 100, but your mileage may vary. On the other hand, it does allow for arbitrary translation, rotation, and scaling...


The source code is vanilla ANSI C, and links only against the standard math library. It works off the command line, with no user-friendly GUI. The self-test is written in Perl, but it's not necessary for the operation of the package.

The current version is match 1.0, last modified Jun 16, 2017.

Older versions:

Another approach to the pattern-matching problem is taken by Fionn Murtaugh, described in A New Approach to Point-Pattern Matching, PASP 104, 301 (1992).

Last modified Oct 30, 2012 by Michael Richmond