/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/utils/eh_num.c File Reference

#include <math.h>
#include <eh_utils.h>
#include "complex.h"

Go to the source code of this file.

Defines

#define EH_QTRAP_EPS   1.0e-5
#define EH_QTRAP_JMAX   20
#define EH_QROMB_EPS   1.0e-3
#define EH_QROMB_JMAX   20
#define EH_QROMB_JMAXP   (EH_QROMB_JMAX+1)
#define EH_QROMB_K   5
#define MAXIT   100
#define MAXIT   3000
#define TINY   1.0e-20;
#define M_LN2   0.69314718055994530942

Functions

double eh_safe_dbl_division (double a, double b)
gboolean eh_compare_dbl (double a, double b, double eps)
double eh_gamma_log (double xx)
double eh_gamma_p (double a, double x)
double eh_gamma_q (double a, double x)
void eh_gamma_cf (double *gammcf, double a, double x, double *gln)
void eh_gamma_series (double *gamser, double a, double x, double *gln)
double eh_factorial (gssize n)
double eh_factorial_log (gssize n)
double eh_binomial_coef (gssize n, gssize y)
void interpolate (double *x, double *y, gssize len, double *x_new, double *y_new, gssize len_new)
void interpolate_bad_val (double *x, double *y, gssize len, double *x_new, double *y_new, gssize len_new, double bad_val)
double poly_interpolate (double *xa, double *ya, gssize n, double x, double *dy)
void poly_basis_funcs (double x, double *p, gssize n)
double * eh_poly_fit (double *x, double *y, gssize len, gssize n)
double eh_poly_r_squared (double *x, double *y, gssize len, double *p, gssize n)
double eh_r_squared (double *x, double *y, gssize len, Eh_dbl_func_with_data f, gpointer data)
void eh_svdfit (double *x, double *y, double *sig, gssize ndata, double *a, gssize ma, double **u, double **v, double *w, double *chisq, Eh_poly_basis_func funcs)
double eh_pythag (double a, double b)
void eh_svbksb (double **u, double *w, double **v, gssize m, gssize n, double *b, double *x)
void eh_svdcmp (double **a, gssize m, gssize n, double *w, double **v)
double eh_poly_eval (double x, double *p, gssize n)
double * eh_linear_fit (double *x, double *y, gssize len)
void eh_fit (double *x, double *y, gssize len, double *sig, gboolean mwt, double *a, double *b, double *siga, double *sigb, double *chi2, double *q)
double trapzd (Eh_dbl_func_with_data func, double a, double b, gssize n, gpointer data)
double qtrap (Eh_dbl_func_with_data func, double a, double b, gpointer data)
double eh_integrate (Eh_dbl_func_with_data func, double a, double b)
double eh_integrate_with_data (Eh_dbl_func_with_data func, double a, double b, gpointer data)
gboolean eh_is_even (gssize n)
double eh_round (double val, double rnd)
double eh_reduce_angle (double angle)
double * tridiag (double *l, double *d, double *u, double *b, double *x, int n)
Complexc_tridiag (Complex *l, Complex *d, Complex *u, Complex *b, Complex *x, int n)
double rtsafe (void(*funcd)(double, double *, double *, double *), double x1, double x2, double xacc, double *data)
void nrerror (char error_text[])
double eh_bisection (Eh_root_fcn f, double x_0, double x_1, double eps, gpointer user_data)
double * anneal (double *x, int n, Cost_fcn *f, double cost_min)
double bessel_i_0 (double x)
double bessel_k_0 (double x)
void zbesk_ (double *, double *, double *, long int *, long int *, double *, double *, long int *, long int *)
double eh_kei_0 (double x)
double eh_erf_inv (double y)
long int i1mach_ (long int *i)
double d1mach_ (long int *i)
double * eh_dbl_array_new (gssize n)
double * eh_dbl_array_new_set (gssize n, double val)
double * eh_dbl_array_dup (double *s, gssize n)
double * eh_dbl_array_copy (double *d, double *s, gssize n)
double * eh_dbl_col_to_array (double *d, double *col, gint n, gssize offset)
double * eh_dbl_array_to_col (double *d, double *s, gint n, gssize offset)
gint eh_dbl_array_rebin_len (double *s, gssize n, double bin_size)
double * eh_dbl_array_rebin_smaller (double *s, gssize n, double bin_size, gint *d_len)
double * eh_dbl_array_rebin_larger (double *s, gssize n, double bin_size, gint *d_len)
double * eh_dbl_array_rebin (double *s, gssize n, double bin_size, gint *d_len)
gssize eh_dbl_array_min_ind (const double *x, gssize n)
double eh_dbl_array_min (const double *x, gsize n)
gssize eh_dbl_array_max_ind (const double *x, gssize n)
double eh_dbl_array_max (const double *x, gsize n)
double eh_dbl_array_abs_max (const double *x, gsize n)
gssize eh_dbl_array_fprint (FILE *fp, double *x, gssize n)
gint eh_dbl_array_write (FILE *fp, double *x, gint len)
double eh_dbl_array_mean (const double *x, gsize n)
double * eh_dbl_array_normalize (double *x, gsize n)
double * eh_dbl_array_foreach (double *x, gssize n, Eh_dbl_func f)
double * eh_dbl_array_add_scalar (double *x, gssize n, double a)
double * eh_dbl_array_add_each (double *d, gssize n, double *s)
double * eh_dbl_array_add (double *dest, double *src, gssize n)
double * eh_dbl_array_mult (double *x, gsize n, double a)
double * eh_dbl_array_mult_each (double *x, gssize n, double *y)
double eh_dbl_array_var (const double *x, gsize n)
double eh_dbl_array_sum (const double *x, gsize n)
double eh_dbl_array_abs_sum (const double *x, gsize n)
void eh_dbl_array_fabs (double *x, gsize n)
double * eh_dbl_array_diff (double *d, const double *x, gsize len, gssize n)
double * eh_dbl_array_gradient (const double *y, gsize n, double dx)
double * eh_dbl_array_set (double *x, gsize n, double set_val)
double * eh_dbl_array_grid (double *x, gsize n, double start, double dx)
double * eh_dbl_array_running_mean (double *x, gssize len, gssize n_left, gssize n_right)
double * eh_dbl_array_conv (double *x, gsize len_x, double *y, gsize len_y)
void savgol (double *c, gssize np, gssize nl, gssize nr, gssize ld, gssize m)
void convlv (double data[], unsigned long n, double respns[], unsigned long m, int isign, double ans[])
double * eh_low_pass_filter (double *x, gssize len)
double * eh_dbl_array_cum_mean_dir (double *x, gsize n, gboolean forward)
double * eh_dbl_array_cum_sum_dir (double *x, gsize n, gboolean forward)
double * eh_dbl_array_cum_max_dir (double *x, gsize n, gboolean forward)
double * eh_dbl_array_cum_min_dir (double *x, gsize n, gboolean forward)
gboolean eh_dbl_array_compare (double *x, double *y, gssize len, double eps)
gboolean eh_dbl_array_cmp_ge (double *x, double *y, gssize len)
gboolean eh_dbl_array_each_ge (double val, double *x, gssize len)
gboolean eh_dbl_array_each_le (double val, double *x, gssize len)
gboolean eh_dbl_array_is_monotonic_up (double *x, gsize n)
gboolean eh_dbl_array_is_monotonic_down (double *x, gsize n)
double * eh_linspace (double x1, double x2, gssize n)
gssize * eh_id_array (gssize i_0, gssize i_1, gssize *n)
double * eh_uniform_array (double x1, double x2, double dx, gint *n)
double * eh_dbl_array_linspace (double *x, gssize n_x, double x_0, double dx)
gboolean eh_dbl_array_is_monotonic (double *x, gssize len)
double * eh_logspace (double d1, double d2, int n)
void lubksb (double **a, gssize n, gssize *indx, double *b)
void ludcmp (double **a, gssize n, gssize *indx, double *d)
double * vector (long l, long h)
void free_vector (double *x, long l, long h)
void four1 (double data[], unsigned long nn, int isign)
void realft (double data[], unsigned long n, int isign)
void twofft (double data1[], double data2[], double fft1[], double fft2[], unsigned long n)
double eh_dbl_array_mean_weighted (const double x[], gint len, const double f[])
double log2 (double x)
double eh_nan (void)
gboolean eh_isnan (double x)
void eh_rebin_dbl_array (double *x, double *y, gssize len, double *x_bin, double *y_bin, gssize len_bin)
void eh_rebin_dbl_array_bad_val (double *x, double *y, gssize len, double *x_bin, double *y_bin, gssize len_bin, double bad_val)
double * eh_dbl_array_diffuse_implicit (double *x, gint len, double c)
double * eh_dbl_array_diffuse_explicit (double *x, gint len, double c)
double * eh_dbl_array_diffuse (double *x, gint len, double c, Eh_num_method method)


Define Documentation

#define EH_QROMB_EPS   1.0e-3

Definition at line 898 of file eh_num.c.

Referenced by eh_integrate_with_data().

#define EH_QROMB_JMAX   20

Definition at line 899 of file eh_num.c.

Referenced by eh_integrate_with_data().

#define EH_QROMB_JMAXP   (EH_QROMB_JMAX+1)

Definition at line 900 of file eh_num.c.

Referenced by eh_integrate_with_data().

#define EH_QROMB_K   5

Definition at line 901 of file eh_num.c.

Referenced by eh_integrate_with_data().

#define EH_QTRAP_EPS   1.0e-5

Definition at line 878 of file eh_num.c.

Referenced by qtrap().

#define EH_QTRAP_JMAX   20

Definition at line 879 of file eh_num.c.

Referenced by qtrap().

#define M_LN2   0.69314718055994530942

Definition at line 2760 of file eh_num.c.

Referenced by log2().

#define MAXIT   3000

Definition at line 1149 of file eh_num.c.

#define MAXIT   100

Definition at line 1149 of file eh_num.c.

#define TINY   1.0e-20;

Definition at line 2460 of file eh_num.c.

Referenced by ludcmp().


Function Documentation

double* anneal ( double *  x,
int  n,
Cost_fcn f,
double  cost_min 
)

Definition at line 1151 of file eh_num.c.

References eh_get_fuzzy_int(), MAXIT, and swap_dbl_vec.

double bessel_i_0 ( double  x  ) 

Definition at line 1184 of file eh_num.c.

Referenced by bessel_k_0().

double bessel_k_0 ( double  x  ) 

Definition at line 1208 of file eh_num.c.

References bessel_i_0().

Complex* c_tridiag ( Complex l,
Complex d,
Complex u,
Complex b,
Complex x,
int  n 
)

Definition at line 1026 of file eh_num.c.

References c_abs(), c_div(), c_mul(), c_sub(), eh_free, and eh_new.

void convlv ( double  data[],
unsigned long  n,
double  respns[],
unsigned long  m,
int  isign,
double  ans[] 
)

Definition at line 2575 of file eh_num.c.

References eh_free, eh_new, nrerror(), realft(), and twofft().

Referenced by eh_dbl_array_conv(), and eh_low_pass_filter().

double d1mach_ ( long int *  i  ) 

Definition at line 1376 of file eh_num.c.

References eh_nan(), and eh_require_not_reached.

Referenced by dgamln_(), zacai_(), zacon_(), zairy_(), zasyi_(), zbesh_(), zbesi_(), zbesj_(), zbesk_(), zbesy_(), zbiry_(), zbknu_(), zbuni_(), zmlri_(), zseri_(), zunhj_(), zuni1_(), zuni2_(), zunik_(), zunk1_(), zunk2_(), zuoik_(), and zwrsk_().

double eh_binomial_coef ( gssize  n,
gssize  y 
)

Calculate the binomial coefficient

The binomial coefficent is defined as

\[ n \choose y = { n! \over y! \left( n-y \right)! } \]

This is taken from Numerical Recipes

Parameters:
n A non-negative integer
y A non-negative integer
Returns:
The binomial coefficient

Definition at line 304 of file eh_num.c.

References eh_factorial_log(), and floor.

Referenced by eh_dbl_array_diff().

double eh_bisection ( Eh_root_fcn  f,
double  x_0,
double  x_1,
double  eps,
gpointer  user_data 
)

Definition at line 1120 of file eh_num.c.

References eh_nan(), and eh_return_val_if_fail.

Referenced by get_breaking_wave_depth().

gboolean eh_compare_dbl ( double  a,
double  b,
double  eps 
)

Definition at line 31 of file eh_num.c.

References eh_safe_dbl_division().

Referenced by bio_array_to_cell_array(), calculate_next_c_and_h(), compute_next_h(), eh_dbl_array_compare(), eh_dbl_array_rebin_larger(), eh_dbl_array_rebin_smaller(), eh_dbl_grid_rotate(), eh_gamma_series(), eh_linspace(), eh_round(), get_path_entrance_pos(), get_shift_from_exit_pos(), plume_k_bar_dy_established(), plume_k_bar_established(), plume_u_bar_establishment(), plumeout3(), sakura(), sed_cell_is_age(), sed_cell_is_mass(), sed_cell_is_size(), sed_column_base_height_is(), sed_column_bioturbate(), sed_column_is_same_data(), sed_column_mass_is(), sed_column_sediment_mass_is(), sed_column_size_is(), sed_column_top_height_is(), sed_cube_max_height(), sed_cube_min_height(), sed_hydro_array_eventize(), sed_hydro_is_same(), sed_process_fprint(), sed_process_queue_check_family(), sed_river_set_angle(), sed_river_set_angle_limit(), and tridiag().

double eh_dbl_array_abs_max ( const double *  x,
gsize  n 
)

Definition at line 1657 of file eh_num.c.

References eh_require, and max.

double eh_dbl_array_abs_sum ( const double *  x,
gsize  n 
)

Definition at line 1896 of file eh_num.c.

References eh_nan(), and eh_return_val_if_fail.

double* eh_dbl_array_add ( double *  dest,
double *  src,
gssize  n 
)

Definition at line 1815 of file eh_num.c.

References eh_require.

double* eh_dbl_array_add_each ( double *  d,
gssize  n,
double *  s 
)

Definition at line 1797 of file eh_num.c.

References eh_require.

double* eh_dbl_array_add_scalar ( double *  x,
gssize  n,
double  a 
)

Definition at line 1782 of file eh_num.c.

References eh_require.

gboolean eh_dbl_array_cmp_ge ( double *  x,
double *  y,
gssize  len 
)

Definition at line 2204 of file eh_num.c.

Referenced by inflow_check_params(), and sakura_check_params().

gboolean eh_dbl_array_compare ( double *  x,
double *  y,
gssize  len,
double  eps 
)

Definition at line 2188 of file eh_num.c.

References eh_compare_dbl().

double* eh_dbl_array_conv ( double *  x,
gsize  len_x,
double *  y,
gsize  len_y 
)

Definition at line 2072 of file eh_num.c.

References convlv(), eh_free, and eh_new0.

double* eh_dbl_array_copy ( double *  d,
double *  s,
gssize  n 
)

Definition at line 1430 of file eh_num.c.

References eh_dbl_array_new().

Referenced by eh_dbl_array_diffuse_explicit(), eh_dbl_array_dup(), sakura_array_copy(), sakura_array_set_bc(), sakura_array_set_w(), sakura_array_set_x(), sakura_node_set(), sakura_sediment_set_rho_dep(), sakura_sediment_set_rho_grain(), sakura_sediment_set_u_settling(), and sakura_set_outflow().

double* eh_dbl_array_cum_max_dir ( double *  x,
gsize  n,
gboolean  forward 
)

Definition at line 2156 of file eh_num.c.

References eh_new, and max.

double* eh_dbl_array_cum_mean_dir ( double *  x,
gsize  n,
gboolean  forward 
)

Definition at line 2123 of file eh_num.c.

References eh_dbl_array_cum_sum_dir().

double* eh_dbl_array_cum_min_dir ( double *  x,
gsize  n,
gboolean  forward 
)

Definition at line 2172 of file eh_num.c.

References eh_new, and min.

double* eh_dbl_array_cum_sum_dir ( double *  x,
gsize  n,
gboolean  forward 
)

Definition at line 2139 of file eh_num.c.

References eh_new.

Referenced by eh_dbl_array_cum_mean_dir().

double* eh_dbl_array_diff ( double *  d,
const double *  x,
gsize  len,
gssize  n 
)

Definition at line 1927 of file eh_num.c.

References eh_binomial_coef(), eh_free, eh_is_even(), eh_new, eh_new0, eh_require, and eh_return_val_if_fail.

Referenced by eh_dbl_grid_diff().

double* eh_dbl_array_diffuse ( double *  x,
gint  len,
double  c,
Eh_num_method  method 
)

Definition at line 2949 of file eh_num.c.

References eh_dbl_array_diffuse_explicit(), eh_dbl_array_diffuse_implicit(), EH_NUM_EXPLICIT, EH_NUM_IMPLICIT, and eh_require_not_reached.

Referenced by diffuse_col().

double* eh_dbl_array_diffuse_explicit ( double *  x,
gint  len,
double  c 
)

Definition at line 2926 of file eh_num.c.

References eh_dbl_array_copy(), eh_dbl_array_dup(), and eh_free.

Referenced by eh_dbl_array_diffuse().

double* eh_dbl_array_diffuse_implicit ( double *  x,
gint  len,
double  c 
)

Definition at line 2896 of file eh_num.c.

References eh_dbl_array_dup(), eh_dbl_array_set(), eh_free, eh_new, and tridiag().

Referenced by eh_dbl_array_diffuse().

double* eh_dbl_array_dup ( double *  s,
gssize  n 
)

Definition at line 1424 of file eh_num.c.

References eh_dbl_array_copy().

Referenced by bio_conveyor_layers(), diffuse_col(), eh_dbl_array_diffuse_explicit(), eh_dbl_array_diffuse_implicit(), eh_dbl_array_rebin_larger(), eh_dbl_array_rebin_smaller(), inflow_set_sediment_data(), sakura(), and sakura_set_sediment_data().

gboolean eh_dbl_array_each_ge ( double  val,
double *  x,
gssize  len 
)

Definition at line 2221 of file eh_num.c.

References eh_return_val_if_fail.

Referenced by inflow_check_params(), sakura_check_params(), and sed_hydro_check().

gboolean eh_dbl_array_each_le ( double  val,
double *  x,
gssize  len 
)

Definition at line 2237 of file eh_num.c.

References eh_return_val_if_fail.

Referenced by inflow_check_params(), and sakura_check_params().

void eh_dbl_array_fabs ( double *  x,
gsize  n 
)

Definition at line 1915 of file eh_num.c.

References eh_require.

Referenced by move_sediment().

double* eh_dbl_array_foreach ( double *  x,
gssize  n,
Eh_dbl_func  f 
)

Definition at line 1768 of file eh_num.c.

References eh_require.

gssize eh_dbl_array_fprint ( FILE *  fp,
double *  x,
gssize  n 
)

Definition at line 1684 of file eh_num.c.

References eh_require.

double* eh_dbl_array_gradient ( const double *  y,
gsize  n,
double  dx 
)

Definition at line 1993 of file eh_num.c.

References eh_new, and eh_require.

double* eh_dbl_array_grid ( double *  x,
gsize  n,
double  start,
double  dx 
)

Definition at line 2031 of file eh_num.c.

Referenced by sed_cube_property_subgrid().

gboolean eh_dbl_array_is_monotonic ( double *  x,
gssize  len 
)

Check if an array is monotonic (either increasing of decreasing)

Parameters:
x A pointer to an array of doubles
len The length of the array
Returns:
TRUE if the array is either monotonically increasing or decreasing.

Definition at line 2388 of file eh_num.c.

References eh_require.

Referenced by get_zones().

gboolean eh_dbl_array_is_monotonic_down ( double *  x,
gsize  n 
)

Definition at line 2263 of file eh_num.c.

gboolean eh_dbl_array_is_monotonic_up ( double *  x,
gsize  n 
)

Definition at line 2252 of file eh_num.c.

Referenced by eh_input_val_set(), sed_bathy_grid_scan_1d_ascii(), sed_get_floor(), sed_get_floor_sequence_2(), and sed_scan_sea_level_curve().

double* eh_dbl_array_linspace ( double *  x,
gssize  n_x,
double  x_0,
double  dx 
)

Definition at line 2367 of file eh_num.c.

References eh_require, and eh_return_val_if_fail.

Referenced by eh_grid_set_x_lin(), and eh_grid_set_y_lin().

double eh_dbl_array_max ( const double *  x,
gsize  n 
)

Definition at line 1641 of file eh_num.c.

References eh_require, and max.

gssize eh_dbl_array_max_ind ( const double *  x,
gssize  n 
)

Definition at line 1621 of file eh_num.c.

References eh_require, and max.

double eh_dbl_array_mean ( const double *  x,
gsize  n 
)

Definition at line 1752 of file eh_num.c.

References eh_dbl_array_sum().

Referenced by eh_dbl_array_var(), eh_poly_r_squared(), eh_r_squared(), run_darcy_flow(), and run_debris_flow().

double eh_dbl_array_mean_weighted ( const double  x[],
gint  len,
const double  f[] 
)

Definition at line 2748 of file eh_num.c.

Referenced by compute_c_grain(), and inflow().

double eh_dbl_array_min ( const double *  x,
gsize  n 
)

Definition at line 1607 of file eh_num.c.

References eh_require, and min.

Referenced by run_plume_hypo().

gssize eh_dbl_array_min_ind ( const double *  x,
gssize  n 
)

Definition at line 1589 of file eh_num.c.

References eh_require, and min.

double* eh_dbl_array_mult ( double *  x,
gsize  n,
double  a 
)

Definition at line 1833 of file eh_num.c.

References eh_require.

Referenced by eh_dbl_array_normalize(), eh_dbl_array_running_mean(), inflow_deposit_sediment(), inflow_erode_sediment(), inflow_flood_from_cell(), inflow_scan_parameter_file(), plume_centerline_deposit(), plume_width_averaged_deposit(), plume_width_averaged_deposit_num(), sakura_deposit_sediment(), sakura_erode_sediment(), sakura_flood_from_cell(), sakura_scan_parameter_file(), and sed_hydro_fraction().

double* eh_dbl_array_mult_each ( double *  x,
gssize  n,
double *  y 
)

Definition at line 1849 of file eh_num.c.

References eh_require.

Referenced by inflow_deposit_sediment(), inflow_erode_sediment(), sakura_deposit_sediment(), and sakura_erode_sediment().

double* eh_dbl_array_new ( gssize  n  ) 

Definition at line 1398 of file eh_num.c.

References eh_new.

Referenced by eh_dbl_array_copy(), and eh_dbl_col_to_array().

double* eh_dbl_array_new_set ( gssize  n,
double  val 
)

Definition at line 1408 of file eh_num.c.

References eh_new.

Referenced by inflow_set_sediment_data_from_env(), inflow_set_width_from_cube(), and sakura_set_width_from_cube().

double* eh_dbl_array_normalize ( double *  x,
gsize  n 
)

Definition at line 1757 of file eh_num.c.

References eh_dbl_array_mult(), eh_dbl_array_sum(), and eh_require.

Referenced by sed_cell_new_classed().

double* eh_dbl_array_rebin ( double *  s,
gssize  n,
double  bin_size,
gint *  d_len 
)

Definition at line 1577 of file eh_num.c.

References eh_dbl_array_rebin_larger(), and eh_dbl_array_rebin_smaller().

Referenced by inflow_deposit_sediment(), inflow_erode_sediment(), sakura_deposit_sediment(), and sakura_erode_sediment().

double* eh_dbl_array_rebin_larger ( double *  s,
gssize  n,
double  bin_size,
gint *  d_len 
)

Definition at line 1533 of file eh_num.c.

References eh_compare_dbl(), eh_dbl_array_dup(), eh_dbl_array_sum(), eh_new, eh_require, and floor.

Referenced by eh_dbl_array_rebin().

gint eh_dbl_array_rebin_len ( double *  s,
gssize  n,
double  bin_size 
)

Definition at line 1477 of file eh_num.c.

double* eh_dbl_array_rebin_smaller ( double *  s,
gssize  n,
double  bin_size,
gint *  d_len 
)

Definition at line 1488 of file eh_num.c.

References eh_compare_dbl(), eh_dbl_array_dup(), eh_new, eh_require, and floor.

Referenced by eh_dbl_array_rebin().

double* eh_dbl_array_running_mean ( double *  x,
gssize  len,
gssize  n_left,
gssize  n_right 
)

Definition at line 2041 of file eh_num.c.

References eh_dbl_array_mult(), eh_dbl_array_sum(), eh_require, and eh_return_val_if_fail.

double* eh_dbl_array_set ( double *  x,
gsize  n,
double  set_val 
)

Definition at line 2019 of file eh_num.c.

References eh_new.

Referenced by eh_dbl_array_diffuse_implicit(), get_sediment_flux(), main(), run_darcy_flow(), run_debris_flow(), sakura(), sakura_node_set(), and sakura_sed_get_phe().

double eh_dbl_array_sum ( const double *  x,
gsize  n 
)

Definition at line 1880 of file eh_num.c.

References eh_nan(), and eh_return_val_if_fail.

Referenced by bio_conveyor(), bio_conveyor_layers(), eh_dbl_array_mean(), eh_dbl_array_normalize(), eh_dbl_array_rebin_larger(), eh_dbl_array_running_mean(), move_sediment(), sakura(), sakura_next_c_grain(), sed_cell_add_amount(), sed_cell_set_amount(), and sed_column_bioturbate().

double* eh_dbl_array_to_col ( double *  d,
double *  s,
gint  n,
gssize  offset 
)

Definition at line 1460 of file eh_num.c.

References eh_new.

double eh_dbl_array_var ( const double *  x,
gsize  n 
)

Definition at line 1863 of file eh_num.c.

References eh_dbl_array_mean(), eh_nan(), and eh_require.

gint eh_dbl_array_write ( FILE *  fp,
double *  x,
gint  len 
)

Definition at line 1702 of file eh_num.c.

References eh_require.

Referenced by eh_ndgrid_write().

double* eh_dbl_col_to_array ( double *  d,
double *  col,
gint  n,
gssize  offset 
)

Definition at line 1444 of file eh_num.c.

References eh_dbl_array_new().

double eh_erf_inv ( double  y  ) 

Inverse error function.

X = ERFINV(Y) is the inverse error function for each element of Y. The inverse error function satisfies y = erf(x), for -1 <= y <= 1 and -inf <= x <= inf.

Parameters:
y 
Returns:
x

Definition at line 1290 of file eh_num.c.

References eh_isnan(), eh_nan(), and M_PI.

Referenced by eh_max_log_normal().

double eh_factorial ( gssize  n  ) 

Calculate the factorial of an integer.

This is taken from Numerical Recipes

Parameters:
n A non-negative integer
Returns:
The factorial of the input argument

Definition at line 248 of file eh_num.c.

References eh_gamma_log(), eh_nan(), and eh_return_val_if_fail.

double eh_factorial_log ( gssize  n  ) 

Calculate the log of a factorial of an integer.

This is taken from Numerical Recipes

Parameters:
n A non-negative integer
Returns:
The log of the factorial of the input argument

Definition at line 275 of file eh_num.c.

References eh_gamma_log(), and eh_require.

Referenced by eh_binomial_coef().

void eh_fit ( double *  x,
double *  y,
gssize  len,
double *  sig,
gboolean  mwt,
double *  a,
double *  b,
double *  siga,
double *  sigb,
double *  chi2,
double *  q 
)

Definition at line 785 of file eh_num.c.

References eh_gamma_q(), and eh_sqr.

Referenced by eh_linear_fit().

void eh_gamma_cf ( double *  gammcf,
double  a,
double  x,
double *  gln 
)

The incomplete gamma function, $ Q $

This is taken from Numerical Recipes.

Calculate the incomplete Gamma function, $ Q(a,b) $,

\[ Q(a,b) \equiv 1 - P(a,x) \]

using its continued fraction representation. This converges rapidly for $ x > a+1 $.

Parameters:
gammcf The incomplete Gamma function evaluated at $ (a,x) $
a A floating point number
x A floating point number
gln Log the the Gamma function at $ a $
Returns:
The incomplete gamma function

Definition at line 153 of file eh_num.c.

References eh_gamma_log(), and EPS.

Referenced by eh_gamma_p(), and eh_gamma_q().

double eh_gamma_log ( double  xx  ) 

Calculate the log of the gamma function

This is taken from Numerical Recipes

Parameters:
xx A floating point number
Returns:
The log of the gamma function

Definition at line 50 of file eh_num.c.

Referenced by eh_factorial(), eh_factorial_log(), eh_gamma_cf(), and eh_gamma_series().

double eh_gamma_p ( double  a,
double  x 
)

The incomplete Gamma Function, $ P(a,x) $

This is taken from Numerical Recipes.

Calculate the Gamma function, $ P(a,b) $,

Parameters:
a A floating point number
x A floating point number
Returns:
The incomplete gamma function

Definition at line 77 of file eh_num.c.

References eh_gamma_cf(), eh_gamma_series(), and eh_require.

double eh_gamma_q ( double  a,
double  x 
)

The incomplete gamma function

This is taken from Numerical Recipes.

Calculate the incomplete Gamma function, $ Q(a,b) $,

\[ Q(a,b) \equiv 1 - P(a,x) \]

Parameters:
a A floating point number
x A floating point number
Returns:
The incomplete gamma function

Definition at line 111 of file eh_num.c.

References eh_gamma_cf(), eh_gamma_series(), and eh_require.

Referenced by eh_fit().

void eh_gamma_series ( double *  gamser,
double  a,
double  x,
double *  gln 
)

The incomplete gamma function $ P $

This is taken from Numerical Recipes.

Calculate the incomplete Gamma function, $ P(a,b) $, using its series representation. This converges rapidly for $ x < a+1 $.

Parameters:
gamser The incomplete Gamma function evaluated at $ (a,x) $
a A floating point number
x A floating point number
gln Log the the Gamma function at $ a $
Returns:
The incomplete gamma function

Definition at line 202 of file eh_num.c.

References eh_compare_dbl(), eh_gamma_log(), eh_require, and EPS.

Referenced by eh_gamma_p(), and eh_gamma_q().

gssize* eh_id_array ( gssize  i_0,
gssize  i_1,
gssize *  n 
)

Definition at line 2311 of file eh_num.c.

References eh_new, and eh_require.

Referenced by inflow_set_bathy_data_from_cube(), and sakura_set_bathy_data_from_cube().

double eh_integrate ( Eh_dbl_func_with_data  func,
double  a,
double  b 
)

Definition at line 903 of file eh_num.c.

References eh_integrate_with_data().

double eh_integrate_with_data ( Eh_dbl_func_with_data  func,
double  a,
double  b,
gpointer  data 
)

Definition at line 908 of file eh_num.c.

References EH_QROMB_EPS, EH_QROMB_JMAX, EH_QROMB_JMAXP, EH_QROMB_K, poly_interpolate(), and trapzd().

Referenced by eh_integrate(), plume_centerline_deposit_nd(), plume_inv_nd(), plume_width_averaged_deposit_nd(), and plume_width_averaged_inv_at().

gboolean eh_is_even ( gssize  n  ) 

Is this integer even

Parameters:
n An integer
Returns:
TRUE if the integer is even

Definition at line 937 of file eh_num.c.

Referenced by eh_dbl_array_diff().

gboolean eh_isnan ( double  x  ) 

Definition at line 2794 of file eh_num.c.

Referenced by compute_next_h(), eh_dbl_grid_sum_bad_val(), eh_erf_inv(), fill_to_bruun(), get_bruun_profile(), run_avulsion(), run_sea_level(), sed_get_floor(), and sed_wave_is_bad().

double eh_kei_0 ( double  x  ) 

Definition at line 1229 of file eh_num.c.

References eh_require, M_PI, and zbesk_().

Referenced by subside_point_load().

double* eh_linear_fit ( double *  x,
double *  y,
gssize  len 
)

Definition at line 767 of file eh_num.c.

References eh_fit(), eh_new, and eh_return_val_if_fail.

double* eh_linspace ( double  x1,
double  x2,
gssize  n 
)

Generate an array of equally spaced numbers.

Generate an array of n linearly equally spaced points between x1 and x2. returns a pointer to a newly allocated array. should be freed using eh_free.

Parameters:
x1 Lower bound
x2 Lower bound
n Number of points
Returns:
An array of equally spaced points
See also:
eh_logspace

Definition at line 2289 of file eh_num.c.

References eh_compare_dbl(), eh_new, eh_require, and sign.

Referenced by eh_logspace(), and main().

double* eh_logspace ( double  d1,
double  d2,
int  n 
)

Generate an array of equally spaced numbers.

Generate a row vector of n logarithmically equally spaced points between decades 10^d1 and 10^d2. returns a pointer to a newly allocated array. should be freed using eh_free.

Parameters:
d1 Lower bound
d2 Lower bound
n Number of points
Returns:
An array of equally spaced points
See also:
eh_linspace

Definition at line 2429 of file eh_num.c.

References eh_linspace().

double* eh_low_pass_filter ( double *  x,
gssize  len 
)

Definition at line 2104 of file eh_num.c.

References convlv(), eh_free, eh_new0, and savgol().

double eh_nan ( void   ) 

Definition at line 2788 of file eh_num.c.

Referenced by d1mach_(), eh_bisection(), eh_dbl_array_abs_sum(), eh_dbl_array_sum(), eh_dbl_array_var(), eh_dbl_grid_rebin(), eh_dbl_grid_sum(), eh_erf_inv(), eh_factorial(), eh_key_file_get_dbl_value(), eh_rebin_dbl_array(), eh_str_to_dbl(), eh_str_to_int(), eh_str_to_time_in_years(), eh_symbol_table_dbl_value(), eh_symbol_table_time_value(), get_bruun_a(), get_bruun_profile(), interpolate(), interpolate_2(), rtsafe(), sed_cell_bulk_log_permeability(), sed_dispersion_relation_frequency(), sed_dispersion_relation_wave_number(), sed_measure_cube_age(), sed_measure_cube_basement(), sed_measure_cube_clay_fraction(), sed_measure_cube_density(), sed_measure_cube_elevation(), sed_measure_cube_facies(), sed_measure_cube_grain_size(), sed_measure_cube_mud_fraction(), sed_measure_cube_permeability(), sed_measure_cube_porosity(), sed_measure_cube_sand_fraction(), sed_measure_cube_silt_fraction(), sed_measure_cube_slope(), sed_measure_cube_thickness(), sed_measure_cube_water_depth(), sed_tripod_header_fprint(), sed_tripod_header_new(), and sed_tripod_measure().

double eh_poly_eval ( double  x,
double *  p,
gssize  n 
)

Definition at line 755 of file eh_num.c.

Referenced by eh_poly_r_squared().

double* eh_poly_fit ( double *  x,
double *  y,
gssize  len,
gssize  n 
)

Definition at line 429 of file eh_num.c.

References eh_free, eh_free_2, eh_new, eh_new_2, eh_svdfit(), and poly_basis_funcs().

double eh_poly_r_squared ( double *  x,
double *  y,
gssize  len,
double *  p,
gssize  n 
)

Definition at line 460 of file eh_num.c.

References eh_dbl_array_mean(), and eh_poly_eval().

double eh_pythag ( double  a,
double  b 
)

Definition at line 540 of file eh_num.c.

References eh_sqr.

Referenced by eh_svdcmp().

double eh_r_squared ( double *  x,
double *  y,
gssize  len,
Eh_dbl_func_with_data  f,
gpointer  data 
)

Definition at line 479 of file eh_num.c.

References eh_dbl_array_mean().

void eh_rebin_dbl_array ( double *  x,
double *  y,
gssize  len,
double *  x_bin,
double *  y_bin,
gssize  len_bin 
)

Definition at line 2800 of file eh_num.c.

References eh_nan(), and eh_rebin_dbl_array_bad_val().

void eh_rebin_dbl_array_bad_val ( double *  x,
double *  y,
gssize  len,
double *  x_bin,
double *  y_bin,
gssize  len_bin,
double  bad_val 
)

Definition at line 2808 of file eh_num.c.

References eh_clamp, eh_free, and eh_new.

Referenced by eh_dbl_grid_rebin_bad_val(), and eh_rebin_dbl_array().

double eh_reduce_angle ( double  angle  ) 

Find the equivalent angle between -PI and PI

Parameters:
angle An angle (in radians)
Returns:
An angle between -PI and PI

Definition at line 963 of file eh_num.c.

References floor, and M_PI.

Referenced by avulsion(), bed_load_2d_domain(), is_between_angles(), plumeout3(), sed_cube_find_line_path(), sed_river_set_angle(), and sed_river_set_angle_limit().

double eh_round ( double  val,
double  rnd 
)

Round-off a value

Parameters:
val Value to round
rnd Multiple to round to
Returns:
The value rounded to the nearest multiple

Definition at line 949 of file eh_num.c.

References eh_compare_dbl().

Referenced by eh_dbl_grid_rotate(), sed_cube_property_subgrid(), and sed_process_is_on().

double eh_safe_dbl_division ( double  a,
double  b 
)

Definition at line 25 of file eh_num.c.

Referenced by eh_compare_dbl(), sed_process_error(), and sed_process_fprint_info().

void eh_svbksb ( double **  u,
double *  w,
double **  v,
gssize  m,
gssize  n,
double *  b,
double *  x 
)

Definition at line 551 of file eh_num.c.

References eh_free, eh_new, and jj.

Referenced by eh_svdfit().

void eh_svdcmp ( double **  a,
gssize  m,
gssize  n,
double *  w,
double **  v 
)

Definition at line 575 of file eh_num.c.

References eh_free, eh_max, eh_min, eh_new, eh_nrsign, eh_pythag(), and jj.

Referenced by eh_svdfit().

void eh_svdfit ( double *  x,
double *  y,
double *  sig,
gssize  ndata,
double *  a,
gssize  ma,
double **  u,
double **  v,
double *  w,
double *  chisq,
Eh_poly_basis_func  funcs 
)

Definition at line 498 of file eh_num.c.

References eh_free, eh_new, eh_svbksb(), and eh_svdcmp().

Referenced by eh_poly_fit().

double* eh_uniform_array ( double  x1,
double  x2,
double  dx,
gint *  n 
)

Definition at line 2341 of file eh_num.c.

References eh_new, and eh_require.

Referenced by inflow_set_bathy_data(), plume_k_bar_at_x(), plume_k_bar_dy_at_x(), plume_u_bar_at_x(), plume_v_bar_at_x(), and sakura_set_bathy_data().

void four1 ( double  data[],
unsigned long  nn,
int  isign 
)

Definition at line 2623 of file eh_num.c.

References swap_dbl.

Referenced by realft(), and twofft().

void free_vector ( double *  x,
long  l,
long  h 
)

Definition at line 2617 of file eh_num.c.

References eh_free.

long int i1mach_ ( long int *  i  ) 

Definition at line 1357 of file eh_num.c.

References eh_require_not_reached.

Referenced by dgamln_(), zairy_(), zbesh_(), zbesi_(), zbesj_(), zbesk_(), zbesy_(), zbiry_(), and zbknu_().

void interpolate ( double *  x,
double *  y,
gssize  len,
double *  x_new,
double *  y_new,
gssize  len_new 
)

Definition at line 309 of file eh_num.c.

References eh_nan(), and interpolate_bad_val().

Referenced by bing(), eh_data_record_interpolate_rows(), eh_dbl_grid_remesh(), eh_input_val_eval(), eh_rand_user(), get_beaufort_scale_from_height(), get_height_from_beaufort_scale(), get_sea_level(), get_tectonics(), get_wave_from_beaufort_scale_old(), get_wind_from_beaufort_scale(), inflow_set_bathy_data(), plumeout2(), sakura_set_bathy_data(), sed_bathy_grid_scan_1d_ascii(), sed_get_floor(), and sed_get_floor_sequence_2().

void interpolate_bad_val ( double *  x,
double *  y,
gssize  len,
double *  x_new,
double *  y_new,
gssize  len_new,
double  bad_val 
)

Definition at line 315 of file eh_num.c.

References eh_require_not_reached.

Referenced by interpolate(), and interpolate_2_bad_val().

double log2 ( double  x  ) 

Definition at line 2765 of file eh_num.c.

References M_LN2.

Referenced by fmg_1d(), fmg_2d(), fmg_3d(), and sed_type_grain_size_in_phi().

void lubksb ( double **  a,
gssize  n,
gssize *  indx,
double *  b 
)

Definition at line 2438 of file eh_num.c.

Referenced by savgol().

void ludcmp ( double **  a,
gssize  n,
gssize *  indx,
double *  d 
)

Definition at line 2462 of file eh_num.c.

References eh_free, eh_new, nrerror(), and TINY.

Referenced by savgol().

void nrerror ( char  error_text[]  ) 

Definition at line 1114 of file eh_num.c.

References eh_exit().

void poly_basis_funcs ( double  x,
double *  p,
gssize  n 
)

Definition at line 418 of file eh_num.c.

Referenced by eh_poly_fit().

double poly_interpolate ( double *  xa,
double *  ya,
gssize  n,
double  x,
double *  dy 
)

Definition at line 368 of file eh_num.c.

References eh_free, eh_new, and eh_require.

Referenced by eh_integrate_with_data().

double qtrap ( Eh_dbl_func_with_data  func,
double  a,
double  b,
gpointer  data 
)

Definition at line 881 of file eh_num.c.

References EH_QTRAP_EPS, EH_QTRAP_JMAX, and trapzd().

void realft ( double  data[],
unsigned long  n,
int  isign 
)

Definition at line 2669 of file eh_num.c.

References four1().

Referenced by convlv().

double rtsafe ( void(*)(double, double *, double *, double *)  funcd,
double  x1,
double  x2,
double  xacc,
double *  data 
)

Definition at line 1062 of file eh_num.c.

References eh_nan(), and MAXIT.

Referenced by sed_dispersion_relation_wave_number(), and sed_wave_break_depth().

void savgol ( double *  c,
gssize  np,
gssize  nl,
gssize  nr,
gssize  ld,
gssize  m 
)

Definition at line 2516 of file eh_num.c.

References eh_free, eh_min, eh_new, eh_new_2, eh_require, lubksb(), and ludcmp().

Referenced by eh_low_pass_filter().

double trapzd ( Eh_dbl_func_with_data  func,
double  a,
double  b,
gssize  n,
gpointer  data 
)

Definition at line 855 of file eh_num.c.

Referenced by eh_integrate_with_data(), and qtrap().

double* tridiag ( double *  l,
double *  d,
double *  u,
double *  b,
double *  x,
int  n 
)

Solve a tridiagonal set of equations.

Solve the system of linear equations for $ x $ in,

\[ \left[ \matrix { d_1 & u_1 & 0 \cr l_2 & d_2 & u_2 & \ddots \cr 0 & \ddots & \ddots & \ddots & 0 \cr & \ddots & l_{n-1}& d_{n-1}& u_{n-1} \cr & & 0 & l_n & d_n } \right] \left\{ \matrix{ x_1\cr x_2\cr \vdots\cr x_{n-1}\cr x_n } \right\} = \left\{ \matrix{ b_1\cr b_2\cr \vdots\cr b_{n-1}\cr b_n } \right\} \]

Parameters:
l entries on the lower diagonal.
d entries on the diagonal.
u entries on the upper diagonal.
b entries of the right hand side column vector.
x the output column vector.
n the number of equations in the system.

Definition at line 991 of file eh_num.c.

References eh_compare_dbl(), eh_free, and eh_new.

Referenced by eh_dbl_array_diffuse_implicit(), plume_i_bar_at_x(), and solve_excess_pore_pressure().

void twofft ( double  data1[],
double  data2[],
double  fft1[],
double  fft2[],
unsigned long  n 
)

Definition at line 2713 of file eh_num.c.

References four1(), and jj.

Referenced by convlv().

double * vector ( long  l,
long  h 
)

Definition at line 2610 of file eh_num.c.

References eh_new.

void zbesk_ ( double *  ,
double *  ,
double *  ,
long int *  ,
long int *  ,
double *  ,
double *  ,
long int *  ,
long int *   
)

Definition at line 1177 of file zbsubs.c.

References abs, d1mach_(), i1mach_(), k1, k2, max, min, zabs_(), zacon_(), zbknu_(), zbunk_(), and zuoik_().

Referenced by eh_kei_0(), and zbesy_().


Generated on Fri Jan 4 18:04:18 2008 for sedflux by  doxygen 1.5.2