Skip to content

Add spline theory pages, example programs, and infrastructure#49

Merged
perazz merged 3 commits intomainfrom
docs/comprehensive-tutorials
Feb 18, 2026
Merged

Add spline theory pages, example programs, and infrastructure#49
perazz merged 3 commits intomainfrom
docs/comprehensive-tutorials

Conversation

@perazz
Copy link
Owner

@perazz perazz commented Feb 18, 2026

Summary

  • 4 spline theory pages covering B-spline foundations, curve fitting, surface fitting, and polar/spherical domains — with MathJax equations and Doxygen cross-references
  • 8 compilable example programs (one per type group), registered in fpm.toml, all build and run with fpm run --example <name>
  • Doxyfile + mainpage.md updated to link all new theory, tutorial, and example content

Builds on #48 (fixes) and the tutorial/plot-script changes already merged to main.

Test plan

  • fpm build succeeds
  • fpm test — 59/59 tests pass
  • All 8 examples run without errors
  • doxygen Doxyfile — zero warnings from doc pages

Four new pages covering the mathematical foundations:

- theory_bsplines.md: B-spline basis, Cox-de Boor recurrence, de Boor
  evaluation, derivatives, integration, knot insertion, tensor products
- theory_curve_fitting.md: smoothing criterion, adaptive knot placement,
  periodic/parametric extensions, convexity constraints
- theory_surface_fitting.md: tensor product splines, scattered vs gridded
  fitting, Kronecker product efficiency, parametric surfaces
- theory_special_domains.md: polar coordinate transform, origin continuity,
  spherical coordinates, pole boundary conditions

All use Doxygen \f$ MathJax formatting with @ref cross-references.
One example per type group, registered in fpm.toml as [[example]] entries:

- example_curve: noisy sine wave, smoothing sweep, derivatives, zeros
- example_periodic_curve: cos(x)+sin(2x) on [0,2pi], periodicity check
- example_parametric_curves: Lissajous, closed ellipse, constrained spiral
- example_convex_curve: concavity-constrained exponential decay
- example_surface: scattered sin(pi*x)*cos(pi*y) on [0,1]^2
- example_grid_surface: peaks function grid + parametric torus
- example_polar: scattered/gridded data on unit disc
- example_sphere: scattered/gridded spherical harmonic data

All build with `fpm run --example <name>` and produce diagnostic output.
- Doxyfile: add INPUT entries for 4 theory + 8 tutorial pages, set
  IMAGE_PATH to doc/media
- mainpage.md: restructure into Spline Theory, Tutorials (Curves,
  Surfaces, Special Domains), Examples, and Reference sections
@perazz perazz merged commit be564e3 into main Feb 18, 2026
18 checks passed
perazz added a commit that referenced this pull request Feb 19, 2026
During the PR #49 rebase, both files were accidentally replaced with
`git show` output (commit message + unified diff). Restore the correct
317-line Doxyfile (theme, MathJax, HTML header) and 130-line mainpage.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant