33 data2dListParse( a_construction, a_node.child( GIDI_function2dsChars ), a_setupInfo, m_function2ds );
34 checkSequentialDomainLimits2d( m_function2ds, m_Xs );
39 std::string name( child.name( ) );
41 if( name == GIDI_axesChars ) continue;
42 if( name == GIDI_uncertaintyChars ) continue;
44 Function2dForm *_form = data2dParse( a_construction, child, a_setupInfo, nullptr );
45 if( _form == nullptr ) throw Exception(
"Regions2d::Regions2d: data2dParse returned nullptr." );
55 for( std::vector<Function2dForm *>::iterator iter = m_function2ds.begin( ); iter < m_function2ds.end( ); ++iter )
delete *iter;
66 if( m_Xs.size( ) == 0 )
throw Exception(
"Regions2d::domainMin: Regions2d has no regions" );
78 if( m_Xs.size( ) == 0 )
throw Exception(
"Regions2d::domainMax: Regions2d has no regions" );
79 return( m_Xs[m_Xs.size( )-1] );
93 if( m_Xs.size( ) == 0 ) {
94 m_Xs.push_back( _domainMin ); }
96 if( m_Xs.back( ) != _domainMin )
throw Exception(
"Regions2d::append: regions do not abut." );
99 m_Xs.push_back( _domainMax );
100 m_function2ds.push_back( a_function );
113 if( m_Xs.size( ) == 0 )
throw Exception(
"Regions2d::evaluate: regions2d has no regions" );
119 return( m_function2ds.back( )->evaluate( a_x2, a_x1 ) );
124 return( m_function2ds[
static_cast<std::size_t
>(iX1)]->
evaluate( a_x2, a_x1 ) );
139 std::string attributes;
153 for( std::vector<Function2dForm *>::const_iterator iter = m_function2ds.begin( ); iter != m_function2ds.end( ); ++iter ) (*iter)->toXMLList_func( a_writeInfo, indent2,
false,
true );
#define GIDI_outerDomainValueChars
#define GNDS_formatVersion_1_10Chars
void toXMLList(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent="") const
void toXMLList_func(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, bool a_embedded, bool a_inRegions) const
void append(Function2dForm *a_function)
double evaluate(double a_x2, double a_x1) const
Regions2d(Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, Suite *a_parent)
LUPI::FormatVersion m_formatVersion
std::string const & moniker() const
void addNodeEnder(std::string const &a_moniker)
std::string incrementalIndent(std::string const &indent)
void addNodeStarter(std::string const &indent, std::string const &a_moniker, std::string const &a_attributes="")
std::string addAttribute(std::string const &a_name, std::string const &a_value) const
long binarySearchVector(double a_x, std::vector< double > const &a_Xs)
std::string intToString(int a_value)
std::string doubleToShortestString(double a_value, int a_significantDigits=15, int a_favorEFormBy=0)