Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/11/15 19:44:35 (9 years ago)
Author:
abeham
Message:

#2301: merged 12292,12293 to stable

Location:
stable
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Problems.Instances.DataAnalysis

  • stable/HeuristicLab.Problems.Instances.DataAnalysis/3.3/Regression/ValueGenerator.cs

    r12009 r12740  
    2020#endregion
    2121
    22 using System;
    2322using System.Collections.Generic;
    2423using System.Linq;
    25 using HeuristicLab.Common;
    2624using HeuristicLab.Random;
    2725
    2826namespace HeuristicLab.Problems.Instances.DataAnalysis {
    29   public static class ValueGenerator {
     27  internal static class ValueGenerator {
    3028    private static FastRandom rand = new FastRandom();
    31 
    32     /// <summary>
    33     /// Generates a sequence of evenly spaced points by returning the start value and adding the stepwidth until the end is reached or surpassed.
    34     ///
    35     /// </summary>
    36     /// <param name="start">The smallest and first value of the sequence.</param>
    37     /// <param name="end">The largest and last value of the sequence.</param>
    38     /// <param name="stepWidth">The step size between subsequent values.</param>
    39     /// <param name="includeEnd">Determines if the end should be included in the sequence regardless if the end is divisible by the stepwidth.</param>
    40     /// <returns>A sequence of values from start to end (inclusive)</returns>
    41     [Obsolete("It is recommended to use the decimal overload to achieve a higher numerical accuracy.")]
    42     public static IEnumerable<double> GenerateSteps(double start, double end, double stepWidth, bool includeEnd = false) {
    43       //mkommend: IEnumerable.Cast fails due to boxing and unboxing of the involved types
    44       // http://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs#27bb217a6d5457ec
    45       // http://blogs.msdn.com/b/ericlippert/archive/2009/03/19/representation-and-identity.aspx     
    46 
    47       return GenerateSteps((decimal)start, (decimal)end, (decimal)stepWidth, includeEnd).Select(x => (double)x);
    48     }
    49 
    50     /// <summary>
    51     /// Generates a sequence of evenly spaced points by returning the start value and adding the stepwidth until the end is reached or surpassed.
    52     /// </summary>
    53     /// <param name="start">The smallest and first value of the sequence.</param>
    54     /// <param name="end">The largest and last value of the sequence.</param>
    55     /// <param name="stepWidth">The step size between subsequent values.</param>
    56     /// /// <param name="includeEnd">Determines if the end should be included in the sequence regardless if the end is divisible by the stepwidth.</param>
    57     /// <returns>A sequence of values from start to end</returns>
    58     public static IEnumerable<decimal> GenerateSteps(decimal start, decimal end, decimal stepWidth, bool includeEnd = false) {
    59       if (stepWidth == 0)
    60         throw new ArgumentException("The step width cannot be zero.");
    61       if (start < end && stepWidth < 0)
    62         throw new ArgumentException("The step width must be larger than zero for increasing sequences (start < end).");
    63       if (start > end && stepWidth > 0)
    64         throw new ArgumentException("The step width must be smaller than zero for decreasing sequences (start > end).");
    65 
    66       decimal x = start;
    67       while (x <= end) {
    68         yield return x;
    69         x += stepWidth;
    70       }
    71       if (x - stepWidth < end && includeEnd) yield return end;
    72     }
    7329
    7430    /// <summary>
     
    10056    }
    10157
    102     // iterative approach
     58    // Generate the cartesian product.
     59    // The result is transposed, therefore the inner lists represent a column of values instead of a combination-pair.
    10360    public static IEnumerable<IEnumerable<double>> GenerateAllCombinationsOfValuesInLists(List<List<double>> lists) {
    10461      List<List<double>> allCombinations = new List<List<double>>();
Note: See TracChangeset for help on using the changeset viewer.