Files
opm-common/opm/parser/eclipse/EclipseState/Tables/TableColumn.hpp
Jørgen Kvalsvik f404828d63 Cleans up headers to improve build preformance
This is an effort to improve build performance.  Several includes
scattered across the project are either unused or partially used (i.e.
just used to import a type name, not depending on the actual contents of
the header file).

Replaces a lot of these includes with forward declarations.
2016-01-21 09:22:06 +01:00

82 lines
2.4 KiB
C++

/*
Copyright 2015 Statoil ASA.
This file is part of the Open Porous Media project (OPM).
OPM is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OPM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OPM. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _TABLE_COLUMN_HPP_
#define _TABLE_COLUMN_HPP_
#include <string>
#include <vector>
#include <memory>
#include <opm/parser/eclipse/EclipseState/Tables/TableIndex.hpp>
namespace Opm {
class ColumnSchema;
class TableColumn {
public:
explicit TableColumn( const ColumnSchema& schema );
size_t size( ) const;
const std::string& name() const;
void assertOrder(double value1 , double value2) const;
void addValue(double);
void addDefault();
void updateValue(size_t index, double value);
double operator[](size_t index) const;
bool defaultApplied(size_t index) const;
bool hasDefault( ) const;
double front() const;
double back() const;
double min() const;
double max() const;
bool inRange( double arg ) const;
/*
Will extrapolate with constant endpoint values if @argValue
is out of range.
*/
TableIndex lookup(double argValue) const;
double eval( const TableIndex& index) const;
void applyDefaults( const TableColumn& argColumn );
void assertUnitRange() const;
TableColumn& operator= (const TableColumn& other);
std::vector<double> vectorCopy() const;
std::vector<double>::const_iterator begin() const;
std::vector<double>::const_iterator end() const;
private:
void assertUpdate(size_t index, double value) const;
void assertPrevious(size_t index , double value) const;
void assertNext(size_t index , double value) const;
const ColumnSchema * m_schema;
std::string m_name;
std::vector<double> m_values;
std::vector<bool> m_default;
size_t m_defaultCount;
};
}
#endif