Borrowed third-order TOPP/COPP profile view. More...
#include <interpolation.hpp>
Public Member Functions | |
| Profile3rdRef ()=default | |
| Profile3rdRef (Span< const double > a_values, Span< const double > b_values) | |
| Profile3rdRef (Span< const double > a_values, Span< const double > b_values, std::pair< std::size_t, std::size_t > num_stationary) | |
| Profile3rdRef (Span< const double > a_values, Span< const double > b_values, std::size_t stationary_start, std::size_t stationary_end) | |
| std::size_t | len () const noexcept |
| std::size_t | size () const noexcept |
| bool | empty () const noexcept |
| std::pair< std::size_t, std::size_t > | num_stationary () const noexcept |
| Profile3rdRef | slice (std::size_t idx_s_start, std::size_t idx_s_final) const |
| Borrow a closed station subrange idx_s_start..=idx_s_final. | |
| Profile3rdRef | segment (std::size_t idx_s) const |
| Borrow one segment as the two-node profile idx_s..=idx_s+1. | |
Public Attributes | |
| Span< const double > | a |
| Span< const double > | b |
| std::size_t | num_stationary_start = 0 |
| std::size_t | num_stationary_end = 0 |
Borrowed third-order TOPP/COPP profile view.
Profile3rdRef mirrors Rust's Topp3ProfileRef: it borrows node-based a(s) = dot{s}^2 and b(s) = ddot{s} arrays plus the effective stationary interval counts at the beginning and end. The referenced arrays are not copied and must outlive the call that consumes this view.
The slice helpers use inclusive station indices, matching IndexInterval: slice(i, j) borrows nodes i..=j and adjusts stationary counts for the local profile.
Definition at line 21 of file interpolation.hpp.
|
default |
| copp::Profile3rdRef::Profile3rdRef | ( | Span< const double > | a_values, |
| Span< const double > | b_values, | ||
| std::pair< std::size_t, std::size_t > | num_stationary ) |
| copp::Profile3rdRef::Profile3rdRef | ( | Span< const double > | a_values, |
| Span< const double > | b_values, | ||
| std::size_t | stationary_start, | ||
| std::size_t | stationary_end ) |
|
inlinenoexcept |
Definition at line 40 of file interpolation.hpp.
|
inlinenoexcept |
Definition at line 41 of file interpolation.hpp.
|
inlinenoexcept |
Definition at line 42 of file interpolation.hpp.
|
inlinenoexcept |
Definition at line 43 of file interpolation.hpp.
| Profile3rdRef copp::Profile3rdRef::slice | ( | std::size_t | idx_s_start, |
| std::size_t | idx_s_final ) const |
Borrow a closed station subrange idx_s_start..=idx_s_final.
| copp::Error | if the interval is empty, out of range, or would be entirely stationary. |
| Profile3rdRef copp::Profile3rdRef::segment | ( | std::size_t | idx_s | ) | const |
Borrow one segment as the two-node profile idx_s..=idx_s+1.
| Span<const double> copp::Profile3rdRef::a |
Definition at line 23 of file interpolation.hpp.
| Span<const double> copp::Profile3rdRef::b |
Definition at line 24 of file interpolation.hpp.
| std::size_t copp::Profile3rdRef::num_stationary_start = 0 |
Definition at line 25 of file interpolation.hpp.
| std::size_t copp::Profile3rdRef::num_stationary_end = 0 |
Definition at line 26 of file interpolation.hpp.