#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) |
Complex * | c_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 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 M_LN2 0.69314718055994530942 |
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 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
This is taken from Numerical Recipes
n | A non-negative integer | |
y | A non-negative integer |
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 | |||
) |
double eh_dbl_array_abs_sum | ( | const double * | x, | |
gsize | n | |||
) |
double* eh_dbl_array_add | ( | double * | dest, | |
double * | src, | |||
gssize | n | |||
) |
double* eh_dbl_array_add_each | ( | double * | d, | |
gssize | n, | |||
double * | s | |||
) |
double* eh_dbl_array_add_scalar | ( | double * | x, | |
gssize | n, | |||
double | a | |||
) |
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 | |||
) |
double* eh_dbl_array_conv | ( | double * | x, | |
gsize | len_x, | |||
double * | y, | |||
gsize | len_y | |||
) |
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 | |||
) |
double* eh_dbl_array_cum_mean_dir | ( | double * | x, | |
gsize | n, | |||
gboolean | forward | |||
) |
double* eh_dbl_array_cum_min_dir | ( | double * | x, | |
gsize | n, | |||
gboolean | forward | |||
) |
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 | |||
) |
double* eh_dbl_array_foreach | ( | double * | x, | |
gssize | n, | |||
Eh_dbl_func | f | |||
) |
gssize eh_dbl_array_fprint | ( | FILE * | fp, | |
double * | x, | |||
gssize | n | |||
) |
double* eh_dbl_array_gradient | ( | const double * | y, | |
gsize | n, | |||
double | dx | |||
) |
double* eh_dbl_array_grid | ( | double * | x, | |
gsize | n, | |||
double | start, | |||
double | dx | |||
) |
gboolean eh_dbl_array_is_monotonic | ( | double * | x, | |
gssize | len | |||
) |
Check if an array is monotonic (either increasing of decreasing)
x | A pointer to an array of doubles | |
len | The length of the array |
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 | |||
) |
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 | |||
) |
gssize eh_dbl_array_max_ind | ( | const double * | x, | |
gssize | n | |||
) |
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[] | |||
) |
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 | |||
) |
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 | |||
) |
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 | |||
) |
double eh_dbl_array_var | ( | const double * | x, | |
gsize | n | |||
) |
gint eh_dbl_array_write | ( | FILE * | fp, | |
double * | x, | |||
gint | len | |||
) |
double* eh_dbl_col_to_array | ( | double * | d, | |
double * | col, | |||
gint | n, | |||
gssize | offset | |||
) |
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.
y |
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
n | A non-negative integer |
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
n | A non-negative integer |
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,
This is taken from Numerical Recipes.
Calculate the incomplete Gamma function, ,
using its continued fraction representation. This converges rapidly for .
gammcf | The incomplete Gamma function evaluated at ![]() | |
a | A floating point number | |
x | A floating point number | |
gln | Log the the Gamma function at ![]() |
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
xx | A floating point number |
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,
This is taken from Numerical Recipes.
Calculate the Gamma function, ,
a | A floating point number | |
x | A floating point number |
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, ,
a | A floating point number | |
x | A floating point number |
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
This is taken from Numerical Recipes.
Calculate the incomplete Gamma function, , using its series representation. This converges rapidly for
.
gamser | The incomplete Gamma function evaluated at ![]() | |
a | A floating point number | |
x | A floating point number | |
gln | Log the the Gamma function at ![]() |
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 | |||
) |
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
n | An integer |
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 | |||
) |
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.
x1 | Lower bound | |
x2 | Lower bound | |
n | Number of points |
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.
d1 | Lower bound | |
d2 | Lower bound | |
n | Number of points |
Definition at line 2429 of file eh_num.c.
References eh_linspace().
double* eh_low_pass_filter | ( | double * | x, | |
gssize | len | |||
) |
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 | |||
) |
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 | |||
) |
double eh_pythag | ( | double | a, | |
double | b | |||
) |
double eh_r_squared | ( | double * | x, | |
double * | y, | |||
gssize | len, | |||
Eh_dbl_func_with_data | f, | |||
gpointer | data | |||
) |
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 | |||
) |
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
angle | An angle (in radians) |
Definition at line 963 of file eh_num.c.
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
val | Value to round | |
rnd | Multiple to round to |
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 | |||
) |
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 | |||
) |
void free_vector | ( | double * | x, | |
long | l, | |||
long | h | |||
) |
long int i1mach_ | ( | long int * | i | ) |
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 | ) |
void lubksb | ( | double ** | a, | |
gssize | n, | |||
gssize * | indx, | |||
double * | b | |||
) |
void ludcmp | ( | double ** | a, | |
gssize | n, | |||
gssize * | indx, | |||
double * | d | |||
) |
void poly_basis_funcs | ( | double | x, | |
double * | p, | |||
gssize | n | |||
) |
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 | |||
) |
void realft | ( | double | data[], | |
unsigned long | n, | |||
int | isign | |||
) |
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 | |||
) |
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 in,
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 | |||
) |
void zbesk_ | ( | double * | , | |
double * | , | |||
double * | , | |||
long int * | , | |||
long int * | , | |||
double * | , | |||
double * | , | |||
long int * | , | |||
long int * | ||||
) |