59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
#include "jacobian.h"
|
|
#include "tasmet_variable.h"
|
|
#include "globalconf.h"
|
|
|
|
|
|
|
|
JacRow::JacRow(const JacCol& j):
|
|
JacRow(-1,1)
|
|
{
|
|
(*this)+=j;
|
|
}
|
|
JacRow::JacRow(us rowdof,const JacCol& j):
|
|
JacRow(rowdof,1)
|
|
{
|
|
(*this)+=j;
|
|
}
|
|
// JacRow& JacRow::operator+=(JacCol&& j){
|
|
// TRACE(45,"JacRow::operator+=(JacCol&& j)");
|
|
// jaccols.emplace_back(std::move(j));
|
|
// }
|
|
JacRow& JacRow::operator+=(const JacCol& j){
|
|
TRACE(10,"JacRow::operator+=(const JacCol& j)");
|
|
if(j.isToAdd())
|
|
jaccols.emplace_back(j);
|
|
return *this;
|
|
}
|
|
|
|
// JacRow& JacRow::addCol(const JacCol& jaccol){
|
|
// if(jaccol.isToAdd())
|
|
// jaccols.push_back(jaccol);
|
|
// return *this;
|
|
// }
|
|
JacRow& JacRow::operator*=(const d& val){
|
|
TRACE(2,"Jacobian::operator*=()");
|
|
for(JacCol& col: jaccols)
|
|
col.data()*=val;
|
|
return *this;
|
|
}
|
|
JacRow& JacRow::operator+=(const JacRow& other){
|
|
TRACE(2,"Jacobian::operator*=()");
|
|
this->jaccols.reserve(this->jaccols.capacity()+other.jaccols.size()-this->jaccols.size());
|
|
for(const JacCol& col :other.jaccols)
|
|
(*this)+=col;
|
|
return *this;
|
|
}
|
|
JacRow JacRow::operator-() const{
|
|
TRACE(15,"JacRow::operator-()");
|
|
JacRow result(*this);
|
|
for (JacCol& jaccol : result.jaccols)
|
|
jaccol*=-1;
|
|
|
|
return result;
|
|
}
|
|
void JacRow::prePostMultiply(const dmat& pre,const dmat& post) {
|
|
for(JacCol& jaccol: jaccols)
|
|
jaccol.prePostMultiply(pre,post);
|
|
}
|
|
|