double angle_shift ( double alpha, double beta ); double angle_shift_deg ( double alpha, double beta ); double *angle_to_rgb ( double angle ); void axis_limits ( double xmin, double xmax, int ndivs, double *pxmin, double *pxmax, double *pxdiv, int *nticks ); int bar_check ( int digit[12] ); char *bar_code ( int digit[] ); char *bar_digit_code_left ( int digit ); char *bar_digit_code_right ( int digit ); void bin_to_d_even ( int nbin, int bin, double a, double b, double *cmin, double *cmax ); double bmi_english ( double w_lb, double h_ft, double h_in ); double bmi_metric ( double w_kg, double h_m ); float c4_abs ( complex x ); float c4_argument ( complex x ); float c4_magnitude ( complex x ); void c4mat_print_some ( int m, int n, complex a[], int ilo, int jlo, int ihi, int jhi, char *title ); void c4vec_print_some ( int n, complex a[], int i_lo, int i_hi, char *title ); double c8_argument ( complex x ); complex c8_cube_root ( complex x ); complex c8_i ( ); bool c8_le_l1 ( complex x, complex y ); bool c8_le_l2 ( complex x, complex y ); bool c8_le_li ( complex x, complex y ); double c8_magnitude ( complex x ); double c8_norm_l1 ( complex x ); double c8_norm_l2 ( complex x ); double c8_norm_li ( complex x ); complex c8_normal_01 ( int *seed ); complex c8_one ( );; void c8_print ( complex a, char *title ); complex c8_sqrt ( complex x ); void c8_swap ( complex *x, complex *y ); complex c8_uniform_01 ( int *seed ); complex c8_zero ( ); void c8mat_copy ( int m, int n, complex a1[], complex a2[] ); complex *c8mat_copy_new ( int m, int n, complex a1[] ); complex *c8mat_identity ( int n ); complex *c8mat_indicator ( int m, int n ); void c8mat_nint ( int m, int n, complex a[] ); void c8mat_print ( int m, int n, complex a[], char *title ); void c8mat_print_some ( int m, int n, complex a[], int ilo, int jlo, int ihi, int jhi, char *title ); complex *c8mat_uniform_01 ( int m, int n, int *seed ); void c8vec_copy ( int n, complex a1[], complex a2[] ); complex *c8vec_copy_new ( int n, complex a1[] ); complex *c8vec_indicator ( int n ); double c8vec_norm_l2 ( int n, complex a[] ); void c8vec_print ( int n, complex a[], char *title ); complex *c8vec_uniform_01 ( int n, int *seed ); complex *c8vec_unity ( int n ); char ch_cap ( char c ); bool ch_eqi ( char ch1, char ch2 ); bool ch_is_digit ( char c ); int ch_to_digit ( char ch ); double degrees_to_radians ( double degrees ); double e_constant ( ); double euler_constant ( ); void fac_div ( int prime_num, int npower1[], int npower2[], int npower3[] ); void fac_gcd ( int prime_num, int npower1[], int npower2[], int npower3[] ); void fac_lcm ( int prime_num, int npower1[], int npower2[], int npower3[] ); void fac_mul ( int prime_num, int npower1[], int npower2[], int npower3[] ); void fac_print ( int prime_num, int npower[] ); int fac_to_i4 ( int prime_num, int npower[] ); void fac_to_rat ( int prime_num, int npower[], int *top, int *bot ); double feet_to_meters ( double ft ); double gauss_sum ( int dim_num, int n, double amplitude[], double center[], double width[], double x[] ); unsigned long get_seed ( ); double *grid1 ( int dim_num, int nstep, double x1[], double x2[] ); double *grid1n ( int j, int dim_num, int nstep, double x1[], double x2[] ); double *grid2 ( int j1, int j2, int dim_num, int nstep, double x1[], double x2[] ); double *grid2n ( int j, int j1, int j2, int dim_num, double x1[], double x2[] ); double *grid3 ( int dim_num, int nstep1, int nstep2, double x1[], double x2[], double x3[] ); double *grid3n ( int j, int k, int dim_num, int nstep1, int nstep2, double x1[], double x2[], double x3[] ); double *grid4 ( int j1, int j2, int k1, int k2, int dim_num, int nstep1, int nstep2, double x1[], double x2[], double x3[] ); double *grid4n ( int j, int j1, int j2, int k, int k1, int k2, int dim_num, int nstep1, int nstep2, double x1[], double x2[], double x3[] ); short int i2_reverse_bytes ( short int x ); int i4_bit_hi1 ( int n ); int i4_bit_lo0 ( int n ); int i4_bit_lo1 ( int n ); int i4_bit_reverse ( int i, int n ); int i4_characteristic ( int q ); int i4_choose ( int n, int k ); int i4_div_rounded ( int a, int b ); int i4_divp ( int i, int j ); bool i4_even ( int i ); int i4_factorial ( int n ); int i4_gcd ( int i, int j ); int i4_gcdb ( int i, int j, int k ); int i4_huge ( ); double i4_huge_normalizer ( ); bool i4_is_power_of_2 ( int n ); bool i4_is_prime ( int n ); int i4_lcm ( int i, int j ); int i4_log_2 ( int i ); int i4_log_10 ( int i ); int i4_log_i4 ( int i4, int j4 ); int i4_log_r8 ( int x, double b ); void i4_mant ( double x, int *s, int *j, int *k, int *l ); int i4_max ( int i1, int i2 ); int i4_min ( int i1, int i2 ); void i4_moddiv ( int n, int d, int *m, int *r ); int i4_modp ( int i, int j ); int i4_mop ( int i ); bool i4_odd ( int i ); int i4_power ( int i, int j ); int i4_reverse_bytes ( int x ); int i4_sign ( int i ); void i4_swap ( int *i, int *j ); void i4_swap3 ( int *i, int *j, int *k ); double i4_to_angle ( int i ); int *i4_to_digits_decimal ( int i, int n ); int *i4_to_fac ( int i, int nprime ); void i4_to_halton ( int dim_num, int step, int seed[], int leap[], int base[], double r[] ); char i4_to_isbn ( int i ); int i4_uniform ( int b, int c, int *seed );; void i4_unswap3 ( int *i, int *j, int *k ); int i4_walsh_1d ( double x, int digit ); int i4_width ( int i ); int i4_wrap ( int ival, int ilo, int ihi ); unsigned int i4_xor ( unsigned int i, unsigned int j ); int i4col_compare ( int m, int n, int a[], int i, int j ); int i4col_find ( int m, int n, int a[], int ivec[] ); void i4col_find_item ( int m, int n, int a[], int item, int *row, int *col ); void i4col_find_pair_wrap ( int m, int n, int a[], int item1, int item2, int *row, int *col ); int *i4col_first_index ( int m, int n, int a[] ); void i4col_sort_a ( int m, int n, int a[] ); void i4col_sort_d ( int m, int n, int a[] ); void i4col_sort2_a ( int m, int n, int a[] ); void i4col_sort2_d ( int m, int n, int a[] ); int i4col_sorted_singleton_count ( int m, int n, int a[] ); void i4col_sorted_unique ( int m, int n, int a[], int *unique_num ); int i4col_sorted_unique_count ( int m, int n, int a[] ); void i4col_swap ( int m, int n, int a[], int icol1, int icol2 ); int *i4col_unique_index ( int m, int n, int a[] ); double i4int_to_r8int ( int imin, int imax, int i, double rmin, double rmax ); void i4mat_copy ( int m, int n, int a1[], int a2[] ); int *i4mat_copy_new ( int m, int n, int a1[] ); void i4mat_elim ( int m, int n, int a[] ); void i4mat_flip_rows ( int m, int n, int a[] ); int *i4mat_indicator ( int m, int n ); int *i4mat_l1_inverse ( int n, int a[] ); void i4mat_max_index ( int m, int n, int a[], int *i_max, int *j_max ); void i4mat_min_index ( int m, int n, int a[], int *i_min, int *j_min ); int *i4mat_mm ( int n1, int n2, int n3, int a[], int b[] ); void i4mat_perm_uniform ( int n, int a[], int *seed ); void i4mat_perm2_uniform ( int m, int n, int a[], int *seed ); void i4mat_print ( int m, int n, int a[], char *title ); void i4mat_print_some ( int m, int n, int a[], int ilo, int jlo, int ihi, int jhi, char *title ); void i4mat_red ( int m, int n, int a[], int row[], int col[] ); void i4mat_transpose_print ( int m, int n, int a[], char *title ); void i4mat_transpose_print_some ( int m, int n, int a[], int ilo, int jlo, int ihi, int jhi, char *title ); int *i4mat_u1_inverse ( int n, int a[] ); int *i4mat_uniform ( int m, int n, int a, int b, int *seed ); int i4row_compare ( int m, int n, int a[], int i, int j ); void i4row_find_item ( int m, int n, int a[], int item, int *row, int *col ); int *i4row_max ( int m, int n, int a[] ); double *i4row_mean ( int m, int n, int a[] ); int *i4row_min ( int m, int n, int a[] ); void i4row_sort_a ( int m, int n, int a[] ); void i4row_sort_d ( int m, int n, int a[] ); void i4row_sort2_d ( int m, int n, int a[] ); int *i4row_sum ( int m, int n, int a[] ); void i4row_swap ( int m, int n, int a[], int irow1, int irow2 ); double *i4row_variance ( int m, int n, int a[] ); int i4vec_amax ( int n, int a[] ); int i4vec_amax_index ( int n, int a[] ); int i4vec_amin ( int n, int a[] ); int i4vec_amin_index ( int n, int a[] ); int i4vec_aminz ( int n, int a[] ); int i4vec_aminz_index ( int n, int a[] ); int *i4vec_ascend_sub ( int n, int a[], int *length ); bool i4vec_ascends ( int n, int a[] ); void i4vec_axpy ( int n, int ia, int ix[], int incx, int iy[], int incy ); void i4vec_bracket ( int n, int x[], int xval, int *left, int *right ); int i4vec_compare ( int n, int a1[], int a2[] ); void i4vec_copy ( int n, int a1[], int a2[] ); int *i4vec_copy_new ( int n, int a1[] ); int *i4vec_cum ( int n, int a[] ); bool i4vec_descends ( int n, int x[] ); void i4vec_direct_product ( int factor_index, int factor_order, int factor_value[], int factor_num, int point_num, int x[] ); void i4vec_direct_product2 ( int factor_index, int factor_order, int factor_value[], int factor_num, int point_num, int w[] ); int *i4vec_first_index ( int n, int a[] ); int i4vec_frac ( int n, int a[], int k ); int i4vec_gcd ( int n, int a[] ); void i4vec_heap_a ( int n, int a[] ); void i4vec_heap_d ( int n, int a[] ); int i4vec_heap_d_extract ( int *n, int a[] ); void i4vec_heap_d_insert ( int *n, int a[], int value ); int i4vec_heap_d_max ( int n, int a[] ); int *i4vec_histogram ( int n, int a[], int histo_num ); int i4vec_index ( int n, int a[], int aval ); void i4vec_index_delete_all ( int n, int x[], int indx[], int xval, int *n2, int x2[], int indx2[] ); void i4vec_index_delete_dupes ( int n, int x[], int indx[], int *n2, int x2[], int indx2[] ); void i4vec_index_delete_one ( int n, int x[], int indx[], int xval, int *n2, int x2[], int indx2[] ); void i4vec_index_insert ( int *n, int x[], int indx[], int xval ); void i4vec_index_insert_unique ( int *n, int x[], int indx[], int xval ); void i4vec_index_order ( int n, int x[], int indx[] ); void i4vec_index_search ( int n, int x[], int indx[], int xval, int *less, int *equal, int *more ); void i4vec_index_sort_unique ( int n, int x[], int *n2, int x2[], int indx2[] ); int *i4vec_indicator ( int n ); void i4vec_insert ( int n, int a[], int pos, int value ); int i4vec_max ( int n, int *ivec ); int i4vec_max_index ( int n, int a[] ); int i4vec_max_index_last ( int n, int a[] ); double i4vec_mean ( int n, int x[] ); int i4vec_median ( int n, int a[] ); int *i4vec_merge_a ( int na, int a[], int nb, int b[] ); int i4vec_min ( int n, int *ivec ); int i4vec_min_index ( int n, int a[] ); int i4vec_nonzero_count ( int n, int a[] ); void i4vec_nonzero_first ( int n, int x[], int *nz, int indx[] ); int i4vec_order_type ( int n, int x[] ); bool i4vec_pairwise_prime ( int n, int a[] ); void i4vec_part ( int n, int nval, int x[] ); void i4vec_part_quick_a ( int n, int a[], int *l, int *r ); void i4vec_permute ( int n, int p[], int base, int a[] ); void i4vec_permute_uniform ( int n, int a[], int *seed ); void i4vec_print ( int n, int a[], char *title ); void i4vec_print_some ( int n, int a[], int i_lo, int i_hi, char *title ); int i4vec_product ( int n, int a[] ); int i4vec_red ( int n, int a[] ); void i4vec_reverse ( int n, int x[] ); void i4vec_rotate ( int n, int m, int x[] ); int i4vec_run_count ( int n, int a[] ); int i4vec_search_binary_a ( int n, int a[], int b ); int i4vec_search_binary_d ( int n, int a[], int b ); void i4vec_sort_bubble_a ( int n, int a[] ); void i4vec_sort_bubble_d ( int n, int a[] ); void i4vec_sort_heap_a ( int n, int a[] ); void i4vec_sort_heap_d ( int n, int a[] ); int *i4vec_sort_heap_index_a ( int n, int a[] ); int *i4vec_sort_heap_index_d ( int n, int a[] ); void i4vec_sort_insert_a ( int n, int a[] ); void i4vec_sort_insert_d ( int n, int a[] ); void i4vec_sort_quick_a ( int n, int a[] ); void i4vec_sort_shell_a ( int n, int a[] ); void i4vec_sorted_undex ( int x_num, int x_val[], int x_unique_num, int undx[], int xdnu[] ); int i4vec_sorted_unique ( int n, int a[] ); int i4vec_sorted_unique_count ( int n, int a[] ); void i4vec_sorted_unique_hist ( int n, int a[], int maxuniq, int *unique_num, int auniq[], int acount[] ); int i4vec_split ( int n, int a[], int split ); int i4vec_sum ( int n, int a[] ); void i4vec_swap ( int n, int iarray1[], int iarray2[] ); void i4vec_transpose_print ( int n, int a[], char *title ); void i4vec_undex ( int x_num, int x_val[], int x_unique_num, int undx[], int xdnu[] ); int *i4vec_uniform ( int n, int a, int b, int *seed ); int i4vec_unique_count ( int n, int a[] ); int *i4vec_unique_index ( int n, int a[] ); int *i4vec_value_index ( int n, int a[], int value, int max_index, int *n_index ); int i4vec_value_num ( int n, int a[], int value ); double i4vec_variance ( int n, int x[] ); void i4vec_zero ( int n, int a[] ); int *i4vec_zero_new ( int n ); int i4vec2_compare ( int n, int a1[], int a2[], int i, int j ); void i4vec2_print ( int n, int a1[], int a2[], char *title ); void i4vec2_sort_a ( int n, int a1[], int a2[] ); void i4vec2_sort_d ( int n, int a1[], int a2[] ); void i4vec2_sorted_unique ( int n, int a1[], int a2[], int *unique_num ); void i4i4_sort_a ( int i1, int i2, int *j1, int *j2 ); void i4i4i4_sort_a ( int i1, int i2, int i3, int *j1, int *j2, int *j3 ); long long int i8_huge ( ); long long int i8_max ( long long int i1, long long int i2 ); long long int i8_min ( long long int i1, long long int i2 ); long long int i8_power ( long long int i, long long int j ); long long int i8_reverse_bytes ( long long int x ); unsigned long long int i8_xor ( unsigned long long int i, unsigned long long int j ); void ij_next ( int *i, int *j, int n ); void ij_next_gt ( int *i, int *j, int n ); void index_box2_next_2d ( int n1, int n2, int ic, int jc, int *i, int *j, int *more ); void index_box2_next_3d ( int n1, int n2, int n3, int ic, int jc, int kc, int *i, int *j, int *k, bool *more ); int isbn_check ( char *isbn ); void isbn_fill ( char *isbn ); int isbn_to_i4 ( char c ); int iset2_compare ( int x1, int y1, int x2, int y2 ); int lcm_12n ( int n ); void lvec_print ( int n, bool a[], char *title ); int pause_input ( ); void pause_seconds ( int seconds ); bool perm_check ( int n, int p[], int base ); void perm_cycle ( int n, int p[], int *isgn, int *ncycle, int iopt ); int *perm_free ( int npart, int ipart[], int nfree ); void perm_inverse ( int n, int p[] ); void perm_print ( int n, int p[], char *title ); int *perm_uniform ( int n, int base, int *seed ); double pounds_to_kilograms ( double lb ); int prime ( int n ); int prime_ge ( int n ); float r4_abs ( float x ); float r4_atan ( float y, float x ); float r4_epsilon ( ); float r4_exp ( float x ); float r4_huge ( ); float r4_max ( float x, float y ); float r4_min ( float x, float y ); int r4_nint ( float x ); float r4_reverse_bytes ( float x ); void r4_swap ( float *x, float *y ); float r4_tiny ( ); float r4_uniform_01 ( int *seed ); double r8_abs ( double x ); double r8_atan ( double y, double x ); double r8_cas ( double x ); double r8_ceiling ( double x ); double r8_choose ( int n, int k ); double r8_chop ( int place, double x ); complex r8_csqrt ( double x ); double r8_cube_root ( double x ); double r8_diff ( double x, double y, int n ); int r8_digit ( double x, int idigit ); double r8_epsilon ( ); double r8_exp ( double x ); double r8_factorial ( int n ); double r8_factorial2 ( int n ); double r8_floor ( double x ); double r8_fraction ( double x ); double r8_huge ( ); bool r8_in_01 ( double a ); bool r8_is_int ( double r ); double r8_log_10 ( double x ); double r8_log_2 ( double x ); double r8_log_b ( double x, double b ); void r8_mant ( double x, int *s, double *r, int *l ); double r8_max ( double x, double y ); double r8_min ( double x, double y ); double r8_mod ( double x, double y ); double r8_modp ( double x, double y ); double r8_mop ( int i ); int r8_nint ( double x ); double r8_normal_01 ( int *seed ); double r8_pi ( ); double r8_power ( double r, int p ); double r8_power_fast ( double r, int p, int *mults ); double r8_pythag ( double a, double b ); double r8_round2 ( int nplace, double x ); double r8_roundb ( int base, int nplace, double x ); double r8_roundx ( int nplace, double x ); double r8_sign ( double x ); double r8_reverse_bytes ( double x ); void r8_swap ( double *x, double *y ); void r8_swap3 ( double *x, double *y, double *z ); double r8_tiny ( ); double r8_to_r8_discrete ( double r, double rmin, double rmax, int nr ); void r8_to_dhms ( double r, int *d, int *h, int *m, int *s ); int r8_to_i4 ( double x, double xmin, double xmax, int ixmin, int ixmax ); double r8_uniform ( double b, double c, int *seed ); double r8_uniform_01 ( int *seed ); void r8_unswap3 ( double *x, double *y, double *z ); double r8_walsh_1d ( double x, int digit ); double *r82_cheby ( int n, double alo, double ahi ); void r82_print ( double a[2], char *title ); void r82_uniform ( double b, double c, int *seed, double r[] ); void r82poly2_print ( double a, double b, double c, double d, double e, double f ); int r82poly2_type ( double a, double b, double c, double d, double e, double f ); void r82poly2_type_print ( int type ); double *r82vec_max ( int n, double a[] ); double *r82vec_min ( int n, double a[] ); int r82vec_order_type ( int n, double a[] ); void r82vec_part_quick_a ( int n, double a[], int *l, int *r ); void r82vec_permute ( int n, int p[], int base, double a[] ); void r82vec_print ( int n, double a[], char *title ); int *r82vec_sort_heap_index_a ( int n, double a[] ); void r82vec_sort_quick_a ( int n, double a[] ); double *r83vec_max ( int n, double a[] ); double *r83vec_min ( int n, double a[] ); void r83vec_part_quick_a ( int n, double a[], int *l, int *r ); void r83vec_sort_quick_a ( int n, double a[] ); double *r83vec_uniform ( int n, double b, double c, int *seed ); double *r8block_expand_linear ( int l, int m, int n, double x[], int lfat, int mfat, int nfat ); void r8block_print ( int l, int m, int n, double a[], char *title ); int r8col_compare ( int m, int n, double a[], int i, int j ); int r8col_find ( int m, int n, double a[], double x[] ); int *r8col_first_index ( int m, int n, double a[], double tol ); int r8col_insert ( int n_max, int m, int n, double a[], double x[] ); double *r8col_max ( int m, int n, double a[] ); int *r8col_max_index ( int m, int n, double a[] ); double *r8col_mean ( int m, int n, double a[] ); double *r8col_min ( int m, int n, double a[] ); int *r8col_min_index ( int m, int n, double a[] ); void r8col_part_quick_a ( int m, int n, double a[], int *l, int *r ); void r8col_permute ( int m, int n, int p[], int base, double a[] ); void r8col_sort_heap_a ( int m, int n, double a[] ); int *r8col_sort_heap_index_a ( int m, int n, double a[] ); void r8col_sort_quick_a ( int m, int n, double a[] ); void r8col_sorted_undex ( int x_dim, int x_num, double x_val[], int x_unique_num, double tol, int undx[], int xdnu[] ); int r8col_sorted_unique ( int m, int n, double a[] ); int r8col_sorted_unique_count ( int m, int n, double a[], double tol ); void r8col_sortr_a ( int m, int n, double a[], int key ); double *r8col_sum ( int m, int n, double a[] ); void r8col_swap ( int m, int n, double a[], int j1, int j2 ); double *r8col_to_r8vec ( int m, int n, double a[] ); void r8col_undex ( int x_dim, int x_num, double x_val[], int x_unique_num, double tol, int undx[], int xdnu[] ); int r8col_unique_count ( int m, int n, double a[], double tol ); int *r8col_unique_index ( int m, int n, double a[], double tol ); double *r8col_variance ( int m, int n, double a[] ); int r8r8_compare ( double x1, double y1, double x2, double y2 ); void r8r8_print ( double a1, double a2, char *title ); int r8r8r8_compare ( double x1, double y1, double z1, double x2, double y2, double z2 ); void r8r8r8vec_index_insert_unique ( int maxn, int *n, double x[], double y[], double z[], int indx[], double xval, double yval, double zval, int *ival, int *ierror ); void r8r8r8vec_index_search ( int n, double x[], double y[], double z[], int indx[], double xval, double yval, double zval, int *less, int *equal, int *more ); void r8r8vec_index_insert_unique ( int maxn, int *n, double x[], double y[], int indx[], double xval, double yval, int *ival, int *ierror ); void r8r8vec_index_search ( int n, double x[], double y[], int indx[], double xval, double yval, int *less, int *equal, int *more ); double degrees_to_radians ( double angle ); double r8int_to_r8int ( double rmin, double rmax, double r, double r2min, double r2max ); int r8int_to_i4int ( double rmin, double rmax, double r, int imin, int imax ); double *r8mat_cholesky_factor ( int n, double a[] ); double *r8mat_cholesky_solve ( int n, double a[], double b[] ); void r8mat_copy ( int m, int n, double a1[], double a2[] ); double *r8mat_copy_new ( int m, int n, double a1[] ); double r8mat_det ( int n, double a[] ); double r8mat_det_2d ( double a[] ); double r8mat_det_3d ( double a[] ); double r8mat_det_4d ( double a[] ); double r8mat_det_5d ( double a[] ); void r8mat_diag_add_scalar ( int n, double a[], double s ); void r8mat_diag_add_vector ( int n, double a[], double v[] ); double *r8mat_diag_get_vector ( int n, double a[] ); void r8mat_diag_set_scalar ( int n, double a[], double s ); void r8mat_diag_set_vector ( int n, double a[], double v[] ); double *r8mat_expand_linear ( int m, int n, double x[], int mfat, int nfat ); double *r8mat_expand_linear2 ( int m, int n, double a[], int m2, int n2 ); double *r8mat_givens_post ( int n, double a[], int row, int col ); double *r8mat_givens_pre ( int n, double a[], int row, int col ); double *r8mat_hess ( double (*fx )( int n, double x[] ), int n, double x[] ); void r8mat_house_axh ( int n, double a[], double v[] ); double *r8mat_house_axh_new ( int n, double a[], double v[] ); double *r8mat_house_form ( int n, double v[] ); double *r8mat_house_hxa ( int n, double a[], double v[] ); double *r8mat_house_post ( int n, double a[], int row, int col ); double *r8mat_house_pre ( int n, double a[], int row, int col ); double *r8mat_identity ( int n ); bool r8mat_in_01 ( int m, int n, double a[] ); double *r8mat_indicator ( int m, int n ); double *r8mat_inverse_2d ( double a[] ); double *r8mat_inverse_3d ( double a[] ); double *r8mat_inverse_4d ( double a[] ); double *r8mat_jac ( int m, int n, double eps, double *(*fx) ( int m, int n, double x[] ), double x[] ); double *r8mat_l_inverse ( int n, double a[] ); void r8mat_l_print ( int m, int n, double a[], char *title ); double *r8mat_l_solve ( int n, double a[], double b[] ); double *r8mat_l1_inverse ( int n, double a[] ); double *r8mat_lt_solve ( int n, double a[], double b[] ); void r8mat_lu ( int m, int n, double a[], double l[], double p[], double u[] ); double r8mat_max ( int m, int n, double a[] ); void r8mat_max_index ( int m, int n, double a[], int *i_max, int *j_max ); double r8mat_maxcol_minrow ( int m, int n, double a[] ); double r8mat_maxrow_mincol ( int m, int n, double a[] ); double r8mat_min ( int m, int n, double a[] ); void r8mat_min_index ( int m, int n, double a[], int *i_min, int *j_min ); double r8mat_mincol_maxrow ( int m, int n, double a[] ); double r8mat_minrow_maxcol ( int m, int n, double a[] ); double *r8mat_mm ( int n1, int n2, int n3, double a[], double b[] ); double *r8mat_mtv ( int m, int n, double a[], double x[] ); void r8mat_mtxv ( int m, int n, double a[], double x[], double atx[] ); double *r8mat_mv ( int m, int n, double a[], double x[] ); void r8mat_mxm ( int n1, int n2, int n3, double a[], double b[], double c[] ); double *r8mat_mxm_new ( int n1, int n2, int n3, double a[], double b[] ); void r8mat_mxv ( int m, int n, double a[], double x[], double ax[] ); void r8mat_nint ( int m, int n, double a[] ); double r8mat_norm_eis ( int m, int n, double a[] ); double r8mat_norm_fro ( int m, int n, double a[] ); double *r8mat_nullspace ( int m, int n, double a[], int nullspace_size ); int r8mat_nullspace_size ( int m, int n, double a[] ); double *r8mat_orth_uniform ( int n, int *seed ); void r8mat_plot ( int m, int n, double a[], char *title ); char r8mat_plot_symbol ( double r ); double *r8mat_poly_char ( int n, double a[] ); double *r8mat_power ( int n, double a[], int npow ); void r8mat_power_method ( int n, double a[], double *r, double v[] ); void r8mat_print ( int m, int n, double a[], char *title ); void r8mat_print_some ( int m, int n, double a[], int ilo, int jlo, int ihi, int jhi, char *title ); void r8mat_ref ( int m, int n, double a[] ); void r8mat_rref ( int m, int n, double a[] ); int r8mat_solve ( int n, int nrhs, double a[] ); double *r8mat_solve_2d ( double a[], double b[], double *det ); double *r8mat_solve_3d ( double a[], double b[], double *det ); double *r8mat_solve2 ( int n, double a[], double b[], int *ierror ); double *r8mat_symm_eigen ( int n, double x[], double q[] ); void r8mat_symm_jacobi ( int n, double a[] ); int r8mat_to_r8plu ( int n, double a[], int pivot[], double lu[] ); double r8mat_trace ( int n, double a[] ); double *r8mat_transpose ( int m, int n, double a[] ); void r8mat_transpose_in_place ( int n, double a[] ); void r8mat_transpose_print ( int m, int n, double a[], char *title ); void r8mat_transpose_print_some ( int m, int n, double a[], int ilo, int jlo, int ihi, int jhi, char *title ); double *r8mat_u_inverse ( int n, double a[] ); double *r8mat_u1_inverse ( int n, double a[] ); double *r8mat_uniform ( int m, int n, double b, double c, int *seed ); double *r8mat_uniform_01 ( int m, int n, int *seed ); double *r8mat_vand2 ( int n, double x[] ); void r8mat_zero ( int m, int n, double a[] ); double *r8mat_zero_new ( int m, int n ); double r8plu_det ( int n, int pivot[], double lu[] ); void r8plu_inverse ( int n, int pivot[], double lu[], double a_inverse[] ); void r8plu_mul ( int n, int pivot[], double lu[], double x[], double b[] ); void r8plu_sol ( int n, int pivot[], double lu[], double b[], double x[] ); void r8plu_to_r8mat ( int n, int pivot[], double lu[], double a[] ); int r8poly_degree ( int na, double a[] ); double *r8poly_deriv ( int n, double c[], int p ); double r8poly_lagrange_0 ( int npol, double xpol[], double xval ); double r8poly_lagrange_1 ( int npol, double xpol[], double xval ); double r8poly_lagrange_2 ( int npol, double xpol[], double xval ); double *r8poly_lagrange_coef ( int npol, int ipol, double xpol[] ); void r8poly_lagrange_factor ( int npol, double xpol[], double xval, double *wval, double *dwdx ); int r8poly_lagrange_val ( int npol, int ipol, double xpol[], double xval, double *pval, double *dpdx ); int r8poly_order ( int na, double a[] ); void r8poly_print ( int n, double a[], char *title ); void r8poly_shift ( double scale, double shift, int n, double poly_cof[] ); double r8poly_val_horner ( int n, double c[], double x ); int r8poly2_ex ( double x1, double y1, double x2, double y2, double x3, double y3, double *x, double *y ); int r8poly2_ex2 ( double x1, double y1, double x2, double y2, double x3, double y3, double *x, double *y, double *a, double *b, double *c ); void r8poly2_root ( double a, double b, double c, complex *r1, complex *r2 ); void r8poly2_rroot ( double a, double b, double c, double *r1, double *r2 ); void r8poly2_val ( double x1, double y1, double x2, double y2, double x3, double y3, double x, double *y, double *yp, double *ypp ); void r8poly2_val2 ( int ndata, double tdata[], double ydata[], int left, double tval, double *yval ); void r8poly3_root ( double a, double b, double c, double d, complex *r1, complex *r2, complex *r3 ); void r8poly4_root ( double a, double b, double c, double d, double e, complex *r1, complex *r2, complex *r3, complex *r4 ); double *r8row_max ( int m, int n, double a[] ); double *r8row_mean ( int m, int n, double a[] ); double *r8row_min ( int m, int n, double a[] ); double *r8row_sum ( int m, int n, double a[] ); void r8row_swap ( int m, int n, double a[], int irow1, int irow2 ); double *r8row_to_r8vec ( int m, int n, double a[] ); double *r8row_variance ( int m, int n, double a[] ); void r8slmat_print ( int m, int n, double a[], char *title ); void r8vec_01_to_ab ( int n, double a[], double amax, double amin ); void r8vec_ab_to_01 ( int n, double a[] ); double *r8vec_ab_to_cd ( int n, double a[], double bmin, double bmax ); double r8vec_amax ( int n, double r8vec[] ); int r8vec_amax_index ( int n, double a[] ); double r8vec_amin ( int n, double r8vec[] ); int r8vec_amin_index ( int n, double a[] ); void r8vec_bracket ( int n, double x[], double xval, int *left, int *right ); void r8vec_bracket2 ( int n, double x[], double xval, int start, int *left, int *right ); void r8vec_bracket3 ( int n, double t[], double tval, int *left ); double r8vec_circular_variance ( int n, double x[] ); int r8vec_compare ( int n, double a[], double b[] ); double *r8vec_convolve_circ ( int n, double x[], double y[] ); void r8vec_copy ( int n, double a1[], double a2[] ); double *r8vec_copy_new ( int n, double a1[] ); double *r8vec_cross_3d ( double v1[3], double v2[3] ); double *r8vec_dif ( int n, double h ); void r8vec_direct_product ( int factor_index, int factor_order, double factor_value[], int factor_num, int point_num, double x[] ); void r8vec_direct_product2 ( int factor_index, int factor_order, double factor_value[], int factor_num, int point_num, double w[] ); double r8vec_distance ( int dim_num, double v1[], double v2[] ); bool r8vec_distinct ( int n, double x[] ); void r8vec_divide ( int n, double a[], double s ); double r8vec_dot ( int n, double a1[], double a2[] ); bool r8vec_eq ( int n, double a1[], double a2[] ); double *r8vec_even ( int n, double alo, double ahi ); double r8vec_even_select ( int n, double xlo, double xhi, int ival ); void r8vec_even2 ( int maxval, int nfill[], int nold, double xold[], int *nval, double xval[] ); void r8vec_even3 ( int nold, int nval, double xold[], double xval[] ); double *r8vec_expand_linear ( int n, double x[], int fat ); int *r8vec_first_index ( int n, double a[], double tol ); double r8vec_frac ( int n, double a[], int k ); double *r8vec_fraction ( int n, double x[] ); bool r8vec_gt ( int n, double a1[], double a2[] ); void r8vec_heap_a ( int n, double a[] ); void r8vec_heap_d ( int n, double a[] ); int *r8vec_histogram ( int n, double a[], double a_lo, double a_hi, int histo_num ); double *r8vec_house_column ( int n, double a[], int k ); bool r8vec_in_01 ( int n, double a[] ); void r8vec_index_delete_all ( int n, double x[], int indx[], double xval, int *n2, double x2[], int indx2[] ); void r8vec_index_delete_dupes ( int n, double x[], int indx[], int *n2, double x2[], int indx2[] ); void r8vec_index_delete_one ( int n, double x[], int indx[], double xval, int *n2, double x2[], int indx2[] ); void r8vec_index_insert ( int *n, double x[], int indx[], double xval ); void r8vec_index_insert_unique ( int *n, double x[], int indx[], double xval ); void r8vec_index_order ( int n, double x[], int indx[] ); void r8vec_index_search ( int n, double x[], int indx[], double xval, int *less, int *equal, int *more ); void r8vec_index_sort_unique ( int n, double x[], int *n2, double x2[], int indx2[] ); double *r8vec_indicator ( int n ); void r8vec_insert ( int n, double a[], int pos, double value ); bool r8vec_is_int ( int n, double a[] ); double r8vec_length ( int dim_num, double x[] ); bool r8vec_lt ( int n, double a1[], double a2[] ); void r8vec_mask_print ( int n, double a[], int mask_num, int mask[], char *title ); double r8vec_max ( int n, double r8vec[] ); int r8vec_max_index ( int n, double a[] ); double r8vec_mean ( int n, double x[] ); double r8vec_median ( int n, double a[] ); double r8vec_min ( int n, double r8vec[] ); int r8vec_min_index ( int n, double a[] ); bool r8vec_mirror_next ( int n, double a[] ); double *r8vec_nint ( int n, double a[] ); double r8vec_norm_l1 ( int n, double a[] ); double r8vec_norm_l2 ( int n, double a[] ); double r8vec_norm_li ( int n, double a[] ); double r8vec_norm_lp ( int n, double a[], double p ); double *r8vec_normal_01 ( int n, int *seed ); int r8vec_order_type ( int n, double x[] ); void r8vec_part_quick_a ( int n, double a[], int *l, int *r ); void r8vec_permute ( int n, int p[], int base, double a[] ); void r8vec_permute_uniform ( int n, double a[], int *seed ); void r8vec_polarize ( int n, double a[], double p[], double a_normal[], double a_parallel[] ); void r8vec_print ( int n, double a[], char *title ); void r8vec_print_some ( int n, double a[], int i_lo, int i_hi, char *title ); double r8vec_product ( int n, double a[] ); void r8vec_range ( int n, double x[], double xmin, double xmax, double y[], double *ymin, double *ymax ); void r8vec_range_2 ( int n, double a[], double *amin, double *amax ); double *r8vec_read ( char *input_file, int n ); int r8vec_read_size ( char *input_file ); void r8vec_reverse ( int n, double a[] ); void r8vec_rotate ( int n, double a[], int m ); int r8vec_search_binary_a ( int n, double a[], double aval ); void r8vec_sort_bubble_a ( int n, double a[] ); void r8vec_sort_bubble_d ( int n, double a[] ); void r8vec_sort_heap_a ( int n, double a[] ); void r8vec_sort_heap_d ( int n, double a[] ); int *r8vec_sort_heap_index_a ( int n, double a[] ); int *r8vec_sort_heap_index_d ( int n, double a[] ); int *r8vec_sort_heap_mask_a ( int n, double a[], int mask_num, int mask[] ); void r8vec_sort_insert_a ( int n, double a[] ); int *r8vec_sort_insert_index_a ( int n, double a[] ); void r8vec_sort_quick_a ( int n, double a[] ); void r8vec_sort_shell_a ( int n, double a[] ); double *r8vec_sorted_merge_a ( int na, double a[], int nb, double b[], int *nc ); int r8vec_sorted_nearest ( int n, double a[], double value ); void r8vec_sorted_split ( int n, double a[], double split, int *i_lt, int *i_gt ); void r8vec_sorted_undex ( int x_num, double x_val[], int x_unique_num, double tol, int undx[], int xdnu[] ); double *r8vec_sorted_unique ( int n, double a[], double tol, int *unique_num ); int r8vec_sorted_unique_count ( int n, double a[], double tol ); void r8vec_sorted_unique_hist ( int n, double a[], double tol, int maxuniq, int *unique_num, double auniq[], int acount[] ); int r8vec_split ( int n, double a[], double split ); double r8vec_std ( int n, double a[] ); double r8vec_sum ( int n, double a[] ); void r8vec_swap ( int n, double a1[], double a2[] ); void r8vec_undex ( int x_num, double x_val[], int x_unique_num, double tol, int undx[], int xdnu[] ); double *r8vec_uniform ( int n, double b, double c, int *seed ); double *r8vec_uniform_01 ( int n, int *seed ); int r8vec_unique_count ( int n, double a[], double tol ); int *r8vec_unique_index ( int n, double a[], double tol ); void r8vec_unit_sum ( int n, double a[] ); double r8vec_variance ( int n, double x[] ); void r8vec_write ( int n, double r[], char *output_file ); void r8vec_zero ( int n, double a1[] ); double *r8vec_zero_new ( int n ); int r8vec2_compare ( int n, double a1[], double a2[], int i, int j ); void r8vec2_print ( int n, double a1[], double a2[], char *title ); void r8vec2_print_some ( int n, double x1[], double x2[], int max_print, char *title ); void r8vec2_sort_a ( int n, double a1[], double a2[] ); void r8vec2_sort_d ( int n, double a1[], double a2[] ); int *r8vec2_sort_heap_index_a ( int n, double x[], double y[] ); void r8vec2_sorted_unique ( int n, double a1[], double a2[], int *unique_num ); void r8vec2_sorted_unique_index ( int n, double a1[], double a2[], int *unique_num, int indx[] ); int r8vec2_sum_max_index ( int n, double a[], double b[] ); void r8vec3_print ( int n, double a1[], double a2[], double a3[], char *title ); double *r8vec3_vtriple ( double v1[3], double v2[3], double v3[3] ); double radians_to_degrees ( double angle ); unsigned long rand_initialize ( unsigned long seed ); unsigned long random_initialize ( unsigned long seed ); void rat_factor ( int m, int n, int factor_max, int *factor_num, int factor[], int power[], int *mleft, int *nleft ); double rickey ( int ab, int bb, int er, double f, int h, int hb, int hp, int r, int so, int tb ); int *roots_to_i4poly ( int n, int x[] ); double *roots_to_r8poly ( int n, double x[] ); bool s_eqi ( char *s1, char *s2 ); int s_len_trim ( char* s ); int s_to_i4 ( char *s, int *last, bool *error ); bool s_to_i4vec ( char *s, int n, int ivec[] ); double s_to_r8 ( char *s, int *lchar, bool *error ); bool s_to_r8vec ( char *s, int n, double rvec[] ); void sort_heap_external ( int n, int *indx, int *i, int *j, int isgn ); void timestamp ( ); void tuple_next2 ( int n, int xmin[], int xmax[], int x[], int *rank ); double *tvec_even ( int nt ); double *tvec_even2 ( int nt ); double *tvec_even3 ( int nt ); double *tvec_even_bracket ( int nt, double theta1, double theta2 ); double *tvec_even_bracket2 ( int nt, double theta1, double theta2 ); double *tvec_even_bracket3 ( int nt, double theta1, double theta2 ); int upc_check_digit ( int p, int l, int r );