/// <param name="factory"> Integration rule factory. </param>
 /// <param name="numberOfPoints"> Order of the integration rule. </param>
 /// <returns> the integration nodes and weights. </returns>
 /// <exception cref="NotStrictlyPositiveException"> if number of points is not positive </exception>
 /// <exception cref="DimensionMismatchException"> if the elements of the rule pair do not
 /// have the same length. </exception>
 private static Pair <double[], double[]> GetRule <T1>(BaseRuleFactory <T1> factory, int numberOfPoints) where T1 : Number
 {
     return(factory.GetRule(numberOfPoints));
 }
 /// <param name="factory"> Integration rule factory. </param>
 /// <param name="numberOfPoints"> Order of the integration rule. </param>
 /// <returns> the integration nodes and weights. </returns>
 /// <exception cref="NotStrictlyPositiveException"> if number of points is not positive </exception>
 /// <exception cref="DimensionMismatchException"> if the elements of the rule pair do not
 /// have the same length. </exception>
 private static Tuple <double[], double[]> GetRule <T1>(BaseRuleFactory <T1> factory, int numberOfPoints) where T1 : IConvertible
 {
     return(factory.GetRule(numberOfPoints));
 }