More products
This commit is contained in:
parent
682202825e
commit
2554a83890
1 changed files with 23 additions and 21 deletions
|
|
@ -10,20 +10,20 @@
|
||||||
|
|
||||||
namespace rotgen
|
namespace rotgen
|
||||||
{
|
{
|
||||||
|
//================================================================================================
|
||||||
|
// Internal paylod
|
||||||
|
//================================================================================================
|
||||||
struct matrix_impl64::payload
|
struct matrix_impl64::payload
|
||||||
{
|
{
|
||||||
Eigen::Matrix<double,Eigen::Dynamic,Eigen::Dynamic> data;
|
Eigen::Matrix<double,Eigen::Dynamic,Eigen::Dynamic> data;
|
||||||
payload(std::size_t r=0, std::size_t c=0) : data(r, c) {}
|
payload(std::size_t r=0, std::size_t c=0) : data(r, c) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
std::ostream& operator<<(std::ostream& os,matrix_impl64 const& m)
|
|
||||||
{
|
|
||||||
return os << m.storage_->data;
|
|
||||||
}
|
|
||||||
|
|
||||||
matrix_impl64::matrix_impl64(std::size_t r, std::size_t c)
|
//==================================================================================================
|
||||||
: storage_(std::make_unique<payload>(r,c))
|
// Constructors & Special Members
|
||||||
{}
|
//==================================================================================================
|
||||||
|
matrix_impl64::matrix_impl64(std::size_t r, std::size_t c) : storage_(std::make_unique<payload>(r,c)) {}
|
||||||
|
|
||||||
matrix_impl64::matrix_impl64(matrix_impl64 const& o)
|
matrix_impl64::matrix_impl64(matrix_impl64 const& o)
|
||||||
: matrix_impl64(o.storage_->data.rows(),o.storage_->data.cols())
|
: matrix_impl64(o.storage_->data.rows(),o.storage_->data.cols())
|
||||||
|
|
@ -42,24 +42,26 @@ namespace rotgen
|
||||||
|
|
||||||
matrix_impl64::~matrix_impl64() = default;
|
matrix_impl64::~matrix_impl64() = default;
|
||||||
|
|
||||||
std::size_t matrix_impl64::rows() const
|
//==================================================================================================
|
||||||
|
// Matrix API
|
||||||
|
//==================================================================================================
|
||||||
|
std::size_t matrix_impl64::rows() const { return static_cast<std::size_t>(storage_->data.rows()); }
|
||||||
|
std::size_t matrix_impl64::cols() const { return static_cast<std::size_t>(storage_->data.cols()); }
|
||||||
|
|
||||||
|
double& matrix_impl64::operator()(std::size_t i, std::size_t j) { return storage_->data(i,j); }
|
||||||
|
double const& matrix_impl64::operator()(std::size_t i, std::size_t j) const { return storage_->data(i,j); }
|
||||||
|
|
||||||
|
//==================================================================================================
|
||||||
|
// Operators
|
||||||
|
//==================================================================================================
|
||||||
|
std::ostream& operator<<(std::ostream& os,matrix_impl64 const& m)
|
||||||
{
|
{
|
||||||
return static_cast<std::size_t>(storage_->data.rows());
|
return os << m.storage_->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::size_t matrix_impl64::cols() const
|
bool operator==(matrix_impl64 const& lhs, matrix_impl64 const& rhs)
|
||||||
{
|
{
|
||||||
return static_cast<std::size_t>(storage_->data.cols());
|
return lhs.storage_->data == rhs.storage_->data;
|
||||||
}
|
|
||||||
|
|
||||||
double& matrix_impl64::operator()(std::size_t i, std::size_t j)
|
|
||||||
{
|
|
||||||
return storage_->data(i,j);
|
|
||||||
}
|
|
||||||
|
|
||||||
double const& matrix_impl64::operator()(std::size_t i, std::size_t j) const
|
|
||||||
{
|
|
||||||
return storage_->data(i,j);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
matrix_impl64& matrix_impl64::operator+=(matrix_impl64 const& rhs)
|
matrix_impl64& matrix_impl64::operator+=(matrix_impl64 const& rhs)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue