diff rDiff/src/locfit/Source/mutil.h @ 0:0f80a5141704

version 0.3 uploaded
author vipints
date Thu, 14 Feb 2013 23:38:36 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rDiff/src/locfit/Source/mutil.h	Thu Feb 14 23:38:36 2013 -0500
@@ -0,0 +1,123 @@
+/*
+ *   Headers for math utility functions.
+ */
+
+#ifndef I_MUT_H
+#define I_MUT_H
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* use the following #define's for local versions. */
+#ifdef DOS
+#define erf mut_erf
+#define erfc mut_erfc
+#define lgamma mut_lgamma
+#endif
+#define daws(x) mut_daws(x)
+
+typedef struct {
+  double *Z;   /* jacobian matrix, length p*p          */
+  double *Q;   /* eigenvalue matrix, length p*p        */
+  double *wk;  /* work vector in eig_solve, length p   */
+  double *dg;  /* diag vector in eigd, length p        */
+  int p;       /* dimension */
+  int st;      /* status    */
+  int sm;      /* requested decomposition */
+} jacobian;
+
+/* m_jacob.c */
+extern int jac_reqd();
+extern double *jac_alloc();
+extern void jacob_dec(),   chol_dec(),   eig_dec();
+extern int  jacob_solve(), chol_solve(), eig_solve();
+extern int  jacob_hsolve(),chol_hsolve(),eig_hsolve();
+extern int  jacob_isolve(),chol_isolve(),eig_isolve();
+extern double jacob_qf(),  chol_qf(),    eig_qf();
+
+/* m_max.c */
+extern double max_grid(), max_golden(), max_quad(), max_nr();
+
+/* maxbv.c */
+extern double maxbvgrid(), maxbvstep(), maxquadstep(), maxbv(), maxbvq();
+
+/* quadmin.c */
+extern void quadmin(), project(), resproj(), conquadmin();
+
+/* m_qr.c */
+extern void qr(), qrinvx(), qrtinvx(), qrsolv();
+
+/* m_svd.c */
+extern void svd(), hsvdsolve();
+extern int svdsolve();
+
+/* m_solve.c */
+extern double solve_secant(), solve_nr(), solve_fp();
+
+/* m_vector.c */
+extern void setzero(), unitvec(), addouter();
+extern void matrixmultiply(), multmatscal(), transpose();
+extern double innerprod(), m_trace();
+
+/* math.c */
+extern double mut_gamma(), mut_erf(), mut_erfc(), mut_daws(), mut_exp();
+extern double ptail(), logit(), expit();
+extern int factorial();
+
+#define BDF_NONE  0
+#define BDF_EXPLEFT  1
+#define BDF_EXPRIGHT 2
+
+/* return codes for functions optimized by max_nr */
+#define NR_OK 0
+#define NR_INVALID 1
+#define NR_BREAK   2
+#define NR_REDUCE  3
+#define NR_NCON  10
+#define NR_NDIV  11
+
+
+/* jacobian status definitions */
+#define JAC_RAW 0
+#define JAC_CHOL 1
+#define JAC_EIG  2
+#define JAC_EIGD 3
+
+/*  Numerical Integration Stuff
+ */
+#define MXRESULT 5
+#define MXIDIM  10  /* max. dimension */
+extern void simpsonm(), simpson4(), integ_disc(), integ_circ();
+extern void integ_sphere(), monte(), rn3();
+extern double simpson(), sptarea();
+
+/*  Density, distribution stuff
+ */
+
+#ifndef PI
+#define PI  3.141592653589793238462643
+#endif
+#define PIx2 6.283185307179586476925286        /* 2*pi */
+#define HF_LG_PIx2  0.918938533204672741780329736406    /* 0.5*log(2*pi) */
+#define SQRT2 1.4142135623730950488
+
+#define LOG_ZERO -1e100
+#define D_0 ((give_log) ? LOG_ZERO : 0.0)
+#define D_1 ((give_log) ? 0.0 : 1.0)
+#define DEXP(x)   ((give_log) ? (x) : exp(x))
+#define FEXP(f,x) ((give_log) ? -0.5*log(f)+(x) : exp(x)/sqrt(f))
+
+#define INVALID_PARAMS 0.0
+
+extern double stirlerr(), bd0();
+extern double dbinom_raw(), dpois_raw();
+extern double dbinom(), dpois(), dnbinom(), dbeta(), dgamma(), dt(), df(), dhyper();
+extern double dchisq();
+
+extern double igamma(), ibeta();
+extern double pf(), pchisq(), mut_pnorm();
+#define pchisq(x,df) igamma((x)/2.0,(df)/2.0)
+
+#endif  /* define I_MUT_H */