00001
00002
00003
00004
00005
00006
00007 #ifndef MLIB_H
00008 #define MLIB_H
00009
00010 #include <math.h>
00011 #include <ctype.h>
00012 #include <complex.h>
00013
00014
00015
00016
00017 struct _poly {
00018 int n;
00019 long double *coeff;
00020 } typedef poly;
00021
00022 int poly_print(poly *p);
00023 poly *poly_hermite(int N);
00024 poly *poly_new(int n);
00025 int poly_free(poly *p);
00026 long double poly_eval(poly *p, long double z);
00027
00028
00029
00030
00031 unsigned long long fact_l(unsigned long long n);
00032 long double fact_d(long double n);
00033 long double fact_sqrt(long double n);
00034 long double fact_seq(long double s, long double f);
00035
00036
00037
00038
00039 #define MAX(a,b) ((a<b)?b:a)
00040 #define MIN(a,b) ((a<b)?a:b)
00041
00042
00043
00044
00045 #define QUAD_TOL 1e-7
00046
00047 long double quad_adaptive_real(long double (*f)(long double,void *), long double x_min, long double x_max, long double dx, void *param);
00048 complex long double quad_adaptive_complex(complex long double (*f)(long double,void *), long double x_min, long double x_max, long double dx, void *param);
00049
00050 long double quad_adaptive_real_inf(long double (*f)(long double,void *), long double x_min, long double x_max, long double dx, void *param);
00051 complex long double quad_adaptive_complex_inf(complex long double (*f)(long double,void *), long double x_min, long double x_max, long double dx, void *param);
00052
00053 #endif