More products

This commit is contained in:
Joel Falcou 2025-05-12 14:51:20 +02:00
parent 682202825e
commit 2554a83890

View file

@ -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)