#3096 Implemented ensemble calulations

This commit is contained in:
Bjørn Erik Jensen
2018-06-25 15:14:47 +02:00
parent 2ea84bdb63
commit 898df5b68a
44 changed files with 1378 additions and 99 deletions

View File

@@ -17,7 +17,12 @@
/////////////////////////////////////////////////////////////////////////////////
#include "RigCaseRealizationParameters.h"
#include <QString>
#include <QStringList>
#include <limits>
#include <functional>
//--------------------------------------------------------------------------------------------------
///
@@ -109,3 +114,45 @@ std::map<QString, RigCaseRealizationParameters::Value> RigCaseRealizationParamet
{
return m_parameters;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigCaseRealizationParameters::parameterHash(const QString& name) const
{
auto itr = m_parameters.find(name);
if (itr == m_parameters.end() || !itr->second.isValid()) return 0;
std::hash<std::string> stringHasher;
std::hash<double> doubleHasher;
size_t nameHash;
size_t valueHash;
nameHash = stringHasher(name.toStdString());
auto value = itr->second;
if (value.isNumeric()) valueHash = doubleHasher(value.numericValue());
else if (value.isText()) valueHash = stringHasher(value.textValue().toStdString());
QString s = QString::number(nameHash) + QString::number(valueHash);
return stringHasher((QString::number(nameHash) + QString::number(valueHash)).toStdString());
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
size_t RigCaseRealizationParameters::parametersHash()
{
if (m_parametersHash == 0)
{
QStringList hashes;
for (auto param : m_parameters)
{
hashes.push_back(QString::number(parameterHash(param.first)));
}
std::hash<std::string> stringHasher;
m_parametersHash = stringHasher(hashes.join("").toStdString());
}
return m_parametersHash;
}