|
fitpack
Modern Fortran library for curve and surface fitting with splines
|
Standalone C++ RAII wrapper for Fortran fitpack_fitter. More...
#include <fpFitter.hpp>

Classes | |
| struct | NoAlloc |
| Tag type for derived class constructors (no allocation) More... | |
| struct | ViewTag |
| Tag type for non-owning view constructors of polymorphic concrete subtypes. Declared on roots and abstract bases so descendants inherit it; variant accessors qualify the call site. More... | |
Public Member Functions | |
| virtual | ~fpFitter ()=default |
| virtual bool | is_allocated () const |
| Check if object is allocated. | |
| virtual bool | is_pointer () const |
| Check if this is a non-owning pointer. | |
| const char * | fortran_type_name () const |
| Return the dynamic Fortran type name of the underlying object. | |
| virtual const char * | c_type_name () const |
| Return the C wrapper struct name for this class (e.g. "fitpack_fitter_c"). | |
| virtual const char * | cpp_type_name () const |
| Return the fully-qualified C++ class name for this class. Owned by the C++ layer — does not round-trip through Fortran. | |
| fitpack_fitter_c & | c_handle () |
| Get underlying C wrapper (for interop) | |
| const fitpack_fitter_c & | c_handle () const |
| Get underlying C wrapper (const, for interop) | |
| virtual double | mse () const |
| virtual int32_t | core_comm_size () const |
| virtual void | core_comm_pack (std::vector< double > &buffer) const |
| core_comm_pack | |
| virtual void | core_comm_expand (std::vector< double > &buffer) |
| core_comm_expand | |
| virtual void | destroy_base () |
| virtual int32_t | comm_size () const =0 |
| virtual void | comm_pack (std::vector< double > &buffer) const =0 |
| comm_pack (deferred) | |
| virtual void | comm_expand (std::vector< double > &buffer)=0 |
| comm_expand (deferred) | |
| std::vector< double > | c_vector () const |
| Deep copy of component 'c' as a std::vector. | |
| fxArray< double > | c () const |
| Zero-copy fxArray view of component 'c'. | |
| std::vector< double > | wrk_vector () const |
| Deep copy of component 'wrk' as a std::vector. | |
| fxArray< double > | wrk () const |
| Zero-copy fxArray view of component 'wrk'. | |
| std::vector< int32_t > | iwrk_vector () const |
| Deep copy of component 'iwrk' as a std::vector. | |
| fxArray< int32_t > | iwrk () const |
| Zero-copy fxArray view of component 'iwrk'. | |
| int32_t & | iopt () |
| const int32_t & | iopt () const |
| double & | smoothing () |
| const double & | smoothing () const |
| double & | fp () |
| const double & | fp () const |
| int32_t & | lwrk () |
| const int32_t & | lwrk () const |
| int32_t & | liwrk () |
| const int32_t & | liwrk () const |
Protected Member Functions | |
| fpFitter (NoAlloc) | |
| Protected constructor for derived classes (does not allocate) | |
| template<typename T> | |
| T * | as () |
| template<typename T> | |
| const T * | as () const |
Protected Attributes | |
| fitpack_fitter_c | cobj = fitpack_fitter_c_null |
Standalone C++ RAII wrapper for Fortran fitpack_fitter.
This class provides automatic memory management (RAII) and a natural C++ API for the underlying Fortran fitpack_fitter, without requiring the fortran-arrays library. Array arguments use std::vector<T> for standalone operation.
|
virtualdefault |
|
inlineexplicitprotected |
Protected constructor for derived classes (does not allocate)
|
inlineprotected |
|
inlineprotected |
|
inline |
Zero-copy fxArray view of component 'c'.
array_c_from_ptr builds the descriptor from the borrowed pointer and bounds, so the view aliases the Fortran storage directly — nothing is copied and writes through c()(i) land in the object.

|
inline |
Get underlying C wrapper (for interop)

|
inline |
Get underlying C wrapper (const, for interop)

|
inlinevirtual |
Return the C wrapper struct name for this class (e.g. "fitpack_fitter_c").
Reimplemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.

|
inline |
Deep copy of component 'c' as a std::vector.

|
pure virtual |
comm_expand (deferred)
Implemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.
|
pure virtual |
comm_pack (deferred)
Implemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.
|
pure virtual |
Implemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.
|
inlinevirtual |
core_comm_expand
Reimplemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.

|
inlinevirtual |
core_comm_pack
Reimplemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.

|
inlinevirtual |
Reimplemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.

|
inlinevirtual |
Return the fully-qualified C++ class name for this class. Owned by the C++ layer — does not round-trip through Fortran.
Reimplemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.
|
inlinevirtual |
Reimplemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.

|
inline |
Return the dynamic Fortran type name of the underlying object.

|
inline |

|
inline |

|
inline |

|
inline |

|
inlinevirtual |
Check if object is allocated.
Reimplemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.

|
inlinevirtual |
Check if this is a non-owning pointer.
Reimplemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.

|
inline |
Zero-copy fxArray view of component 'iwrk'.
array_c_from_ptr builds the descriptor from the borrowed pointer and bounds, so the view aliases the Fortran storage directly — nothing is copied and writes through iwrk()(i) land in the object.

|
inline |
Deep copy of component 'iwrk' as a std::vector.

|
inline |

|
inline |

|
inline |

|
inline |

|
inlinevirtual |
Reimplemented in fpClosedCurve, fpConstrainedCurve, fpConvexCurve, fpCurve, fpGridPolar, fpGridSphere, fpGridSpline, fpGridSurface, fpParametricCurve, fpParametricSurface, fpPeriodicCurve, fpPolar, fpSphere, and fpSurface.

|
inline |

|
inline |

|
inline |
Zero-copy fxArray view of component 'wrk'.
array_c_from_ptr builds the descriptor from the borrowed pointer and bounds, so the view aliases the Fortran storage directly — nothing is copied and writes through wrk()(i) land in the object.

|
inline |
Deep copy of component 'wrk' as a std::vector.

|
protected |