Implements map and ref for both static & dynamic mode
See merge request oss/rotgen!12
This commit is contained in:
parent
aacae1cbb1
commit
6c2b260229
58 changed files with 4121 additions and 1205 deletions
|
|
@ -50,21 +50,27 @@ struct CLASSNAME::payload
|
|||
|
||||
CLASSNAME::~CLASSNAME() = default;
|
||||
|
||||
void CLASSNAME::assign(SOURCENAME const& m)
|
||||
{
|
||||
storage_->data = m.storage()->data;
|
||||
}
|
||||
|
||||
//==================================================================================================
|
||||
// Matrix API
|
||||
//==================================================================================================
|
||||
rotgen::Index CLASSNAME::rows() const { return storage_->data.rows(); }
|
||||
rotgen::Index CLASSNAME::cols() const { return storage_->data.cols(); }
|
||||
rotgen::Index CLASSNAME::size() const { return storage_->data.size(); }
|
||||
rotgen::Index CLASSNAME::innerStride() const { return storage_->data.innerStride(); }
|
||||
rotgen::Index CLASSNAME::outerStride() const { return storage_->data.outerStride(); }
|
||||
|
||||
TYPE& CLASSNAME::operator()(std::size_t i, std::size_t j) { return storage_->data(i,j); }
|
||||
TYPE const& CLASSNAME::operator()(std::size_t i, std::size_t j) const { return storage_->data(i,j); }
|
||||
|
||||
/*
|
||||
TYPE& CLASSNAME::operator()(std::size_t index) { return storage_->data(index); }
|
||||
TYPE const& CLASSNAME::operator()(std::size_t index) const { return storage_->data(index); }
|
||||
*/
|
||||
TYPE& CLASSNAME::operator()(std::size_t index) { return storage_->data.data()[index]; }
|
||||
TYPE const& CLASSNAME::operator()(std::size_t index) const { return storage_->data.data()[index]; }
|
||||
|
||||
TYPE* CLASSNAME::data() { return storage_->data.data(); }
|
||||
const TYPE* CLASSNAME::data() const { return storage_->data.data(); }
|
||||
|
||||
SOURCENAME CLASSNAME::transpose() const
|
||||
|
|
@ -130,6 +136,11 @@ struct CLASSNAME::payload
|
|||
return lhs.storage_->data == rhs.storage_->data;
|
||||
}
|
||||
|
||||
bool operator!=(CLASSNAME const& lhs, CLASSNAME const& rhs)
|
||||
{
|
||||
return lhs.storage_->data != rhs.storage_->data;
|
||||
}
|
||||
|
||||
CLASSNAME& CLASSNAME::operator+=(CLASSNAME const& rhs)
|
||||
{
|
||||
storage_->data += rhs.storage_->data;
|
||||
|
|
@ -167,35 +178,35 @@ struct CLASSNAME::payload
|
|||
return *this;
|
||||
}
|
||||
|
||||
SOURCENAME CLASSNAME::matrix_addition(CLASSNAME const& rhs) const
|
||||
SOURCENAME CLASSNAME::add(CLASSNAME const& rhs) const
|
||||
{
|
||||
SOURCENAME result;
|
||||
result.storage()->assign(storage_->data + rhs.storage_->data);
|
||||
return result;
|
||||
}
|
||||
|
||||
SOURCENAME CLASSNAME::matrix_subtraction(CLASSNAME const& rhs) const
|
||||
SOURCENAME CLASSNAME::sub(CLASSNAME const& rhs) const
|
||||
{
|
||||
SOURCENAME result;
|
||||
result.storage()->assign(storage_->data - rhs.storage_->data);
|
||||
return result;
|
||||
}
|
||||
|
||||
SOURCENAME CLASSNAME::matrix_multiplication(CLASSNAME const& rhs) const
|
||||
SOURCENAME CLASSNAME::mul(CLASSNAME const& rhs) const
|
||||
{
|
||||
SOURCENAME result;
|
||||
result.storage()->assign(storage_->data * rhs.storage_->data);
|
||||
return result;
|
||||
}
|
||||
|
||||
SOURCENAME CLASSNAME::matrix_multiplication(TYPE s) const
|
||||
SOURCENAME CLASSNAME::mul(TYPE s) const
|
||||
{
|
||||
SOURCENAME result;
|
||||
result.storage()->assign(storage_->data * s);
|
||||
return result;
|
||||
}
|
||||
|
||||
SOURCENAME CLASSNAME::matrix_division(TYPE s) const
|
||||
SOURCENAME CLASSNAME::div(TYPE s) const
|
||||
{
|
||||
SOURCENAME result;
|
||||
result.storage()->assign(storage_->data / s);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue