ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
 
Loading...
Searching...
No Matches
pppack.hpp File Reference

Low-level B-spline routines from PPPACK. More...

#include "../prec_const.hpp"
#include <vector>
+ Include dependency graph for pppack.hpp:
+ This graph shows which files directly or indirectly include this file:

Namespaces

namespace  orb5x
 
namespace  orb5x::spclibs
 

Functions

void orb5x::spclibs::bsplvb (const Real *t, int jhigh, Real x, int left, Real *biatx)
 Evaluate B-spline basis functions at a point.
 
void orb5x::spclibs::bsplvd (const Real *t, int k, Real x, int left, Real *a, Real *dbiatx, int nderiv)
 Evaluate B-spline basis functions and derivatives at a point.
 
void orb5x::spclibs::bspp2d (const Real *t, const Real *bcoef, int n, int k, Real *scrtch, Real *ppcoef)
 Convert B-spline coefficients to PPFORM.
 
void orb5x::spclibs::gauleg (Real x1, Real x2, Real *x, Real *w, int n)
 Compute Gauss-Legendre quadrature points and weights.
 
void orb5x::spclibs::interv (const Real *xt, int lxt, Real x, int &left, int &mflag)
 Locate interval containing x in a knot sequence.
 
void orb5x::spclibs::interv_hint (const Real *xt, int lxt, Real x, int &left, int &mflag, int &ilo)
 Thread-safe version of interv with explicit previous guess.
 
Real orb5x::spclibs::ppval (const Real *t, const Real *coef, int n, int k, Real x, int &left)
 Evaluate polynomial in piecewise polynomial form.
 

Variables

constexpr int orb5x::spclibs::JMAX = 20
 Maximum spline order supported (degree + 1)
 

Detailed Description

Low-level B-spline routines from PPPACK.

This file is a C++ translation of the pppack B-spline routines. Based on Carl de Boor's "A Practical Guide to Splines".

Key functions:

  • bsplvb: Evaluate B-spline basis functions
  • bsplvd: Evaluate B-spline basis functions and derivatives
  • interv: Locate interval in knot sequence
  • gauleg: Gauss-Legendre quadrature points and weights