45 const std::string& _commonHeaderName
223 for( i = 0; i < 3; i++ ) {
227 if( transpose ) ss1 << b_mem_complex_.
get(index,j) <<
" -= (";
228 else ss1 << b_mem_complex_.
get(index,j) <<
" += (";
229 for( i = 0; i < 3; i++ ) {
230 if( i > 0 ) ss1 <<
" + ";
231 ss1 << transf1_var.
get(1,i) <<
"*" << b_full_.
get(index+i*
dim,j);
234 ss1 << b_mem_complex_.
get(index,j) <<
" *= " << stepSizeV.
get(0,0) <<
";\n";
238 for( i = 0; i < 3; i++ ) {
242 ss2 << b_mem_real_.
get(index,j) <<
" *= " << stepSizeV.
get(0,0) <<
";\n";
259 ss << b_full_.
get(index,j) <<
" = ";
260 if( transpose ) ss << transf2_var.
get(0,0) <<
"*creal(" << b_mem_complex_.
get(index,j) <<
") - ";
261 else ss << transf2_var.
get(0,0) <<
"*creal(" << b_mem_complex_.
get(index,j) <<
") + ";
262 ss << transf2_var.
get(0,1) <<
"*cimag(" << b_mem_complex_.
get(index,j) <<
") + ";
263 ss << transf2_var.
get(0,2) <<
"*" << b_mem_real_.
get(index,j) <<
";\n";
265 ss << b_full_.
get(index+
dim,j) <<
" = ";
266 if( transpose ) ss << transf2_var.
get(1,0) <<
"*creal(" << b_mem_complex_.
get(index,j) <<
") - ";
267 else ss << transf2_var.
get(1,0) <<
"*creal(" << b_mem_complex_.
get(index,j) <<
") + ";
268 ss << transf2_var.
get(1,1) <<
"*cimag(" << b_mem_complex_.
get(index,j) <<
") + ";
269 ss << transf2_var.
get(1,2) <<
"*" << b_mem_real_.
get(index,j) <<
";\n";
271 ss << b_full_.
get(index+2*
dim,j) <<
" = ";
272 if( transpose ) ss << transf2_var.
get(2,0) <<
"*creal(" << b_mem_complex_.
get(index,j) <<
") - ";
273 else ss << transf2_var.
get(2,0) <<
"*creal(" << b_mem_complex_.
get(index,j) <<
") + ";
274 ss << transf2_var.
get(2,1) <<
"*cimag(" << b_mem_complex_.
get(index,j) <<
") + ";
275 ss << transf2_var.
get(2,2) <<
"*" << b_mem_real_.
get(index,j) <<
";\n";
419 return string(
"solve_real_" ) +
identifier +
"system";
425 return string(
"solve_real_" ) +
identifier +
"system_reuse";
431 return string(
"solve_real_trans_" ) +
identifier +
"system_reuse";
437 return string(
"solve_complex_" ) +
identifier +
"system";
443 return string(
"solve_complex_" ) +
identifier +
"system_reuse";
449 return string(
"solve_complex_trans_" ) +
identifier +
"system_reuse";
ExportVariable b_mem_complex
ExportVariable rk_swap_complex
returnValue setTransformations(const DMatrix &_transf1, const DMatrix &_transf2, const DMatrix &_transf1_T, const DMatrix &_transf2_T)
virtual returnValue getDataDeclarations(ExportStatementBlock &declarations, ExportStruct dataStruct=ACADO_ANY) const
const std::string getNameSolveTransposeReuseFunction()
returnValue setImplicit(BooleanType _implicit)
ExportFunction solveReuseTranspose
returnValue setStepSize(double _stepsize)
virtual returnValue transformRightHandSide(ExportStatementBlock &code, const ExportVariable &b_mem_complex_, const ExportVariable &b_mem_real_, const ExportVariable &b_full_, const ExportVariable &transf_, const ExportIndex &index, const bool transpose)
virtual returnValue setup()
ExportFunction solveReuseTranspose_full
ExportFunction solveReuse_full
Allows to pass back messages to the calling function.
returnValue appendVariableNames(std::stringstream &string)
BEGIN_NAMESPACE_ACADO typedef unsigned int uint
virtual returnValue setupSolveReuseTranspose(ExportFunction &_solveReuse, ExportVariable &_bPerm)
Allows to export code of a for-loop.
string toString(T const &value)
virtual returnValue setupSolveReuseComplete(ExportFunction &_solveReuse, ExportVariable &_bPerm)
ExportVariable getElement(const ExportIndex &rowIdx, const ExportIndex &colIdx) const
#define CLOSE_NAMESPACE_ACADO
const std::string getNameSolveRealReuseFunction()
ExportVariable rk_perm_full
Defines a scalar-valued index variable to be used for exporting code.
ExportVariable determinant
const std::string getNameSolveRealFunction()
returnValue appendVariableNames(std::stringstream &string)
ExportVariable b_mem_complex_trans
ExportVariable rk_bPerm_complex_trans
virtual returnValue getCode(ExportStatementBlock &code)
ExportVariable b_mem_real_trans
ExportVariable b_mem_real
Allows to export Gaussian elimination for solving linear systems of specific dimensions.
ExportFunction solveReuse_complex
ExportIRK3StageSimplifiedNewton(UserInteraction *_userInteraction=0, const std::string &_commonHeaderName="")
ExportVariable b_complex_trans
ExportFunction solveReuse_complexTranspose
const std::string getNameSolveReuseFunction()
const std::string get(const ExportIndex &rowIdx, const ExportIndex &colIdx) const
ExportVariable A_mem_real
ExportVariable determinant_complex
Encapsulates all user interaction for setting options, logging data and plotting results.
ExportFunction solve_complex
Allows to export code of an arbitrary function.
const std::string getNameSolveComplexReuseFunction()
returnValue addStatement(const ExportStatement &_statement)
ExportFunction solveReuse
returnValue setEigenvalues(const DMatrix &_eig)
std::string getFullName() const
const std::string getNameSolveComplexTransposeReuseFunction()
unsigned getNumRows() const
returnValue addLinebreak(uint num=1)
ExportFunction & setReturnValue(const ExportVariable &_functionReturnValue, bool _returnAsPointer=false)
virtual returnValue getDataDeclarations(ExportStatementBlock &declarations, ExportStruct dataStruct=ACADO_ANY) const
ExportVariable rk_perm_complex
unsigned getNumCols() const
const std::string getNameSolveComplexFunction()
const std::string getNameSolveRealTransposeReuseFunction()
virtual returnValue setup()
returnValue addDeclaration(const ExportVariable &_data, ExportStruct _dataStruct=ACADO_ANY)
virtual returnValue transformSolution(ExportStatementBlock &code, const ExportVariable &b_mem_complex_, const ExportVariable &b_mem_real_, const ExportVariable &b_full_, const ExportVariable &tranfs_, const ExportIndex &index, const bool transpose)
ExportVariable A_mem_complex
virtual returnValue getFunctionDeclarations(ExportStatementBlock &declarations) const
const std::string getNameSolveFunction()
#define BEGIN_NAMESPACE_ACADO
ExportFunction solve_full
ExportVariable b_full_trans
returnValue addFunction(const ExportFunction &_function)
virtual returnValue getFunctionDeclarations(ExportStatementBlock &declarations) const
virtual ~ExportIRK3StageSimplifiedNewton()
Allows to export code for a block of statements.
ExportArgument getAddress(const ExportIndex &_rowIdx, const ExportIndex &_colIdx=emptyConstExportIndex) const
ExportVariable rk_bPerm_trans
ExportFunction & addIndex(const ExportIndex &_index)
#define ACADOERROR(retval)
Defines a matrix-valued variable to be used for exporting code.
ExportVariable rk_bPerm_complex
returnValue addFunctionCall(const std::string &_fName, const ExportArgument &_argument1=emptyConstExportArgument, const ExportArgument &_argument2=emptyConstExportArgument, const ExportArgument &_argument3=emptyConstExportArgument, const ExportArgument &_argument4=emptyConstExportArgument, const ExportArgument &_argument5=emptyConstExportArgument, const ExportArgument &_argument6=emptyConstExportArgument, const ExportArgument &_argument7=emptyConstExportArgument, const ExportArgument &_argument8=emptyConstExportArgument, const ExportArgument &_argument9=emptyConstExportArgument)
virtual returnValue setupFactorization(ExportFunction &_solve, ExportVariable &_swap, ExportVariable &_determinant, const std::string &absF)