Hi Pete,
I have successfully installed the last version of CPD (on my laptop).
I've compiled a nonrigid program based on the rigid example, which you have with the distributive.
I've tested the nonrigid example on small artificial datasets first (10 points each) and on real datasets (2M points each). The first set of datasets was processed fine. But I got the error with the second set of datasets:
./cpd-nonrigid pt_in.txt pt_target.txt
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted (core dumped)
What might be the problem? Have you had a chance to test the algorithm on large datasets?