Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
GIDI_form.cc
Go to the documentation of this file.
1/*
2# <<BEGIN-copyright>>
3# Copyright 2019, Lawrence Livermore National Security, LLC.
4# This file is part of the gidiplus package (https://github.com/LLNL/gidiplus).
5# gidiplus is licensed under the MIT license (see https://opensource.org/licenses/MIT).
6# SPDX-License-Identifier: MIT
7# <<END-copyright>>
8*/
9
10#include <stdlib.h>
11#include "GIDI.hpp"
12#include <HAPI.hpp>
13
14namespace GIDI {
15
16/*! \class Form
17 * Base class inherited by most other GIDI classes. Mainly contains **label** and **type** members.
18 */
19
20/* *********************************************************************************************************//**
21 *
22 * @param a_type [in] The *FormType* the class represents.
23 ***********************************************************************************************************/
24
26 GUPI::Ancestry( "" ),
27 m_parent( nullptr ),
28 m_type( a_type ),
29 m_keyName( GIDI_labelChars ) {
30
31}
32
33/* *********************************************************************************************************//**
34 * @param a_moniker [in] The moniker for *this*.
35 * @param a_type [in] The *FormType* the class represents.
36 * @param a_label [in] The label for *this*.
37 ***********************************************************************************************************/
38
39Form::Form( std::string const &a_moniker, FormType a_type, std::string const &a_label ) :
40 GUPI::Ancestry( a_moniker ),
41 m_parent( nullptr ),
42 m_type( a_type ),
43 m_keyName( GIDI_labelChars ),
44 m_label( a_label ) {
45
46}
47
48/* *********************************************************************************************************//**
49 *
50 * @param a_node [in] The **HAPI::Node** to be parsed and used to construct the XYs2d.
51 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
52 * @param a_type [in] The *FormType* the class represents.
53 * @param a_parent [in] The parent GIDI::Suite.
54 ***********************************************************************************************************/
55
56Form::Form( HAPI::Node const &a_node, LUPI_maybeUnused SetupInfo &a_setupInfo, FormType a_type, Suite *a_parent ) :
57 GUPI::Ancestry( a_node.name( ) ),
58 m_parent( a_parent ),
59 m_type( a_type ),
60 m_keyName( GIDI_labelChars ),
61 m_label( a_node.attribute_as_string( GIDI_labelChars ) ) {
62
63}
64
65/* *********************************************************************************************************//**
66 * @param a_form [in] The Form to copy.
67 ***********************************************************************************************************/
68
69Form::Form( Form const &a_form ) :
70 GUPI::Ancestry( a_form.moniker( ), a_form.attribute( ) ),
71 m_parent( nullptr ),
72 m_type( a_form.type( ) ),
73 m_keyName( a_form.keyName( ) ),
74 m_keyValue( a_form.keyValue( ) ),
75 m_label( a_form.label( ) ) {
76
77}
78
79/* *********************************************************************************************************//**
80 ***********************************************************************************************************/
81
83
84}
85
86/* *********************************************************************************************************//**
87 * The assignment operator. This method sets the members of *this* to those of *a_rhs* except for
88 * the member *m_parent* which is set to **nullptr** and those not set by base classes.
89 *
90 * @param a_rhs [in] Instance whose member are used to set the members of *this*.
91 ***********************************************************************************************************/
92
93Form &Form::operator=( Form const &a_rhs ) {
94
95 if( this != &a_rhs ) {
97
98 m_parent = nullptr;
99 m_type = a_rhs.type( );
100 m_keyName = a_rhs.keyName( );
101 m_keyValue = a_rhs.keyValue( );
102 m_label = a_rhs.label( );
103 }
104
105 return( *this );
106}
107
108/* *********************************************************************************************************//**
109 * Set the *m_label* member per *a_label*. Also, if *m_keyName* is "label", calls **setKeyValue**.
110 *
111 * @param a_label [in] The value of the label.
112 ***********************************************************************************************************/
113
114void Form::setLabel( std::string const &a_label ) {
115
116 m_label = a_label;
117 if( m_keyName == GIDI_labelChars ) setKeyValue( GIDI_labelChars );
118}
119
120/* *********************************************************************************************************//**
121 * Returns a *const* reference to the *m_keyName* member.
122 *
123 * @return The name of the key for *this*.
124 ***********************************************************************************************************/
125
126std::string const &Form::keyName( ) const {
127
128 return( m_keyName );
129}
130
131/* *********************************************************************************************************//**
132 * Set the *m_keyName* member to *a_keyName* and calls setKeyValue.
133 *
134 * @param a_keyName [in] The value of the key name.
135 ***********************************************************************************************************/
136
137void Form::setKeyName( std::string const &a_keyName ) {
138
139 m_keyName = a_keyName;
140 setKeyValue( m_keyName );
141}
142
143/* *********************************************************************************************************//**
144 * Returns a *const* reference to the *m_keyValue* member.
145 *
146 * @return The value of the key for *this*.
147 ***********************************************************************************************************/
148
149std::string const &Form::keyValue( ) const {
150
151 if( m_keyValue == "" ) setKeyValue( m_keyName );
152 return( m_keyValue );
153}
154
155/* *********************************************************************************************************//**
156 * Set the *m_keyValue* per the *a_keyName* name. This method assumes that *a_keyName* is "label". Otherwise, it executes a throw.
157 *
158 * @param a_keyName [in] The name of the key whose value is set.
159 ***********************************************************************************************************/
160
161void Form::setKeyValue( std::string const &a_keyName ) const {
162
163 if( a_keyName != GIDI_labelChars ) throw Exception( "Form::setKeyValue: unsupported keyname \"" + a_keyName + "\"." );
164
165 m_keyValue = m_label;
166}
167
168/* *********************************************************************************************************//**
169 * Returns the sibling of *this* with label *a_label*.
170 *
171 * @param a_label [in] The label of the sibling to find.
172 * @return The sibling with label *a_label*.
173 ***********************************************************************************************************/
174
175Form const *Form::sibling( std::string a_label ) const {
176
177 Form *_form;
178
179 try {
180 _form = ((*parent( )).get<Form>( a_label ) ); }
181 catch (...) {
182 return( nullptr );
183 }
184 return( _form );
185}
186
187namespace Functions {
188
189/*! \class FunctionForm
190 * Base class inherited by other GIDI function classes.
191 */
192
193/* *********************************************************************************************************//**
194 * @param a_moniker [in] The moniker for *this*.
195 * @param a_type [in] The *FormType* the class represents.
196 * @param a_dimension [in] The dimension of the function.
197 * @param a_interpolation [in] The interpolation along the outer most independent axis and the dependent axis.
198 * @param a_index [in] Currently not used.
199 * @param a_outerDomainValue [in] If embedded in a higher dimensional function, the value of the domain of the next higher dimension.
200 ***********************************************************************************************************/
201
202FunctionForm::FunctionForm( std::string const &a_moniker, FormType a_type, int a_dimension, ptwXY_interpolation a_interpolation,
203 int a_index, double a_outerDomainValue ) :
204 Form( a_moniker, a_type, "" ),
205 m_dimension( a_dimension ),
206 m_interpolation( a_interpolation ),
207 m_index( a_index ),
208 m_outerDomainValue( a_outerDomainValue ) {
209
210 m_interpolationString = ptwXY_interpolationToString( m_interpolation );
211}
212
213/* *********************************************************************************************************//**
214 * @param a_moniker [in] The moniker for *this*.
215 * @param a_type [in] The *FormType* the class represents.
216 * @param a_dimension [in] The dimension of the function.
217 * @param a_axes [in] The axes for the function.
218 * @param a_interpolation [in] The interpolation along the outer most independent axis and the dependent axis.
219 * @param a_index [in] Currently not used.
220 * @param a_outerDomainValue [in] If embedded in a higher dimensional function, the value of the domain of the next higher dimension.
221 ***********************************************************************************************************/
222
223FunctionForm::FunctionForm( std::string const &a_moniker, FormType a_type, int a_dimension, Axes const &a_axes, ptwXY_interpolation a_interpolation,
224 int a_index, double a_outerDomainValue ) :
225 Form( a_type ),
226 m_dimension( a_dimension ),
227 m_axes( a_axes ),
228 m_interpolation( a_interpolation ),
229 m_index( a_index ),
230 m_outerDomainValue( a_outerDomainValue ) {
231
232 setMoniker( a_moniker );
233 m_interpolationString = ptwXY_interpolationToString( m_interpolation );
234
235 m_axes.setAncestor( this );
236}
237
238/* *********************************************************************************************************//**
239 * @param a_construction [in] Used to pass user options to the constructor.
240 * @param a_node [in] The **HAPI::Node** to be parsed and used to construct the FunctionForm.
241 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
242 * @param a_type [in] The *FormType* the class represents.
243 * @param a_dimension [in] The dimension of the function.
244 * @param a_suite [in] The parent GIDI::Suite.
245 ***********************************************************************************************************/
246
247FunctionForm::FunctionForm( LUPI_maybeUnused Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo,
248 FormType a_type, int a_dimension, Suite *a_suite ) :
249 Form( a_node, a_setupInfo, a_type, a_suite ),
250 m_dimension( a_dimension ),
251 m_axes( a_node.child( GIDI_axesChars ), a_setupInfo, 0 ),
252 m_interpolation( ptwXY_interpolationLinLin ),
253 m_index( 0 ),
254 m_outerDomainValue( 0.0 ) {
255
256 m_interpolationString = a_node.attribute_as_string( GIDI_interpolationChars );
257 m_interpolation = ptwXY_stringToInterpolation( m_interpolationString.c_str( ) );
258 if( m_interpolation != ptwXY_interpolationOther ) m_interpolationString = ptwXY_interpolationToString( m_interpolation );
259
260 if( strcmp( a_node.attribute_as_string( GIDI_indexChars ).c_str( ), "" ) != 0 ) m_index = a_node.attribute_as_int( GIDI_indexChars );
261 if( strcmp( a_node.attribute_as_string( GIDI_outerDomainValueChars ).c_str( ), "" ) != 0 ) m_outerDomainValue = a_node.attribute_as_double( GIDI_outerDomainValueChars );
262}
263
264/* *********************************************************************************************************//**
265 * @param a_form [in] The FunctionForm to copy.
266 ***********************************************************************************************************/
267
269 Form( a_form ),
270 m_dimension( a_form.dimension( ) ),
271 m_axes( a_form.axes( ) ),
272 m_interpolation( a_form.interpolation( ) ),
273 m_interpolationString( a_form.interpolationString( ) ),
274 m_index( a_form.index( ) ),
275 m_outerDomainValue( a_form.outerDomainValue( ) ) {
276
277}
278
279/* *********************************************************************************************************//**
280 ***********************************************************************************************************/
281
285
286/* *********************************************************************************************************//**
287 * The assignment operator. This method sets the members of *this* to those of *a_rhs* except for those
288 * not set by base classes.
289 *
290 * @param a_rhs [in] Instance whose member are used to set the members of *this*.
291 ***********************************************************************************************************/
292
294
295 if( this != &a_rhs ) {
296 Form::operator=( a_rhs );
297
298 m_dimension = a_rhs.dimension( );
299 m_axes = a_rhs.axes( );
300 m_interpolation = a_rhs.interpolation( );
301 m_interpolationString = a_rhs.interpolationString( );
302 m_index = a_rhs.index( );
303 m_outerDomainValue = a_rhs.outerDomainValue( );
304 }
305
306 return( *this );
307}
308
309/* *********************************************************************************************************//**
310 * This method sets the integer (i.e., *ptwXY_interpolation*) interpolation value of **m_interpolation** to
311 * **a_interpolation**. This method also sets the **m_interpolationString** member per **a_interpolation**.
312 *
313 * @param a_interpolation [in] The *ptwXY_interpolation* integer value of the interpolaction.
314 ***********************************************************************************************************/
315
317
318 m_interpolation = a_interpolation;
319 m_interpolationString = ptwXY_interpolationToString( m_interpolation );
320}
321
322/* *********************************************************************************************************//**
323 * Fills the argument *a_writeInfo* with the XML lines that represent *this*. Recursively enters each sub-node.
324 *
325 * @param a_writeInfo [in/out] Instance containing incremental indentation and other information and stores the appended lines.
326 * @param a_indent [in] The amount to indent *this* node.
327 * @param a_embedded [in] If *true*, *this* function is embedded in a higher dimensional function.
328 * @param a_inRegions [in] If *true*, *this* is in a Regions container.
329 ***********************************************************************************************************/
330
331void FunctionForm::toXMLList_func( LUPI_maybeUnused GUPI::WriteInfo &a_writeInfo, LUPI_maybeUnused std::string const &a_indent, LUPI_maybeUnused bool a_embedded, LUPI_maybeUnused bool a_inRegions ) const {
332
333 std::cout << "Node '" << moniker( ) << "' needs toXMLList methods." << std::endl;
334}
335
336/*! \class Function1dForm
337 * Base class inherited by other GIDI 1d function classes.
338 */
339
340/* *********************************************************************************************************//**
341 * @param a_moniker [in] The moniker for *this*.
342 * @param a_type [in] The *FormType* the class represents.
343 * @param a_interpolation [in] The interpolation along the outer most independent axis and the dependent axis.
344 * @param a_index [in] Currently not used.
345 * @param a_outerDomainValue [in] If embedded in a higher dimensional function, the value of the domain of the next higher dimension.
346 ***********************************************************************************************************/
347
348Function1dForm::Function1dForm( std::string const &a_moniker, FormType a_type, ptwXY_interpolation a_interpolation, int a_index, double a_outerDomainValue ) :
349 FunctionForm( a_moniker, a_type, 1, a_interpolation, a_index, a_outerDomainValue ) {
350
351}
352
353/* *********************************************************************************************************//**
354 * @param a_moniker [in] The moniker for *this*.
355 * @param a_type [in] The *FormType* the class represents.
356 * @param a_axes [in] The axes to copy for *this*.
357 * @param a_interpolation [in] The interpolation along the outer most independent axis and the dependent axis.
358 * @param a_index [in] Currently not used.
359 * @param a_outerDomainValue [in] If embedded in a higher dimensional function, the value of the domain of the next higher dimension.
360 ***********************************************************************************************************/
361
362Function1dForm::Function1dForm( std::string const &a_moniker, FormType a_type, Axes const &a_axes, ptwXY_interpolation a_interpolation,
363 int a_index, double a_outerDomainValue ) :
364 FunctionForm( a_moniker, a_type, 1, a_axes, a_interpolation, a_index, a_outerDomainValue ) {
365
366}
367
368/* *********************************************************************************************************//**
369 * @param a_construction [in] Used to pass user options to the constructor.
370 * @param a_node [in] The **HAPI::Node** to be parsed and used to construct the FunctionForm.
371 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
372 * @param a_type [in] The *FormType* the class represents.
373 * @param a_suite [in] The parent GIDI::Suite.
374 ***********************************************************************************************************/
375
376Function1dForm::Function1dForm( Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, FormType a_type,
377 Suite *a_suite ) :
378 FunctionForm( a_construction, a_node, a_setupInfo, a_type, 1, a_suite ) {
379
380}
381
382/* *********************************************************************************************************//**
383 * @param a_form [in] The Function1dForm to copy.
384 ***********************************************************************************************************/
385
387 FunctionForm( a_form ) {
388
389}
390
391/* *********************************************************************************************************//**
392 ***********************************************************************************************************/
393
397
398/* *********************************************************************************************************//**
399 * The assignment operator. This method sets the members of *this* to those of *a_rhs* except for those
400 * not set by base classes.
401 *
402 * @param a_rhs [in] Instance whose member are used to set the members of *this*.
403 ***********************************************************************************************************/
404
406
407 if( this != &a_rhs ) {
409 }
410
411 return( *this );
412}
413
414/* *********************************************************************************************************//**
415 * This method executes a throw as the sub-class did not define it. Evaluates *this* at the X-values in *a_Xs*[*a_offset*:]
416 * and adds the results to *a_results*[*a_offset*:].
417 *
418 * @param a_offset [in] The offset in *a_Xs* to start.
419 * @param a_Xs [in] The list of domain values to evaluate *this* at.
420 * @param a_results [in] The list whose values are added to by the Y-values of *this*.
421 * @param a_scaleFactor [in] A factor applied to each evaluation before it is added to *a_results*.
422 ***********************************************************************************************************/
423
424void Function1dForm::mapToXsAndAdd( LUPI_maybeUnused std::size_t a_offset, LUPI_maybeUnused std::vector<double> const &a_Xs, LUPI_maybeUnused std::vector<double> &a_results, LUPI_maybeUnused double a_scaleFactor ) const {
425
426 throw Exception( "Function1dForm::mapToXsAndAdd: function " + moniker( ) + " not implemented." );
427}
428/* *********************************************************************************************************//**
429 * This method writes a warning message stating that the write method has not been implemented for *this*.
430 *
431 * @param a_file [in] The C FILE instance to write the data to.
432 * @param a_format [in] The format string passed to each region's write method.
433 ***********************************************************************************************************/
434
435/* *********************************************************************************************************//**
436 * This method returns a **nullptr** since this methods was not implemented in the the derived class.
437 *
438 * @param a_asLinlin [in] If **true**, the inpolatation of the returned XYs1d instance will always be lin-lin. Otherwise,
439 * the interpolation depends on the child 1d functions. This argument is not needed or used for this class.
440 * @param a_accuracy [in] The accuracy use to convert the data to lin=lin interpolation if needed. This argument is not needed or used for this cl
441 * @param a_lowerEps [in] The relative domain ammount to put a point below a boundary between two regions. This argument is not needed or used for
442 * @param a_upperEps [in] The relative domain ammount to put a point above a boundary between two regions. This argument is not needed or used for
443 *
444 * @return A pointer to an XYs1d instance that must be freed by the calling function.
445 ***********************************************************************************************************/
446
447XYs1d *Function1dForm::asXYs1d( LUPI_maybeUnused bool a_asLinlin, LUPI_maybeUnused double a_accuracy, LUPI_maybeUnused double a_lowerEps, LUPI_maybeUnused double a_upperEps ) const {
448
449 return( nullptr );
450}
451
452void Function1dForm::write( FILE *a_file, LUPI_maybeUnused std::string const &a_format ) const {
453
454 fprintf( a_file, "# Write method not implemented for %s.\n", moniker( ).c_str( ) );
455}
456
457/* *********************************************************************************************************//**
458 * Calls the write method with stdout as the file stream.
459 *
460 * @param a_format [in] The format string passed to the C printf function.
461 ***********************************************************************************************************/
462
463void Function1dForm::print( std::string const &a_format ) const {
464
465 write( stdout, a_format.c_str( ) );
466}
467
468/* *********************************************************************************************************//**
469 * @param a_moniker [in] The **GNDS** node name for the 2d function.
470 * @param a_type [in] The *FormType* the class represents.
471 * @param a_interpolation [in] The interpolation along the outer most independent axis and the dependent axis.
472 * @param a_index [in] The GNDS **index** value for *this*.
473 * @param a_outerDomainValue [in] The GNDS **outerDomainValue** value for *this*.
474 ***********************************************************************************************************/
475
476Function2dForm::Function2dForm( std::string const &a_moniker, FormType a_type, ptwXY_interpolation a_interpolation, int a_index, double a_outerDomainValue ) :
477 FunctionForm( a_moniker, a_type, 2, a_interpolation, a_index, a_outerDomainValue ) {
478
479}
480
481/* *********************************************************************************************************//**
482 * @param a_moniker [in] The moniker for *this*.
483 * @param a_type [in] The *FormType* the class represents.
484 * @param a_axes [in] The axes to copy for *this*.
485 * @param a_interpolation [in] The interpolation along the outer most independent axis and the dependent axis.
486 * @param a_index [in] Currently not used.
487 * @param a_outerDomainValue [in] If embedded in a higher dimensional function, the value of the domain of the next higher dimension.
488 ***********************************************************************************************************/
489
490Function2dForm::Function2dForm( std::string const &a_moniker, FormType a_type, Axes const &a_axes, ptwXY_interpolation a_interpolation,
491 int a_index, double a_outerDomainValue ) :
492 FunctionForm( a_moniker, a_type, 2, a_axes, a_interpolation, a_index, a_outerDomainValue ) {
493
494}
495
496/* *********************************************************************************************************//**
497 * @param a_construction [in] Used to pass user options to the constructor.
498 * @param a_node [in] The **HAPI::Node** to be parsed and used to construct the FunctionForm.
499 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
500 * @param a_type [in] The *FormType* the class represents.
501 * @param a_suite [in] The parent GIDI::Suite.
502 ***********************************************************************************************************/
503
504Function2dForm::Function2dForm( Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo,
505 FormType a_type, Suite *a_suite ) :
506 FunctionForm( a_construction, a_node, a_setupInfo, a_type, 2, a_suite ) {
507
508}
509
510/* *********************************************************************************************************//**
511 * @param a_form [in] Function2dForm to copy.
512 ***********************************************************************************************************/
514 FunctionForm( a_form ) {
515
516}
517
518/* *********************************************************************************************************//**
519 ***********************************************************************************************************/
520
524
525/* *********************************************************************************************************//**
526 * @param a_construction [in] Used to pass user options to the constructor.
527 * @param a_node [in] The **HAPI::Node** to be parsed and used to construct the FunctionForm.
528 * @param a_setupInfo [in] Information create my the Protare constructor to help in parsing.
529 * @param a_type [in] The *FormType* the class represents.
530 * @param a_suite [in] The parent GIDI::Suite.
531 ***********************************************************************************************************/
532
533Function3dForm::Function3dForm( Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo,
534 FormType a_type, Suite *a_suite ) :
535 FunctionForm( a_construction, a_node, a_setupInfo, a_type, 3, a_suite ) {
536
537}
538
539/* *********************************************************************************************************//**
540 * @param a_moniker [in] The moniker for *this*.
541 * @param a_type [in] The *FormType* the class represents.
542 * @param a_axes [in] The axes to copy for *this*.
543 * @param a_interpolation [in] The interpolation along the outer most independent axis and the dependent axis.
544 * @param a_index [in] Currently not used.
545 * @param a_outerDomainValue [in] If embedded in a higher dimensional function, the value of the domain of the next higher dimension.
546 ***********************************************************************************************************/
547
548Function3dForm::Function3dForm( std::string const &a_moniker, FormType a_type, Axes const &a_axes, ptwXY_interpolation a_interpolation,
549 int a_index, double a_outerDomainValue ) :
550 FunctionForm( a_moniker, a_type, 3, a_axes, a_interpolation, a_index, a_outerDomainValue ) {
551
552}
553
554/* *********************************************************************************************************//**
555 ***********************************************************************************************************/
556
560
561} // End namespace Functions.
562
563} // End namespace GIDI.
#define GIDI_axesChars
Definition GIDI.hpp:382
#define GIDI_outerDomainValueChars
Definition GIDI.hpp:436
#define GIDI_interpolationChars
Definition GIDI.hpp:434
#define GIDI_labelChars
Definition GIDI.hpp:438
#define GIDI_indexChars
Definition GIDI.hpp:437
#define LUPI_maybeUnused
std::string const & keyName() const
Definition GIDI_form.cc:126
virtual void setKeyValue(std::string const &a_keyName) const
Definition GIDI_form.cc:161
virtual ~Form()
Definition GIDI_form.cc:82
void setKeyName(std::string const &a_keyName)
Definition GIDI_form.cc:137
Form & operator=(Form const &a_rhs)
Definition GIDI_form.cc:93
std::string const & label() const
Definition GIDI.hpp:658
std::string const & keyValue() const
Definition GIDI_form.cc:149
FormType type() const
Definition GIDI.hpp:667
Form const * sibling(std::string a_label) const
Definition GIDI_form.cc:175
Form(FormType a_type)
Definition GIDI_form.cc:25
Suite * parent() const
Definition GIDI.hpp:656
void setLabel(std::string const &a_label)
Definition GIDI_form.cc:114
Function1dForm(std::string const &a_moniker, FormType a_type, ptwXY_interpolation a_interpolation, int a_index, double a_outerDomainValue)
Definition GIDI_form.cc:348
virtual XYs1d * asXYs1d(bool a_asLinlin, double a_accuray, double a_lowerEps, double a_upperEps) const
Definition GIDI_form.cc:447
Function1dForm & operator=(Function1dForm const &a_rhs)
Definition GIDI_form.cc:405
virtual void mapToXsAndAdd(std::size_t a_offset, std::vector< double > const &a_Xs, std::vector< double > &a_results, double a_scaleFactor) const
Definition GIDI_form.cc:424
void print(std::string const &a_format) const
Definition GIDI_form.cc:463
virtual void write(FILE *a_file, std::string const &a_format) const
Definition GIDI_form.cc:452
Function2dForm(std::string const &a_moniker, FormType a_type, ptwXY_interpolation a_interpolation, int a_index, double a_outerDomainValue)
Definition GIDI_form.cc:476
Function3dForm(std::string const &a_moniker, FormType a_type, ptwXY_interpolation a_interpolation, int a_index, double a_outerDomainValue)
std::string interpolationString() const
Definition GIDI.hpp:1017
Axes const & axes() const
Definition GIDI.hpp:1012
double outerDomainValue() const
Definition GIDI.hpp:1010
virtual void toXMLList_func(GUPI::WriteInfo &a_writeInfo, std::string const &a_indent, bool a_embedded, bool a_inRegions) const
Definition GIDI_form.cc:331
FunctionForm & operator=(FunctionForm const &a_rhs)
Definition GIDI_form.cc:293
ptwXY_interpolation interpolation() const
Definition GIDI.hpp:1015
FunctionForm(std::string const &a_moniker, FormType a_type, int a_dimension, ptwXY_interpolation a_interpolation, int a_index, double a_outerDomainValue)
Definition GIDI_form.cc:202
void setInterpolation(ptwXY_interpolation a_interpolation)
Definition GIDI_form.cc:316
void setMoniker(std::string const &a_moniker)
Definition GUPI.hpp:103
Ancestry & operator=(Ancestry const &a_ancestry)
std::string const & moniker() const
Definition GUPI.hpp:102
Ancestry(std::string const &a_moniker, std::string const &a_attribute="")
std::string attribute() const
Definition GUPI.hpp:107
double attribute_as_double(const char *a_name) const
Definition HAPI.hpp:197
std::string attribute_as_string(const char *a_name) const
Definition HAPI.hpp:179
int attribute_as_int(const char *a_name) const
Definition HAPI.hpp:185
Definition GIDI.hpp:32
FormType
Definition GIDI.hpp:118
Definition GUPI.hpp:20
char const * ptwXY_interpolationToString(ptwXY_interpolation interpolation)
enum ptwXY_interpolation_e ptwXY_interpolation
@ ptwXY_interpolationLinLin
Definition ptwXY.h:37
@ ptwXY_interpolationOther
Definition ptwXY.h:38
ptwXY_interpolation ptwXY_stringToInterpolation(char const *interpolationString)