fitpack
Modern Fortran library for curve and surface fitting with splines
Loading...
Searching...
No Matches
fitpack_gridded_splines.f90 File Reference

Data Types

type  fitpack_gridded_splines::fitpack_gridded_spline
 Tensor-product gridded smoothing-spline fitter for any domain dimension. More...
 

Modules

module  fitpack_gridded_splines
 Generic N-dimensional gridded smoothing-spline fitter.
 

Functions/Subroutines

elemental subroutine fitpack_gridded_splines::grid_destroy (this)
 Release all allocated storage and reset the fit state.
 
subroutine fitpack_gridded_splines::grid_new_points (this, xg, z, m, row_major, order)
 Load new gridded data. z is assumed-rank: a rank-d array (2 <= d <= MAX_IDIM) whose shape gives the per-axis point counts, or a flat rank-1 array with explicit m.
 
integer(fp_flag) function fitpack_gridded_splines::grid_new_fit (this, xg, z, m, row_major, order, smoothing)
 Load new gridded data and perform a fit in one call.
 
integer(fp_flag) function fitpack_gridded_splines::grid_fit_automatic_knots (this, smoothing, order)
 Fit a smoothing spline with automatic knot placement (delegates to regrid).
 
integer(fp_flag) function fitpack_gridded_splines::grid_fit_least_squares (this, smoothing, reset_knots)
 Least-squares fit on the current knots (optionally recomputing them first).
 
integer(fp_flag) function fitpack_gridded_splines::grid_fit_interpolating (this)
 Interpolating fit (s = 0).
 
real(fp_real) function, dimension(product(m)) fitpack_gridded_splines::grid_eval_ongrid (this, xg, m, ierr)
 Evaluate the fitted spline on a rectangular grid (delegates to ndspev).
 
real(fp_real) function, dimension(size(xp, 2)) fitpack_gridded_splines::grid_eval_many (this, xp, ierr)
 Evaluate the fitted spline at scattered points (delegates to ndspeu).
 
real(fp_real) function fitpack_gridded_splines::grid_eval_one (this, x, ierr)
 Evaluate the fitted spline at a single point x(1:dims).
 
real(fp_real) function, dimension(product(m)) fitpack_gridded_splines::grid_derivatives_gridded (this, xg, m, nu, ierr)
 Evaluate partial derivatives of order nu(:) on a rectangular grid (delegates to parder).
 
real(fp_real) function, dimension(size(xp, 2)) fitpack_gridded_splines::grid_derivatives_many (this, xp, nu, ierr)
 Evaluate partial derivatives of order nu(:) at scattered points (delegates to pardeu).
 
real(fp_real) function fitpack_gridded_splines::grid_derivatives_one (this, x, nu, ierr)
 Evaluate a partial derivative of order nu(:) at a single point x(1:dims).
 
real(fp_real) function fitpack_gridded_splines::grid_integral (this, lower, upper)
 Integral of the fitted spline over the box [lower(d),upper(d)] (delegates to dblint).
 
type(fitpack_gridded_spline) function fitpack_gridded_splines::grid_cross_section (this, ax, u, ierr)
 Cross-section: fix axis ax at value u, returning the (dims-1)-D spline \( s|_{x_{ax}=u} \).
 
type(fitpack_gridded_spline) function fitpack_gridded_splines::grid_derivative_spline (this, nu, ierr)
 Partial-derivative spline of order nu(:): a new gridded spline of per-axis degrees order-nu on trimmed knots (delegates to pardtc). Eval-only, like cross_section.
 
subroutine fitpack_gridded_splines::grid_prepare_workspace (this)
 (Re)size the persistent workspace, maximally, so it is allocated only once, at spline construction. Covers both regrid's fit requirement (mirroring its internal lwest/kwest) and the peripheral evaluations (ndspev/parder/pardeu on grids up to the data-grid size), which carve their scratch past regrid's persistent iopt=1 state in wrk(1:2+dims)/ iwrk(1:1+dims). Grows the arrays only when needed so a continuation keeps that state.
 
subroutine fitpack_gridded_splines::grid_ensure_eval_workspace (this, maxm)
 Ensure the persistent workspace covers a peripheral evaluation with per-axis grids of up to maxm points. grid_prepare_workspace already sized it for grids up to the data grid, so this only grows the arrays for finer evaluation grids; contents are preserved so regrid's iopt=1 state in wrk(1:2+dims)/iwrk(1:1+dims) survives the growth.
 
pure subroutine fitpack_gridded_splines::ranked_sizes (shp, row_major, dims, m)
 Map a rank-d array shape to per-axis domain sizes, honouring the row_major flag. row_major=.true.: axes are reversed (z(m_d,...,m_1)); .false.: natural (z(m_1,...,m_d)).
 
pure real(fp_real) function, dimension(size(zc)) fitpack_gridded_splines::flat_row_major (zc, shp, row_major)
 Return the flat row-major (axis-1-slowest) value buffer from a column-major flatten. row_major=.true.: the input already IS row-major, copy as-is. row_major=.false.: the input is a natural Fortran grid z(m_1,...,m_d); permute (reverse axes) into row-major.
 
elemental integer(fp_size) function fitpack_gridded_splines::grid_comm_size (this)
 Communication buffer size: base fields + fixed metadata (1 + 6*MAX_IDIM) + bulk arrays.
 
pure subroutine fitpack_gridded_splines::grid_comm_pack (this, buffer)
 Pack the fitter into a communication buffer.
 
pure subroutine fitpack_gridded_splines::grid_comm_expand (this, buffer)
 Expand the fitter from a communication buffer.