Changeset 12969 for branches/gteufl/HeuristicLab.Random/3.3
- Timestamp:
- 09/25/15 14:39:59 (9 years ago)
- Location:
- branches/gteufl
- Files:
-
- 11 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/gteufl
- Property svn:ignore
-
old new 8 8 FxCopResults.txt 9 9 Google.ProtocolBuffers-0.9.1.dll 10 Google.ProtocolBuffers-2.4.1.473.dll 10 11 HeuristicLab 3.3.5.1.ReSharper.user 11 12 HeuristicLab 3.3.6.0.ReSharper.user 12 13 HeuristicLab.4.5.resharper.user 13 14 HeuristicLab.ExtLibs.6.0.ReSharper.user 15 HeuristicLab.Scripting.Development 14 16 HeuristicLab.resharper.user 15 17 ProtoGen.exe … … 17 19 _ReSharper.HeuristicLab 18 20 _ReSharper.HeuristicLab 3.3 21 _ReSharper.HeuristicLab 3.3 Tests 19 22 _ReSharper.HeuristicLab.ExtLibs 20 23 bin 21 24 protoc.exe 22 _ReSharper.HeuristicLab 3.3 Tests 23 Google.ProtocolBuffers-2.4.1.473.dll 25 obj
-
- Property svn:mergeinfo changed
-
Property
svn:global-ignores
set to
*.nuget
packages
- Property svn:ignore
-
branches/gteufl/HeuristicLab.Random/3.3/HeuristicLab.Random-3.3.csproj
r9217 r12969 18 18 <UpgradeBackupLocation> 19 19 </UpgradeBackupLocation> 20 <TargetFrameworkVersion>v4. 0</TargetFrameworkVersion>20 <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> 21 21 <TargetFrameworkProfile> 22 22 </TargetFrameworkProfile> … … 48 48 </DocumentationFile> 49 49 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 50 <Prefer32Bit>false</Prefer32Bit> 50 51 </PropertyGroup> 51 52 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> … … 60 61 <TreatWarningsAsErrors>false</TreatWarningsAsErrors> 61 62 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 63 <Prefer32Bit>false</Prefer32Bit> 62 64 </PropertyGroup> 63 65 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> … … 69 71 <ErrorReport>prompt</ErrorReport> 70 72 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 73 <Prefer32Bit>false</Prefer32Bit> 71 74 </PropertyGroup> 72 75 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> … … 80 83 <ErrorReport>prompt</ErrorReport> 81 84 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 85 <Prefer32Bit>false</Prefer32Bit> 82 86 </PropertyGroup> 83 87 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' "> … … 89 93 <ErrorReport>prompt</ErrorReport> 90 94 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 95 <Prefer32Bit>false</Prefer32Bit> 91 96 </PropertyGroup> 92 97 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> … … 100 105 <ErrorReport>prompt</ErrorReport> 101 106 <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> 107 <Prefer32Bit>false</Prefer32Bit> 102 108 </PropertyGroup> 103 109 <ItemGroup> … … 112 118 <ItemGroup> 113 119 <None Include="Plugin.cs.frame" /> 120 <Compile Include="ListExtensions.cs" /> 114 121 <Compile Include="UniformDistributedRandom.cs" /> 115 122 <Compile Include="FastRandom.cs" /> -
branches/gteufl/HeuristicLab.Random/3.3/MersenneTwister.cs
r9456 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. -
branches/gteufl/HeuristicLab.Random/3.3/NormalDistributedRandom.cs
r9456 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. -
branches/gteufl/HeuristicLab.Random/3.3/NormalRandomizer.cs
r9456 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. -
branches/gteufl/HeuristicLab.Random/3.3/Plugin.cs.frame
r10037 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 26 26 /// Plugin class for HeuristicLab.Random plugin. 27 27 /// </summary> 28 [Plugin("HeuristicLab.Random", "3.3. 9.$WCREV$")]28 [Plugin("HeuristicLab.Random", "3.3.12.$WCREV$")] 29 29 [PluginFile("HeuristicLab.Random-3.3.dll", PluginFileType.Assembly)] 30 30 [PluginDependency("HeuristicLab.Collections", "3.3")] -
branches/gteufl/HeuristicLab.Random/3.3/Properties/AssemblyInfo.cs.frame
r10037 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 32 32 [assembly: AssemblyCompany("")] 33 33 [assembly: AssemblyProduct("HeuristicLab")] 34 [assembly: AssemblyCopyright("(c) 2002-201 3HEAL")]34 [assembly: AssemblyCopyright("(c) 2002-2015 HEAL")] 35 35 [assembly: AssemblyTrademark("")] 36 36 [assembly: AssemblyCulture("")] … … 54 54 // by using the '*' as shown below: 55 55 [assembly: AssemblyVersion("3.3.0.0")] 56 [assembly: AssemblyFileVersion("3.3. 9.$WCREV$")]56 [assembly: AssemblyFileVersion("3.3.12.$WCREV$")] -
branches/gteufl/HeuristicLab.Random/3.3/RandomCreator.cs
r9456 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. -
branches/gteufl/HeuristicLab.Random/3.3/RandomEnumerable.cs
r9456 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. … … 36 36 37 37 //algorithm taken from progamming pearls page 127 38 //IMPORTANT because IEnumerables with yield are used the seed must be st bespecified to return always38 //IMPORTANT because IEnumerables with yield are used the seed must be specified to return always 39 39 //the same sequence of numbers without caching the values. 40 40 public static IEnumerable<int> SampleRandomNumbers(int seed, int start, int end, int count) { … … 166 166 /// 167 167 /// The method internally holds two arrays: One that is the sequence itself and another one for the values. 168 /// 169 /// The method does not check if the number of elements in source and weights are the same. 168 170 /// </remarks> 169 171 /// <typeparam name="T">The type of the items to be selected.</typeparam> … … 173 175 /// <param name="weights">The weight values for the items.</param> 174 176 /// <param name="windowing">Whether to scale the proportional values or not.</param> 175 /// <param name=" maximization">Determines whether to choose proportionally (true) or inverse-proportionally (false).</param>176 /// <returns>A sequence of selected items. </returns>177 /// <param name="inverseProportional">Determines whether to choose proportionally (true) or inverse-proportionally (false).</param> 178 /// <returns>A sequence of selected items. Might actually be shorter than <paramref name="count"/> elements if source has less than <paramref name="count"/> elements.</returns> 177 179 public static IEnumerable<T> SampleProportionalWithoutRepetition<T>(this IEnumerable<T> source, IRandom random, int count, IEnumerable<double> weights, bool windowing = true, bool inverseProportional = false) { 178 180 return source.SampleProportionalWithoutRepetition(random, weights, windowing, inverseProportional).Take(count); … … 181 183 private static IEnumerable<T> SampleProportional<T>(this IEnumerable<T> source, IRandom random, IEnumerable<double> weights, bool windowing, bool inverseProportional) { 182 184 var sourceArray = source.ToArray(); 183 var valueArray = PrepareProportional <T>(sourceArray,weights, windowing, inverseProportional);185 var valueArray = PrepareProportional(weights, windowing, inverseProportional); 184 186 double total = valueArray.Sum(); 185 187 … … 193 195 } 194 196 private static IEnumerable<T> SampleProportionalWithoutRepetition<T>(this IEnumerable<T> source, IRandom random, IEnumerable<double> weights, bool windowing, bool inverseProportional) { 195 var sourceArray = source.ToArray();196 var valueArray = PrepareProportional<T>(sourceArray, weights, windowing, inverseProportional);197 var valueArray = PrepareProportional(weights, windowing, inverseProportional); 198 var list = new LinkedList<Tuple<T, double>>(source.Zip(valueArray, Tuple.Create)); 197 199 double total = valueArray.Sum(); 198 200 199 HashSet<int> chosenIndices = new HashSet<int>(); 200 while (chosenIndices.Count < sourceArray.Length) { 201 int index = 0; 202 double ball = valueArray[index], sum = random.NextDouble() * total; 201 while (list.Count > 0) { 202 var cur = list.First; 203 double ball = cur.Value.Item2, sum = random.NextDouble() * total; // assert: sum < total. When there is only one item remaining: sum < ball 203 204 while (ball < sum) { 204 index++;205 if (!chosenIndices.Contains(index))206 ball += valueArray[++index];207 }208 yield return sourceArray[index];209 chosenIndices.Add(index);210 total -= valueArray[index];211 212 } 213 private static double[] PrepareProportional <T>(IList<T> sourceArray,IEnumerable<double> weights, bool windowing, bool inverseProportional) {205 cur = cur.Next; 206 ball += cur.Value.Item2; 207 } 208 yield return cur.Value.Item1; 209 list.Remove(cur); 210 total -= cur.Value.Item2; 211 } 212 } 213 214 private static double[] PrepareProportional(IEnumerable<double> weights, bool windowing, bool inverseProportional) { 214 215 double maxValue = double.MinValue, minValue = double.MaxValue; 215 double[] valueArray = new double[sourceArray.Count]; 216 217 var weightsEnum = weights.GetEnumerator(); 218 for (int i = 0; i < sourceArray.Count && weightsEnum.MoveNext(); i++) { 219 valueArray[i] = weightsEnum.Current; 216 double[] valueArray = weights.ToArray(); 217 218 for (int i = 0; i < valueArray.Length; i++) { 220 219 if (valueArray[i] > maxValue) maxValue = valueArray[i]; 221 220 if (valueArray[i] < minValue) minValue = valueArray[i]; 222 221 } 223 222 if (minValue == maxValue) { // all values are equal 224 for (int i = 0; i < sourceArray.Count; i++) {223 for (int i = 0; i < valueArray.Length; i++) { 225 224 valueArray[i] = 1.0; 226 225 } … … 274 273 } 275 274 } 275 -
branches/gteufl/HeuristicLab.Random/3.3/UniformDistributedRandom.cs
r9456 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab. -
branches/gteufl/HeuristicLab.Random/3.3/UniformRandomizer.cs
r9456 r12969 1 1 #region License Information 2 2 /* HeuristicLab 3 * Copyright (C) 2002-201 3Heuristic and Evolutionary Algorithms Laboratory (HEAL)3 * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 4 * 5 5 * This file is part of HeuristicLab.
Note: See TracChangeset
for help on using the changeset viewer.