#include <adToolImplCommon.hpp>
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. | |
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 () |
Additional Inherited Members | |
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. | |
|
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.