Cogs.Core
Simplex.h
1#pragma once
2#include "Base.h"
3
4#include <stddef.h>
5
6namespace Cogs
7{
8 namespace Core
9 {
10 class Context;
11
12 enum struct SimplexResult : int {
16 BlandsFailed = -2,
17 };
18
20 COGSCORE_DLL_API size_t simplexScratchSize(const size_t variableCount,
21 const size_t objectiveCount,
22 const size_t restrictionCount);
23
41 COGSCORE_DLL_API SimplexResult simplexMaximize(Context* context,
42 uintptr_t scratch,
43 double* solutions,
44 const int variableCount,
45 const double* objectives,
46 const int objectiveCount,
47 const double* restrictions,
48 const int restrictionCount,
49 const int maxIterationCount,
50 const bool printSteps = false);
51
52
53 }
54}
COGSCORE_DLL_API SimplexResult simplexMaximize(Context *context, uintptr_t scratch, double *solutions, const int variableCount, const double *objectives, const int objectiveCount, const double *restrictions, const int restrictionCount, const int maxIterationCount, const bool printSteps=false)
Find the maximum of a linear programming problem using the simplex method.
Definition: Simplex.cpp:452
SimplexResult
Definition: Simplex.h:12
@ OptimalSolutionFound
Success, optimal solution was found and written to solution.
@ NoFeasibleSolutions
Success, determined that no feasible solutions exist.
@ TooManyIterations
Failure, ran more iterations than allowed.
@ BlandsFailed
Failure while applying Bland's rule.
COGSCORE_DLL_API size_t simplexScratchSize(const size_t variableCount, const size_t objectiveCount, const size_t restrictionCount)
Number of bytes of scratch array required by simplexMaximize.
Definition: Simplex.cpp:440
Contains all Cogs related functionality.
Definition: FieldSetter.h:23