#ifndef MATCHTABLE_H
#define MATCHTABLE_H

struct matchtable;

struct matchtable * 
compute_matchtable(FILE *input, const struct index *index, 
		   double err);
struct matchtable * 
compute_matchtable_bplus(FILE *input, const struct index *index, 
		   double err);
struct matchtable * 
compute_matchtable_nlj(FILE *input, const struct index *index, double err);
struct matchtable * 
compute_matchtable_boxes(const struct index *index1, 
                         const struct index *index2, double err);
struct matchtable * 
compute_matchtable_nlj_boxes(const struct index *index1, 
                             const struct index *index2, double err);
struct matchtable *
compute_matchtable_partitions(FILE *input, const struct index *index, 
                              double err, int partitions);
void free_matchtable(struct matchtable *mt);
void fprint_matchtable(FILE *stream, struct matchtable *mt);
void fwrite_matchtable(FILE *stream, struct matchtable *mt);

#endif
