<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>examples/histogram/xexp.rb</filename>
    </added>
    <added>
      <filename>examples/poly/eval_derivs.rb</filename>
    </added>
    <added>
      <filename>tests/monte/miser.rb</filename>
    </added>
    <added>
      <filename>tests/monte/vegas.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,10 @@
+Sat Aug  8 22:36:24 BOT 2009
+  * Added GSL::Monte::Miser#params_get, GSL::Monte::Vegas#params_get
+  * Added GSL::BSpline::greville_abscissa(i)
+  * Added GSL::Poly#eval_derivs(x)
+  * Added a new minimization algorithm &quot;quad_golden&quot;
+  * Added a new multimin algorithm &quot;nmsimplex2rand&quot;
+	
 Tue Jun  9 10:42:30 JST 2009
   * Fixed bug in linalg.c (bug [#25842])
 	</diff>
      <filename>ChangeLog</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1,2 @@
-1.11.2
+1.12.90
+</diff>
      <filename>VERSION</filename>
    </modified>
    <modified>
      <diff>@@ -98,19 +98,33 @@ static VALUE rb_gsl_bspline_eval(int argc, VALUE *argv, VALUE obj)
 
 	return vB;
 }
+#ifdef GSL_1_13_LATER
+static VALUE rb_gsl_bspline_greville_abscissa(VALUE obj, VALUE i)
+{
+  gsl_bspline_workspace *w;
+  Data_Get_Struct(obj, gsl_bspline_workspace, w);
+  return rb_float_new(gsl_bspline_greville_abscissa(i, w));
+}
+#endif
+
 void Init_bspline(VALUE module)
 {
-	cBSWS = rb_define_class_under(module, &quot;BSpline&quot;, cGSL_Object);
-	
-	rb_define_singleton_method(cBSWS, &quot;alloc&quot;, rb_gsl_bspline_alloc, 2);
-	
-	rb_define_method(cBSWS, &quot;ncoeffs&quot;, rb_gsl_bspline_ncoeffs, 0);
-	rb_define_method(cBSWS, &quot;order&quot;, rb_gsl_bspline_order, 0);
-	rb_define_method(cBSWS, &quot;nbreak&quot;, rb_gsl_bspline_nbreak, 0);
-	rb_define_method(cBSWS, &quot;breakpoint&quot;, rb_gsl_bspline_breakpoint, 1);
-	rb_define_method(cBSWS, &quot;knots&quot;, rb_gsl_bspline_knots, 1);
-	rb_define_method(cBSWS, &quot;knots_uniform&quot;, rb_gsl_bspline_knots_uniform, -1);
-	rb_define_singleton_method(cBSWS, &quot;knots_uniform&quot;, rb_gsl_bspline_knots_uniform, -1);	
-	rb_define_method(cBSWS, &quot;eval&quot;, rb_gsl_bspline_eval, -1);	
+  cBSWS = rb_define_class_under(module, &quot;BSpline&quot;, cGSL_Object);
+  
+  rb_define_singleton_method(cBSWS, &quot;alloc&quot;, rb_gsl_bspline_alloc, 2);
+  
+  rb_define_method(cBSWS, &quot;ncoeffs&quot;, rb_gsl_bspline_ncoeffs, 0);
+  rb_define_method(cBSWS, &quot;order&quot;, rb_gsl_bspline_order, 0);
+  rb_define_method(cBSWS, &quot;nbreak&quot;, rb_gsl_bspline_nbreak, 0);
+  rb_define_method(cBSWS, &quot;breakpoint&quot;, rb_gsl_bspline_breakpoint, 1);
+  rb_define_method(cBSWS, &quot;knots&quot;, rb_gsl_bspline_knots, 1);
+  rb_define_method(cBSWS, &quot;knots_uniform&quot;, rb_gsl_bspline_knots_uniform, -1);
+  rb_define_singleton_method(cBSWS, &quot;knots_uniform&quot;, rb_gsl_bspline_knots_uniform, -1);	
+  rb_define_method(cBSWS, &quot;eval&quot;, rb_gsl_bspline_eval, -1);	
+
+#ifdef GSL_1_13_LATER
+  rb_define_method(cBSWS, &quot;greville_abscissa&quot;, rb_gsl_bspline_greville_abscissa, 1);
+#endif
+
 }
 #endif</diff>
      <filename>ext/bspline.c</filename>
    </modified>
    <modified>
      <diff>@@ -119,6 +119,10 @@ def check_version(configfile)
     if ver &gt;= &quot;1.11&quot;
       configfile.printf(&quot;#ifndef GSL_1_11_LATER\n#define GSL_1_11_LATER\n#endif\n&quot;)
     end    
+
+   if ver &gt;= &quot;1.12.90&quot;
+      configfile.printf(&quot;#ifndef GSL_1_13_LATER\n#define GSL_1_13_LATER\n#endif\n&quot;)
+    end    
   end
 end
 </diff>
      <filename>ext/extconf.rb</filename>
    </modified>
    <modified>
      <diff>@@ -18,6 +18,9 @@ double rb_gsl_function_f(double x, void *p);
 enum {
   GSL_MIN_FMINIMIZER_GOLDENSECTION,
   GSL_MIN_FMINIMIZER_BRENT,
+#ifdef GSL_1_13_LATER
+  GSL_MIN_FMINIMIZER_QUAD_GOLDEN,
+#endif
 };
 static const gsl_min_fminimizer_type* rb_gsl_min_fminimizer_type_get(VALUE t);
 
@@ -31,8 +34,12 @@ static const gsl_min_fminimizer_type* rb_gsl_min_fminimizer_type_get(VALUE t)
       return gsl_min_fminimizer_goldensection;
     else if (str_tail_grep(name, &quot;brent&quot;) == 0) 
       return gsl_min_fminimizer_brent;
+#ifdef GSL_1_13_LATER
+    else if (str_tail_grep(name, &quot;quad_golden&quot;) == 0) 
+      return gsl_min_fminimizer_quad_golden;
+#endif
     else 
-      rb_raise(rb_eTypeError, &quot;unknown type %s (goldensection or brent expected)&quot;,
+      rb_raise(rb_eTypeError, &quot;unknown type %s (goldensection, brent or quad_golden expected)&quot;,
 	       name);
     break;
   case T_FIXNUM:
@@ -43,8 +50,13 @@ static const gsl_min_fminimizer_type* rb_gsl_min_fminimizer_type_get(VALUE t)
     case GSL_MIN_FMINIMIZER_BRENT: 
       return gsl_min_fminimizer_brent; 
       break;
+#ifdef GSL_1_13_LATER
+    case GSL_MIN_FMINIMIZER_QUAD_GOLDEN: 
+      return gsl_min_fminimizer_quad_golden; 
+      break;
+#endif
     default: 
-      rb_raise(rb_eTypeError, &quot;unknown type (GOLDENSECION or BRENT expected)&quot;); 
+      rb_raise(rb_eTypeError, &quot;unknown type (GOLDENSECION or BRENT or QUAD_GOLDEN expected)&quot;); 
       break;
     }
     break;
@@ -210,6 +222,10 @@ void Init_gsl_min(VALUE module)
 		  INT2FIX(GSL_MIN_FMINIMIZER_BRENT));
   rb_define_const(cgsl_fminimizer, &quot;Brent&quot;,
 		  INT2FIX(GSL_MIN_FMINIMIZER_BRENT));
+#ifdef GSL_1_13_LATER
+  rb_define_const(cgsl_fminimizer, &quot;QUAD_GOLDEN&quot;,
+		  INT2FIX(GSL_MIN_FMINIMIZER_QUAD_GOLDEN));
+#endif
 
   rb_define_singleton_method(cgsl_fminimizer, &quot;new&quot;, rb_gsl_min_fminimizer_new, 1);
   rb_define_singleton_method(cgsl_fminimizer, &quot;alloc&quot;, rb_gsl_min_fminimizer_new, 1);</diff>
      <filename>ext/min.c</filename>
    </modified>
    <modified>
      <diff>@@ -24,7 +24,9 @@ static VALUE cgsl_monte_plain;
 static VALUE cgsl_monte_miser;
 static VALUE cgsl_monte_vegas;
 static VALUE cgsl_monte_function;
-
+#ifdef GSL_1_13_LATER
+static VALUE cgsl_monte_miser_params, cgsl_monte_vegas_params;
+#endif
 EXTERN VALUE cgsl_vector;
 
 enum {
@@ -659,10 +661,193 @@ static VALUE rb_gsl_monte_vegas_state(VALUE obj)
 		     INT2FIX(s-&gt;mode), INT2FIX(s-&gt;verbose));
 }
 
+#ifdef GSL_1_13_LATER
+static VALUE rb_gsl_monte_miser_params_get(VALUE obj)
+{
+  gsl_monte_miser_state *s = NULL;
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_state, s);
+  p = (gsl_monte_miser_params *) malloc(sizeof(gsl_monte_miser_params));
+  gsl_monte_miser_params_get(s, p);  
+  return Data_Wrap_Struct(cgsl_monte_miser_params, 0, free, p);
+}
+static VALUE rb_gsl_monte_miser_params_set(VALUE obj, VALUE params)
+{
+  gsl_monte_miser_state *s = NULL;
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_state, s);
+  Data_Get_Struct(params, gsl_monte_miser_params, p);
+  gsl_monte_miser_params_set(s, p);  
+  return Qtrue;
+}
+static VALUE rb_gsl_monte_miser_params_get_estimate_frac(VALUE obj)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  return rb_float_new(p-&gt;estimate_frac);
+}
+static VALUE rb_gsl_monte_miser_params_set_estimate_frac(VALUE obj, VALUE val)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  p-&gt;estimate_frac = NUM2DBL(val);
+  return val;
+}
+static VALUE rb_gsl_monte_miser_params_get_min_calls(VALUE obj)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  return INT2FIX(p-&gt;min_calls);
+}
+static VALUE rb_gsl_monte_miser_params_set_min_calls(VALUE obj, VALUE val)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  p-&gt;min_calls = (size_t) FIX2INT(val);
+  return val;
+}
+static VALUE rb_gsl_monte_miser_params_get_min_calls_per_bisection(VALUE obj)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  return INT2FIX(p-&gt;min_calls_per_bisection);
+}
+static VALUE rb_gsl_monte_miser_params_set_min_calls_per_bisection(VALUE obj, VALUE val)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  p-&gt;min_calls_per_bisection = (size_t) FIX2INT(val);
+  return val;
+}
+static VALUE rb_gsl_monte_miser_params_get_alpha(VALUE obj)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  return rb_float_new(p-&gt;alpha);
+}
+static VALUE rb_gsl_monte_miser_params_set_alpha(VALUE obj, VALUE val)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  p-&gt;alpha = NUM2DBL(val);
+  return val;
+}
+static VALUE rb_gsl_monte_miser_params_get_dither(VALUE obj)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  return rb_float_new(p-&gt;dither);
+}
+static VALUE rb_gsl_monte_miser_params_set_dither(VALUE obj, VALUE val)
+{
+  gsl_monte_miser_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_miser_params, p);
+  p-&gt;dither = NUM2DBL(val);
+  return val;
+}
+
+static VALUE rb_gsl_monte_vegas_params_get(VALUE obj)
+{
+  gsl_monte_vegas_state *s = NULL;
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_state, s);
+  p = (gsl_monte_vegas_params *) malloc(sizeof(gsl_monte_vegas_params));
+  gsl_monte_vegas_params_get(s, p);  
+  return Data_Wrap_Struct(cgsl_monte_vegas_params, 0, free, p);
+}
+static VALUE rb_gsl_monte_vegas_params_set(VALUE obj, VALUE params)
+{
+  gsl_monte_vegas_state *s = NULL;
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_state, s);
+  Data_Get_Struct(params, gsl_monte_vegas_params, p);
+  gsl_monte_vegas_params_set(s, p);  
+  return Qtrue;
+}
+static VALUE rb_gsl_monte_vegas_params_get_alpha(VALUE obj)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  return rb_float_new(p-&gt;alpha);
+}
+static VALUE rb_gsl_monte_vegas_params_set_alpha(VALUE obj, VALUE val)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  p-&gt;alpha = NUM2DBL(val);
+  return val;
+}
+static VALUE rb_gsl_monte_vegas_params_get_iterations(VALUE obj)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  return INT2FIX(p-&gt;iterations);
+}
+static VALUE rb_gsl_monte_vegas_params_set_iterations(VALUE obj, VALUE val)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  p-&gt;iterations = (size_t) FIX2INT(val);
+  return val;
+}
+static VALUE rb_gsl_monte_vegas_params_get_stage(VALUE obj)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  return INT2FIX(p-&gt;stage);
+}
+static VALUE rb_gsl_monte_vegas_params_set_stage(VALUE obj, VALUE val)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  p-&gt;stage = FIX2INT(val);
+  return val;
+}
+static VALUE rb_gsl_monte_vegas_params_get_mode(VALUE obj)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  return INT2FIX(p-&gt;mode);
+}
+static VALUE rb_gsl_monte_vegas_params_set_mode(VALUE obj, VALUE val)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  p-&gt;mode = FIX2INT(val);
+  return val;
+}
+static VALUE rb_gsl_monte_vegas_params_get_verbose(VALUE obj)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  return INT2FIX(p-&gt;verbose);
+}
+static VALUE rb_gsl_monte_vegas_params_set_verbose(VALUE obj, VALUE val)
+{
+  gsl_monte_vegas_params *p = NULL;
+  Data_Get_Struct(obj, gsl_monte_vegas_params, p);
+  p-&gt;verbose = FIX2INT(val);
+  return val;
+}
+static VALUE rb_gsl_monte_vegas_runval(VALUE obj)
+{
+  gsl_monte_vegas_state *s = NULL;
+  double res, sig;
+  VALUE ary;
+  Data_Get_Struct(obj, gsl_monte_vegas_state, s);
+  gsl_monte_vegas_runval(s, &amp;res, &amp;sig);
+  ary = rb_ary_new2(2);
+  rb_ary_store(ary, 0, rb_float_new(res));
+  rb_ary_store(ary, 1, rb_float_new(sig));
+  return ary;
+}
+#endif
+
 void Init_gsl_monte(VALUE module)
 {
   VALUE mgsl_monte;
 
+
   mgsl_monte = rb_define_module_under(module, &quot;Monte&quot;);
 
   rb_define_const(mgsl_monte, &quot;PLAIN&quot;, INT2FIX(GSL_MONTE_PLAIN_STATE));
@@ -753,6 +938,54 @@ void Init_gsl_monte(VALUE module)
 			     rb_gsl_monte_integrate, -1);
   rb_define_method(cgsl_monte_vegas, &quot;integrate&quot;, 
 		   rb_gsl_monte_vegas_integrate, -1);
+
+#ifdef GSL_1_13_LATER
+  cgsl_monte_miser_params = rb_define_class_under(cgsl_monte_miser, &quot;Params&quot;, cGSL_Object);
+  cgsl_monte_vegas_params = rb_define_class_under(cgsl_monte_vegas, &quot;Params&quot;, cGSL_Object);
+
+  rb_define_method(cgsl_monte_miser, &quot;params_get&quot;, rb_gsl_monte_miser_params_get, 0);
+  rb_define_method(cgsl_monte_miser, &quot;params_set&quot;, rb_gsl_monte_miser_params_set, 1);
+  rb_define_method(cgsl_monte_miser_params, &quot;estimate_frac&quot;, rb_gsl_monte_miser_params_get_estimate_frac, 0);
+  rb_define_method(cgsl_monte_miser_params, &quot;set_estimate_frac&quot;, rb_gsl_monte_miser_params_set_estimate_frac, 1);
+  rb_define_alias(cgsl_monte_miser_params, &quot;estimate_frac=&quot;, &quot;set_estimate_frac&quot;);
+  rb_define_method(cgsl_monte_miser_params, &quot;min_calls&quot;, rb_gsl_monte_miser_params_get_min_calls, 0);
+  rb_define_method(cgsl_monte_miser_params, &quot;set_min_calls&quot;, rb_gsl_monte_miser_params_set_min_calls, 1);
+  rb_define_alias(cgsl_monte_miser_params, &quot;min_calls=&quot;, &quot;set_min_calls&quot;);
+  rb_define_method(cgsl_monte_miser_params, &quot;min_calls_per_bisection&quot;, rb_gsl_monte_miser_params_get_min_calls_per_bisection, 0);
+  rb_define_method(cgsl_monte_miser_params, &quot;set_min_calls_per_bisection&quot;, rb_gsl_monte_miser_params_set_min_calls_per_bisection, 1);
+  rb_define_alias(cgsl_monte_miser_params, &quot;min_calls_per_bisection=&quot;, &quot;set_min_calls_per_bisection&quot;);
+  rb_define_method(cgsl_monte_miser_params, &quot;alpha&quot;, rb_gsl_monte_miser_params_get_alpha, 0);
+  rb_define_method(cgsl_monte_miser_params, &quot;set_alpha&quot;, rb_gsl_monte_miser_params_set_alpha, 1);
+  rb_define_alias(cgsl_monte_miser_params, &quot;alpha=&quot;, &quot;set_alpha&quot;);
+  rb_define_method(cgsl_monte_miser_params, &quot;dither&quot;, rb_gsl_monte_miser_params_get_dither, 0);
+  rb_define_method(cgsl_monte_miser_params, &quot;set_dither&quot;, rb_gsl_monte_miser_params_set_dither, 1);
+  rb_define_alias(cgsl_monte_miser_params, &quot;dither=&quot;, &quot;set_dither&quot;);
+
+  rb_define_method(cgsl_monte_vegas, &quot;params_get&quot;, rb_gsl_monte_vegas_params_get, 0);
+  rb_define_method(cgsl_monte_vegas, &quot;params_set&quot;, rb_gsl_monte_vegas_params_set, 1);
+  rb_define_method(cgsl_monte_vegas_params, &quot;alpha&quot;, rb_gsl_monte_vegas_params_get_alpha, 0);
+  rb_define_method(cgsl_monte_vegas_params, &quot;set_alpha&quot;, rb_gsl_monte_vegas_params_set_alpha, 1);
+  rb_define_alias(cgsl_monte_vegas_params, &quot;alpha=&quot;, &quot;set_alpha&quot;);
+  rb_define_method(cgsl_monte_vegas_params, &quot;iterations&quot;, rb_gsl_monte_vegas_params_get_iterations, 0);
+  rb_define_method(cgsl_monte_vegas_params, &quot;set_iterations&quot;, rb_gsl_monte_vegas_params_set_iterations, 1);
+  rb_define_alias(cgsl_monte_vegas_params, &quot;iterations=&quot;, &quot;set_iterations&quot;);
+  rb_define_method(cgsl_monte_vegas_params, &quot;stage&quot;, rb_gsl_monte_vegas_params_get_stage, 0);
+  rb_define_method(cgsl_monte_vegas_params, &quot;set_stage&quot;, rb_gsl_monte_vegas_params_set_stage, 1);
+  rb_define_alias(cgsl_monte_vegas_params, &quot;stage=&quot;, &quot;set_stage&quot;);
+  rb_define_method(cgsl_monte_vegas_params, &quot;mode&quot;, rb_gsl_monte_vegas_params_get_mode, 0);
+  rb_define_method(cgsl_monte_vegas_params, &quot;set_mode&quot;, rb_gsl_monte_vegas_params_set_mode, 1);
+  rb_define_alias(cgsl_monte_vegas_params, &quot;mode=&quot;, &quot;set_mode&quot;);
+  rb_define_method(cgsl_monte_vegas_params, &quot;verbose&quot;, rb_gsl_monte_vegas_params_get_verbose, 0);
+  rb_define_method(cgsl_monte_vegas_params, &quot;set_verbose&quot;, rb_gsl_monte_vegas_params_set_verbose, 1);
+  rb_define_alias(cgsl_monte_vegas_params, &quot;verbose=&quot;, &quot;set_verbose&quot;);
+
+  rb_define_method(cgsl_monte_vegas, &quot;runval&quot;, rb_gsl_monte_vegas_runval, 0);
+
+  rb_define_const(cgsl_monte_vegas, &quot;MODE_IMPORTANCE&quot;, INT2FIX(GSL_VEGAS_MODE_IMPORTANCE));
+  rb_define_const(cgsl_monte_vegas, &quot;MODE_IMPORTANCE_ONLY&quot;, INT2FIX(GSL_VEGAS_MODE_IMPORTANCE_ONLY)); 
+  rb_define_const(cgsl_monte_vegas, &quot;MODE_STRATIFIED&quot;, INT2FIX(GSL_VEGAS_MODE_STRATIFIED));
+#endif
+
 }
 #ifdef CHECK_MONTE_FUNCTION
 #undef CHECK_MONTE_FUNCTION</diff>
      <filename>ext/monte.c</filename>
    </modified>
    <modified>
      <diff>@@ -38,7 +38,10 @@ enum {
   GSL_FDFMINIMIZER_STEEPEST_DESCENT,
   GSL_FMINIMIZER_NMSIMPLEX,
 #ifdef GSL_1_9_LATER
-	GSL_FDFMINIMIZER_VECTOR_BFGS2,
+  GSL_FDFMINIMIZER_VECTOR_BFGS2,
+#endif
+#ifdef GSL_1_13_LATER
+  GSL_FMINIMIZER_NMSIMPLEX2RAND,
 #endif
 };
 
@@ -446,6 +449,10 @@ static void define_const(VALUE klass1, VALUE klass2)
   rb_define_const(klass1, 
 		  &quot;VECTOR_BFGS2&quot;, INT2FIX(GSL_FDFMINIMIZER_VECTOR_BFGS2));
 #endif
+#ifdef GSL_1_13_LATER
+  rb_define_const(klass2, 
+		  &quot;NMSIMPLEX2RAND&quot;, INT2FIX(GSL_FMINIMIZER_NMSIMPLEX2RAND));
+#endif
 }
 
 static const gsl_multimin_fdfminimizer_type* get_fdfminimizer_type(VALUE t)
@@ -606,13 +613,21 @@ static const gsl_multimin_fminimizer_type* get_fminimizer_type(VALUE t)
     strcpy(name, STR2CSTR(t));
     if (str_tail_grep(name, &quot;nmsimplex&quot;) == 0) 
       return gsl_multimin_fminimizer_nmsimplex;
+#ifdef GSL_1_13_LATER
+    if (str_tail_grep(name, &quot;nmsimplex2rand&quot;) == 0) 
+      return gsl_multimin_fminimizer_nmsimplex2rand;
+#endif
     else
-      rb_raise(rb_eTypeError, &quot;unknown type %s (only nmsimplex supported)&quot;, name);
+      rb_raise(rb_eTypeError, &quot;unknown type %s (nmsimplex and nmsimplex2rand supported)&quot;, name);
     break;
   case T_FIXNUM:
     switch (FIX2INT(t)) {
     case GSL_FMINIMIZER_NMSIMPLEX:
       return gsl_multimin_fminimizer_nmsimplex; break;
+#ifdef GSL_1_13_LATER
+    case GSL_FMINIMIZER_NMSIMPLEX2RAND:
+      return gsl_multimin_fminimizer_nmsimplex2rand; break;
+#endif
     default:
       rb_raise(rb_eTypeError, &quot;%d: unknown type (not supported)&quot;, FIX2INT(t));
       break;</diff>
      <filename>ext/multimin.c</filename>
    </modified>
    <modified>
      <diff>@@ -1624,6 +1624,86 @@ static VALUE rb_gsl_poly_wfit(int argc, VALUE *argv, VALUE obj)
 }
 #endif
 
+#ifdef BASE_DOUBLE
+#ifdef GSL_1_13_LATER
+static VALUE rb_gsl_poly_eval_derivs_singleton(int argc, VALUE *argv, VALUE klass)
+{
+  VALUE ary;
+  gsl_vector *v = NULL, *v2 = NULL;
+  size_t i, lenc, lenres;
+#ifdef HAVE_NARRAY_H
+  struct NARRAY *na;
+  double *ptr1, *ptr2;
+  int shape[1];
+#endif
+
+  if (argc &lt; 2) rb_raise(rb_eArgError, &quot;Wrong number of arguments (%d for &gt;= 2)&quot;);
+  if (rb_obj_is_kind_of(argv[0], rb_cArray)) {
+    v = gsl_vector_alloc(RARRAY_LEN(argv[0]));
+    lenc = v-&gt;size;
+    for (i = 0; i &lt; lenc; i++) {
+      gsl_vector_set(v, i, NUM2DBL(rb_ary_entry(argv[0], i)));
+    }
+    if (argc == 2) lenres = lenc + 1;
+    else lenres = FIX2INT(argv[2]);
+    v2 = gsl_vector_alloc(lenres);
+    gsl_poly_eval_derivs(v-&gt;data, lenc, NUM2DBL(argv[1]), v2-&gt;data, lenres);
+    ary = rb_ary_new2(lenres);
+    for (i = 0; i &lt; lenres; i++) {
+      rb_ary_store(ary, i, rb_float_new(gsl_vector_get(v2, i)));
+    }
+    gsl_vector_free(v2);
+    gsl_vector_free(v);
+    return ary;
+  }
+  if (rb_obj_is_kind_of(argv[0], cgsl_vector)) {
+    Data_Get_Struct(argv[0], gsl_vector, v);
+    lenc = v-&gt;size;
+    if (argc == 2) lenres = lenc + 1;
+    else lenres = FIX2INT(argv[2]);
+    v2 = gsl_vector_alloc(lenres);
+    gsl_poly_eval_derivs(v-&gt;data, lenc, NUM2DBL(argv[1]), v2-&gt;data, lenres);
+    return Data_Wrap_Struct(cgsl_poly, 0, gsl_vector_free, v2);
+  }
+#ifdef HAVE_NARRAY_H
+  if (NA_IsNArray(argv[0])) {
+    GetNArray(argv[0], na);
+    ptr1 = (double*) na-&gt;ptr;
+    lenc = na-&gt;total;
+    if (argc == 2) lenres = lenc + 1;
+    else lenres = FIX2INT(argv[2]);
+    shape[0] = lenres;
+    ary = na_make_object(NA_DFLOAT, na-&gt;rank, shape, CLASS_OF(argv[0]));
+    ptr2 = NA_PTR_TYPE(ary,double*);
+    gsl_poly_eval_derivs(ptr1, lenc, NUM2DBL(argv[1]), ptr2, lenres);
+    return ary;
+  }
+#endif
+  return Qnil;  // Never comes here
+}
+static VALUE rb_gsl_poly_eval_derivs(int argc, VALUE *argv, VALUE obj)
+{
+  gsl_vector *v, *v2;
+  size_t lenc, lenres;
+  Data_Get_Struct(obj, gsl_vector, v);
+  lenc = v-&gt;size;
+  switch (argc) {
+  case 1:
+    lenres = lenc + 1;
+    break;
+  case 2:
+    lenres = FIX2INT(argv[1]);
+    break;
+  default:
+    rb_raise(rb_eArgError, &quot;Wrong number of arguments (%d for &gt; 1)&quot;);
+  }
+  v2 = gsl_vector_alloc(lenres);
+  gsl_poly_eval_derivs(v-&gt;data, lenc, NUM2DBL(argv[0]), v2-&gt;data, lenres);
+  return Data_Wrap_Struct(cgsl_poly, 0, gsl_vector_free, v2);
+}
+#endif
+#endif
+
 void FUNCTION(Init_gsl_poly,init)(VALUE module)
 {
 #ifdef BASE_DOUBLE
@@ -1775,6 +1855,12 @@ void FUNCTION(Init_gsl_poly,init)(VALUE module)
 		   FUNCTION(rb_gsl_poly,fit), -1);
   rb_define_singleton_method(GSL_TYPE(cgsl_poly), &quot;wfit&quot;, 
 		   FUNCTION(rb_gsl_poly,wfit), -1);
+
+#ifdef GSL_1_13_LATER
+  rb_define_singleton_method(cgsl_poly, &quot;eval_derivs&quot;, rb_gsl_poly_eval_derivs_singleton, -1);
+  rb_define_method(cgsl_vector, &quot;eval_derivs&quot;, rb_gsl_poly_eval_derivs, -1);
+#endif
+
 #endif
 }
 </diff>
      <filename>ext/poly_source.c</filename>
    </modified>
    <modified>
      <diff>@@ -55,17 +55,21 @@ The function to minimize is given as an instance of the &lt;a href=&quot;function.html&quot;&gt;
 &lt;dt&gt;&lt;a name=&quot;label-3&quot; id=&quot;label-3&quot;&gt;&lt;code&gt;GSL::Min::FMinimizer.alloc(&lt;var&gt;t&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Min::FMinimizer.alloc&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;These method create an instance of the &lt;code&gt;GSL::Min::FMinimizer&lt;/code&gt; class of 
-type &lt;var&gt;t&lt;/var&gt;. The type &lt;var&gt;t&lt;/var&gt; is given by a Ruby constant,&lt;/p&gt;
+type &lt;var&gt;t&lt;/var&gt;. The type &lt;var&gt;t&lt;/var&gt; is given by a String,&lt;/p&gt;
+&lt;ul&gt;
+&lt;li&gt;&quot;goldensection&quot;&lt;/li&gt;
+&lt;li&gt;&quot;brent&quot;&lt;/li&gt;
+&lt;li&gt;&quot;quad_golden&quot;&lt;/li&gt;
+&lt;/ul&gt;
+&lt;p&gt;or by a Ruby constant,&lt;/p&gt;
 &lt;ul&gt;
 &lt;li&gt;GSL::Min::FMinimizer::GOLDENSECTION&lt;/li&gt;
 &lt;li&gt;GSL::Min::FMinimizer::BRENT&lt;/li&gt;
+&lt;li&gt;GSL::Min::FMinimizer::QUAD_GOLDEN (GSL-1.13)&lt;/li&gt;
 &lt;/ul&gt;
-&lt;p&gt;ex1)&lt;/p&gt;
-&lt;pre&gt;include GSL
-s1 = Min::FMinimizer.alloc(Min::FMinimizer::GOLDENSECTION)&lt;/pre&gt;
-&lt;p&gt;ex2)&lt;/p&gt;
+&lt;p&gt;ex)&lt;/p&gt;
 &lt;pre&gt;include GSL::Min
-s2 = FMinimizer.alloc(FMinimizer::BRENT)&lt;/pre&gt;&lt;/dd&gt;
+s = FMinimizer.alloc(FMinimizer::BRENT)&lt;/pre&gt;&lt;/dd&gt;
 &lt;dt&gt;&lt;a name=&quot;label-4&quot; id=&quot;label-4&quot;&gt;&lt;code&gt;GSL::Min::FMinimizer#set(&lt;var&gt;f&lt;/var&gt;, &lt;var&gt;xmin&lt;/var&gt;, &lt;var&gt;xlow&lt;/var&gt;, &lt;var&gt;xup&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Min::FMinimizer#set&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;This method sets, or resets, an existing minimizer &lt;var&gt;self&lt;/var&gt; to use </diff>
      <filename>html/min.html</filename>
    </modified>
    <modified>
      <diff>@@ -94,18 +94,90 @@ finishes.&lt;/p&gt;
 &lt;dt&gt;&lt;a name=&quot;label-40&quot; id=&quot;label-40&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#result&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#result&quot; --&gt;
 &lt;dt&gt;&lt;a name=&quot;label-41&quot; id=&quot;label-41&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#sigma&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#sigma&quot; --&gt;
 &lt;dt&gt;&lt;a name=&quot;label-42&quot; id=&quot;label-42&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#chisq&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#chisq&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-43&quot; id=&quot;label-43&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#iterations&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#iterations&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-44&quot; id=&quot;label-44&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#iterations=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#iterations=&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-45&quot; id=&quot;label-45&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#alpha&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#alpha&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-46&quot; id=&quot;label-46&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#alpha=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#alpha=&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-47&quot; id=&quot;label-47&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#stage&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#stage&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-48&quot; id=&quot;label-48&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#stage=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#stage=&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-49&quot; id=&quot;label-49&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#mode&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#mode&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-50&quot; id=&quot;label-50&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#mode=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#mode=&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-51&quot; id=&quot;label-51&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#verbose&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#verbose&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-52&quot; id=&quot;label-52&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#verbose=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#verbose=&quot; --&gt;
+&lt;dd&gt;
+Returns the chi-squared per degree of freedom for the weighted estimate of the integral. The returned value should be close to 1. A value which differs significantly from 1 indicates that the values from different iterations are inconsistent. In this case the weighted error will be under-estimated, and further iterations of the algorithm are needed to obtain reliable results.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-43&quot; id=&quot;label-43&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#runval&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#runval&quot; --&gt;
+&lt;dd&gt;
+Returns the raw (unaveraged) values of the integral and its error &lt;var&gt;[result, sigma]&lt;/var&gt; from the most recent iteration of the algorithm.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-44&quot; id=&quot;label-44&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#iterations&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#iterations&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-45&quot; id=&quot;label-45&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#iterations=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#iterations=&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-46&quot; id=&quot;label-46&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#alpha&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#alpha&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-47&quot; id=&quot;label-47&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#alpha=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#alpha=&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-48&quot; id=&quot;label-48&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#stage&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#stage&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-49&quot; id=&quot;label-49&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#stage=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#stage=&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-50&quot; id=&quot;label-50&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#mode&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#mode&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-51&quot; id=&quot;label-51&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#mode=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#mode=&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-52&quot; id=&quot;label-52&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#verbose&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#verbose&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-53&quot; id=&quot;label-53&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#verbose=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#verbose=&quot; --&gt;
+&lt;/dl&gt;
+&lt;h2&gt;&lt;a name=&quot;5&quot; href=&quot;#5&quot;&gt;5&lt;/a&gt; &lt;a name=&quot;label-54&quot;&gt;Miser Parameters (GSL-1.13 or later)&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Miser Parameters (GSL-1.13 or later)&quot; --&gt;
+
+&lt;dl&gt;
+&lt;dt&gt;&lt;a name=&quot;label-55&quot; id=&quot;label-55&quot;&gt;&lt;code&gt;GSL::Monte::Miser#params_get&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser#params_get&quot; --&gt;
+&lt;dd&gt;
+Returns the parameters of the integrator state as an instance of &lt;code&gt;GSL::Monte::Miser::Params&lt;/code&gt; class.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-56&quot; id=&quot;label-56&quot;&gt;&lt;code&gt;GSL::Monte::Miser#params_set(&lt;var&gt;params&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser#params_set&quot; --&gt;
+&lt;dd&gt;
+Sets the integrator parameters based on values provided in an object of the &lt;code&gt;GSL::Monte::Miser::Params&lt;/code&gt; class &lt;var&gt;params&lt;/var&gt;.&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;h3&gt;&lt;a name=&quot;5.1&quot; href=&quot;#5.1&quot;&gt;5.1&lt;/a&gt; &lt;a name=&quot;label-57&quot;&gt;Accessors of &lt;code&gt;GSL::Monte::Miser::Params&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Accessors of GSL::Monte::Miser::Params&quot; --&gt;
+
+&lt;dl&gt;
+&lt;dt&gt;&lt;a name=&quot;label-58&quot; id=&quot;label-58&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#estimate_frac&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#estimate_frac&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-59&quot; id=&quot;label-59&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#estimate_frac=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#estimate_frac=&quot; --&gt;
+&lt;dd&gt;
+The fraction of the currently available number of function calls which are allocated to estimating the variance at each recursive step. The default value is 0.1.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-60&quot; id=&quot;label-60&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#min_calls&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#min_calls&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-61&quot; id=&quot;label-61&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#min_calls=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#min_calls=&quot; --&gt;
+&lt;dd&gt;
+The minimum number of function calls required for each estimate of the variance. If the number of function calls allocated to the estimate using &lt;var&gt;estimate_frac&lt;/var&gt; falls below &lt;var&gt;min_calls&lt;/var&gt; then &lt;var&gt;min_calls&lt;/var&gt; are used instead. This ensures that each estimate maintains a reasonable level of accuracy. The default value of min_calls is 16 * dim.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-62&quot; id=&quot;label-62&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#min_calls_per_bisection&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#min_calls_per_bisection&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-63&quot; id=&quot;label-63&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#min_calls_per_bisection=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#min_calls_per_bisection=&quot; --&gt;
+&lt;dd&gt;
+The minimum number of function calls required to proceed with a bisection step. When a recursive step has fewer calls available than &lt;var&gt;min_calls_per_bisection&lt;/var&gt; it performs a plain Monte Carlo estimate of the current sub-region and terminates its branch of the recursion. The default value of this parameter is 32 * min_calls.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-64&quot; id=&quot;label-64&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#alpha&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#alpha&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-65&quot; id=&quot;label-65&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#alpha=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#alpha=&quot; --&gt;
+&lt;dd&gt;
+This parameter controls how the estimated variances for the two sub-regions of a bisection are combined when allocating points. With recursive sampling the overall variance should scale better than 1/N, since the values from the sub-regions will be obtained using a procedure which explicitly minimizes their variance. To accommodate this behavior the MISER algorithm allows the total variance to depend on a scaling parameter &lt;var&gt;alpha&lt;/var&gt;, The authors of the original paper describing MISER recommend the value &lt;var&gt;alpha&lt;/var&gt; = 2 as a good choice, obtained from numerical experiments, and this is used as the default value in this implementation.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-66&quot; id=&quot;label-66&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#dither&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#dither&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-67&quot; id=&quot;label-67&quot;&gt;&lt;code&gt;GSL::Monte::Miser::Params#dither=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Miser::Params#dither=&quot; --&gt;
+&lt;/dl&gt;
+&lt;p&gt;This parameter introduces a random fractional variation of size dither into each bisection, which can be used to break the symmetry of integrands which are concentrated near the exact center of the hypercubic integration region. The default value of dither is zero, so no variation is introduced. If needed, a typical value of dither is 0.1.&lt;/p&gt;
+&lt;h2&gt;&lt;a name=&quot;6&quot; href=&quot;#6&quot;&gt;6&lt;/a&gt; &lt;a name=&quot;label-68&quot;&gt;Vegas Parameters (GSL-1.13 or later)&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Vegas Parameters (GSL-1.13 or later)&quot; --&gt;
+
+&lt;dl&gt;
+&lt;dt&gt;&lt;a name=&quot;label-69&quot; id=&quot;label-69&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#params_get&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#params_get&quot; --&gt;
+&lt;dd&gt;
+Returns the parameters of the integrator state as an instance of &lt;code&gt;GSL::Monte::Vegas::Params&lt;/code&gt; class.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-70&quot; id=&quot;label-70&quot;&gt;&lt;code&gt;GSL::Monte::Vegas#params_set(&lt;var&gt;params&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas#params_set&quot; --&gt;
+&lt;dd&gt;
+Sets the integrator parameters based on values provided in an object of the &lt;code&gt;GSL::Monte::Vegas::Params&lt;/code&gt; class &lt;var&gt;params&lt;/var&gt;.&lt;/dd&gt;
+&lt;/dl&gt;
+&lt;h3&gt;&lt;a name=&quot;6.1&quot; href=&quot;#6.1&quot;&gt;6.1&lt;/a&gt; &lt;a name=&quot;label-71&quot;&gt;Accessors of &lt;code&gt;GSL::Monte::Vegas::Params&lt;/code&gt;&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Accessors of GSL::Monte::Vegas::Params&quot; --&gt;
+
+&lt;dl&gt;
+&lt;dt&gt;&lt;a name=&quot;label-72&quot; id=&quot;label-72&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#alpha&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#alpha&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-73&quot; id=&quot;label-73&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#alpha=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#alpha=&quot; --&gt;
+&lt;dd&gt;
+Controls the stiffness of the rebinning algorithm. It is typically set between one and two. A value of zero prevents rebinning of the grid. The default value is 1.5.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-74&quot; id=&quot;label-74&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#iterations&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#iterations&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-75&quot; id=&quot;label-75&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#iterations=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#iterations=&quot; --&gt;
+&lt;dd&gt;
+The number of iterations to perform for each call to the routine. The default value is 5 iterations.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-76&quot; id=&quot;label-76&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#stage&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#stage&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-77&quot; id=&quot;label-77&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#stage=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#stage=&quot; --&gt;
+&lt;dd&gt;
+Setting this determines the stage of the calculation. Normally, stage = 0 which begins with a new uniform grid and empty weighted average. Calling vegas with stage = 1 retains the grid from the previous run but discards the weighted average, so that one can &quot;tune&quot; the grid using a relatively small number of points and then do a large run with stage = 1 on the optimized grid. Setting stage = 2 keeps the grid and the weighted average from the previous run, but may increase (or decrease) the number of histogram bins in the grid depending on the number of calls available. Choosing stage = 3 enters at the main loop, so that nothing is changed, and is equivalent to performing additional iterations in a previous call.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-78&quot; id=&quot;label-78&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#mode&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#mode&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-79&quot; id=&quot;label-79&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#mode=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#mode=&quot; --&gt;
+&lt;dd&gt;
+The possible choices are &lt;code&gt;GSL::VEGAS::MODE_IMPORTANCE&lt;/code&gt;, &lt;code&gt;GSL::VEGAS::MODE_STRATIFIED&lt;/code&gt;, &lt;code&gt;GSL::VEGAS::MODE_IMPORTANCE_ONLY&lt;/code&gt;. This determines whether VEGAS will use importance sampling or stratified sampling, or whether it can pick on its own. In low dimensions VEGAS uses strict stratified sampling (more precisely, stratified sampling is chosen if there are fewer than 2 bins per box).&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-80&quot; id=&quot;label-80&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#verbose&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#verbose&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-81&quot; id=&quot;label-81&quot;&gt;&lt;code&gt;GSL::Monte::Vegas::Params#verbose=&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Monte::Vegas::Params#verbose=&quot; --&gt;
+&lt;dd&gt;
+Set the level of information printed by VEGAS. All information is written to the stream ostream. The default setting of verbose is -1, which turns off all output. A verbose value of 0 prints summary information about the weighted average and final result, while a value of 1 also displays the grid coordinates. A value of 2 prints information from the rebinning procedure for each iteration.&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h2&gt;&lt;a name=&quot;5&quot; href=&quot;#5&quot;&gt;5&lt;/a&gt; &lt;a name=&quot;label-53&quot;&gt;Example&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Example&quot; --&gt;
+&lt;h2&gt;&lt;a name=&quot;7&quot; href=&quot;#7&quot;&gt;7&lt;/a&gt; &lt;a name=&quot;label-82&quot;&gt;Example&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Example&quot; --&gt;
 
 &lt;pre&gt;#!/usr/bin/env ruby
 require(&quot;gsl&quot;)</diff>
      <filename>html/monte.html</filename>
    </modified>
    <modified>
      <diff>@@ -81,7 +81,7 @@ the function in question. &lt;/p&gt;
 &lt;dt&gt;&lt;a name=&quot;label-5&quot; id=&quot;label-5&quot;&gt;&lt;code&gt;GSL::MultiMin::FMinimizer.alloc(&lt;var&gt;type&lt;/var&gt;, &lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::MultiMin::FMinimizer.alloc&quot; --&gt;
 &lt;dd&gt;
 These method create a minimizer of type &lt;var&gt;type&lt;/var&gt; for an &lt;var&gt;n&lt;/var&gt;-dimension function. 
-The type is given by a name of the algorithm, or by a Ruby constant.
+The type is given by a string, or by a Ruby constant.
 &lt;ul&gt;
 &lt;li&gt;&lt;code&gt;GSL::MultiMin::FdfMinimizer::CONJUGATE_FR&lt;/code&gt; or &lt;code&gt;&quot;conjugate_fr&quot;&lt;/code&gt;&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;GSL::MultiMin::FdfMinimizer::CONJUGATE_PR&lt;/code&gt; or &lt;code&gt;&quot;conjugate_pr&quot;&lt;/code&gt;&lt;/li&gt;
@@ -89,6 +89,7 @@ The type is given by a name of the algorithm, or by a Ruby constant.
 &lt;li&gt;&lt;code&gt;GSL::MultiMin::FdfMinimizer::VECTOR_BFGS2&lt;/code&gt; or &lt;code&gt;&quot;vector_bfgs2&quot;&lt;/code&gt; (GSL-1.9 or later)&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;GSL::MultiMin::FdfMinimizer::STEEPEST_DESCENT&lt;/code&gt; or &lt;code&gt;&quot;steepest_descent&quot;&lt;/code&gt;&lt;/li&gt;
 &lt;li&gt;&lt;code&gt;GSL::MultiMin::FMinimizer::NMSIMPLEX&lt;/code&gt; or &lt;code&gt;&quot;nmsimplex&quot;&lt;/code&gt;&lt;/li&gt;
+&lt;li&gt;&lt;code&gt;GSL::MultiMin::FMinimizer::NMSIMPLEX2RAND&lt;/code&gt; or &lt;code&gt;&quot;nmsimplex2rand&quot;&lt;/code&gt; (GSL-1.13)&lt;/li&gt;
 &lt;li&gt;&lt;p&gt;ex:&lt;/p&gt;
 &lt;pre&gt;include GSL::MultiMin
 m1 = FdfMinimizer.alloc(FdfMinimizer::CONJUGATE_FR, 2)</diff>
      <filename>html/multimin.html</filename>
    </modified>
    <modified>
      <diff>@@ -59,14 +59,45 @@ irb(main):006:0&amp;gt; GSL::Poly.eval([1, 2, 3], GSL::Vector[1, 2, 3])
 irb(main):007:0&amp;gt; GSL::Poly.eval([1, 2, 3], NArray[1.0, 2, 3])
 =&amp;gt; NArray.float(3):
 [ 6.0, 17.0, 34.0 ]&lt;/pre&gt;&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-3&quot; id=&quot;label-3&quot;&gt;&lt;code&gt;GSL::Poly.eval_derivs(&lt;var&gt;c&lt;/var&gt;, &lt;var&gt;x&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.eval_derivs&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-4&quot; id=&quot;label-4&quot;&gt;&lt;code&gt;GSL::Poly.eval_derivs(&lt;var&gt;c&lt;/var&gt;, &lt;var&gt;x&lt;/var&gt;, &lt;var&gt;lenres&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.eval_derivs&quot; --&gt;
+&lt;dd&gt;
+(GSL-1.13) Evaluate and return a polynomial and its derivatives. The output contains the values of d^k P/d x^k for the specified value of x starting with k = 0. The input polynomial &lt;var&gt;c&lt;/var&gt; can be an &lt;code&gt;Array&lt;/code&gt;, &lt;code&gt;GSL::Poly&lt;/code&gt; or an &lt;code&gt;NArray&lt;/code&gt;. If &lt;var&gt;lenres&lt;/var&gt; is not given, &lt;var&gt;lenres = LENGTH(c) + 1&lt;/var&gt; is used, therefore the last element of the output is 0.&lt;/dd&gt;
+&lt;dt&gt;&lt;a name=&quot;label-5&quot; id=&quot;label-5&quot;&gt;&lt;code&gt;GSL::Poly#eval_derivs(&lt;var&gt;x&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#eval_derivs&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-6&quot; id=&quot;label-6&quot;&gt;&lt;code&gt;GSL::Poly#eval_derivs(&lt;var&gt;x&lt;/var&gt;, &lt;var&gt;lenres&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#eval_derivs&quot; --&gt;
+&lt;dd&gt;
+&lt;p&gt;(GSL-1.13) Evaluate and return a polynomial and its derivatives. The output contains the values of d^k P/d x^k for the specified value of x starting with k = 0. If &lt;var&gt;lenres&lt;/var&gt; is not given, &lt;var&gt;lenres = LENGTH(self) + 1&lt;/var&gt; is used, therefore the last element of the output is 0.&lt;/p&gt;
+&lt;p&gt;Ex.)&lt;/p&gt;
+&lt;pre&gt;&amp;gt;&amp;gt; ary = [1, 2, 3]
+=&amp;gt; [1, 2, 3]
+&amp;gt;&amp;gt; GSL::Poly.eval_derivs(ary, 1)
+=&amp;gt; [6.0, 8.0, 6.0, 0.0]
+&amp;gt;&amp;gt; na = NArray[1.0, 2, 3]
+=&amp;gt; NArray.float(3): 
+[ 1.0, 2.0, 3.0 ]
+&amp;gt;&amp;gt; GSL::Poly.eval_derivs(na, 1)
+=&amp;gt; NArray.float(4): 
+[ 6.0, 8.0, 6.0, 0.0 ]
+&amp;gt;&amp;gt; poly = GSL::Poly[1.0, 2, 3]
+=&amp;gt; GSL::Poly
+[ 1.000e+00 2.000e+00 3.000e+00 ]
+&amp;gt;&amp;gt; GSL::Poly.eval_derivs(poly, 1)
+=&amp;gt; GSL::Poly
+[ 6.000e+00 8.000e+00 6.000e+00 0.000e+00 ]
+&amp;gt;&amp;gt; poly.eval_derivs(1)
+=&amp;gt; GSL::Poly
+[ 6.000e+00 8.000e+00 6.000e+00 0.000e+00 ]
+&amp;gt;&amp;gt; poly.eval_derivs(1, 3)
+=&amp;gt; GSL::Poly
+[ 6.000e+00 8.000e+00 6.000e+00 ]&lt;/pre&gt;&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h2&gt;&lt;a name=&quot;2&quot; href=&quot;#2&quot;&gt;2&lt;/a&gt; &lt;a name=&quot;label-3&quot;&gt;Solving polynomial equations&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Solving polynomial equations&quot; --&gt;
+&lt;h2&gt;&lt;a name=&quot;2&quot; href=&quot;#2&quot;&gt;2&lt;/a&gt; &lt;a name=&quot;label-7&quot;&gt;Solving polynomial equations&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Solving polynomial equations&quot; --&gt;
 
-&lt;h3&gt;&lt;a name=&quot;2.1&quot; href=&quot;#2.1&quot;&gt;2.1&lt;/a&gt; &lt;a name=&quot;label-4&quot;&gt;Quadratic Equations&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Quadratic Equations&quot; --&gt;
+&lt;h3&gt;&lt;a name=&quot;2.1&quot; href=&quot;#2.1&quot;&gt;2.1&lt;/a&gt; &lt;a name=&quot;label-8&quot;&gt;Quadratic Equations&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Quadratic Equations&quot; --&gt;
 
 &lt;dl&gt;
-&lt;dt&gt;&lt;a name=&quot;label-5&quot; id=&quot;label-5&quot;&gt;&lt;code&gt;GSL::Poly::solve_quadratic(&lt;var&gt;a&lt;/var&gt;, &lt;var&gt;b&lt;/var&gt;, &lt;var&gt;c&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::solve_quadratic&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-6&quot; id=&quot;label-6&quot;&gt;&lt;code&gt;GSL::Poly::solve_quadratic([&lt;var&gt;a&lt;/var&gt;, &lt;var&gt;b&lt;/var&gt;, &lt;var&gt;c&lt;/var&gt;])&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::solve_quadratic&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-9&quot; id=&quot;label-9&quot;&gt;&lt;code&gt;GSL::Poly::solve_quadratic(&lt;var&gt;a&lt;/var&gt;, &lt;var&gt;b&lt;/var&gt;, &lt;var&gt;c&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::solve_quadratic&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-10&quot; id=&quot;label-10&quot;&gt;&lt;code&gt;GSL::Poly::solve_quadratic([&lt;var&gt;a&lt;/var&gt;, &lt;var&gt;b&lt;/var&gt;, &lt;var&gt;c&lt;/var&gt;])&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::solve_quadratic&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;Find the real roots of the quadratic equation,&lt;/p&gt;
 &lt;pre&gt;a x^2 + b x + c = 0&lt;/pre&gt;
@@ -78,8 +109,8 @@ or a &lt;code&gt;GSL::Vector&lt;/code&gt; object. The roots are returned as a &lt;code&gt;GSL::Vec
 =&amp;gt; GSL::Vector: 
 [ 1.000e+00 2.000e+00 ]&lt;/pre&gt;&lt;/li&gt;
 &lt;/ul&gt;&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-7&quot; id=&quot;label-7&quot;&gt;&lt;code&gt;GSL::Poly::complex_solve_quadratic(&lt;var&gt;a&lt;/var&gt;, &lt;var&gt;b&lt;/var&gt;, &lt;var&gt;c&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::complex_solve_quadratic&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-8&quot; id=&quot;label-8&quot;&gt;&lt;code&gt;GSL::Poly::complex_solve_quadratic([&lt;var&gt;a&lt;/var&gt;, &lt;var&gt;b&lt;/var&gt;, &lt;var&gt;c&lt;/var&gt;])&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::complex_solve_quadratic&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-11&quot; id=&quot;label-11&quot;&gt;&lt;code&gt;GSL::Poly::complex_solve_quadratic(&lt;var&gt;a&lt;/var&gt;, &lt;var&gt;b&lt;/var&gt;, &lt;var&gt;c&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::complex_solve_quadratic&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-12&quot; id=&quot;label-12&quot;&gt;&lt;code&gt;GSL::Poly::complex_solve_quadratic([&lt;var&gt;a&lt;/var&gt;, &lt;var&gt;b&lt;/var&gt;, &lt;var&gt;c&lt;/var&gt;])&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::complex_solve_quadratic&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;Find the complex roots of the quadratic equation,&lt;/p&gt;
 &lt;pre&gt;a z^2 + b z + z = 0&lt;/pre&gt;
@@ -98,23 +129,23 @@ irb(main):003:0&amp;gt; GSL::Poly::complex_solve_quadratic(1, -3, 2).real  &amp;lt;--- R
 [ 1.000e+00 2.000e+00 ]&lt;/pre&gt;&lt;/li&gt;
 &lt;/ul&gt;&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h3&gt;&lt;a name=&quot;2.2&quot; href=&quot;#2.2&quot;&gt;2.2&lt;/a&gt; &lt;a name=&quot;label-9&quot;&gt;Cubic Equations&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Cubic Equations&quot; --&gt;
+&lt;h3&gt;&lt;a name=&quot;2.2&quot; href=&quot;#2.2&quot;&gt;2.2&lt;/a&gt; &lt;a name=&quot;label-13&quot;&gt;Cubic Equations&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Cubic Equations&quot; --&gt;
 
 &lt;dl&gt;
-&lt;dt&gt;&lt;a name=&quot;label-10&quot; id=&quot;label-10&quot;&gt;&lt;code&gt;GSL::Poly::solve_cubic(&lt;var&gt;same&lt;/var&gt; &lt;var&gt;as&lt;/var&gt; &lt;var&gt;solve_quadratic&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::solve_cubic&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-14&quot; id=&quot;label-14&quot;&gt;&lt;code&gt;GSL::Poly::solve_cubic(&lt;var&gt;same&lt;/var&gt; &lt;var&gt;as&lt;/var&gt; &lt;var&gt;solve_quadratic&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::solve_cubic&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;This method finds the real roots of the cubic equation,&lt;/p&gt;
 &lt;pre&gt;x^3 + a x^2 + b x + c = 0&lt;/pre&gt;&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-11&quot; id=&quot;label-11&quot;&gt;&lt;code&gt;GSL::Poly::complex_solve_cubic(&lt;var&gt;same&lt;/var&gt; &lt;var&gt;as&lt;/var&gt; &lt;var&gt;solve_cubic&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::complex_solve_cubic&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-15&quot; id=&quot;label-15&quot;&gt;&lt;code&gt;GSL::Poly::complex_solve_cubic(&lt;var&gt;same&lt;/var&gt; &lt;var&gt;as&lt;/var&gt; &lt;var&gt;solve_cubic&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::complex_solve_cubic&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;This method finds the complex roots of the cubic equation,&lt;/p&gt;
 &lt;pre&gt;z^3 + a z^2 + b z + c = 0&lt;/pre&gt;&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h3&gt;&lt;a name=&quot;2.3&quot; href=&quot;#2.3&quot;&gt;2.3&lt;/a&gt; &lt;a name=&quot;label-12&quot;&gt;General Polynomial Equations&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;General Polynomial Equations&quot; --&gt;
+&lt;h3&gt;&lt;a name=&quot;2.3&quot; href=&quot;#2.3&quot;&gt;2.3&lt;/a&gt; &lt;a name=&quot;label-16&quot;&gt;General Polynomial Equations&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;General Polynomial Equations&quot; --&gt;
 
 &lt;dl&gt;
-&lt;dt&gt;&lt;a name=&quot;label-13&quot; id=&quot;label-13&quot;&gt;&lt;code&gt;GSL::Poly::complex_solve(&lt;var&gt;c0&lt;/var&gt;, &lt;var&gt;c1&lt;/var&gt;, &lt;var&gt;c2&lt;/var&gt;,,, )&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::complex_solve&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-14&quot; id=&quot;label-14&quot;&gt;&lt;code&gt;GSL::Poly::solve(&lt;var&gt;c0&lt;/var&gt;, &lt;var&gt;c1&lt;/var&gt;, &lt;var&gt;c2&lt;/var&gt;,,, )&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::solve&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-17&quot; id=&quot;label-17&quot;&gt;&lt;code&gt;GSL::Poly::complex_solve(&lt;var&gt;c0&lt;/var&gt;, &lt;var&gt;c1&lt;/var&gt;, &lt;var&gt;c2&lt;/var&gt;,,, )&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::complex_solve&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-18&quot; id=&quot;label-18&quot;&gt;&lt;code&gt;GSL::Poly::solve(&lt;var&gt;c0&lt;/var&gt;, &lt;var&gt;c1&lt;/var&gt;, &lt;var&gt;c2&lt;/var&gt;,,, )&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::solve&quot; --&gt;
 &lt;dd&gt;
 Find the complex roots of the polynomial equation. Note that 
 the coefficients are given by &quot;ascending&quot; order.
@@ -125,14 +156,14 @@ the coefficients are given by &quot;ascending&quot; order.
 =&amp;gt; #&amp;lt;GSL::Vector::Complex:0x75e614&amp;gt;&lt;/pre&gt;&lt;/li&gt;
 &lt;/ul&gt;&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h2&gt;&lt;a name=&quot;3&quot; href=&quot;#3&quot;&gt;3&lt;/a&gt; &lt;a name=&quot;label-15&quot;&gt;GSL::Poly Class&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;GSL::Poly Class&quot; --&gt;
+&lt;h2&gt;&lt;a name=&quot;3&quot; href=&quot;#3&quot;&gt;3&lt;/a&gt; &lt;a name=&quot;label-19&quot;&gt;GSL::Poly Class&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;GSL::Poly Class&quot; --&gt;
 
 &lt;p&gt;This class expresses polynomials of arbitrary orders.&lt;/p&gt;
-&lt;h3&gt;&lt;a name=&quot;3.1&quot; href=&quot;#3.1&quot;&gt;3.1&lt;/a&gt; &lt;a name=&quot;label-16&quot;&gt;Constructors&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Constructors&quot; --&gt;
+&lt;h3&gt;&lt;a name=&quot;3.1&quot; href=&quot;#3.1&quot;&gt;3.1&lt;/a&gt; &lt;a name=&quot;label-20&quot;&gt;Constructors&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Constructors&quot; --&gt;
 
 &lt;dl&gt;
-&lt;dt&gt;&lt;a name=&quot;label-17&quot; id=&quot;label-17&quot;&gt;&lt;code&gt;GSL::Poly.alloc(&lt;var&gt;c0&lt;/var&gt;, &lt;var&gt;c1&lt;/var&gt;, &lt;var&gt;c2&lt;/var&gt;, ....)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.alloc&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-18&quot; id=&quot;label-18&quot;&gt;&lt;code&gt;GSL::Poly[c0, &lt;var&gt;c1&lt;/var&gt;, &lt;var&gt;c2&lt;/var&gt;, ....]&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly[c0, c1, c2, ....]&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-21&quot; id=&quot;label-21&quot;&gt;&lt;code&gt;GSL::Poly.alloc(&lt;var&gt;c0&lt;/var&gt;, &lt;var&gt;c1&lt;/var&gt;, &lt;var&gt;c2&lt;/var&gt;, ....)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.alloc&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-22&quot; id=&quot;label-22&quot;&gt;&lt;code&gt;GSL::Poly[c0, &lt;var&gt;c1&lt;/var&gt;, &lt;var&gt;c2&lt;/var&gt;, ....]&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly[c0, c1, c2, ....]&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;This creates an instance of the &lt;code&gt;GSL::Poly&lt;/code&gt; class, 
 which represents a polynomial&lt;/p&gt;
@@ -143,17 +174,17 @@ which represents a polynomial&lt;/p&gt;
 &lt;pre&gt;poly = GSL::Poly.alloc([2, -3, 1])&lt;/pre&gt;&lt;/li&gt;
 &lt;/ul&gt;&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h3&gt;&lt;a name=&quot;3.2&quot; href=&quot;#3.2&quot;&gt;3.2&lt;/a&gt; &lt;a name=&quot;label-19&quot;&gt;Instance Methods&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Instance Methods&quot; --&gt;
+&lt;h3&gt;&lt;a name=&quot;3.2&quot; href=&quot;#3.2&quot;&gt;3.2&lt;/a&gt; &lt;a name=&quot;label-23&quot;&gt;Instance Methods&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Instance Methods&quot; --&gt;
 
 &lt;dl&gt;
-&lt;dt&gt;&lt;a name=&quot;label-20&quot; id=&quot;label-20&quot;&gt;&lt;code&gt;GSL::Poly#eval(&lt;var&gt;x&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#eval&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-21&quot; id=&quot;label-21&quot;&gt;&lt;code&gt;GSL::Poly#at(&lt;var&gt;x&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#at&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-24&quot; id=&quot;label-24&quot;&gt;&lt;code&gt;GSL::Poly#eval(&lt;var&gt;x&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#eval&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-25&quot; id=&quot;label-25&quot;&gt;&lt;code&gt;GSL::Poly#at(&lt;var&gt;x&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#at&quot; --&gt;
 &lt;dd&gt;
 Evaluates the polynomial 
 c[0] + c[1] x + c[2] x^2 + ... + c[len-1] x^{len-1} 
 using Horner's method for stability. The argument &lt;var&gt;x&lt;/var&gt; is a
 &lt;code&gt;Numeric&lt;/code&gt;, &lt;code&gt;GSL::Vector, Matrix&lt;/code&gt; or an &lt;code&gt;Array&lt;/code&gt;.&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-22&quot; id=&quot;label-22&quot;&gt;&lt;code&gt;GSL::Poly#solve_quadratic&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#solve_quadratic&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-26&quot; id=&quot;label-26&quot;&gt;&lt;code&gt;GSL::Poly#solve_quadratic&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#solve_quadratic&quot; --&gt;
 &lt;dd&gt;
 Solve the quadratic equation.
 &lt;ul&gt;
@@ -165,12 +196,12 @@ irb(main):005:0&amp;gt; a.solve_quadratic
 =&amp;gt; GSL::Vector: 
 [ 1.000e+00 2.000e+00 ]&lt;/pre&gt;&lt;/li&gt;
 &lt;/ul&gt;&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-23&quot; id=&quot;label-23&quot;&gt;&lt;code&gt;GSL::Poly#solve_cubic&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#solve_cubic&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-27&quot; id=&quot;label-27&quot;&gt;&lt;code&gt;GSL::Poly#solve_cubic&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#solve_cubic&quot; --&gt;
 &lt;dd&gt;
 Solve the cubic equation.&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-24&quot; id=&quot;label-24&quot;&gt;&lt;code&gt;GSL::Poly#complex_solve&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#complex_solve&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-25&quot; id=&quot;label-25&quot;&gt;&lt;code&gt;GSL::Poly#solve&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#solve&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-26&quot; id=&quot;label-26&quot;&gt;&lt;code&gt;GSL::Poly#roots&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#roots&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-28&quot; id=&quot;label-28&quot;&gt;&lt;code&gt;GSL::Poly#complex_solve&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#complex_solve&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-29&quot; id=&quot;label-29&quot;&gt;&lt;code&gt;GSL::Poly#solve&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#solve&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-30&quot; id=&quot;label-30&quot;&gt;&lt;code&gt;GSL::Poly#roots&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#roots&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;These methods find the complex roots of the quadratic equation,&lt;/p&gt;
 &lt;pre&gt;c0 + c1 z + c2 z^2 + .... = 0&lt;/pre&gt;
@@ -184,11 +215,11 @@ irb(main):010:0&amp;gt; a.solve
 =&amp;gt; #&amp;lt;GSL::Vector::Complex:0x35db28&amp;gt;&lt;/pre&gt;&lt;/li&gt;
 &lt;/ul&gt;&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h2&gt;&lt;a name=&quot;4&quot; href=&quot;#4&quot;&gt;4&lt;/a&gt; &lt;a name=&quot;label-27&quot;&gt;Polynomial fitting&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Polynomial fitting&quot; --&gt;
+&lt;h2&gt;&lt;a name=&quot;4&quot; href=&quot;#4&quot;&gt;4&lt;/a&gt; &lt;a name=&quot;label-31&quot;&gt;Polynomial fitting&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Polynomial fitting&quot; --&gt;
 
 &lt;dl&gt;
-&lt;dt&gt;&lt;a name=&quot;label-28&quot; id=&quot;label-28&quot;&gt;&lt;code&gt;GSL::Poly.fit(&lt;var&gt;x&lt;/var&gt;, &lt;var&gt;y&lt;/var&gt;, &lt;var&gt;order&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.fit&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-29&quot; id=&quot;label-29&quot;&gt;&lt;code&gt;GSL::Poly.wfit(&lt;var&gt;x&lt;/var&gt;, &lt;var&gt;w&lt;/var&gt;, &lt;var&gt;y&lt;/var&gt;, &lt;var&gt;order&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.wfit&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-32&quot; id=&quot;label-32&quot;&gt;&lt;code&gt;GSL::Poly.fit(&lt;var&gt;x&lt;/var&gt;, &lt;var&gt;y&lt;/var&gt;, &lt;var&gt;order&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.fit&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-33&quot; id=&quot;label-33&quot;&gt;&lt;code&gt;GSL::Poly.wfit(&lt;var&gt;x&lt;/var&gt;, &lt;var&gt;w&lt;/var&gt;, &lt;var&gt;y&lt;/var&gt;, &lt;var&gt;order&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.wfit&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;Finds the coefficient of a polynomial of order &lt;var&gt;order&lt;/var&gt; 
 that fits the vector data (&lt;var&gt;x, y&lt;/var&gt;) in a least-square sense.
@@ -206,29 +237,29 @@ coef, cov, chisq, status = Poly.fit(x, y, 3)
 x2 = GSL::Vector.linspace(1, 5, 20)
 graph([x, y], [x2, coef.eval(x2)], &quot;-C -g 3 -S 4&quot;)&lt;/pre&gt;&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h2&gt;&lt;a name=&quot;5&quot; href=&quot;#5&quot;&gt;5&lt;/a&gt; &lt;a name=&quot;label-30&quot;&gt;Divided-difference representations&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Divided-difference representations&quot; --&gt;
+&lt;h2&gt;&lt;a name=&quot;5&quot; href=&quot;#5&quot;&gt;5&lt;/a&gt; &lt;a name=&quot;label-34&quot;&gt;Divided-difference representations&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Divided-difference representations&quot; --&gt;
 
 &lt;dl&gt;
-&lt;dt&gt;&lt;a name=&quot;label-31&quot; id=&quot;label-31&quot;&gt;&lt;code&gt;GSL::Poly::dd_init(&lt;var&gt;xa&lt;/var&gt;, &lt;var&gt;ya&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::dd_init&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-35&quot; id=&quot;label-35&quot;&gt;&lt;code&gt;GSL::Poly::dd_init(&lt;var&gt;xa&lt;/var&gt;, &lt;var&gt;ya&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::dd_init&quot; --&gt;
 &lt;dd&gt;
 This method computes a divided-difference representation of the 
 interpolating polynomial for the points &lt;var&gt;(xa, ya)&lt;/var&gt;.&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-32&quot; id=&quot;label-32&quot;&gt;&lt;code&gt;GSL::Poly::DividedDifference#eval(&lt;var&gt;x&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::DividedDifference#eval&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-36&quot; id=&quot;label-36&quot;&gt;&lt;code&gt;GSL::Poly::DividedDifference#eval(&lt;var&gt;x&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::DividedDifference#eval&quot; --&gt;
 &lt;dd&gt;
 This method evaluates the polynomial stored in divided-difference form 
 &lt;var&gt;self&lt;/var&gt; at the point &lt;var&gt;x&lt;/var&gt;.&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-33&quot; id=&quot;label-33&quot;&gt;&lt;code&gt;GSL::Poly::DividedDifference#taylor(&lt;var&gt;xp&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::DividedDifference#taylor&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-37&quot; id=&quot;label-37&quot;&gt;&lt;code&gt;GSL::Poly::DividedDifference#taylor(&lt;var&gt;xp&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly::DividedDifference#taylor&quot; --&gt;
 &lt;dd&gt;
 This method converts the divided-difference representation of a polynomial 
 to a Taylor expansion. On output the Taylor coefficients of the polynomial 
 expanded about the point &lt;var&gt;xp&lt;/var&gt; are returned.&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h2&gt;&lt;a name=&quot;6&quot; href=&quot;#6&quot;&gt;6&lt;/a&gt; &lt;a name=&quot;label-34&quot;&gt;Extensions&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Extensions&quot; --&gt;
+&lt;h2&gt;&lt;a name=&quot;6&quot; href=&quot;#6&quot;&gt;6&lt;/a&gt; &lt;a name=&quot;label-38&quot;&gt;Extensions&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Extensions&quot; --&gt;
 
-&lt;h3&gt;&lt;a name=&quot;6.1&quot; href=&quot;#6.1&quot;&gt;6.1&lt;/a&gt; &lt;a name=&quot;label-35&quot;&gt;Special Polynomials&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Special Polynomials&quot; --&gt;
+&lt;h3&gt;&lt;a name=&quot;6.1&quot; href=&quot;#6.1&quot;&gt;6.1&lt;/a&gt; &lt;a name=&quot;label-39&quot;&gt;Special Polynomials&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Special Polynomials&quot; --&gt;
 
 &lt;dl&gt;
-&lt;dt&gt;&lt;a name=&quot;label-36&quot; id=&quot;label-36&quot;&gt;&lt;code&gt;GSL::Poly.hermite(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.hermite&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-40&quot; id=&quot;label-40&quot;&gt;&lt;code&gt;GSL::Poly.hermite(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.hermite&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;This returns coefficients of the &lt;var&gt;n&lt;/var&gt;-th order Hermite polynomial, &lt;var&gt;H(x; n)&lt;/var&gt;.
 For order of &lt;var&gt;n&lt;/var&gt; &amp;gt;= 3, this method uses the recurrence relation&lt;/p&gt;
@@ -245,25 +276,25 @@ irb(main):015:0&amp;gt; GSL::Poly.hermite(7)
 =&amp;gt; GSL::Poly::Int: 
 [ 0 -1680 0 3360 0 -1344 0 128 ]&lt;/pre&gt;&lt;/li&gt;
 &lt;/ul&gt;&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-37&quot; id=&quot;label-37&quot;&gt;&lt;code&gt;GSL::Poly.cheb(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.cheb&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-38&quot; id=&quot;label-38&quot;&gt;&lt;code&gt;GSL::Poly.chebyshev(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.chebyshev&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-41&quot; id=&quot;label-41&quot;&gt;&lt;code&gt;GSL::Poly.cheb(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.cheb&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-42&quot; id=&quot;label-42&quot;&gt;&lt;code&gt;GSL::Poly.chebyshev(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.chebyshev&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;Return the coefficients of the &lt;var&gt;n&lt;/var&gt;-th order Chebyshev polynomial, &lt;var&gt;T(x; n&lt;/var&gt;.
 For order of &lt;var&gt;n&lt;/var&gt; &amp;gt;= 3, this method uses the recurrence relation&lt;/p&gt;
 &lt;pre&gt;T(x; n+1) = 2 x T(x; n) - T(x; n-1)&lt;/pre&gt;&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-39&quot; id=&quot;label-39&quot;&gt;&lt;code&gt;GSL::Poly.cheb_II(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.cheb_II&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-40&quot; id=&quot;label-40&quot;&gt;&lt;code&gt;GSL::Poly.chebyshev_II(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.chebyshev_II&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-43&quot; id=&quot;label-43&quot;&gt;&lt;code&gt;GSL::Poly.cheb_II(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.cheb_II&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-44&quot; id=&quot;label-44&quot;&gt;&lt;code&gt;GSL::Poly.chebyshev_II(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.chebyshev_II&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;Return the coefficients of the &lt;var&gt;n&lt;/var&gt;-th order Chebyshev polynomial of type II,
 &lt;var&gt;U(x; n&lt;/var&gt;.&lt;/p&gt;
 &lt;pre&gt;U(x; n+1) = 2 x U(x; n) - U(x; n-1)&lt;/pre&gt;&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-41&quot; id=&quot;label-41&quot;&gt;&lt;code&gt;GSL::Poly.bell(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.bell&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-45&quot; id=&quot;label-45&quot;&gt;&lt;code&gt;GSL::Poly.bell(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.bell&quot; --&gt;
 &lt;dd&gt;
 Bell polynomial&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-42&quot; id=&quot;label-42&quot;&gt;&lt;code&gt;GSL::Poly.bessel(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.bessel&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-46&quot; id=&quot;label-46&quot;&gt;&lt;code&gt;GSL::Poly.bessel(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.bessel&quot; --&gt;
 &lt;dd&gt;
 Bessel polynomial&lt;/dd&gt;
-&lt;dt&gt;&lt;a name=&quot;label-43&quot; id=&quot;label-43&quot;&gt;&lt;code&gt;GSL::Poly.laguerre(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.laguerre&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-47&quot; id=&quot;label-47&quot;&gt;&lt;code&gt;GSL::Poly.laguerre(&lt;var&gt;n&lt;/var&gt;)&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly.laguerre&quot; --&gt;
 &lt;dd&gt;
 &lt;p&gt;Retunrs the coefficients of the &lt;var&gt;n&lt;/var&gt;-th order Laguerre polynomial
 multiplied by n!.&lt;/p&gt;
@@ -286,15 +317,15 @@ irb(main):006:0&amp;gt; GSL::Poly.laguerre(4)
 =&amp;gt; GSL::Poly::Int:  
 [ 24 -96 72 -16 1 ]                &amp;lt;--- (x^4 - 16x^3 + 72x^2 - 96x + 24)/4!&lt;/pre&gt;&lt;/dd&gt;
 &lt;/dl&gt;
-&lt;h3&gt;&lt;a name=&quot;6.2&quot; href=&quot;#6.2&quot;&gt;6.2&lt;/a&gt; &lt;a name=&quot;label-44&quot;&gt;Polynomial Operations&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Polynomial Operations&quot; --&gt;
+&lt;h3&gt;&lt;a name=&quot;6.2&quot; href=&quot;#6.2&quot;&gt;6.2&lt;/a&gt; &lt;a name=&quot;label-48&quot;&gt;Polynomial Operations&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Polynomial Operations&quot; --&gt;
 
 &lt;dl&gt;
-&lt;dt&gt;&lt;a name=&quot;label-45&quot; id=&quot;label-45&quot;&gt;&lt;code&gt;GSL::Poly#conv&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#conv&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-46&quot; id=&quot;label-46&quot;&gt;&lt;code&gt;GSL::Poly#deconv&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#deconv&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-47&quot; id=&quot;label-47&quot;&gt;&lt;code&gt;GSL::Poly#reduce&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#reduce&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-48&quot; id=&quot;label-48&quot;&gt;&lt;code&gt;GSL::Poly#deriv&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#deriv&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-49&quot; id=&quot;label-49&quot;&gt;&lt;code&gt;GSL::Poly#integ&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#integ&quot; --&gt;
-&lt;dt&gt;&lt;a name=&quot;label-50&quot; id=&quot;label-50&quot;&gt;&lt;code&gt;GSL::Poly#compan&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#compan&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-49&quot; id=&quot;label-49&quot;&gt;&lt;code&gt;GSL::Poly#conv&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#conv&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-50&quot; id=&quot;label-50&quot;&gt;&lt;code&gt;GSL::Poly#deconv&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#deconv&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-51&quot; id=&quot;label-51&quot;&gt;&lt;code&gt;GSL::Poly#reduce&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#reduce&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-52&quot; id=&quot;label-52&quot;&gt;&lt;code&gt;GSL::Poly#deriv&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#deriv&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-53&quot; id=&quot;label-53&quot;&gt;&lt;code&gt;GSL::Poly#integ&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#integ&quot; --&gt;
+&lt;dt&gt;&lt;a name=&quot;label-54&quot; id=&quot;label-54&quot;&gt;&lt;code&gt;GSL::Poly#compan&lt;/code&gt;&lt;/a&gt;&lt;/dt&gt;&lt;!-- RDLabel: &quot;GSL::Poly#compan&quot; --&gt;
 &lt;/dl&gt;
 &lt;p&gt;&lt;a href=&quot;complex.html&quot;&gt;prev&lt;/a&gt;
 &lt;a href=&quot;sf.html&quot;&gt;next&lt;/a&gt;&lt;/p&gt;</diff>
      <filename>html/poly.html</filename>
    </modified>
    <modified>
      <diff>@@ -14,7 +14,7 @@
 &lt;h2&gt;&lt;a name=&quot;1&quot; href=&quot;#1&quot;&gt;1&lt;/a&gt; &lt;a name=&quot;label-1&quot;&gt;Front Matter&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Front Matter&quot; --&gt;
 
 &lt;p&gt;This document describes the modules, classes and the methods of Ruby/GSL. 
-This includes cut&amp;amp;paste from the &lt;a href=&quot;http://www.gnu.org/software/gsl/manual/html_node/&quot;&gt;GSL Reference&lt;/a&gt;, and documents of the extention libraries (section 41).&lt;/p&gt;
+This includes cut&amp;amp;paste from the &lt;a href=&quot;http://www.gnu.org/software/gsl/manual/html_node/&quot;&gt;GSL Reference&lt;/a&gt;, and documents of the extention libraries.&lt;/p&gt;
 &lt;h3&gt;&lt;a name=&quot;1.1&quot; href=&quot;#1.1&quot;&gt;1.1&lt;/a&gt; &lt;a name=&quot;label-2&quot;&gt;Copyright of the GSL Reference&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Copyright of the GSL Reference&quot; --&gt;
 
 &lt;pre&gt;Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 The GSL Team.
@@ -25,6 +25,11 @@ and &quot;Free Software Needs Free Documentation&quot;, the Front-Cover text being &quot;A GNU
 and with the Back-Cover Text being (a) (see below). A copy of the license is included in 
 the section entitled &quot;GNU Free Documentation License&quot;.
 (a) The Back-Cover Text is: &quot;You have the freedom to copy and modify this GNU Manual.&quot;&lt;/pre&gt;
+&lt;h3&gt;&lt;a name=&quot;1.2&quot; href=&quot;#1.2&quot;&gt;1.2&lt;/a&gt; &lt;a name=&quot;label-3&quot;&gt;Copyright of this reference&lt;/a&gt;&lt;/h3&gt;&lt;!-- RDLabel: &quot;Copyright of this reference&quot; --&gt;
+
+&lt;pre&gt;2009 Yoshiki Tsunesada
+Permission is granted to copy, distribute and/or modify this document under the terms of 
+the GNU Free Documentation License.&lt;/pre&gt;
 &lt;h2&gt;&lt;a name=&quot;2&quot; href=&quot;#2&quot;&gt;2&lt;/a&gt; &lt;a name=&quot;label-0&quot;&gt;Ruby/GSL Reference&lt;/a&gt;&lt;/h2&gt;&lt;!-- RDLabel: &quot;Ruby/GSL Reference&quot; --&gt;
 
 &lt;ol&gt;</diff>
      <filename>html/ref.html</filename>
    </modified>
    <modified>
      <diff>@@ -47,15 +47,18 @@ The function to minimize is given as an instance of the ((&lt;GSL::Function|URL:fun
 == GSL::Min::FMinimizer class
 --- GSL::Min::FMinimizer.alloc(t)
     These method create an instance of the (({GSL::Min::FMinimizer})) class of 
-    type ((|t|)). The type ((|t|)) is given by a Ruby constant,
+    type ((|t|)). The type ((|t|)) is given by a String,
+      * &quot;goldensection&quot;
+      * &quot;brent&quot;
+      * &quot;quad_golden&quot;
+    or by a Ruby constant,
       * GSL::Min::FMinimizer::GOLDENSECTION
       * GSL::Min::FMinimizer::BRENT
-    ex1)
-        include GSL
-        s1 = Min::FMinimizer.alloc(Min::FMinimizer::GOLDENSECTION)
-    ex2)
+      * GSL::Min::FMinimizer::QUAD_GOLDEN (GSL-1.13)
+
+    ex)
         include GSL::Min
-        s2 = FMinimizer.alloc(FMinimizer::BRENT)
+        s = FMinimizer.alloc(FMinimizer::BRENT)
 
 --- GSL::Min::FMinimizer#set(f, xmin, xlow, xup)
     This method sets, or resets, an existing minimizer ((|self|)) to use </diff>
      <filename>rd/min.rd</filename>
    </modified>
    <modified>
      <diff>@@ -70,6 +70,9 @@ The function to be integrated has its own datatype, the (({GSL::Monte::Function}
 --- GSL::Monte::Vegas#result
 --- GSL::Monte::Vegas#sigma
 --- GSL::Monte::Vegas#chisq
+    Returns the chi-squared per degree of freedom for the weighted estimate of the integral. The returned value should be close to 1. A value which differs significantly from 1 indicates that the values from different iterations are inconsistent. In this case the weighted error will be under-estimated, and further iterations of the algorithm are needed to obtain reliable results.
+--- GSL::Monte::Vegas#runval
+    Returns the raw (unaveraged) values of the integral and its error ((|[result, sigma]|)) from the most recent iteration of the algorithm.
 --- GSL::Monte::Vegas#iterations
 --- GSL::Monte::Vegas#iterations=
 --- GSL::Monte::Vegas#alpha
@@ -81,6 +84,51 @@ The function to be integrated has its own datatype, the (({GSL::Monte::Function}
 --- GSL::Monte::Vegas#verbose
 --- GSL::Monte::Vegas#verbose=
 
+== Miser Parameters (GSL-1.13 or later)
+--- GSL::Monte::Miser#params_get
+    Returns the parameters of the integrator state as an instance of (({GSL::Monte::Miser::Params})) class.
+--- GSL::Monte::Miser#params_set(params)
+    Sets the integrator parameters based on values provided in an object of the (({GSL::Monte::Miser::Params})) class ((|params|)).
+=== Accessors of (({GSL::Monte::Miser::Params}))
+--- GSL::Monte::Miser::Params#estimate_frac
+--- GSL::Monte::Miser::Params#estimate_frac=
+    The fraction of the currently available number of function calls which are allocated to estimating the variance at each recursive step. The default value is 0.1.
+--- GSL::Monte::Miser::Params#min_calls
+--- GSL::Monte::Miser::Params#min_calls=
+    The minimum number of function calls required for each estimate of the variance. If the number of function calls allocated to the estimate using ((|estimate_frac|)) falls below ((|min_calls|)) then ((|min_calls|)) are used instead. This ensures that each estimate maintains a reasonable level of accuracy. The default value of min_calls is 16 * dim.
+--- GSL::Monte::Miser::Params#min_calls_per_bisection
+--- GSL::Monte::Miser::Params#min_calls_per_bisection=
+    The minimum number of function calls required to proceed with a bisection step. When a recursive step has fewer calls available than ((|min_calls_per_bisection|)) it performs a plain Monte Carlo estimate of the current sub-region and terminates its branch of the recursion. The default value of this parameter is 32 * min_calls.
+--- GSL::Monte::Miser::Params#alpha
+--- GSL::Monte::Miser::Params#alpha=
+    This parameter controls how the estimated variances for the two sub-regions of a bisection are combined when allocating points. With recursive sampling the overall variance should scale better than 1/N, since the values from the sub-regions will be obtained using a procedure which explicitly minimizes their variance. To accommodate this behavior the MISER algorithm allows the total variance to depend on a scaling parameter ((|alpha|)), The authors of the original paper describing MISER recommend the value ((|alpha|)) = 2 as a good choice, obtained from numerical experiments, and this is used as the default value in this implementation.
+--- GSL::Monte::Miser::Params#dither
+--- GSL::Monte::Miser::Params#dither=
+This parameter introduces a random fractional variation of size dither into each bisection, which can be used to break the symmetry of integrands which are concentrated near the exact center of the hypercubic integration region. The default value of dither is zero, so no variation is introduced. If needed, a typical value of dither is 0.1.
+
+== Vegas Parameters (GSL-1.13 or later)
+--- GSL::Monte::Vegas#params_get
+    Returns the parameters of the integrator state as an instance of (({GSL::Monte::Vegas::Params})) class.
+--- GSL::Monte::Vegas#params_set(params)
+    Sets the integrator parameters based on values provided in an object of the (({GSL::Monte::Vegas::Params})) class ((|params|)).
+
+=== Accessors of (({GSL::Monte::Vegas::Params}))
+--- GSL::Monte::Vegas::Params#alpha
+--- GSL::Monte::Vegas::Params#alpha=
+    Controls the stiffness of the rebinning algorithm. It is typically set between one and two. A value of zero prevents rebinning of the grid. The default value is 1.5.
+--- GSL::Monte::Vegas::Params#iterations
+--- GSL::Monte::Vegas::Params#iterations=
+    The number of iterations to perform for each call to the routine. The default value is 5 iterations.
+--- GSL::Monte::Vegas::Params#stage
+--- GSL::Monte::Vegas::Params#stage=
+    Setting this determines the stage of the calculation. Normally, stage = 0 which begins with a new uniform grid and empty weighted average. Calling vegas with stage = 1 retains the grid from the previous run but discards the weighted average, so that one can &quot;tune&quot; the grid using a relatively small number of points and then do a large run with stage = 1 on the optimized grid. Setting stage = 2 keeps the grid and the weighted average from the previous run, but may increase (or decrease) the number of histogram bins in the grid depending on the number of calls available. Choosing stage = 3 enters at the main loop, so that nothing is changed, and is equivalent to performing additional iterations in a previous call.
+--- GSL::Monte::Vegas::Params#mode
+--- GSL::Monte::Vegas::Params#mode=
+    The possible choices are (({GSL::VEGAS::MODE_IMPORTANCE})), (({GSL::VEGAS::MODE_STRATIFIED})), (({GSL::VEGAS::MODE_IMPORTANCE_ONLY})). This determines whether VEGAS will use importance sampling or stratified sampling, or whether it can pick on its own. In low dimensions VEGAS uses strict stratified sampling (more precisely, stratified sampling is chosen if there are fewer than 2 bins per box).
+--- GSL::Monte::Vegas::Params#verbose
+--- GSL::Monte::Vegas::Params#verbose=
+    Set the level of information printed by VEGAS. All information is written to the stream ostream. The default setting of verbose is -1, which turns off all output. A verbose value of 0 prints summary information about the weighted average and final result, while a value of 1 also displays the grid coordinates. A value of 2 prints information from the rebinning procedure for each iteration.
+
 == Example
 
      #!/usr/bin/env ruby</diff>
      <filename>rd/monte.rd</filename>
    </modified>
    <modified>
      <diff>@@ -71,7 +71,7 @@ the function in question.
 --- GSL::MultiMin::FdfMinimizer.alloc(type, n)
 --- GSL::MultiMin::FMinimizer.alloc(type, n)
     These method create a minimizer of type ((|type|)) for an ((|n|))-dimension function. 
-    The type is given by a name of the algorithm, or by a Ruby constant.
+    The type is given by a string, or by a Ruby constant.
 
     * (({GSL::MultiMin::FdfMinimizer::CONJUGATE_FR})) or (({&quot;conjugate_fr&quot;}))
     * (({GSL::MultiMin::FdfMinimizer::CONJUGATE_PR})) or (({&quot;conjugate_pr&quot;}))
@@ -79,6 +79,7 @@ the function in question.
     * (({GSL::MultiMin::FdfMinimizer::VECTOR_BFGS2})) or (({&quot;vector_bfgs2&quot;})) (GSL-1.9 or later)
     * (({GSL::MultiMin::FdfMinimizer::STEEPEST_DESCENT})) or (({&quot;steepest_descent&quot;}))
     * (({GSL::MultiMin::FMinimizer::NMSIMPLEX})) or (({&quot;nmsimplex&quot;}))
+    * (({GSL::MultiMin::FMinimizer::NMSIMPLEX2RAND})) or (({&quot;nmsimplex2rand&quot;})) (GSL-1.13)
 
     * ex:
         include GSL::MultiMin</diff>
      <filename>rd/multimin.rd</filename>
    </modified>
    <modified>
      <diff>@@ -42,6 +42,38 @@ Contents:
        =&gt; NArray.float(3):
        [ 6.0, 17.0, 34.0 ]
 
+--- GSL::Poly.eval_derivs(c, x)
+--- GSL::Poly.eval_derivs(c, x, lenres)
+    (GSL-1.13) Evaluate and return a polynomial and its derivatives. The output contains the values of d^k P/d x^k for the specified value of x starting with k = 0. The input polynomial ((|c|)) can be an (({Array})), (({GSL::Poly})) or an (({NArray})). If ((|lenres|)) is not given, ((|lenres = LENGTH(c) + 1|)) is used, therefore the last element of the output is 0.
+
+--- GSL::Poly#eval_derivs(x)
+--- GSL::Poly#eval_derivs(x, lenres)
+    (GSL-1.13) Evaluate and return a polynomial and its derivatives. The output contains the values of d^k P/d x^k for the specified value of x starting with k = 0. If ((|lenres|)) is not given, ((|lenres = LENGTH(self) + 1|)) is used, therefore the last element of the output is 0.
+   
+    Ex.)
+     &gt;&gt; ary = [1, 2, 3]
+     =&gt; [1, 2, 3]
+     &gt;&gt; GSL::Poly.eval_derivs(ary, 1)
+     =&gt; [6.0, 8.0, 6.0, 0.0]
+     &gt;&gt; na = NArray[1.0, 2, 3]
+     =&gt; NArray.float(3): 
+     [ 1.0, 2.0, 3.0 ]
+     &gt;&gt; GSL::Poly.eval_derivs(na, 1)
+     =&gt; NArray.float(4): 
+     [ 6.0, 8.0, 6.0, 0.0 ]
+     &gt;&gt; poly = GSL::Poly[1.0, 2, 3]
+     =&gt; GSL::Poly
+     [ 1.000e+00 2.000e+00 3.000e+00 ]
+     &gt;&gt; GSL::Poly.eval_derivs(poly, 1)
+     =&gt; GSL::Poly
+     [ 6.000e+00 8.000e+00 6.000e+00 0.000e+00 ]
+     &gt;&gt; poly.eval_derivs(1)
+     =&gt; GSL::Poly
+     [ 6.000e+00 8.000e+00 6.000e+00 0.000e+00 ]
+     &gt;&gt; poly.eval_derivs(1, 3)
+     =&gt; GSL::Poly
+     [ 6.000e+00 8.000e+00 6.000e+00 ]
+
 == Solving polynomial equations
 === Quadratic Equations
 --- GSL::Poly::solve_quadratic(a, b, c)</diff>
      <filename>rd/poly.rd</filename>
    </modified>
    <modified>
      <diff>@@ -85,7 +85,7 @@ Func3 = GSL::Function.alloc { |x|
 }
 Func4 = GSL::Function.alloc { |x| x - 30.0/(1.0 + 1e5*pow(x - 0.8, 2.0)) }
 
-types = [&quot;goldensection&quot;, &quot;brent&quot;]
+types = [&quot;goldensection&quot;, &quot;brent&quot;, &quot;quad_golden&quot;]
 types.each do |t|
   test_f(t, &quot;cos(x) [0 (3) 6]&quot;, F_cos, 0.0, 3.0, 6.0, M_PI)
   test_f(t, &quot;x^4 - 1 [-3 (-1) 17]&quot;, Func1, -3.0, -1.0, 17.0, 0.0);</diff>
      <filename>tests/min.rb</filename>
    </modified>
    <modified>
      <diff>@@ -36,6 +36,17 @@ def test_f(desc, f, initpt)
 
   status |= s.fval.abs &gt; 1e-5 ? 1 : 0
   GSL::Test::test(status, &quot;#{s.name}, on #{desc}: #{iter} iterations, f(x)=#{s.fval}&quot;)
+
+  s = GSL::MultiMin::FMinimizer.alloc(&quot;nmsimplex2rand&quot;, f.n)
+  s.set(f, x, step_size)
+  iter = 0
+  begin
+    status = s.iterate
+    status = GSL::MultiMin.test_size(s.size, 1e-3)
+  end while iter &lt; 5000 and status == GSL::CONTINUE
+
+  status |= s.fval.abs &gt; 1e-5 ? 1 : 0
+  GSL::Test::test(status, &quot;#{s.name}, on #{desc}: #{iter} iterations, f(x)=#{s.fval}&quot;)
 end
 
 def roth_initpt</diff>
      <filename>tests/multimin.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f056bdce4e7e1add9586b7aa22c13bb398a4968a</id>
    </parent>
  </parents>
  <author>
    <name>ytsunesada</name>
    <email>ytsunesada@6e764f74-f39f-46f8-8c54-8307d62afe8d</email>
  </author>
  <url>http://github.com/romanbsd/rb-gsl/commit/fcf16906687c03a8e31b376d583b6a65879d941d</url>
  <id>fcf16906687c03a8e31b376d583b6a65879d941d</id>
  <committed-date>2009-08-08T21:21:11-07:00</committed-date>
  <authored-date>2009-08-08T21:21:11-07:00</authored-date>
  <message>Added gsl-1.12.90 features



git-svn-id: http://rb-gsl.rubyforge.org/svn/trunk/rb-gsl@96 6e764f74-f39f-46f8-8c54-8307d62afe8d</message>
  <tree>3873080fa84071b3848a664a8e8d4d6549ca3767</tree>
  <committer>
    <name>ytsunesada</name>
    <email>ytsunesada@6e764f74-f39f-46f8-8c54-8307d62afe8d</email>
  </committer>
</commit>
