#include "DispCompIeqcJecKeqc.h" #include "EndFrameqc.h" using namespace MbD; MbD::DispCompIeqcJecKeqc::DispCompIeqcJecKeqc() { } MbD::DispCompIeqcJecKeqc::DispCompIeqcJecKeqc(EndFrmcptr frmi, EndFrmcptr frmj, EndFrmcptr frmk, int axisk) : DispCompIecJecKeqc(frmi, frmj, frmk, axisk) { } void MbD::DispCompIeqcJecKeqc::initialize() { DispCompIecJecKeqc::initialize(); priIeJeKepXI = std::make_shared>(3); priIeJeKepEI = std::make_shared>(4); ppriIeJeKepEIpEI = std::make_shared>(4, 4); ppriIeJeKepXIpEK = std::make_shared>(3, 4); ppriIeJeKepEIpEK = std::make_shared>(4, 4); } void MbD::DispCompIeqcJecKeqc::calcPostDynCorrectorIteration() { DispCompIecJecKeqc::calcPostDynCorrectorIteration(); auto frmIqc = std::static_pointer_cast(frmI); auto mprIeJeOpEIT = frmIqc->prOeOpE->transpose(); auto mpprIeJeOpEIpEI = frmIqc->pprOeOpEpE; for (int i = 0; i < 3; i++) { priIeJeKepXI->at(i) = 0.0 - (aAjOKe->at(i)); } for (int i = 0; i < 4; i++) { priIeJeKepEI->at(i) = 0.0 - (aAjOKe->dot(mprIeJeOpEIT->at(i))); } for (int i = 0; i < 3; i++) { auto& ppriIeJeKepXIipEK = ppriIeJeKepXIpEK->at(i); for (int j = 0; j < 4; j++) { ppriIeJeKepXIipEK->at(j) = 0.0 - (pAjOKepEKT->at(j)->at(i)); } } for (int i = 0; i < 4; i++) { auto& mpprIeJeOpEIipEI = mpprIeJeOpEIpEI->at(i); auto& ppriIeJeKepEIipEI = ppriIeJeKepEIpEI->at(i); ppriIeJeKepEIipEI->at(i) = 0.0 - (aAjOKe->dot(mpprIeJeOpEIipEI->at(i))); for (int j = 0; j < 4; j++) { auto ppriIeJeKepEIipEIj = 0.0 - (aAjOKe->dot(mpprIeJeOpEIipEI->at(j))); ppriIeJeKepEIipEI->at(j) = ppriIeJeKepEIipEIj; ppriIeJeKepEIpEI->at(j)->at(i) = ppriIeJeKepEIipEIj; } } for (int i = 0; i < 4; i++) { auto& mprIeJeOpEITi = mprIeJeOpEIT->at(i); auto& ppriIeJeKepEIipEK = ppriIeJeKepEIpEK->at(i); for (int j = 0; j < 4; j++) { ppriIeJeKepEIipEK->at(j) = 0.0 - (pAjOKepEKT->at(j)->dot(mprIeJeOpEITi)); } } } FRowDsptr MbD::DispCompIeqcJecKeqc::pvaluepXI() { return priIeJeKepXI; } FRowDsptr MbD::DispCompIeqcJecKeqc::pvaluepEI() { return priIeJeKepEI; } FRowDsptr MbD::DispCompIeqcJecKeqc::pvaluepEK() { return priIeJeKepEK; } FMatDsptr MbD::DispCompIeqcJecKeqc::ppvaluepXIpEK() { return ppriIeJeKepXIpEK; } FMatDsptr MbD::DispCompIeqcJecKeqc::ppvaluepEIpEK() { return ppriIeJeKepEIpEK; } FMatDsptr MbD::DispCompIeqcJecKeqc::ppvaluepEIpEI() { return ppriIeJeKepEIpEI; }