switch (*i)
{
case StateEntry::Lambda:
- ret = doRealArrayRef(
- xd,
- *i,
- sflags,
- gmx::arrayRefFromArray<real>(
- state->lambda.data(),
- gmx::EnumerationArray<FreeEnergyPerturbationCouplingType, real>::size()),
- list);
+ ret = doRealArrayRef(xd, *i, sflags, state->lambda, list);
break;
case StateEntry::FepState:
ret = do_cpte_int(xd, *i, sflags, &state->fep_state, list);
{
fepvals->all_lambda[g].resize(fepvals->n_lambda);
serializer->doDoubleArray(fepvals->all_lambda[g].data(), fepvals->n_lambda);
- serializer->doBoolArray(
- fepvals->separate_dvdl.begin(),
- gmx::EnumerationArray<FreeEnergyPerturbationCouplingType, real>::size());
+ serializer->doBoolArray(fepvals->separate_dvdl.begin(), fepvals->separate_dvdl.size());
}
else if (fepvals->init_lambda >= 0)
{
localStateBackup_ = statePropagatorData_->localState();
if (freeEnergyPerturbationData_)
{
- localStateBackup_->fep_state = freeEnergyPerturbationData_->currentFEPState();
- for (unsigned long i = 0;
- i < gmx::EnumerationArray<FreeEnergyPerturbationCouplingType, double>::size();
- ++i)
- {
- localStateBackup_->lambda[i] = freeEnergyPerturbationData_->constLambdaView()[i];
- }
+ localStateBackup_->fep_state = freeEnergyPerturbationData_->currentFEPState();
+ ArrayRef<const real> lambdaView = freeEnergyPerturbationData_->constLambdaView();
+ std::copy(lambdaView.begin(), lambdaView.end(), localStateBackup_->lambda.begin());
localStateBackup_->flags |=
enumValueToBitMask(StateEntry::Lambda) | enumValueToBitMask(StateEntry::FepState);
}
//! Returns an object that provides iterators over the keys.
static constexpr EnumerationWrapperType keys() { return EnumerationWrapperType{}; }
//! Returns the size of the enumeration.
- static constexpr std::size_t size() { return std::size_t(ArraySize); }
+ constexpr std::size_t size() const { return std::size_t(ArraySize); }
/*!@{*/
//! Array access with asserts: