Reimplemented CreateBitmapOptionChoice
[grace.git] / src / numerics.h
blob33c4e4ffadf6a7427d5204bc27b8ca3cbbebc80b
1 /*
2 * Grace - GRaphing, Advanced Computation and Exploration of data
3 *
4 * Home page: http://plasma-gate.weizmann.ac.il/Grace/
5 *
6 * Copyright (c) 2005 Grace Development Team
7 *
8 * Maintained by Evgeny Stambulchik
9 *
11 * All Rights Reserved
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 2 of the License, or
16 * (at your option) any later version.
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
30 * Numeric stuff
34 #ifndef __NUMERICS_H_
35 #define __NUMERICS_H_
37 #include "graceapp.h"
39 /* computils.c */
40 double trapint(double *x, double *y, double *resx, double *resy, int n);
41 int apply_window(double *v, int ilen, int window, double beta);
42 int histogram(int ndata, double *data, int nbins, double *bins, int *hist);
43 double comp_area(int n, double *x, double *y);
44 double comp_perimeter(int n, double *x, double *y);
45 void stasum(double *x, int n, double *xbar, double *sd);
46 void linearconv(double *x, int n, double *h, int m, double *y);
47 void spline(int n, double *x, double *y, double *b, double *c, double *d);
48 void aspline(int n, double *x, double *y, double *b, double *c, double *d);
49 int seval(double *u, double *v, int ulen,
50 double *x, double *y, double *b, double *c, double *d, int n);
51 int minmaxrange(double *bvec, double *vec, int n, double bvmin, double bvmax,
52 double *vmin, double *vmax);
53 double vmin(double *x, int n);
54 double vmax(double *x, int n);
55 int monotonicity(double *array, int len, int strict);
56 int monospaced(double *array, int len, double *space);
57 int find_span_index(double *array, int len, int m, double x);
59 int get_restriction_array(Quark *pset, Quark *r, int negate, char **rarray);
60 int filter_set(Quark *pset, char *rarray);
62 int do_compute(Quark *psrc, Quark *pdest,
63 char *rarray, char *fstr);
64 int do_linearc(Quark *psrc, Quark *pdest,
65 Quark *pconv);
66 int do_xcor(Quark *psrc, Quark *pdest,
67 Quark *pcor, int maxlag, int covar);
68 int do_int(Quark *psrc, Quark *pdest,
69 int disponly, double *sum);
70 int do_differ(Quark *psrc, Quark *pdest,
71 int type, int xplace, int period);
72 int do_runavg(Quark *psrc, Quark *pdest,
73 int runlen, char *formula, int xplace);
74 int do_fourier(Quark *psrc, Quark *pdest,
75 int invflag, int xscale, int norm, int complexin, int dcdump,
76 double oversampling, int round2n, int window, double beta, int halflen,
77 int output);
78 int do_histo(Quark *psrc, Quark *pdest,
79 double *bins, int nbins, int cumulative, int normalize);
80 int do_sample(Quark *psrc, Quark *pdest,
81 char *formula);
82 int do_prune(Quark *psrc, Quark *pdest,
83 int interp, int elliptic, double dx, int reldx, double dy, int reldy);
84 int do_interp(Quark *psrc, Quark *pdest,
85 double *mesh, int meshlen, int method, int strict);
86 DArray *featext(Quark **sets, int nsets, const char *formula);
87 int num_cumulative(DArray *src_arrays, unsigned int nsrc,
88 DArray *dst_array, int type);
90 /* fourier.c */
91 int fourier(double *jr, double *ji, int n, int iflag);
93 /* nonlfit.c */
94 void reset_nonl(NLFit *nlfit);
95 int do_nonlfit(Quark *pset, NLFit *nlfit,
96 double *warray, char *rarray, int nsteps);
98 #endif /* __NUMERICS_H_ */