Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
IntegrateDiscrete.hpp File Reference

Discrete integration and squared-curvature computation from sampled data. More...

#include "janus/core/JanusConcepts.hpp"
#include "janus/core/JanusError.hpp"
#include "janus/core/JanusTypes.hpp"
#include "janus/math/Arithmetic.hpp"
#include "janus/math/Calculus.hpp"
#include "janus/math/Logic.hpp"
#include <Eigen/Dense>
#include <algorithm>
#include <string>
Include dependency graph for IntegrateDiscrete.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  janus
namespace  janus::detail
 Smooth approximation of ReLU function: softplus(x) = (1/beta) * log(1 + exp(beta * x)).

Functions

template<typename DerivedX>
auto janus::detail::compute_dx (const Eigen::MatrixBase< DerivedX > &x)
template<typename Derived>
auto janus::detail::slice (const Eigen::MatrixBase< Derived > &m, Eigen::Index start, Eigen::Index end)
template<typename DerivedA, typename DerivedB>
auto janus::detail::concatenate (const Eigen::MatrixBase< DerivedA > &a, const Eigen::MatrixBase< DerivedB > &b)
template<typename DerivedF, typename DerivedX>
auto janus::detail::integrate_forward_simpson (const Eigen::MatrixBase< DerivedF > &f, const Eigen::MatrixBase< DerivedX > &x)
template<typename DerivedF, typename DerivedX>
auto janus::detail::integrate_backward_simpson (const Eigen::MatrixBase< DerivedF > &f, const Eigen::MatrixBase< DerivedX > &x)
template<typename DerivedF, typename DerivedX>
auto janus::detail::integrate_cubic (const Eigen::MatrixBase< DerivedF > &f, const Eigen::MatrixBase< DerivedX > &x)
template<typename DerivedF, typename DerivedX>
JanusVector< typename DerivedF::Scalar > janus::integrate_discrete_intervals (const Eigen::MatrixBase< DerivedF > &f, const Eigen::MatrixBase< DerivedX > &x, bool multiply_by_dx=true, const std::string &method="trapezoidal", const std::string &method_endpoints="lower_order")
 Integrates discrete samples using reconstruction methods.
template<typename DerivedF, typename DerivedX>
JanusVector< typename DerivedF::Scalar > janus::integrate_discrete_squared_curvature (const Eigen::MatrixBase< DerivedF > &f, const Eigen::MatrixBase< DerivedX > &x, const std::string &method="simpson")
 Computes the integral of squared curvature over each interval.

Variables

constexpr double janus::detail::rms_fusion_epsilon = 1e-100
 Small epsilon to prevent division by zero in RMS fusion.

Detailed Description

Discrete integration and squared-curvature computation from sampled data.

See also
Calculus.hpp, Integrate.hpp