2 * This file is part of TISEAN
4 * Copyright (c) 1998-2007 Rainer Hegger, Holger Kantz, Thomas Schreiber
6 * TISEAN is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * TISEAN is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with TISEAN; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20 /*Author: Rainer Hegger Last modified: Sep 3, 1999 */
22 #ifndef _TSA_ROUTINES_H
23 #define _TSA_ROUTINES_H
26 #include "tisean_cec.h"
29 /* size of the string which reads the input data
30 if your lines are longer than some 500 reals, increase the value
32 #define INPUT_SIZE 1024
34 /* The possible names of the verbosity levels */
42 #define VER_FIRST_LINE 0x80
44 /* Uncomment the variable to get rid of the initial Version message */
45 /*#define OMIT_WHAT_I_DO*/
47 #define sqr(x) ((x)*(x))
53 extern int scan_help(int,char**);
54 extern double *get_series(char *,unsigned long *,unsigned long,
55 unsigned int,unsigned int);
56 extern double **get_multi_series(char *,unsigned long *,unsigned long,
57 unsigned int *,char *,char,unsigned int);
58 extern void rescale_data(double *,unsigned long,double *,double *);
59 extern void variance(double *,unsigned long,double *,double *);
60 extern void make_box(double *,long **,long *,unsigned long,
61 unsigned int,unsigned int,unsigned int,double);
62 extern unsigned long find_neighbors(double *,long **,long *,double *,
63 unsigned long,unsigned int,unsigned int,
64 unsigned int,double,unsigned long *);
65 extern char* search_datafile(int, char**,unsigned int*,unsigned int);
66 extern char* check_option(char**,int,int,int);
67 extern void solvele(double**,double *,unsigned int);
68 extern void test_outfile(char*);
69 extern double** invert_matrix(double**,unsigned int);
70 extern unsigned long exclude_interval(unsigned long,long,long,
71 unsigned long*,unsigned long*);
72 extern void make_multi_box(double **,long **,long *,unsigned long,
73 unsigned int,unsigned int,unsigned int,
75 /*only used for nrlazy. Will be removed with nrlazy */
76 extern void make_multi_box2(double **,long **,long *,unsigned long,
77 unsigned int,unsigned int,unsigned int,
79 extern unsigned long find_multi_neighbors(double **,long **,long *,double **,
80 unsigned long,unsigned int,
81 unsigned int,unsigned int,
82 unsigned int,double,unsigned long *);
83 extern unsigned int** make_multi_index(unsigned int,unsigned int,unsigned int);
85 extern void check_alloc(void *);
86 extern char* myfgets(char *,int *,FILE *,unsigned int);
87 extern void what_i_do(char *, char *);
88 extern double* rand_arb_dist(double *,unsigned long,unsigned long,
89 unsigned int,unsigned long);
91 /* routines from rand.c */
92 extern void rnd_init(unsigned long);
93 extern unsigned long rnd_long();
94 extern unsigned long rnd_1279();
95 extern unsigned long rnd69069();
96 extern double gaussian(double);
98 /* routines from eigen.c */
99 extern void eigen(double**,unsigned long,double*);