B-spline

SemiLagrangian.BSplineType
abstract type BSpline{T, edge, order} <: AbstractInterpolation{T, edge, order}
BSpline{T, edge, order} <: AbstractInterpolation{T, edge, order}

Abstract supertype for all bspline interpolation type

source
SemiLagrangian.BSplineLUType
struct BSplineLU{T, edge, order} <: SemiLagrangian.BSpline{T, edge, order}
BSplineLU{T, edge, order} <: AbstractInterpolation{T, edge, order}

Type containing spline coefficients for b-spline interpolation

Type parameters

  • T : the type of data that is interpolate
  • edge::TypeEdge=CircEdge : true if function is circular
  • order::Int : order of lagrange interpolation

Implementation :

  • ls::LuSpline{T} : the LU matrix
  • tabfct::Vector{Polynomial{T}} : function table for interpolation

Arguments :

  • n : size of the matrix
  • order : the order of interpolation
  • [T::DataType=Float64] : The type values to interpolate
source
SemiLagrangian.LuSplineType
struct LuSpline{T}
struct LuSpline{T}
LuSpline(n, t::Vector{T}; iscirc=true, isLU=true) where{T}

Structure of a LU decomposition of circular banded matrix, a LU decomposition can be stored in a Matrix which is equal to L + U - I. For a circular Banded matrix all non zero coefficients are in the band and in the last columns and lines

Implementation

  • band::Matrix{T} : matrix of size (kl+ku+1, n-kl)
  • ku : size of the band upper the diagonal
  • kl : size of the band lower the diagonal
  • iscirc : true if and only if original matrix is circular
  • isLU : true if LU decomposition has been perform
  • lastcols : only in circular case, Matrix of size (n-ku, kl) that represents teh last columns of matrix
  • lastrows : only in circular case, Matrix of size (n, ku) that represents the last rows of matrix

Arguments

  • 'n' : size of the matrix
  • 't::Vector{T}` : vector of all values, the size is order+1, where order is the order of the spline.
source
SemiLagrangian.BSplineFFTType
struct BSplineFFT{T, order} <: SemiLagrangian.BSpline{T, SemiLagrangian.CircEdge, order}
BSplineFFT{T, order} <: AbstractInterpolation{T, CircEdge, order}
BSplineFFT( order::Int, n::Int, T::DataType=Float64)

Type containing spline coefficients for b-spline interpolation based on fft, using the fact that b-spline matrix is a circulant matrix

Type parameters

  • T : the type of data that is interpolate
  • order::Int: order of lagrange interpolation

Implementation :

  • c_fft::Vector{Complex{T}} : fft transform of coefficients
  • parfft::PrepareFftBig : fft precomputed data
  • tabfct::Vector{Polynomial{T}} : function table for interpolation

Arguments :

  • n : size of the matrix
  • order : the order of interpolation
  • [T::DataType=Float64] : The type values to interpolate
source