Changeset 16234
- Timestamp:
- 10/18/18 13:55:09 (5 years ago)
- Location:
- branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3
- Files:
-
- 3 added
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/HeuristicLab.MathematicalOptimization-3.3.csproj
r16233 r16234 111 111 </PropertyGroup> 112 112 <ItemGroup> 113 <Reference Include="Google.OrTools, Version= 0.0.0.0, Culture=neutral, PublicKeyToken=e028b7d783ee8af0, processorArchitecture=AMD64">113 <Reference Include="Google.OrTools, Version=6.9.5866.0, Culture=neutral, PublicKeyToken=5d849a56a8afc8c7, processorArchitecture=AMD64"> 114 114 <SpecificVersion>False</SpecificVersion> 115 115 <HintPath>..\..\bin\Google.OrTools.dll</HintPath> … … 118 118 <SpecificVersion>False</SpecificVersion> 119 119 <HintPath>..\..\bin\HeuristicLab.OrTools-6.9.0-pre.dll</HintPath> 120 </Reference>121 <Reference Include="HeuristicLab.PluginInfrastructure-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=x86">122 <SpecificVersion>False</SpecificVersion>123 <HintPath>..\..\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath>124 120 </Reference> 125 121 <Reference Include="System" /> … … 180 176 </Compile> 181 177 <Compile Include="Properties\AssemblyInfo.cs" /> 178 <Compile Include="Properties\Settings.Designer.cs"> 179 <DependentUpon>Settings.settings</DependentUpon> 180 <AutoGen>True</AutoGen> 181 <DesignTimeSharedInput>True</DesignTimeSharedInput> 182 </Compile> 183 <None Include="app.config" /> 182 184 <None Include="Plugin.cs.frame" /> 183 185 <Compile Include="Plugin.cs" /> 184 186 <None Include="Properties\AssemblyInfo.cs.frame" /> 187 <None Include="Properties\Settings.settings"> 188 <Generator>PublicSettingsSingleFileGenerator</Generator> 189 <LastGenOutput>Settings.Designer.cs</LastGenOutput> 190 </None> 185 191 </ItemGroup> 186 192 <ItemGroup> 187 193 <None Include="HeuristicLab.snk" /> 188 </ItemGroup>189 <ItemGroup>190 <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj">191 <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project>192 <Name>HeuristicLab.Analysis-3.3</Name>193 </ProjectReference>194 <ProjectReference Include="..\..\HeuristicLab.Clients.OKB\3.3\HeuristicLab.Clients.OKB-3.3.csproj">195 <Project>{73857A9C-9706-4B72-8D9C-210B5B6A5691}</Project>196 <Name>HeuristicLab.Clients.OKB-3.3</Name>197 </ProjectReference>198 <ProjectReference Include="..\..\HeuristicLab.CodeEditor\3.4\HeuristicLab.CodeEditor-3.4.csproj">199 <Project>{C38691AE-ECB4-489A-A05D-B035554E0168}</Project>200 <Name>HeuristicLab.CodeEditor-3.4</Name>201 </ProjectReference>202 <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">203 <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>204 <Name>HeuristicLab.Collections-3.3</Name>205 </ProjectReference>206 <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">207 <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>208 <Name>HeuristicLab.Common.Resources-3.3</Name>209 </ProjectReference>210 <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">211 <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>212 <Name>HeuristicLab.Common-3.3</Name>213 </ProjectReference>214 <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj">215 <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project>216 <Name>HeuristicLab.Core.Views-3.3</Name>217 </ProjectReference>218 <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">219 <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>220 <Name>HeuristicLab.Core-3.3</Name>221 </ProjectReference>222 <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">223 <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>224 <Name>HeuristicLab.Data-3.3</Name>225 </ProjectReference>226 <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj">227 <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project>228 <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name>229 </ProjectReference>230 <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj">231 <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project>232 <Name>HeuristicLab.MainForm-3.3</Name>233 </ProjectReference>234 <ProjectReference Include="..\..\HeuristicLab.Optimization.Operators\3.3\HeuristicLab.Optimization.Operators-3.3.csproj">235 <Project>{25087811-F74C-4128-BC86-8324271DA13E}</Project>236 <Name>HeuristicLab.Optimization.Operators-3.3</Name>237 </ProjectReference>238 <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">239 <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>240 <Name>HeuristicLab.Optimization-3.3</Name>241 </ProjectReference>242 <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">243 <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>244 <Name>HeuristicLab.Parameters-3.3</Name>245 </ProjectReference>246 <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">247 <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>248 <Name>HeuristicLab.Persistence-3.3</Name>249 </ProjectReference>250 <ProjectReference Include="..\..\HeuristicLab.Problems.Programmable\3.3\HeuristicLab.Problems.Programmable-3.3.csproj">251 <Project>{EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}</Project>252 <Name>HeuristicLab.Problems.Programmable-3.3</Name>253 </ProjectReference>254 <ProjectReference Include="..\..\HeuristicLab.Scripting.Views\3.3\HeuristicLab.Scripting.Views-3.3.csproj">255 <Project>{0C2917C8-7AA8-4E18-800A-C4D064F992ED}</Project>256 <Name>HeuristicLab.Scripting.Views-3.3</Name>257 </ProjectReference>258 <ProjectReference Include="..\..\HeuristicLab.Scripting\3.3\HeuristicLab.Scripting-3.3.csproj">259 <Project>{21977CC3-1757-4B3B-87BD-FF817AAA900F}</Project>260 <Name>HeuristicLab.Scripting-3.3</Name>261 </ProjectReference>262 194 </ItemGroup> 263 195 <ItemGroup> … … 269 201 <DependentUpon>LinearProgrammingProblemView.cs</DependentUpon> 270 202 </EmbeddedResource> 203 </ItemGroup> 204 <ItemGroup> 205 <ProjectReference Include="..\..\HeuristicLab.Analysis\3.3\HeuristicLab.Analysis-3.3.csproj"> 206 <Project>{887425B4-4348-49ED-A457-B7D2C26DDBF9}</Project> 207 <Name>HeuristicLab.Analysis-3.3</Name> 208 </ProjectReference> 209 <ProjectReference Include="..\..\HeuristicLab.CodeEditor\3.4\HeuristicLab.CodeEditor-3.4.csproj"> 210 <Project>{C38691AE-ECB4-489A-A05D-B035554E0168}</Project> 211 <Name>HeuristicLab.CodeEditor-3.4</Name> 212 </ProjectReference> 213 <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj"> 214 <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project> 215 <Name>HeuristicLab.Collections-3.3</Name> 216 </ProjectReference> 217 <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj"> 218 <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project> 219 <Name>HeuristicLab.Common.Resources-3.3</Name> 220 </ProjectReference> 221 <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj"> 222 <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project> 223 <Name>HeuristicLab.Common-3.3</Name> 224 </ProjectReference> 225 <ProjectReference Include="..\..\HeuristicLab.Core.Views\3.3\HeuristicLab.Core.Views-3.3.csproj"> 226 <Project>{E226881D-315F-423D-B419-A766FE0D8685}</Project> 227 <Name>HeuristicLab.Core.Views-3.3</Name> 228 </ProjectReference> 229 <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj"> 230 <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project> 231 <Name>HeuristicLab.Core-3.3</Name> 232 </ProjectReference> 233 <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj"> 234 <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project> 235 <Name>HeuristicLab.Data-3.3</Name> 236 </ProjectReference> 237 <ProjectReference Include="..\..\HeuristicLab.MainForm.WindowsForms\3.3\HeuristicLab.MainForm.WindowsForms-3.3.csproj"> 238 <Project>{AB687BBE-1BFE-476B-906D-44237135431D}</Project> 239 <Name>HeuristicLab.MainForm.WindowsForms-3.3</Name> 240 </ProjectReference> 241 <ProjectReference Include="..\..\HeuristicLab.MainForm\3.3\HeuristicLab.MainForm-3.3.csproj"> 242 <Project>{3BD61258-31DA-4B09-89C0-4F71FEF5F05A}</Project> 243 <Name>HeuristicLab.MainForm-3.3</Name> 244 </ProjectReference> 245 <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj"> 246 <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project> 247 <Name>HeuristicLab.Optimization-3.3</Name> 248 </ProjectReference> 249 <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj"> 250 <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project> 251 <Name>HeuristicLab.Parameters-3.3</Name> 252 </ProjectReference> 253 <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj"> 254 <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project> 255 <Name>HeuristicLab.Persistence-3.3</Name> 256 </ProjectReference> 257 <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj"> 258 <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project> 259 <Name>HeuristicLab.PluginInfrastructure-3.3</Name> 260 </ProjectReference> 261 <ProjectReference Include="..\..\HeuristicLab.Problems.Programmable\3.3\HeuristicLab.Problems.Programmable-3.3.csproj"> 262 <Project>{EE07BFF8-B23D-41F5-8AD7-AC9598D7A2C9}</Project> 263 <Name>HeuristicLab.Problems.Programmable-3.3</Name> 264 </ProjectReference> 265 <ProjectReference Include="..\..\HeuristicLab.Scripting.Views\3.3\HeuristicLab.Scripting.Views-3.3.csproj"> 266 <Project>{0C2917C8-7AA8-4E18-800A-C4D064F992ED}</Project> 267 <Name>HeuristicLab.Scripting.Views-3.3</Name> 268 </ProjectReference> 269 <ProjectReference Include="..\..\HeuristicLab.Scripting\3.3\HeuristicLab.Scripting-3.3.csproj"> 270 <Project>{21977CC3-1757-4B3B-87BD-FF817AAA900F}</Project> 271 <Name>HeuristicLab.Scripting-3.3</Name> 272 </ProjectReference> 271 273 </ItemGroup> 272 274 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/ISolver.cs
r16233 r16234 6 6 public interface ISolver : IParameterizedNamedItem { 7 7 LinearProgrammingType LinearProgrammingType { get; set; } 8 OptimizationProblemType OptimizationProblemType { get; }9 8 bool SupportsPause { get; } 10 9 bool SupportsStop { get; } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IncrementalSolver.cs
r16233 r16234 66 66 public override void Solve(LinearProgrammingAlgorithm algorithm, CancellationToken cancellationToken) { 67 67 if (!Incrementality) { 68 base.Solve(algorithm );68 base.Solve(algorithm, cancellationToken); 69 69 return; 70 70 } … … 79 79 } 80 80 } 81 81 82 82 var iterations = (long)timeLimit.TotalMilliseconds / (long)QualityUpdateInterval.TotalMilliseconds; 83 83 var remaining = timeLimit - TimeSpan.FromMilliseconds(iterations * QualityUpdateInterval.TotalMilliseconds); -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/Solver.cs
r16233 r16234 38 38 } 39 39 40 p ublicvirtual OptimizationProblemType OptimizationProblemType { get; }40 protected virtual OptimizationProblemType OptimizationProblemType { get; } 41 41 public virtual bool SupportsPause => false; 42 42 public virtual bool SupportsStop => false; … … 53 53 54 54 public virtual void Solve(LinearProgrammingAlgorithm algorithm, CancellationToken cancellationToken) => 55 Solve(algorithm , CancellationToken.None);55 Solve(algorithm); 56 56 57 57 public virtual void Solve(LinearProgrammingAlgorithm algorithm) => … … 59 59 60 60 public virtual void Solve(LinearProgrammingAlgorithm algorithm, TimeSpan timeLimit, bool incrementality) { 61 var libraryName = string.Empty;62 if (this is ExternalSolver externalSolver)61 string libraryName = null; 62 if (this is IExternalSolver externalSolver) 63 63 libraryName = externalSolver.LibraryName; 64 64 -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/BopSolver.cs
r16233 r16234 13 13 } 14 14 15 public override OptimizationProblemType OptimizationProblemType => OptimizationProblemType.BOP_INTEGER_PROGRAMMING;16 15 public override bool SupportsPause => true; 16 17 17 public override bool SupportsStop => true; 18 19 protected override OptimizationProblemType OptimizationProblemType => 20 OptimizationProblemType.BOP_INTEGER_PROGRAMMING; 18 21 } 19 22 } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/CoinOrSolver.cs
r16233 r16234 27 27 } 28 28 29 p ublicoverride OptimizationProblemType OptimizationProblemType =>29 protected override OptimizationProblemType OptimizationProblemType => 30 30 LinearProgrammingType == LinearProgrammingType.LinearProgramming 31 31 ? OptimizationProblemType.CLP_LINEAR_PROGRAMMING -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/CplexSolver.cs
r16233 r16234 13 13 public CplexSolver() { 14 14 Parameters.Add(libraryNameParam = new FixedValueParameter<FileValue>(nameof(LibraryName), 15 new FileValue { FileDialogFilter = FileDialogFilter, Value = "cplex1280.dll"}));15 new FileValue { FileDialogFilter = FileDialogFilter, Value = Properties.Settings.Default.CplexLibraryName })); 16 16 } 17 17 18 p ublicoverride OptimizationProblemType OptimizationProblemType =>18 protected override OptimizationProblemType OptimizationProblemType => 19 19 LinearProgrammingType == LinearProgrammingType.LinearProgramming 20 20 ? OptimizationProblemType.CPLEX_LINEAR_PROGRAMMING -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/GlopSolver.cs
r16233 r16234 14 14 } 15 15 16 public override OptimizationProblemType OptimizationProblemType => OptimizationProblemType.GLOP_LINEAR_PROGRAMMING;17 16 public override bool SupportsPause => true; 17 18 18 public override bool SupportsStop => true; 19 20 protected override OptimizationProblemType OptimizationProblemType => 21 OptimizationProblemType.GLOP_LINEAR_PROGRAMMING; 19 22 } 20 23 } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/GlpkSolver.cs
r16233 r16234 13 13 public GlpkSolver() { 14 14 Parameters.Add(libraryNameParam = new FixedValueParameter<FileValue>(nameof(LibraryName), 15 new FileValue { FileDialogFilter = FileDialogFilter, Value = "glpk465.dll"}));15 new FileValue { FileDialogFilter = FileDialogFilter, Value = Properties.Settings.Default.GlpkLibraryName })); 16 16 17 17 programmingTypeParam.Value.ValueChanged += (sender, args) => { … … 31 31 } 32 32 33 p ublicoverride OptimizationProblemType OptimizationProblemType =>33 protected override OptimizationProblemType OptimizationProblemType => 34 34 LinearProgrammingType == LinearProgrammingType.LinearProgramming 35 35 ? OptimizationProblemType.GLPK_LINEAR_PROGRAMMING -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/GurobiSolver.cs
r16233 r16234 14 14 public GurobiSolver() { 15 15 Parameters.Add(libraryNameParam = new FixedValueParameter<FileValue>(nameof(LibraryName), 16 new FileValue { FileDialogFilter = FileDialogFilter, Value = "gurobi80.dll"}));16 new FileValue { FileDialogFilter = FileDialogFilter, Value = Properties.Settings.Default.GurobiLibraryName })); 17 17 } 18 18 … … 22 22 } 23 23 24 public override OptimizationProblemType OptimizationProblemType => 25 LinearProgrammingType == LinearProgrammingType.LinearProgramming 24 public override bool SupportsPause => true; 25 26 public override bool SupportsStop => true; 27 28 protected override OptimizationProblemType OptimizationProblemType => 29 LinearProgrammingType == LinearProgrammingType.LinearProgramming 26 30 ? OptimizationProblemType.GUROBI_LINEAR_PROGRAMMING 27 31 : OptimizationProblemType.GUROBI_MIXED_INTEGER_PROGRAMMING; 28 29 public override bool SupportsPause => true;30 public override bool SupportsStop => true;31 32 } 32 33 } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/ScipSolver.cs
r16233 r16234 13 13 public ScipSolver() { 14 14 Parameters.Add(libraryNameParam = new FixedValueParameter<FileValue>(nameof(LibraryName), 15 new FileValue { FileDialogFilter = FileDialogFilter, Value = "scip.dll"}));15 new FileValue { FileDialogFilter = FileDialogFilter, Value = Properties.Settings.Default.ScipLibraryName })); 16 16 programmingTypeParam.Value = 17 17 (EnumValue<LinearProgrammingType>)new EnumValue<LinearProgrammingType>(LinearProgrammingType … … 19 19 } 20 20 21 public override OptimizationProblemType OptimizationProblemType => 22 OptimizationProblemType.SCIP_MIXED_INTEGER_PROGRAMMING; 21 public override bool SupportsPause => true; 23 22 24 public override bool SupportsPause => true;25 23 public override bool SupportsStop => true; 24 25 protected override OptimizationProblemType OptimizationProblemType => 26 OptimizationProblemType.SCIP_MIXED_INTEGER_PROGRAMMING; 26 27 } 27 28 } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/Plugin.cs.frame
r16172 r16234 25 25 [Plugin("HeuristicLab.MathematicalOptimization", "Provides support for mathematical optimization based on Google OR-Tools", "3.3.15.$WCREV$")] 26 26 [PluginFile("HeuristicLab.MathematicalOptimization-3.3.dll", PluginFileType.Assembly)] 27 [PluginDependency("HeuristicLab.Analysis", "3.3")] 28 [PluginDependency("HeuristicLab.CodeEditor", "3.4")] 29 [PluginDependency("HeuristicLab.Collections", "3.3")] 30 [PluginDependency("HeuristicLab.Common", "3.3")] 31 [PluginDependency("HeuristicLab.Common.Resources", "3.3")] 27 32 [PluginDependency("HeuristicLab.Core", "3.3")] 28 [PluginDependency("HeuristicLab.Co llections", "3.3")]33 [PluginDependency("HeuristicLab.Core.Views", "3.3")] 29 34 [PluginDependency("HeuristicLab.Data", "3.3")] 35 [PluginDependency("HeuristicLab.MainForm", "3.3")] 36 [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")] 30 37 [PluginDependency("HeuristicLab.Optimization", "3.3")] 31 [PluginDependency("HeuristicLab.Optimization.Operators", "3.3")] 38 [PluginDependency("HeuristicLab.OrTools", "6.9")] 39 [PluginDependency("HeuristicLab.Parameters", "3.3")] 40 [PluginDependency("HeuristicLab.Persistence", "3.3")] 32 41 [PluginDependency("HeuristicLab.Problems.Programmable", "3.3")] 33 42 [PluginDependency("HeuristicLab.Scripting", "3.3")] 34 [PluginDependency("HeuristicLab. OrTools", "6.9")]43 [PluginDependency("HeuristicLab.Scripting.Views", "3.3")] 35 44 public class HeuristicLabMathematicalOptimizationPlugin : PluginBase { 36 45 }
Note: See TracChangeset
for help on using the changeset viewer.