/usr/include/openturns/AnalyticalNumericalMathEvaluationImplementation.hxx is in libopenturns-dev 0.15-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | // -*- C++ -*-
/**
* @file AnalyticalNumericalMathEvaluationImplementation.hxx
* @brief The class that implements the composition between numerical
* math functions implementations
*
* (C) Copyright 2005-2011 EDF-EADS-Phimeca
*
* Permission to copy, use, modify, sell and distribute this software
* is granted provided this copyright notice appears in all copies.
* This software is provided "as is" without express or implied
* warranty, and with no claim as to its suitability for any purpose.
*
*
* \author $LastChangedBy: schueller $
* \date $LastChangedDate: 2011-06-10 15:15:12 +0200 (Fri, 10 Jun 2011) $
*/
#ifndef OPENTURNS_ANALYTICALNUMERICALMATHEVALUATIONIMPLEMENTATION_HXX
#define OPENTURNS_ANALYTICALNUMERICALMATHEVALUATIONIMPLEMENTATION_HXX
#include "NumericalMathEvaluationImplementation.hxx"
#include "muParser.h"
#include "Pointer.hxx"
namespace OpenTURNS {
namespace Base {
namespace Func {
/**
* @class AnalyticalNumericalMathEvaluationImplementation
*
* The class that implement the composition of two numerical math functions implementations.
*/
class AnalyticalNumericalMathEvaluationImplementation
: public NumericalMathEvaluationImplementation
{
CLASSNAME;
public:
/* Some typedefs for easy reading */
typedef NumericalMathEvaluationImplementation::NumericalPoint NumericalPoint;
typedef NumericalMathEvaluationImplementation::NumericalSample NumericalSample;
typedef mu::Parser Parser;
typedef Type::Collection<Parser> ParserCollection;
typedef NumericalMathEvaluationImplementation::InvalidArgumentException InvalidArgumentException;
typedef NumericalMathEvaluationImplementation::InternalException InternalException;
typedef NumericalMathEvaluationImplementation::StorageManager StorageManager;
typedef Type::Collection<NumericalScalar> NumericalScalarCollection;
/** Default constructor */
AnalyticalNumericalMathEvaluationImplementation();
/** Default constructor */
AnalyticalNumericalMathEvaluationImplementation(const Description & inputVariablesNames,
const Description & outputVariablesNames,
const Description & formulas)
/* throw(InvalidArgumentException) */;
/** Virtual constructor */
virtual AnalyticalNumericalMathEvaluationImplementation * clone() const;
/** Comparison operator */
Bool operator ==(const AnalyticalNumericalMathEvaluationImplementation & other) const;
/** String converter */
virtual String __repr__() const;
virtual String __str__(const String & offset = "") const;
/** Operator () */
using NumericalMathEvaluationImplementation::operator();
NumericalPoint operator() (const NumericalPoint & inP) const
/* throw(InvalidArgumentException, InternalException) */;
/** Accessor for input point dimension */
UnsignedLong getInputDimension() const
/* throw(InternalException) */;
/** Accessor for output point dimension */
UnsignedLong getOutputDimension() const
/* throw(InternalException) */;
/** Get the i-th marginal function */
AnalyticalNumericalMathEvaluationImplementation * getMarginal(const UnsignedLong i) const /* throw(InvalidArgumentException) */;
/** Get the function corresponding to indices components */
AnalyticalNumericalMathEvaluationImplementation * getMarginal(const Indices & indices) const /* throw(InvalidArgumentException) */;
/** Accessor to the input variables names */
Description getInputVariablesNames() const;
/** Accessor to the output variables names */
Description getOutputVariablesNames() const;
/** Accessor to the formulas */
Description getFormulas() const;
/** Method save() stores the object through the StorageManager */
void save(StorageManager::Advocate & adv) const;
/** Method load() reloads the object from the StorageManager */
void load(StorageManager::Advocate & adv);
protected:
private:
friend class AnalyticalNumericalMathGradientImplementation;
friend class AnalyticalNumericalMathHessianImplementation;
/* Must initialize the parser at the first call to operator() as the
reference associated with the variables may have change after the construction */
void initialize() const;
mutable Bool isInitialized_;
mutable NumericalScalarCollection inputVariables_;
Description inputVariablesNames_;
Description outputVariablesNames_;
Description formulas_;
/** A mathematical expression parser from the muParser library */
mutable ParserCollection parsers_;
}; /* class AnalyticalNumericalMathEvaluationImplementation */
} /* namespace Func */
} /* namespace Base */
} /* namespace OpenTURNS */
#endif /* OPENTURNS_ANALYTICALNUMERICALMATHEVALUATIONIMPLEMENTATION_HXX */
|