Package corina.cross

The corina.cross package contains algorithms for crossdating samples, and also higher-level data structures which help for crossing sets of samples.

See:
          Description

Interface Summary
Grid.Cell  
 

Class Summary
Bayesian  
Cross Abstract class representing the scores of a crossdate.
CrossdateKit  
CrossFrame A crossdate.
CrossPrinter  
DScore Class for computing the hybrid "D-Score" ("Dating Score").
Grid A crossdating grid.
GridFrame  
Histogram  
NeuralD  
Score  
Sequence  
Single  
Table A crossdating table: a table of samples, crossdates, and other information, from an 1-by-N cross.
TableFrame  
TablePrinter  
TableTableModel  
Trend Class representing a "trend" algorithm for crossdating, whereby scores are the ratio of matching trends to total 1-year intervals.
TScore A (Student's) T-Score crossdate.
Weiserjahre  
 

Package corina.cross Description

The corina.cross package contains algorithms for crossdating samples, and also higher-level data structures which help for crossing sets of samples.

How to use in an application

Sequence provides the client interface to crossdating. Construct a Sequence with any number of fixed and moving samples. You can step through the crosses with nextCross() and prevCross(), and get the current cross with getCross(). (Unfortunately, Java Enumerations are forward-only, which is why I had to write my own.)

The Cross you get will only be references: you must still run() it. A Cross contains the scores in data, as a double[]. Significant scores are stored in highScores, as indexes into the data array. (The method yearOfIndex() might help.)

Grids and Tables are completely different, because they're not typically interactive, but they are constructed roughly the same as NxN and 1xN Sequences, respectively.

How to add a new crossdating algorithm

Look at Cross.java; that's the class you need to extend. The only two methods you need to define are getMinimumSignificant(), which returns the minimum -- NO, THIS IS OBSOLETE! DON'T DO IT! -- significant crossdate score for that algorithm, and compute(int,int), which computes the score at those particular offsets. Your constructor should accept two Sample objects, and pass them to super().

-- NO, THERE SHOULD BE A FACTORY, NO CONSTRUCTOR SHOULD BE REQUIRED

You may need to create a preamble() method, too; this does any needed operations with the data that must be done before individual scores are calculated. For example, the T-Score preamble creates a normalized copy of the data.

-- NO, PREAMBLE SHOULD BE A SPECIAL CASE OF RUN, NOT AN ABSTRACT METHOD

If you want your crossdate to be in general use, add it to CrossdateKit, so people can use it. If it's so popular that people will want to use it all the time, add it to the list of defaults in Sequence.