30 #ifndef SACADO_SCALARPARAMETERLIBRARY_HPP
31 #define SACADO_SCALARPARAMETERLIBRARY_HPP
37 #include "Teuchos_Assert.hpp"
45 template <
typename EvalTypeTraits = DefaultEvalTypeTraits>
48 ScalarParameterEntry<_,EvalTypeTraits> > {
67 template <
class EvalType>
72 template <
class EvalType>
75 const typename EvalTypeTraits::template apply<EvalType>::type& value);
78 template <
class EvalType>
83 template <
class EvalType>
84 const typename EvalTypeTraits::template apply<EvalType>::type&
85 getValue(
const std::string& name)
const;
98 template <
class EvalType>
100 fillVector(
const Teuchos::Array<std::string>& names,
116 template <
typename EvalTypeTraits>
122 TEUCHOS_TEST_FOR_EXCEPTION(
123 it == this->library.end(),
125 std::string(
"Sacado::ScalararameterLibrary::setRealValueForAllTypes(): ")
126 +
"Invalid parameter family " + name);
127 (*it).second->setRealValueForAllTypes(value);
130 template <
typename EvalTypeTraits>
131 template <
class EvalType>
137 TEUCHOS_TEST_FOR_EXCEPTION(
138 it == this->library.end(),
140 std::string(
"Sacado::ScalarParameterLibrary::setValueAsConstant(): ")
141 +
"Invalid parameter family " + name);
142 (*it).second->
template setRealValue<EvalType>(value);
145 template <
typename EvalTypeTraits>
146 template <
class EvalType>
150 const std::string& name,
151 const typename EvalTypeTraits::template apply<EvalType>::type& value)
154 TEUCHOS_TEST_FOR_EXCEPTION(
155 it == this->library.end(),
157 std::string(
"Sacado::ScalarParameterLibrary::setValueAsIndependent(): ")
158 +
"Invalid parameter family " + name);
159 (*it).second->
template setValue<EvalType>(value);
162 template <
typename EvalTypeTraits>
163 template <
class EvalType>
169 TEUCHOS_TEST_FOR_EXCEPTION(
170 it == this->library.end(),
172 std::string(
"Sacado::ScalarParameterLibrary::getValue(): ")
173 +
"Invalid parameter family " + name);
174 return (*it).second->
template getRealValue<EvalType>();
177 template <
typename EvalTypeTraits>
178 template <
class EvalType>
179 const typename EvalTypeTraits::template apply<EvalType>::type&
181 getValue(
const std::string& name)
const
184 TEUCHOS_TEST_FOR_EXCEPTION(
185 it == this->library.end(),
187 std::string(
"Sacado::ScalarParameterLibrary::getValue(): ")
188 +
"Invalid parameter family " + name);
189 return (*it).second->template getValue<EvalType>();
192 template <
typename EvalTypeTraits>
193 template <
class EvalType>
196 fillVector(
const Teuchos::Array<std::string>& names,
202 for (
unsigned int i=0; i<names.size(); i++) {
203 it = this->library.find(names[i]);
204 TEUCHOS_TEST_FOR_EXCEPTION(
205 it == this->library.end(),
207 std::string(
"Sacado::ParameterLibraryBase::fillVector(): ")
208 +
"Invalid parameter family " + names[i]);
210 pv[i].baseValue = (*it).second->template getRealValue<EvalType>();