|
| ADToolBase (MPI_Datatype primalMpiType, MPI_Datatype adjointMpiType) |
| Construct the type safe wrapper.
|
|
void | createIndexTypeBuffer (void *&buf, size_t size) const |
| Create an array for the index variables.
|
|
void | createPrimalTypeBuffer (void *&buf, size_t size) const |
| Create an array for the passive variables.
|
|
void | deleteIndexTypeBuffer (void *&buf) const |
| Delete the array of the index variables.
|
|
void | deletePrimalTypeBuffer (void *&buf) const |
| Delete the array of the passive variables.
|
|
virtual void | addToolAction (HandleBase *h) const =0 |
| Register the handle so that the AD tool can evaluate it in the reverse sweep.
|
|
| ADToolInterface (MPI_Datatype primalMpiType, MPI_Datatype adjointMpiType) |
| Create an interface for the AD type.
|
|
virtual AMPI_Op | convertOperator (AMPI_Op op) const =0 |
| Convert the mpi intrinsic operators like MPI_SUM to the specific one for the AD tool.
|
|
MPI_Datatype | getAdjointMpiType () const |
| The mpi data type for the adjoint type.
|
|
MPI_Datatype | getPrimalMpiType () const |
| The mpi data type for the primal type.
|
|
virtual bool | isActiveType () const =0 |
| If this AD interface represents an AD type.
|
|
virtual bool | isHandleRequired () const =0 |
| The handle needs to be created if an adjoint action is required by the AD tool.
|
|
virtual bool | isModifiedBufferRequired () const =0 |
| Indicates if the AD tool needs to modify the buffer in order to send the correct data.
|
|
virtual bool | isOldPrimalsRequired () const =0 |
| Indicates if MeDiPack needs store the overwritten primal values for the AD tool.
|
|
virtual void | startAssembly (HandleBase *h) const =0 |
| Indicates to the AD tool that an adjoint action is in the progress of beeing recorded.
|
|
virtual void | stopAssembly (HandleBase *h) const =0 |
| Indicates to the AD tool that an adjoint action is beeing finished.
|
|
virtual | ~ADToolInterface () |
|
template<typename Impl, typename AdjointTypeB, typename PrimalTypeB, typename IndexTypeB>
class medi::ADToolBase< Impl, AdjointTypeB, PrimalTypeB, IndexTypeB >
A type save implementation of the AD tool interface.
All functions with void types are forwarded to the type safe implementation.
- Template Parameters
-
Impl | The class that implements the actual interface in a type save manner. |
AdjointTypeB | The data type for the adjoint variables that the implementation uses. |
PrimalTypeB | The data type for the passive variables that the implementation uses. |
IndexTypeB | The data type for the index variables that the implementation uses. |
template<typename Impl , typename AdjointTypeB , typename PrimalTypeB , typename IndexTypeB >
void medi::ADToolBase< Impl, AdjointTypeB, PrimalTypeB, IndexTypeB >::createIndexTypeBuffer |
( |
void *& | buf, |
|
|
size_t | size ) const |
|
inlinevirtual |
template<typename Impl , typename AdjointTypeB , typename PrimalTypeB , typename IndexTypeB >
void medi::ADToolBase< Impl, AdjointTypeB, PrimalTypeB, IndexTypeB >::createPrimalTypeBuffer |
( |
void *& | buf, |
|
|
size_t | size ) const |
|
inlinevirtual |
template<typename Impl , typename AdjointTypeB , typename PrimalTypeB , typename IndexTypeB >
void medi::ADToolBase< Impl, AdjointTypeB, PrimalTypeB, IndexTypeB >::deleteIndexTypeBuffer |
( |
void *& | buf | ) |
const |
|
inlinevirtual |
template<typename Impl , typename AdjointTypeB , typename PrimalTypeB , typename IndexTypeB >
void medi::ADToolBase< Impl, AdjointTypeB, PrimalTypeB, IndexTypeB >::deletePrimalTypeBuffer |
( |
void *& | buf | ) |
const |
|
inlinevirtual |