Opm::AutoDiff< Scalar > Class Template Reference

#include <AutoDiff.hpp>

Public Member Functions

void operator+= (const Scalar &rhs)
 
void operator+= (const AutoDiff &rhs)
 
void operator-= (const Scalar &rhs)
 
void operator-= (const AutoDiff &rhs)
 
void operator*= (const Scalar &rhs)
 
void operator*= (const AutoDiff &rhs)
 
void operator/= (const Scalar &rhs)
 
void operator/= (const AutoDiff &rhs)
 
template<class Ostream >
Ostream & print (Ostream &os) const
 
const Scalar val () const
 
const Scalar der () const
 

Static Public Member Functions

static AutoDiff constant (const Scalar x)
 
static AutoDiff variable (const Scalar x)
 
static AutoDiff function (const Scalar x, const Scalar dx)
 

Detailed Description

template<typename Scalar>
class Opm::AutoDiff< Scalar >

A simple class for forward-mode automatic differentiation.

The class represents a single value and a single derivative. Only basic arithmetic operators and a few functions are implemented for it, it is mostly intended for simple experimentation.

Member Function Documentation

template<typename Scalar>
static AutoDiff Opm::AutoDiff< Scalar >::constant ( const Scalar  x)
inlinestatic

Create an AutoDiff object representing a constant, that is, its derivative is zero.

template<typename Scalar>
const Scalar Opm::AutoDiff< Scalar >::der ( ) const
inline
template<typename Scalar>
static AutoDiff Opm::AutoDiff< Scalar >::function ( const Scalar  x,
const Scalar  dx 
)
inlinestatic

Create an AutoDiff object representing a function value and its derivative.

Referenced by Opm::cos(), Opm::operator-(), Opm::operator/(), and Opm::sqrt().

template<typename Scalar>
void Opm::AutoDiff< Scalar >::operator*= ( const Scalar &  rhs)
inline
template<typename Scalar>
void Opm::AutoDiff< Scalar >::operator*= ( const AutoDiff< Scalar > &  rhs)
inline
template<typename Scalar>
void Opm::AutoDiff< Scalar >::operator+= ( const Scalar &  rhs)
inline
template<typename Scalar>
void Opm::AutoDiff< Scalar >::operator+= ( const AutoDiff< Scalar > &  rhs)
inline
template<typename Scalar>
void Opm::AutoDiff< Scalar >::operator-= ( const Scalar &  rhs)
inline
template<typename Scalar>
void Opm::AutoDiff< Scalar >::operator-= ( const AutoDiff< Scalar > &  rhs)
inline
template<typename Scalar>
void Opm::AutoDiff< Scalar >::operator/= ( const Scalar &  rhs)
inline
template<typename Scalar>
void Opm::AutoDiff< Scalar >::operator/= ( const AutoDiff< Scalar > &  rhs)
inline
template<typename Scalar>
template<class Ostream >
Ostream& Opm::AutoDiff< Scalar >::print ( Ostream &  os) const
inline
template<typename Scalar>
const Scalar Opm::AutoDiff< Scalar >::val ( ) const
inline
template<typename Scalar>
static AutoDiff Opm::AutoDiff< Scalar >::variable ( const Scalar  x)
inlinestatic

Create an AutoDiff object representing a primary variable, that is, its derivative is one.


The documentation for this class was generated from the following file: