To compile this program. Look at the Makefile, and edit CC and CFLAGS to correspond to your compiler. I use GNU CC and the options are set for that. Are you using an ANSI C compatible compiler? If so, then type "make". If you're not, then remove the links to the ANSI versions and make the links to the K & R versions: rm C rm fnn.c ln -s C-KandR C ln -s fnn-KandR.c fnn.c Now type "make". If it doesn't work, I probably don't know why. I've only tested it on a Sparcstation, SunOS V4.1.1 with GNU cc 2.1, and the bundled cc. How to use the program: The command line is like this: fnn -N npoints -d dim_min dim_max -t tau -r rtol {-B datafile.dbin}|{-A datafile.ascii} It will read a file of single numbers in text ASCII format if you use the -A datafile.ascii, option, or a file of double precision binary numbers, if you use the -B datafile.dbin option. It will read in and use the number of points specified by the -N npoints flag. It will then embed this scalar data into vectors using time-delay embedding, stepping over dimensions from dim_min to dim_max, with a time delay specified by the -t tau option. (tau is in units of the sampling time so it's an integer). -r rtol specifies the "RTol" parameter in used in the paper. -r 15 is a reasonable choice. There should be an option to choose the Atol parameter but there isn't, and it's fixed at 2.0. The program should run quickly, on the order of minutes. There is a test data set, "lor63.dat" which is the X component from the famous Lorenz attractor. The appropriate time delay for this data set is "5". I include an output from a run I did on my machine in the file "TESTOUTPUT". Note this is a different data set from that used in the paper. The relevant quantity is the "proportion of false nearest neighbors", which drops to 0 when the correct embedding dimension has been reached, which is 3 in this example. It also computes the "LPS" criterion if you give it the -LPS flag. Good luck, and happy embedding, Matt Kennel mbk@inls1.ucsd.edu 5/31/92