Implement fixed size options for rotgen containers

See merge request oss/rotgen!11
This commit is contained in:
Joel Falcou 2025-07-20 20:23:51 +02:00
parent 8e545dd51a
commit 2084874b1b
39 changed files with 1247 additions and 323 deletions

View file

@ -53,9 +53,9 @@ struct CLASSNAME::payload
//==================================================================================================
// Matrix API
//==================================================================================================
std::size_t CLASSNAME::rows() const { return static_cast<std::size_t>(storage_->data.rows()); }
std::size_t CLASSNAME::cols() const { return static_cast<std::size_t>(storage_->data.cols()); }
std::size_t CLASSNAME::size() const { return static_cast<std::size_t>(storage_->data.size()); }
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(); }
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); }

30
src/info.cpp Normal file
View file

@ -0,0 +1,30 @@
//==================================================================================================
/*
ROTGEN - Runtime Overlay for Eigen
Copyright : CODE RECKONS
SPDX-License-Identifier: BSL-1.0
*/
//==================================================================================================
#include <rotgen/config.hpp>
#include <iostream>
namespace rotgen
{
std::ostream& setup_summary(std::ostream& os)
{
if constexpr(rotgen::is_forcing_dynamic_status)
{
os << "[ROTGEN] - Fully Dynamic mode" << std::endl;
}
else
{
if constexpr(use_expression_templates)
os << "[ROTGEN] - Expression templates : Disabled." << std::endl;
else
os << "[ROTGEN] - Static/Dynamic mode with maximum size: " << rotgen::max_static_size << std::endl;
}
return os;
}
}

View file

@ -8,6 +8,7 @@
#include <rotgen/detail/generators.hpp>
#include <rotgen/impl/matrix.hpp>
#include <rotgen/impl/payload.hpp>
#include <rotgen/config.hpp>
#include <Eigen/Dense>
namespace rotgen

View file

@ -51,9 +51,9 @@ CLASSNAME::~CLASSNAME() = default;
//==================================================================================================
// Matrix API
//==================================================================================================
std::size_t CLASSNAME::rows() const { return static_cast<std::size_t>(storage_->data.rows()); }
std::size_t CLASSNAME::cols() const { return static_cast<std::size_t>(storage_->data.cols()); }
std::size_t CLASSNAME::size() const { return static_cast<std::size_t>(storage_->data.size()); }
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(); }
void CLASSNAME::resize(std::size_t new_rows, std::size_t new_cols)
{