45 #ifndef ROL_SANDIARULES_HPP
46 #define ROL_SANDIARULES_HPP
66 void ccn_compute_np (
int n,
int np,
double p[],
double x[],
double w[] );
95 void comp_next (
int n,
int k,
int a[],
bool *more,
int *h,
int *t );
99 void dif_deriv (
int nd,
double xd[],
double yd[],
int *ndp,
double xdp[],
101 void dif_shift_x (
int nd,
double xd[],
double yd[],
double xv );
103 void dif_to_r8poly (
int nd,
double xd[],
double yd[],
double c[] );
106 void fejer2_compute_np (
int order,
int np,
double p[],
double x[],
double w[] );
120 int order,
double alpha,
double c[] );
121 void gegenbauer_root (
double *x,
int order,
double alpha,
double *dp2,
122 double *p1,
double c[] );
142 int order,
double alpha,
double b[],
double c[] );
144 double *p1,
double b[],
double c[] );
148 void hcc_compute (
int n,
double x[],
double w[] );
149 void hcc_compute_np (
int n,
int np,
double p[],
double x[],
double w[] );
155 void hce_compute (
int n,
double x[],
double w[] );
156 void hce_compute_np (
int n,
int np,
double p[],
double x[],
double w[] );
184 double xd[],
double yd[],
double xdp[],
double ydp[] );
187 double ydp[],
int nv,
double xv[],
double yv[],
double yvp[] );
195 void hermite_ss_root (
double *x,
int order,
double *dp2,
double *p1 );
199 int i4_max (
int i1,
int i2 );
200 int i4_min (
int i1,
int i2 );
203 void i4mat_copy (
int m,
int n,
int a1[],
int a2[] );
207 int ihi,
int jhi, std::string title );
208 void i4mat_write ( std::string output_filename,
int m,
int n,
int table[] );
212 void i4vec_copy (
int n,
int a1[],
int a2[] );
214 void i4vec_min_mv (
int m,
int n,
int u[],
int v[],
int w[] );
215 void i4vec_print (
int n,
int a[], std::string title );
221 void imtqlx (
int n,
double d[],
double e[],
double z[] );
223 void jacobi_compute (
int order,
double alpha,
double beta,
double x[],
225 void jacobi_compute_np (
int order,
int np,
double p[],
double x[],
double w[] );
235 void jacobi_ss_recur (
double *p2,
double *dp2,
double *p1,
double x,
int order,
236 double alpha,
double beta,
double b[],
double c[] );
237 void jacobi_ss_root (
double *x,
int order,
double alpha,
double beta,
238 double *dp2,
double *p1,
double b[],
double c[] );
252 int order,
double b[],
double c[] );
254 double b[],
double c[] );
288 void nc_compute (
int n,
double x_min,
double x_max,
double x[],
double w[] );
289 double *
nc_compute_new (
int n,
double x_min,
double x_max,
double x[] );
309 double tol,
int *seed,
double z[],
double r1[],
int indx1[],
bool unique1[],
312 double a2[],
double tol,
double z[],
double r1[],
int indx1[],
bool unique1[],
315 int *seed,
int undx[],
int xdnu[] );
317 double tol,
int *seed,
double z[],
double r1[],
int indx1[],
bool unique1[],
318 int *unique_num1,
int undx1[],
int xdnu1[] );
320 double a2[],
double tol,
double z[],
double r1[],
int indx1[],
bool unique1[],
321 int unique_num1,
int undx1[],
int xdnu1[],
double r2[],
322 int indx2[],
bool unique2[],
int *unique_num2,
int undx2[],
int xdnu2[] );
324 double r1[],
int indx1[],
bool unique1[],
int unique_num1,
int undx1[],
325 int xdnu1[],
int n2,
double a2[],
double r2[],
int indx2[],
bool unique2[],
326 int unique_num2,
int undx2[],
int xdnu2[],
int *n3,
double a3[],
double r3[],
327 int indx3[],
bool unique3[],
int *unique_num3,
int undx3[],
int xdnu3[] );
333 int rule[],
double alpha[],
double beta[],
double weight_nd[] );
335 double r8_abs (
double x );
344 double r8_hyper_2f1 (
double a,
double b,
double c,
double x );
345 double r8_max (
double x,
double y );
346 double r8_min (
double x,
double y );
348 double r8_psi (
double xx );
351 int r8col_compare (
int m,
int n,
double a[],
int i,
int j );
355 void r8col_swap (
int m,
int n,
double a[],
int j1,
int j2 );
356 void r8col_tol_undex (
int x_dim,
int x_num,
double x_val[],
int x_unique_num,
357 double tol,
int undx[],
int xdnu[] );
359 void r8col_undex (
int x_dim,
int x_num,
double x_val[],
int x_unique_num,
360 double tol,
int undx[],
int xdnu[] );
362 int unique_index[] );
366 int ihi,
int jhi, std::string title );
367 void r8mat_write ( std::string output_filename,
int m,
int n,
double table[] );
373 void r8vec_copy (
int n,
double a1[],
double a2[] );
377 double factor_value[],
int factor_num,
int point_num,
double w[] );
381 double r_hi,
int *i_lo,
int *i_hi );
389 double r8vec_min (
int n,
double r8vec[] );
391 void r8vec_print (
int n,
double a[], std::string title );
395 void r8vec_stutter (
int n,
double a[],
int m,
double am[] );
void r8vec_direct_product2(int factor_index, int factor_order, double factor_value[], int factor_num, int point_num, double w[])
void level_growth_to_order(int dim_num, int level[], int rule[], int growth[], int order[])
void legendre_compute_points_np(int order, int np, double p[], double x[])
bool i4vec_any_lt(int n, int a[], int b[])
void i4mat_transpose_print(int m, int n, int a[], std::string title)
void nco_compute_weights(int n, double w[])
void hermite_compute_np(int order, int np, double p[], double x[], double w[])
void legendre_compute_np(int order, int np, double p[], double x[], double w[])
void r8vec_indexed_heap_d_insert(int *n, double a[], int indx[], int indx_insert)
void binary_vector_next(int n, int bvec[])
void point_radial_tol_unique_index_inc1(int m, int n1, double a1[], double tol, int *seed, double z[], double r1[], int indx1[], bool unique1[], int *unique_num1, int undx1[], int xdnu1[])
void patterson_lookup_weights(int n, double w[])
void chebyshev2_compute_np(int order, int np, double p[], double x[], double w[])
void fejer2_compute(int order, double x[], double w[])
void gegenbauer_compute_np(int order, int np, double p[], double x[], double w[])
void laguerre_compute_points(int order, double x[])
double legendre_integral(int expon)
void gen_hermite_dr_compute(int order, double alpha, double x[], double w[])
void hce_compute_np(int n, int np, double p[], double x[], double w[])
double gegenbauer_integral(int expon, double alpha)
double gen_laguerre_integral(int expon, double alpha)
void gen_laguerre_compute_points(int order, double alpha, double x[])
void laguerre_lookup(int n, double x[], double w[])
void gen_hermite_compute_weights(int order, double alpha, double w[])
void hcc_compute_points(int n, double x[])
void r8vec_print(int n, double a[], std::string title)
void hermite_gk18_lookup_points(int n, double x[])
void ccn_compute_np(int n, int np, double p[], double x[], double w[])
void hermite_lookup(int n, double x[], double w[])
void level_to_order_default(int dim_num, int level[], int rule[], int order[])
double r8vec_sum(int n, double a[])
void hermite_lookup_points(int n, double x[])
void chebyshev1_compute_points(int order, double x[])
void r8col_swap(int m, int n, double a[], int j1, int j2)
void sort_heap_external(int n, int *indx, int *i, int *j, int isgn)
double r8_gamma(double x)
double r8_min(double x, double y)
void jacobi_compute_points(int order, double alpha, double beta, double x[])
void laguerre_lookup_weights(int n, double w[])
void hce_compute_points(int n, double x[])
void r8col_unique_index(int m, int n, double a[], double tol, int unique_index[])
void jacobi_compute_weights(int order, double alpha, double beta, double w[])
void level_to_order_exponential(int dim_num, int level[], int rule[], int order[])
void chebyshev1_compute_np(int order, int np, double p[], double x[], double w[])
void gen_laguerre_compute(int order, double alpha, double x[], double w[])
double laguerre_integral(int expon)
void hce_compute_points_np(int n, int np, double p[], double x[])
void hermite_compute_points(int order, double x[])
double * nc_compute_new(int n, double x_min, double x_max, double x[])
void hermite_gk22_lookup_points(int n, double x[])
void gen_hermite_compute(int order, double alpha, double x[], double w[])
int r8col_tol_unique_count(int m, int n, double a[], double tol)
void fejer2_compute_weights(int order, double w[])
void ncoh_compute_points(int n, double x[])
void r8vec_index_sorted_range(int n, double r[], int indx[], double r_lo, double r_hi, int *i_lo, int *i_hi)
void ccn_compute(int n, double x[], double w[])
int * i4vec_copy_new(int n, int a1[])
void hcc_compute(int n, double x[], double w[])
void gegenbauer_root(double *x, int order, double alpha, double *dp2, double *p1, double c[])
void legendre_dr_compute(int order, double x[], double w[])
int r8vec_compare(int n, double a[], double b[])
void legendre_lookup(int n, double x[], double w[])
void r8vec_sort_heap_index_a(int n, double a[], int indx[])
void gegenbauer_recur(double *p2, double *dp2, double *p1, double x, int order, double alpha, double c[])
void legendre_compute_weights(int order, double w[])
double * r8vec_chebyshev_new(int n, double a_first, double a_last)
double gen_hermite_integral(int expon, double alpha)
void gegenbauer_compute_points(int order, double alpha, double x[])
void hermite_interpolant(int n, double x[], double y[], double yp[], double xd[], double yd[], double xdp[], double ydp[])
int i4vec_product(int n, int a[])
void hermite_compute_points_np(int order, int np, double p[], double x[])
int i4_power(int i, int j)
void i4vec_zero(int n, int a[])
void dif_shift_x(int nd, double xd[], double yd[], double xv)
void laguerre_lookup_points(int n, double x[])
void clenshaw_curtis_compute_points_np(int order, int np, double p[], double x[])
void gegenbauer_compute_weights(int order, double alpha, double w[])
void hermite_compute_weights_np(int order, int np, double p[], double w[])
void gen_laguerre_compute_points_np(int order, int np, double p[], double x[])
void patterson_lookup_points(int n, double x[])
void level_to_order_linear(int dim_num, int level[], int rule[], int order[])
double r8_factorial2(int n)
int level_to_order_exp_hgk(int level, int growth)
void i4vec_copy(int n, int a1[], int a2[])
void laguerre_compute_weights(int order, double w[])
void hcc_compute_points_np(int n, int np, double p[], double x[])
void dif_shift_zero(int nd, double xd[], double yd[])
void gen_laguerre_compute_weights(int order, double alpha, double w[])
void legendre_lookup_weights(int n, double w[])
void fejer2_compute_points_np(int order, int np, double p[], double x[])
void gen_hermite_compute_points(int order, double alpha, double x[])
double r8_hyper_2f1(double a, double b, double c, double x)
void fejer2_compute_weights_np(int order, int np, double p[], double w[])
int point_radial_tol_unique_index(int m, int n, double a[], double tol, int *seed, int undx[], int xdnu[])
void level_to_order_exponential_slow(int dim_num, int level[], int rule[], int order[])
void clenshaw_curtis_compute_weights(int order, double w[])
void clenshaw_curtis_compute(int order, double x[], double w[])
void ccn_compute_points_np(int n, int np, double p[], double x[])
void fejer2_compute_np(int order, int np, double p[], double x[], double w[])
void point_radial_tol_unique_count_inc1(int m, int n1, double a1[], double tol, int *seed, double z[], double r1[], int indx1[], bool unique1[], int *unique_num1)
void gen_hermite_compute_np(int order, int np, double p[], double x[], double w[])
double jacobi_integral(int expon, double alpha, double beta)
void laguerre_compute_points_np(int order, int np, double p[], double x[])
void laguerre_ss_compute(int order, double x[], double w[])
void laguerre_compute_np(int order, int np, double p[], double x[], double w[])
void i4mat_copy(int m, int n, int a1[], int a2[])
void vec_colex_next3(int dim_num, int base[], int a[], bool *more)
void r8col_undex(int x_dim, int x_num, double x_val[], int x_unique_num, double tol, int undx[], int xdnu[])
double * legendre_zeros(int order)
void gen_laguerre_ss_recur(double *p2, double *dp2, double *p1, double x, int order, double alpha, double b[], double c[])
void point_radial_tol_unique_index_inc3(int m, int n1, double a1[], double r1[], int indx1[], bool unique1[], int unique_num1, int undx1[], int xdnu1[], int n2, double a2[], double r2[], int indx2[], bool unique2[], int unique_num2, int undx2[], int xdnu2[], int *n3, double a3[], double r3[], int indx3[], bool unique3[], int *unique_num3, int undx3[], int xdnu3[])
void ncoh_compute_weights(int n, double w[])
void patterson_lookup(int n, double x[], double w[])
void clenshaw_curtis_compute_weights_np(int order, int np, double p[], double w[])
void ccn_compute_points(int n, double x[])
void gen_hermite_compute_points_np(int order, int np, double p[], double x[])
void gen_laguerre_ss_root(double *x, int order, double alpha, double *dp2, double *p1, double b[], double c[])
void hc_compute_weights_from_points(int nhalf, double x[], double w[])
double * r8vec_uniform_01_new(int n, int *seed)
void hce_compute_weights(int n, double w[])
void imtqlx(int n, double d[], double e[], double z[])
double r8vec_min_pos(int n, double a[])
void hermite_genz_keister_lookup(int n, double x[], double w[])
void hce_compute_weights_np(int n, int np, double p[], double w[])
void hermite_gk24_lookup_points(int n, double x[])
void i4mat_write(std::string output_filename, int m, int n, int table[])
int * i4vec_add_new(int n, int a[], int b[])
void laguerre_compute(int n, double x[], double w[])
void chebyshev2_compute_weights_np(int order, int np, double p[], double w[])
void r8mat_transpose_print_some(int m, int n, double a[], int ilo, int jlo, int ihi, int jhi, std::string title)
void laguerre_compute_weights_np(int order, int np, double p[], double w[])
int level_to_order_linear_nn(int level, int growth)
void jacobi_ss_compute(int order, double alpha, double beta, double x[], double w[])
void gen_laguerre_compute_np(int order, int np, double p[], double x[], double w[])
void hermite_ss_root(double *x, int order, double *dp2, double *p1)
void jacobi_compute(int order, double alpha, double beta, double x[], double w[])
void i4vec_print(int n, int a[], std::string title)
void hce_compute(int n, double x[], double w[])
void hermite_interpolant_rule(int n, double a, double b, double x[], double w[])
void hcc_compute_weights(int n, double w[])
void jacobi_ss_recur(double *p2, double *dp2, double *p1, double x, int order, double alpha, double beta, double b[], double c[])
void nc_compute(int n, double x_min, double x_max, double x[], double w[])
int * i4mat_copy_new(int m, int n, int a1[])
int i4vec_sum(int n, int a[])
void jacobi_compute_points_np(int order, int np, double p[], double x[])
void ccn_compute_weights_np(int n, int np, double p[], double w[])
void chebyshev1_compute_weights(int order, double w[])
int level_to_order_exp_f2(int level, int growth)
int level_to_order_linear_wn(int level, int growth)
void r8vec_zero(int n, double a[])
void legendre_compute_weights_np(int order, int np, double p[], double w[])
void chebyshev1_compute(int order, double x[], double w[])
void nco_compute_points(int n, double x[])
void hcc_compute_weights_np(int n, int np, double p[], double w[])
void chebyshev1_compute_weights_np(int order, int np, double p[], double w[])
void hermite_genz_keister_lookup_points(int n, double x[])
void r8col_tol_undex(int x_dim, int x_num, double x_val[], int x_unique_num, double tol, int undx[], int xdnu[])
double r8_choose(int n, int k)
void chebyshev2_compute_points_np(int order, int np, double p[], double x[])
void legendre_lookup_points(int n, double x[])
int r8vec_indexed_heap_d_extract(int *n, double a[], int indx[])
void ncc_compute_weights(int n, double w[])
double * r8vec_legendre_new(int n, double a_first, double a_last)
void r8mat_write(std::string output_filename, int m, int n, double table[])
void r8vec_stutter(int n, double a[], int m, double am[])
void chebyshev2_compute_weights(int order, double w[])
int * r8vec_sort_heap_index_a_new(int n, double a[])
void hermite_genz_keister_lookup_points_np(int n, int np, double p[], double x[])
double hermite_integral(int n)
void laguerre_ss_root(double *x, int order, double *dp2, double *p1, double b[], double c[])
void point_unique_index(int m, int n, double a[], int unique_num, int undx[], int xdnu[])
int level_to_order_exp_gauss(int level, int growth)
int i4_min(int i1, int i2)
void hermite_ss_recur(double *p2, double *dp2, double *p1, double x, int order)
void jacobi_compute_np(int order, int np, double p[], double x[], double w[])
double r8vec_diff_norm_li(int n, double a[], double b[])
int * i4vec_zero_new(int n)
int point_radial_tol_unique_count(int m, int n, double a[], double tol, int *seed)
void jacobi_compute_weights_np(int order, int np, double p[], double w[])
void dif_deriv(int nd, double xd[], double yd[], int *ndp, double xdp[], double ydp[])
void hermite_genz_keister_lookup_weights(int n, double w[])
int r8col_compare(int m, int n, double a[], int i, int j)
double r8_factorial(int n)
void hermite_lookup_weights(int n, double w[])
void point_radial_tol_unique_count_inc2(int m, int n1, double a1[], int n2, double a2[], double tol, double z[], double r1[], int indx1[], bool unique1[], int *unique_num2)
int r8col_sorted_unique_count(int m, int n, double a[], double tol)
int level_to_order_exp_gp(int level, int growth)
int i4_max(int i1, int i2)
void laguerre_ss_recur(double *p2, double *dp2, double *p1, double x, int order, double b[], double c[])
void hermite_genz_keister_lookup_weights_np(int n, int np, double p[], double w[])
double r8vec_i4vec_dot_product(int n, double r8vec[], int i4vec[])
void r8vec_copy(int n, double a1[], double a2[])
void patterson_lookup_points_np(int n, int np, double p[], double x[])
void fejer2_compute_points(int order, double x[])
void patterson_lookup_weights_np(int n, int np, double p[], double w[])
int r8vec_indexed_heap_d_max(int n, double a[], int indx[])
int * r8col_sort_heap_index_a(int m, int n, double a[])
double chebyshev1_integral(int expon)
void gegenbauer_compute(int order, double alpha, double x[], double w[])
void clenshaw_curtis_compute_points(int order, double x[])
void legendre_compute_points(int order, double x[])
void r8col_sort_heap_a(int m, int n, double a[])
double * r8vec_linspace_new(int n, double a_first, double a_last)
double r8vec_min(int n, double r8vec[])
void hermite_compute_weights(int order, double w[])
void hermite_ss_compute(int order, double x[], double w[])
void ncc_compute_points(int n, double x[])
void chebyshev2_compute(int order, double x[], double w[])
void legendre_compute(int n, double x[], double w[])
double * r8vec_copy_new(int n, double a1[])
void i4mat_transpose_print_some(int m, int n, int a[], int ilo, int jlo, int ihi, int jhi, std::string title)
void r8vec_indexed_heap_d(int n, double a[], int indx[])
void chebyshev1_compute_points_np(int order, int np, double p[], double x[])
void hcc_compute_np(int n, int np, double p[], double x[], double w[])
void product_mixed_weight(int dim_num, int order_1d[], int order_nd, int rule[], double alpha[], double beta[], double weight_nd[])
double r8_ceiling(double x)
double r8_max(double x, double y)
double r8vec_dot_product(int n, double a1[], double a2[])
int level_to_order_exp_cc(int level, int growth)
void dif_to_r8poly(int nd, double xd[], double yd[], double c[])
void ccn_compute_weights(int n, double w[])
void hermite_compute(int order, double x[], double w[])
void gegenbauer_compute_points_np(int order, int np, double p[], double x[])
void gen_laguerre_ss_compute(int order, double alpha, double x[], double w[])
void comp_next(int n, int k, int a[], bool *more, int *h, int *t)
void r8vec_scale(double s, int n, double a[])
void i4vec_min_mv(int m, int n, int u[], int v[], int w[])
void r8mat_transpose_print(int m, int n, double a[], std::string title)
double r8poly_ant_val(int n, double poly_cof[], double xval)
void jacobi_ss_root(double *x, int order, double alpha, double beta, double *dp2, double *p1, double b[], double c[])
void gen_laguerre_compute_weights_np(int order, int np, double p[], double w[])
void r8vec_uniform_01(int n, int *seed, double r[])
void point_radial_tol_unique_index_inc2(int m, int n1, double a1[], int n2, double a2[], double tol, double z[], double r1[], int indx1[], bool unique1[], int unique_num1, int undx1[], int xdnu1[], double r2[], int indx2[], bool unique2[], int *unique_num2, int undx2[], int xdnu2[])
void hermite_interpolant_value(int nd, double xd[], double yd[], double xdp[], double ydp[], int nv, double xv[], double yv[], double yvp[])
void clenshaw_curtis_compute_np(int order, int np, double p[], double x[], double w[])
void gen_hermite_compute_weights_np(int order, int np, double p[], double w[])
double chebyshev2_integral(int expon)
void gegenbauer_compute_weights_np(int order, int np, double p[], double w[])
int i4_choose(int n, int k)
double r8_floor(double x)
void chebyshev2_compute_points(int order, double x[])