Mercurial > repos > vipints > rdiff
comparison rDiff/src/locfit/Source/mut.h @ 0:0f80a5141704
version 0.3 uploaded
author | vipints |
---|---|
date | Thu, 14 Feb 2013 23:38:36 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:0f80a5141704 |
---|---|
1 /* | |
2 * Copyright 1996-2006 Catherine Loader. | |
3 */ | |
4 /* | |
5 * Headers for math utility functions. | |
6 */ | |
7 | |
8 #ifndef I_MUT_H | |
9 #define I_MUT_H | |
10 | |
11 #include <stdio.h> | |
12 #include <stdlib.h> | |
13 #include <string.h> | |
14 #include <math.h> | |
15 | |
16 typedef int (*prf)(); | |
17 extern prf mut_printf; | |
18 extern void mut_redirect(); | |
19 | |
20 typedef struct { | |
21 double *Z; /* jacobian matrix, length p*p */ | |
22 double *Q; /* eigenvalue matrix, length p*p */ | |
23 double *wk; /* work vector in eig_solve, length p */ | |
24 double *dg; /* diag vector in eigd, length p */ | |
25 int p; /* dimension */ | |
26 int st; /* status */ | |
27 int sm; /* requested decomposition */ | |
28 } jacobian; | |
29 | |
30 /* m_jacob.c */ | |
31 extern int jac_reqd(); | |
32 extern double *jac_alloc(); | |
33 extern void jacob_dec(), chol_dec(), eig_dec(); | |
34 extern int jacob_solve(), chol_solve(), eig_solve(); | |
35 extern int jacob_hsolve(),chol_hsolve(),eig_hsolve(); | |
36 extern int jacob_isolve(),chol_isolve(),eig_isolve(); | |
37 extern double jacob_qf(), chol_qf(), eig_qf(); | |
38 extern int jacob_mult(), chol_mult(); | |
39 | |
40 /* m_max.c */ | |
41 extern double max_grid(), max_golden(), max_quad(), max_nr(); | |
42 | |
43 /* maxbv.c */ | |
44 extern double maxbvgrid(), maxbvstep(), maxquadstep(), maxbv(), maxbvq(); | |
45 | |
46 /* quadmin.c */ | |
47 extern void quadmin(), project(), resproj(), conquadmin(); | |
48 | |
49 /* m_qr.c */ | |
50 extern void qr(), qrinvx(), qrtinvx(), qrsolv(); | |
51 | |
52 /* m_svd.c */ | |
53 extern void svd(), hsvdsolve(); | |
54 extern int svdsolve(); | |
55 | |
56 /* m_solve.c */ | |
57 extern double solve_bisect(), solve_secant(), solve_nr(), solve_fp(); | |
58 | |
59 /* m_vector.c */ | |
60 extern void setzero(), unitvec(), addouter(); | |
61 extern void matrixmultiply(), multmatscal(), transpose(); | |
62 extern double innerprod(), m_trace(), vecsum(); | |
63 | |
64 #define BDF_NONE 0 | |
65 #define BDF_EXPLEFT 1 | |
66 #define BDF_EXPRIGHT 2 | |
67 | |
68 /* return codes for functions optimized by max_nr */ | |
69 #define NR_OK 0 | |
70 #define NR_INVALID 1 | |
71 #define NR_BREAK 2 | |
72 #define NR_REDUCE 3 | |
73 #define NR_NCON 10 | |
74 #define NR_NDIV 11 | |
75 | |
76 | |
77 /* jacobian status definitions */ | |
78 #define JAC_RAW 0 | |
79 #define JAC_CHOL 1 | |
80 #define JAC_EIG 2 | |
81 #define JAC_EIGD 3 | |
82 | |
83 /* Numerical Integration Stuff | |
84 */ | |
85 #define MXRESULT 5 | |
86 #define MXIDIM 10 /* max. dimension */ | |
87 extern void simpsonm(), simpson4(), integ_disc(), integ_circ(); | |
88 extern void integ_sphere(), monte(), rn3(); | |
89 extern double simpson(), sptarea(); | |
90 | |
91 /* Density, distribution stuff | |
92 */ | |
93 | |
94 #ifndef PI | |
95 #define PI 3.141592653589793238462643 | |
96 #endif | |
97 #define S2PI 2.506628274631000502415765 /* sqrt(2*pi) */ | |
98 #define PIx2 6.283185307179586476925286 /* 2*pi */ | |
99 #define SQRPI 1.772453850905516027298 /* sqrt(pi) */ | |
100 #define HF_LG_PIx2 0.918938533204672741780329736406 /* 0.5*log(2*pi) */ | |
101 #define SQRT2 1.4142135623730950488 /* sqrt(2.0) */ | |
102 #define gold_rat 0.6180339887498948482045870 /* (sqrt(5.0)-1)/2 */ | |
103 | |
104 #define LOG_ZERO -1e100 | |
105 #define D_0 ((give_log) ? LOG_ZERO : 0.0) | |
106 #define D_1 ((give_log) ? 0.0 : 1.0) | |
107 #define DEXP(x) ((give_log) ? (x) : exp(x)) | |
108 #define FEXP(f,x) ((give_log) ? -0.5*log(f)+(x) : exp(x)/sqrt(f)) | |
109 | |
110 #define INVALID_PARAMS 0.0 | |
111 | |
112 extern double stirlerr(), bd0(); | |
113 extern double dbinom_raw(), dpois_raw(); | |
114 extern double dbinom(), dpois(), dnbinom(), dbeta(), dgamma(), dt(), df(), dhyper(); | |
115 extern double dchisq(); | |
116 | |
117 extern double igamma(), ibeta(); | |
118 extern double pf(), pchisq(); | |
119 #define pchisq(x,df) igamma((x)/2.0,(df)/2.0) | |
120 | |
121 /* order.c */ | |
122 extern void mut_order(); | |
123 | |
124 /* erf.c */ | |
125 extern double mut_erf(), mut_erfc(), mut_pnorm(); | |
126 | |
127 /* lgamma.c */ | |
128 extern double mut_lgamma(), mut_lgammai(); | |
129 | |
130 /* math.c */ | |
131 extern double mut_exp(), mut_daws(), ptail(), logit(), expit(); | |
132 extern int factorial(); | |
133 #endif /* define I_MUT_H */ |