Commit 80a36e4c authored by Christopher Bruns's avatar Christopher Bruns
Browse files

MSVC does not support C99 struct initialization syntax. Workaround.

parent 56f05a6c
...@@ -40,10 +40,12 @@ ...@@ -40,10 +40,12 @@
using namespace OpenMM; using namespace OpenMM;
using namespace std; using namespace std;
typedef struct { struct MinimizerData {
Context& context; Context& context;
double k; double k;
} MinimizerData; MinimizerData(Context& context, double k)
: context(context), k(k) {}
};
static lbfgsfloatval_t evaluate(void *instance, const lbfgsfloatval_t *x, lbfgsfloatval_t *g, const int n, const lbfgsfloatval_t step) { static lbfgsfloatval_t evaluate(void *instance, const lbfgsfloatval_t *x, lbfgsfloatval_t *g, const int n, const lbfgsfloatval_t step) {
MinimizerData* data = reinterpret_cast<MinimizerData*>(instance); MinimizerData* data = reinterpret_cast<MinimizerData*>(instance);
...@@ -134,7 +136,7 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI ...@@ -134,7 +136,7 @@ void LocalEnergyMinimizer::minimize(Context& context, double tolerance, int maxI
// Perform the minimization. // Perform the minimization.
lbfgsfloatval_t fx; lbfgsfloatval_t fx;
MinimizerData data = (MinimizerData) {context, k}; MinimizerData data(context, k);
lbfgs(numParticles*3, x, &fx, evaluate, NULL, &data, &param); lbfgs(numParticles*3, x, &fx, evaluate, NULL, &data, &param);
// Check whether all constraints are satisfied. // Check whether all constraints are satisfied.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment