Writes a primal value tape in a binary format. More...
#include <primalBinaryReaderWriter.hpp>
Public Types | |
using | EvalHandle = typename Tape::EvalHandle |
See TapeWriterInterface. | |
using | Identifier = typename Type::Identifier |
See TapeWriterInterface. | |
using | Real = typename Type::Real |
See TapeWriterInterface. | |
using | Tape = typename Type::Tape |
See TapeWriterInterface. | |
using | Type = T_Type |
See TapeWriterInterface. | |
Public Types inherited from codi::PrimalBaseTapeWriter< T_Type > | |
using | EvalHandle = typename Tape::EvalHandle |
See TapeWriterInterface. | |
using | Identifier = typename Type::Identifier |
See TapeWriterInterface. | |
using | Real = typename Type::Real |
See TapeWriterInterface. | |
using | Tape = typename Type::Tape |
See TapeWriterInterface. | |
using | Type = T_Type |
See TapeWriterInterface. | |
Public Types inherited from codi::CommonBaseTapeWriter< T_Type > | |
using | Identifier = typename Type::Identifier |
See TapeWriterInterface. | |
using | Tape = typename Type::Tape |
See TapeWriterInterface. | |
using | Type = T_Type |
See TapeWriterInterface. | |
Public Types inherited from codi::TapeWriterInterface< T_Type > | |
using | EvalHandle = typename Tape::EvalHandle |
Evaluation handle used for primal value tapes. | |
using | Identifier = typename Type::Identifier |
Identifier for the internal management, e.g. int. | |
using | Real = typename Type::Real |
Primal computation type, e.g. double. | |
using | Tape = typename Type::Tape |
The tape type that is to be written out. | |
using | Type = T_Type |
The evaluation type. | |
Public Member Functions | |
void | finish () |
After all the statements have been written, the finish method finalizes the writing process. | |
PrimalBinaryTapeWriter (std::string const &name, std::vector< Identifier > const &in, std::vector< Identifier > const &out) | |
Constructor. | |
void | printPrimals (Tape &tape) |
Print the primal vector in sparse vector representation. | |
void | start (Tape &tape) |
Destructor. | |
void | writeStatement (WriteInfo const &info, Identifier const &curLhsIdentifier, Real const &primalValue, Config::ArgumentSize const &nPassiveValues, size_t const &curRhsIdentifiersPos, Identifier const *const rhsIdentifiers, size_t const &curPassiveValuePos, Real const *const passiveValues, size_t &curConstantPos, Real const *const constantValues, EvalHandle stmtEvalHandle) |
Called for each statement. The method writes the current statement to the file. This overload is used for the primal value writers and contains additional arguments, such as the WriteInfo. | |
Public Member Functions inherited from codi::PrimalBaseTapeWriter< T_Type > | |
PrimalBaseTapeWriter (std::string const &name, std::vector< Identifier > const &in, std::vector< Identifier > const &out) | |
Constructor. | |
Public Member Functions inherited from codi::CommonBaseTapeWriter< T_Type > | |
CommonBaseTapeWriter (std::string const &name, std::vector< Identifier > const &in, std::vector< Identifier > const &out) | |
Constructor. | |
Public Member Functions inherited from codi::TapeWriterInterface< T_Type > | |
virtual void | writeLowLevelFunction (size_t &curLLFByteDataPos, char *dataPtr, size_t &curLLFInfoDataPos, Config::LowLevelFunctionToken *const tokenPtr, Config::LowLevelFunctionDataSize *const dataSizePtr) |
Used for statements that contain a low level function. | |
virtual void | writeStatement (Identifier const &curLhsIdentifier, size_t &curJacobianPos, Real const *const rhsJacobians, Identifier const *const rhsIdentifiers, Config::ArgumentSize const &nJacobians) |
Called for each statement. The method writes the current statement to the file. This overload is used for the Jacobian writers. | |
Public Member Functions inherited from codi::CommonReaderWriterMethods | |
CommonReaderWriterMethods () | |
Constructor. | |
CommonReaderWriterMethods (std::string const &name) | |
Constructor. | |
std::string | modifyFileName (std::string const &suffix) |
Remove the file extension and replace it with a new suffix. | |
void | openFile (FILE *&fileHandle, std::string const &name, std::string const &mode) |
Public Attributes | |
FILE * | fileHandleBin = nullptr |
File handle. | |
Public Attributes inherited from codi::PrimalBaseTapeWriter< T_Type > | |
size_t | evalHandleCount |
Count the number of unique evalHandles. | |
std::vector< std::string > | evalHandleStatements |
The unique evalHandleStatements. | |
std::map< EvalHandle, size_t > | existingEvalHandles |
Contains the existing handles and the assigned index. | |
Public Attributes inherited from codi::CommonBaseTapeWriter< T_Type > | |
std::vector< Identifier > | inputVariables |
The identifiers which have been registered as inputs. | |
std::vector< Identifier > | outputVariables |
The identifiers which have been registered as outputs. | |
Public Attributes inherited from codi::CommonReaderWriterMethods | |
std::string | fileName |
The base file name provided by the user. | |
Additional Inherited Members | |
Protected Member Functions inherited from codi::PrimalBaseTapeWriter< T_Type > | |
void | generateHandleCreatorFile () |
This method is used to generate an .hpp file which creates the necessary EvalHandles in the reading process. | |
size_t | getEvalHandleIndex (EvalHandle const evalHandle, std::string const &evalStatement) |
Get the index for an evalHandle. | |
Protected Member Functions inherited from codi::CommonBaseTapeWriter< T_Type > | |
void | printIoBinary (Tape &tape) |
Generate the IO file in a binary format. | |
void | printIoText (Tape &tape) |
Generate the IO file in a text format. | |
Writes a primal value tape in a binary format.
The format of the produced "filename".dat
file is as follows:
The writer also generates an additional file "filename"IO.dat
for the inputs and outputs, and a "filename"Primals.dat
for a sparse vector containing the primal values.
A header file is produced that generates the evaluation handles in the new context "filename".hpp
.
See codi::TapeWriterInterface for a general description on how to use tape writers.
T_Type | The CoDiPack type of the tape that is to be written out. |
|
inlinevirtual |
After all the statements have been written, the finish method finalizes the writing process.
Reimplemented from codi::TapeWriterInterface< T_Type >.
|
inlinevirtual |
Destructor.
Called once at the beginning of the tape write process. Should initialize all required data structures and files.
Reimplemented from codi::TapeWriterInterface< T_Type >.
|
inlinevirtual |
Called for each statement. The method writes the current statement to the file. This overload is used for the primal value writers and contains additional arguments, such as the WriteInfo.
Reimplemented from codi::TapeWriterInterface< T_Type >.