Sacado Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Sacado_ScalarParameterEntry.hpp
Go to the documentation of this file.
1 // @HEADER
2 // ***********************************************************************
3 //
4 // Sacado Package
5 // Copyright (2006) Sandia Corporation
6 //
7 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
8 // the U.S. Government retains certain rights in this software.
9 //
10 // This library is free software; you can redistribute it and/or modify
11 // it under the terms of the GNU Lesser General Public License as
12 // published by the Free Software Foundation; either version 2.1 of the
13 // License, or (at your option) any later version.
14 //
15 // This library is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // Lesser General Public License for more details.
19 //
20 // You should have received a copy of the GNU Lesser General Public
21 // License along with this library; if not, write to the Free Software
22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
23 // USA
24 // Questions? Contact David M. Gay (dmgay@sandia.gov) or Eric T. Phipps
25 // (etphipp@sandia.gov).
26 //
27 // ***********************************************************************
28 // @HEADER
29 
30 #ifndef SACADO_SCALARPARAMETERENTRY_HPP
31 #define SACADO_SCALARPARAMETERENTRY_HPP
32 
33 #include "Sacado_Traits.hpp"
34 #include "Sacado_mpl_apply.hpp"
35 
36 namespace Sacado {
37 
39 
59  template <class EvalType> struct apply {
60  typedef EvalType type; };
61  };
62 
65  public:
66 
69 
72 
74  virtual void setRealValue(double value) = 0;
75 
77  virtual double getRealValue() const = 0;
78 
80  virtual void print(std::ostream& os) const = 0;
81  };
82 
86  template <typename EvalType, typename EvalTypeTraits = DefaultEvalTypeTraits>
88 
89  public:
90 
91  typedef typename EvalTypeTraits::template apply<EvalType>::type ScalarT;
92 
95 
97  virtual ~ScalarParameterEntry() {}
98 
100 
104  virtual void setValue(const ScalarT& value) = 0;
105 
107  virtual const ScalarT& getValue() const = 0;
108 
110 
113  virtual double getRealValue() const {
115  }
116 
118 
121  virtual void print(std::ostream& os) const {
122  os << getValue();
123  }
124 
125  };
126 }
127 
128 #endif
virtual double getRealValue() const =0
Get real parameter value.
EvalTypeTraits::template apply< EvalType >::type ScalarT
virtual void print(std::ostream &os) const =0
Print entry.
virtual void setRealValue(double value)=0
Set real parameter value.
virtual void setValue(const ScalarT &value)=0
Set parameter this object represents to value.
virtual double getRealValue() const
Get real parameter value.
virtual const ScalarT & getValue() const =0
Get parameter value this object represents.
virtual void print(std::ostream &os) const
Print entry.
A base class for scalar parameter values.
Abstract interface for all entries in Sacado::ScalarParameterFamily.
static KOKKOS_INLINE_FUNCTION const T & eval(const T &x)
Base traits definition mapping evaluation types to value types.