48 template <
typename ValueT,
unsigned length,
unsigned stride,
51 public Expr< GeneralFad<ValueT,Fad::ViewStorage<ValueT,length,stride,BaseFadT> > > {
96 ViewFad(ValueT* v,
const int arg_size = 0,
const int arg_stride = 0) :
106 template <
typename S>
109 GeneralFadType::operator=(v);
116 GeneralFadType::operator=(static_cast<const GeneralFadType&>(x));
121 template <
typename S>
125 GeneralFadType::operator=(x);
137 template <
typename S>
140 GeneralFadType::operator+=(x);
145 template <
typename S>
148 GeneralFadType::operator-=(x);
153 template <
typename S>
156 GeneralFadType::operator*=(x);
161 template <
typename S>
164 GeneralFadType::operator/=(x);
171 GeneralFadType::operator+=(static_cast<const GeneralFadType&>(x));
178 GeneralFadType::operator-=(static_cast<const GeneralFadType&>(x));
185 GeneralFadType::operator*=(static_cast<const GeneralFadType&>(x));
192 GeneralFadType::operator/=(static_cast<const GeneralFadType&>(x));
197 template <
typename S>
200 GeneralFadType::operator+=(x);
205 template <
typename S>
208 GeneralFadType::operator-=(x);
213 template <
typename S>
216 GeneralFadType::operator*=(x);
221 template <
typename S>
224 GeneralFadType::operator/=(x);
232 template <
typename T,
unsigned l,
unsigned s,
typename U>
233 struct BaseExpr< GeneralFad<
T,Fad::ViewStorage<T,l,s,U> > > {
238 template <
typename T,
unsigned l,
unsigned s,
typename U>
240 static const unsigned value =
241 ExprLevel< typename ViewFad<T,l,s,U>::value_type >::value + 1;
244 template <
typename T,
unsigned l,
unsigned s,
typename U>
246 static const bool value =
true;
251 template <
typename T,
unsigned l,
unsigned s,
typename U>
256 template <
typename T,
unsigned l,
unsigned s,
typename U>
261 template <
typename T,
unsigned l,
unsigned s,
typename U>
266 template <
typename T,
unsigned l,
unsigned s,
typename U>
ViewFad< T, length, stride, new_base_fad_type > type
Fad::ViewStorage< ValueT, length, stride, BaseFadT > StorageType
Base classes.
Base template specification for whether a type is a Fad type.
KOKKOS_INLINE_FUNCTION ViewFad(ValueT *v, const int arg_size=0, const int arg_stride=0)
View-specific constructor.
ExprType::value_type value_type
Typename of values.
Forward-mode AD class using dynamic memory allocation and expression templates.
KOKKOS_INLINE_FUNCTION ~ViewFad()
Destructor.
lambda< F >::type ::template apply< A1, A2, A3, A4, A5 >::type type
BaseExprType< T >::type T_for_base
#define KOKKOS_INLINE_FUNCTION
#define SACADO_ENABLE_VALUE_FUNC(RETURN_TYPE)
Determine whether a given type is a view.
Get the base Fad type from a view/expression.
KOKKOS_INLINE_FUNCTION ViewFad(const StorageType &s)
Constructor with supplied storage s.
#define SACADO_ENABLE_EXPR_FUNC(RETURN_TYPE)
FAD_NS::ViewFad< T, l, s, U >::base_expr_type type
GeneralFad< ValueT, StorageType > GeneralFadType
Turn ViewFad into a meta-function class usable with mpl::apply.
ExprType::scalar_type scalar_type
Typename of scalar's (which may be different from value_type)
ScalarType< ValueT >::type ScalarT
Typename of scalar's (which may be different from ValueT)
mpl::apply< base_fad_type, T_for_base >::type new_base_fad_type
Derivative array storage class that is a view into a contiguous memory allocation. It does not provide proper value semantics and thus should not be used in a general-purpose scalar type.
BaseFadT base_fad_type
Fad type view is based on.
Expr< GeneralFadType > ExprType