#include <adToolImplCommon.hpp>

Public Types | |
| using | Base = ADToolBase<Impl, AdjointType, PrimalType, IndexType> |
Public Types inherited from medi::ADToolInterface | |
| typedef void | AdjointType |
| The data type that is used for the adjoint variables. | |
| typedef void | IndexType |
| The data type from the AD tool for the identification of AD variables. | |
| typedef void | ModifiedType |
| The type that is send through the modified buffers. | |
| typedef void | PrimalType |
| The data type used for the floating point data. | |
| typedef void | Type |
| The actual type that the AD implementation uses. | |
Public Member Functions | |
| ADToolImplCommon (MPI_Datatype primalMpiType, MPI_Datatype adjointMpiType) | |
| void | createIndexTypeBuffer (IndexType *&buf, size_t size) const |
| Create an array for the index variables. | |
| void | createPrimalTypeBuffer (PrimalType *&buf, size_t size) const |
| Create an array for the passive variables. | |
| void | deleteIndexTypeBuffer (IndexType *&buf) const |
| Delete the array of the index variables. | |
| void | deletePrimalTypeBuffer (PrimalType *&buf) const |
| Delete the array of the passive variables. | |
| bool | isActiveType () const |
| If this AD interface represents an AD type. | |
| bool | isModifiedBufferRequired () const |
| Indicates if the AD tool needs to modify the buffer in order to send the correct data. | |
| bool | isOldPrimalsRequired () const |
| Indicates if MeDiPack needs store the overwritten primal values for the AD tool. | |
Public Member Functions inherited from medi::ADToolBase< Impl, AdjointType, PrimalType, IndexType > | |
| ADToolBase (MPI_Datatype primalMpiType, MPI_Datatype adjointMpiType) | |
| Construct the type safe wrapper. | |
| ADToolBase (MPI_Datatype primalMpiType, MPI_Datatype adjointMpiType) | |
| Construct the type safe wrapper. | |
Public Member Functions inherited from medi::ADToolInterface | |
| 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 | isHandleRequired () const =0 |
| The handle needs to be created if an adjoint action is required by 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 () |
| using medi::ADToolImplCommon< Impl, restorePrimal, modifiedBuffer, Type, AdjointType, PrimalType, IndexType >::Base = ADToolBase<Impl, AdjointType, PrimalType, IndexType> |
|
inline |
|
inlinevirtual |
Create an array for the index variables.
| [out] | buf | The pointer for the buffer. |
| [in] | size | The size of the buffer. |
Reimplemented from medi::ADToolBase< Impl, AdjointType, PrimalType, IndexType >.
|
inlinevirtual |
Create an array for the passive variables.
| [out] | buf | The pointer for the buffer. |
| [in] | size | The size of the buffer. |
Reimplemented from medi::ADToolBase< Impl, AdjointType, PrimalType, IndexType >.
|
inlinevirtual |
Delete the array of the index variables.
| [in,out] | buf | The pointer for the buffer. |
Reimplemented from medi::ADToolBase< Impl, AdjointType, PrimalType, IndexType >.
|
inlinevirtual |
Delete the array of the passive variables.
| [in,out] | buf | The pointer for the buffer. |
Reimplemented from medi::ADToolBase< Impl, AdjointType, PrimalType, IndexType >.
|
inlinevirtual |
If this AD interface represents an AD type.
Implements medi::ADToolInterface.
|
inlinevirtual |
Indicates if the AD tool needs to modify the buffer in order to send the correct data.
Implements medi::ADToolInterface.
|
inlinevirtual |
Indicates if MeDiPack needs store the overwritten primal values for the AD tool.
Implements medi::ADToolInterface.