This base class is used to modify the math representation of a statement. More...
#include <commonReaderWriterBase.hpp>
Public Types | |
using | Base = CommonBaseTapeWriter<T_Type> |
See CommonBaseTapeWriter. | |
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 | |
CommonTextTapeWriter (bool writeDotHeaderFooter, std::string const &name, std::vector< Identifier > const &in, std::vector< Identifier > const &out) | |
Constructor. | |
void | finish () |
After all the statements have been written, the finish method finalizes the writing process. | |
void | start (Tape &tape) |
Destructor. | |
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. | |
virtual 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::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 * | fileHandleGraph = nullptr |
The handle for the writer. | |
std::vector< Identifier > | identifierExtensions |
std::vector< IdentifierType > | identifierType |
bool | writeDotHeaderFooter |
This flag sets toggles the heading and color 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. | |
Protected Member Functions | |
void | createEdge (Identifier const &from, Identifier const &to, std::string const &label="") |
Return a string that creates an edge between two nodes in the .dot language. | |
void | createNode (Identifier const &identifier, std::string const &label) |
Creates a new node for a given Identifier and label. | |
std::string | formatNodeLabel (Identifier const &identifier) |
Return a string with the current identifier type and the identifier value. | |
std::string | formatNodeName (Identifier const &identifier, int extensionOffset=0) |
Add the identifier extension of the identifier to the node name. | |
std::string | modifyMathRep (std::string const &mathRep, Identifier const &lhsIdentifier, Identifier const *const rhsIdentifiers, size_t const &nActiveValues) |
Replaces all general identifiers in the math representation with the input, output or temporary annotation. E.g. x42 -> Y42 for a variable tagged as output. | |
std::string | nodeColorProperties (Identifier const &identifier) |
Returns the color for a given identifier. | |
void | placeUnusedRhsNodes (Identifier const *const rhsIdentifiers, Config::ArgumentSize const &nArguments) |
Ensure that all the nodes on the rhs have been placed in the .dot file before creating edges to them. | |
void | replaceAll (std::string &str, const std::string &search, const std::string &replace) |
Replaces all substrings of search with replace in str . | |
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. | |
This base class is used to modify the math representation of a statement.
Additionally, the class is used by the graphical writers to create nodes and edges.
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 >.
std::vector<Identifier> codi::CommonTextTapeWriter< T_Type >::identifierExtensions |
Used to differentiate multiple instances of the same identifier.
std::vector<IdentifierType> codi::CommonTextTapeWriter< T_Type >::identifierType |
Used to differentiate between an input, output and temp variable.