46 data1dListParse( a_construction, a_node.child( GIDI_function1dsChars ), a_setupInfo, m_function1ds );
47 checkOuterDomainValues1d( m_function1ds, m_Xs );
52 std::string name( child.name( ) );
54 if( name == GIDI_axesChars ) continue;
55 if( name == GIDI_uncertaintyChars ) continue;
57 Function1dForm *_form = data1dParse( a_construction, child, a_setupInfo, nullptr );
58 if( _form == nullptr ) throw Exception(
"XYs2d::XYs2d: data1dParse returned nullptr." );
59 if( m_Xs.size( ) > 0 ) {
60 if( _form->outerDomainValue( ) <= m_Xs[m_Xs.size( )-1] ) throw Exception(
"XYs2d::XYs2d: next outerDomainValue <= current outerDomainValue." );
62 m_Xs.push_back( _form->outerDomainValue( ) );
63 m_function1ds.push_back( _form );
73 for( std::vector<Function1dForm *>::iterator iter = m_function1ds.begin( ); iter < m_function1ds.end( ); ++iter )
delete *iter;
84 if( m_Xs.size( ) == 0 )
throw Exception(
"XYs2d::domainMin: XYs2d has no 1d-functions" );
96 if( m_Xs.size( ) == 0 )
throw Exception(
"XYs2d::domainMax: XYs2d has no 1d-functions" );
97 return( m_Xs[m_Xs.size( )-1] );
110 if( m_Xs.size( ) == 0 )
throw Exception(
"XYs2d::evaluate: XYs2d has no 1d functions." );
116 return( m_function1ds.back( )->evaluate( a_x1 ) );
118 return( m_function1ds[0]->
evaluate( a_x1 ) );
122 return( m_function1ds[
static_cast<std::size_t
>( iX2 )]->
evaluate( a_x1 ) );
133 if( m_function1ds.size( ) > 0 ) {
134 if( a_function1d->
outerDomainValue( ) <= m_Xs.back( ) )
Exception(
"XYs2d::append: next outerDomainValue <= current outerDomainValue." );
138 m_function1ds.push_back( a_function1d );
154 std::string attributes;
169 if( !a_embedded )
axes( ).toXMLList( a_writeInfo, indent2 );
171 for( std::vector<Function1dForm *>::const_iterator iter = m_function1ds.begin( ); iter != m_function1ds.end( ); ++iter ) (*iter)->toXMLList_func( a_writeInfo, indent2,
true,
false );
#define GIDI_outerDomainValueChars
#define GIDI_interpolationQualifierChars
#define GNDS_formatVersion_1_10Chars
void append(Function1dForm *a_function1d)
XYs2d(Axes const &a_axes, ptwXY_interpolation a_interpolation, int a_index=0, double a_outerDomainValue=0.0)
double evaluate(double a_x2, double a_x1) const
void toXMLList_func(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, bool a_embedded, bool a_inRegions) const
LUPI::FormatVersion m_formatVersion
void setAncestor(Ancestry *a_ancestor)
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)
enum ptwXY_interpolation_e ptwXY_interpolation