Packages

class DB_Spline extends B_Spline with DBasisFunction

The DB_Spline class provides B-Spline basis functions with derivatives for various orders 'm', where the order is one more than the degree. A spline function is a piecewise polynomial function where the pieces are stitched together at knots with the goal of maintaining continuity and differentability. B-Spline basis functions form a popular form of basis functions used in Functional Data Analysis.

See also

http://web.mit.edu/hyperbook/Patrikalakis-Maekawa-Cho/node17.html -----------------------------------------------------------------------------

Linear Supertypes
DBasisFunction, B_Spline, Error, BasisFunction, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DB_Spline
  2. DBasisFunction
  3. B_Spline
  4. Error
  5. BasisFunction
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new DB_Spline(ττ: VectoD, mMax: Int = 4, clamp: Boolean = true)

    ττ

    the time-points of the original knots in the time dimension

    mMax

    the maximum order, allowing splines orders from 1 to mMax

    clamp

    whether or not to clamp the ends of the knot vector using B_Spline.clamp

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val DEBUG: Boolean
    Attributes
    protected
    Definition Classes
    B_Spline
  5. def abf(m: Int)(t: VectoD): MatrixD

    Obtain the value of the m-th order basis functions (all) at time 't'.

    Obtain the value of the m-th order basis functions (all) at time 't'. Or alternatively, obtain the basis function by calling bf(m)(j) only. Ex: val x = bf(m)(t) retrieves the value of all the basis functions at 't'. val f = bf(m) retrieves all the basis functions.

    m

    the order of all the basis function

    t

    the time parameter

    Definition Classes
    BasisFunction
  6. def abf_(m: Int = mMax)(t: Double): VectorD

    Evaluate each of the τ.dim-1-many order m B-spline basis functions at t non-recursively, using an efficient dynamic programming approach.

    Evaluate each of the τ.dim-1-many order m B-spline basis functions at t non-recursively, using an efficient dynamic programming approach.

    Example

    val m = 4                       // order m (degree m-1)
    val t = VectorD (1, 2, 3, 4)    // original time points
    val N = B_Spline (t, k)         // B_Spline instance
    val z = N.abf_ (m)(t)           // vector of evaluations
    println ("order k basis functions at t = z")

    Implementation Details

    Let N(m)(i) denote the i-th order k basis function evaluated at t. Then each N(m)(i) depends on the evaluation of N(m-1)(i) and N(m-1)(i+1). Here is an example, given a set of order m=4 B-spline basis functions and knot vector τ of length n:

    N(1)(0), N(1)(1), N(1)(2), N(1)(3), ..., N(1)(n-1)
          |/       |/       |/            |/
    N(2)(0), N(2)(1), N(2)(2), ..., N(2)(n-2)
          |/       |/            |/
    N(3)(0), N(3)(1), ..., N(3)(n-3)
          |/            |/
    N(4)(0), ..., N(4)(n-4)

    This algorithm applies the procedure described above using O(n) storage and O(k*n) floating point operations.

    m

    the order of all the basis function

    t

    point to evaluate

    Definition Classes
    B_SplineBasisFunction
    See also

    Carl de Boor (1978). A Practical Guide to Splines. Springer-Verlag. ISBN 3-540-90356-9.

  7. def apply(m: Int)(j: Int)(t: Double): Double

    Obtain the value of the m-th order 'j'-th basis function at time 't'.

    Obtain the value of the m-th order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf(m)(j) only. Ex: val x = bf(m)(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf(m)(j) retrieves the j-th basis function.

    m

    the order of the basis function

    j

    indicates which basis function

    t

    the time parameter

    Definition Classes
    BasisFunction
  8. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  9. def bb(m: Int)(j: Int)(t: Double): Double

    Order 'm' B-Spline basis functions (general recurrence).

    Order 'm' B-Spline basis functions (general recurrence).

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

    Definition Classes
    B_Spline
  10. def bf(m: Int)(j: Int)(t: Double): Double

    Evaluate the 'j+1'-th order m B-spline basis function at t non-recursively, using an efficient dynamic programming approach.

    Evaluate the 'j+1'-th order m B-spline basis function at t non-recursively, using an efficient dynamic programming approach.

    Example

    val m = 4                       // order m (degree m-1)
    val t = VectorD (1, 2, 3, 4)    // original time points
    val N = B_Spline (t, k)         // B_Spline instance
    val j = 0                       // spline j in N.range(m)
    val z = N.bf (m)(j)(t(2))       // evaluate at t(2)
    println ("order k basis function j at t(2) = z")

    Implementation Details

    Let N(m)(i) denote the i-th order k basis function evaluated at t. Then each N(m)(i) depends on the evaluation of N(m-1)(i) and N(m-1)(i+1). Here is an example, given a set of order m=4 B-spline basis functions and knot vector τ of length n:

    N(1)(0), N(1)(1), N(1)(2), N(1)(3)
          |/       |/       |/
    N(2)(0), N(2)(1), N(2)(2)
          |/       |/
    N(3)(0), N(3)(1)
          |/
    N(4)(0)

    This algorithm applies the procedure described above using O(k) storage and O(k*k) floating point operations.

    m

    the order of the basis function

    j

    indicates which basis function

    t

    point to evaluate

    Definition Classes
    B_SplineBasisFunction
    See also

    Carl de Boor (1978). A Practical Guide to Splines. Springer-Verlag. ISBN 3-540-90356-9.

  11. def bf1(j: Int)(t: Double): Double

    Obtain the value of the 1st order 'j'-th basis function at time 't'.

    Obtain the value of the 1st order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf1(j) only. Ex: val x = bf1(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf1(j) retrieves the j-th basis function.

    j

    indicates which basis function

    t

    the time parameter

    Definition Classes
    BasisFunction
  12. def bf2(j: Int)(t: Double): Double

    Obtain the value of the 2nd order 'j'-th basis function at time 't'.

    Obtain the value of the 2nd order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf2(j) only. Ex: val x = bf2(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf2(j) retrieves the j-th basis function.

    j

    indicates which basis function

    t

    the time parameter

    Definition Classes
    BasisFunction
  13. def bf3(j: Int)(t: Double): Double

    Obtain the value of the 3rd order 'j'-th basis function at time 't'.

    Obtain the value of the 3rd order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf3(j) only. Ex: val x = bf3(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf3(j) retrieves the j-th basis function.

    j

    indicates which basis function

    t

    the time parameter

    Definition Classes
    BasisFunction
  14. def bf4(j: Int)(t: Double): Double

    Obtain the value of the 4th order 'j'-th basis function at time 't'.

    Obtain the value of the 4th order 'j'-th basis function at time 't'. Or alternatively, obtain the basis function by calling bf4(j) only. Ex: val x = bf4(j)(t) retrieves the value of the j-th basis function at 't'. val f = bf4(j) retrieves the j-th basis function.

    j

    indicates which basis function

    t

    the time parameter

    Definition Classes
    BasisFunction
  15. def bfr(m: Int)(j: Int)(t: Double): Double

    Adjusted order 'm' B-Spline basis functions (general recurrence).

    Adjusted order 'm' B-Spline basis functions (general recurrence). These are adjusted so that the first "usable" spline is at j = 0. The valid range of usable splines is defined in range.

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

    Definition Classes
    B_Spline
  16. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @HotSpotIntrinsicCandidate()
  17. def count(m: Int): Int

    The number of basis functions for a specified order.

    The number of basis functions for a specified order.

    m

    the order of the basis function

    Definition Classes
    BasisFunction
  18. def d1bb(m: Int)(j: Int)(t: Double): Double

    First derivatives of order 'm' B-Spline basis functions (general recurrence).

    First derivatives of order 'm' B-Spline basis functions (general recurrence).

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

  19. def d1bf(m: Int)(j: Int)(t: Double): Double

    First derivatives of order 'm' B-Spline basis functions (dynamic programming apporach)

    First derivatives of order 'm' B-Spline basis functions (dynamic programming apporach)

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

    Definition Classes
    DB_SplineDBasisFunction
  20. def d1bfr(m: Int)(j: Int)(t: Double): Double

    Adjusted derivatives of order 'm' B-Spline basis functions (general recurrence).

    Adjusted derivatives of order 'm' B-Spline basis functions (general recurrence). These are adjusted so that the first "usable" spline is at j = 0. The valid range of usable splines is defined in range.

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

  21. def d2bb(m: Int)(j: Int)(t: Double): Double

    Second derivatives of order 'm' B-Spline basis functions (general recurrence).

    Second derivatives of order 'm' B-Spline basis functions (general recurrence).

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

  22. def d2bf(m: Int)(j: Int)(t: Double): Double

    Obtain the value of 2nd derivative of the m-th order 'j'-th basis function at time 't'.

    Obtain the value of 2nd derivative of the m-th order 'j'-th basis function at time 't'. Or alternatively, obtain the 2nd derivative basis function by calling d2bf(m)(j) only. Ex: val x = d2bf(m)(j)(t) retrieves the 2nd derivative value of the j-th basis function at 't'. val f = d2bf(m)(j) retrieves the 2nd derivative of the j-th basis function.

    m

    the order of the basis function

    j

    indicates which basis function

    t

    the time parameter

    Definition Classes
    DB_SplineDBasisFunction
  23. def d2bfr(m: Int)(j: Int)(t: Double): Double

    Adjusted second derivatives of order 'm' B-Spline basis functions (general recurrence).

    Adjusted second derivatives of order 'm' B-Spline basis functions (general recurrence). These are adjusted so that the first "usable" spline is at j = 0. The valid range of usable splines is defined in range.

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

  24. def dnabf(n: Int)(m: Int)(t: VectoD): MatrixD

    Obtain the value of nth derivative of the m-th order basis functions (all) at time 't'.

    Obtain the value of nth derivative of the m-th order basis functions (all) at time 't'. Or alternatively, obtain the basis function by calling dnabf(m)(j) only. Ex: val x = dnabf(n)(m)(t) retrieves the nth derivative value of the value of all the basis functions at 't'. val f = dnabf(n)(m) retrieves the nth derivative value of all the basis functions.

    n

    the order of the derivative

    m

    the order of all the basis function

    t

    the time parameter

    Definition Classes
    DBasisFunction
  25. def dnabf_(n: Int)(m: Int)(t: Double): VectorD

    Obtain the value of nth derivative of the m-th order basis functions (all) at time 't'.

    Obtain the value of nth derivative of the m-th order basis functions (all) at time 't'. Or alternatively, obtain the basis function by calling dnabf(m)(j) only. Ex: val x = dnabf(m)(t) retrieves the nth derivative value of the value of all the basis functions at 't'. val f = dnabf(m) retrieves the nth derivative value of all the basis functions.

    n

    the order of the derivative

    m

    the order of all the basis function

    t

    the time parameter

    Definition Classes
    DB_SplineDBasisFunction
  26. def dnabfr(n: Int)(m: Int)(t: VectorD): MatrixD

    Obtain the value of nth derivative of the m-th order basis functions (all) at time 't'.

    Obtain the value of nth derivative of the m-th order basis functions (all) at time 't'. Or alternatively, obtain the basis function by calling dnabf(m)(j) only. Ex: val x = dnabfr(n)(m)(t) retrieves the nth derivative value of the value of all the basis functions at 't'. val f = dnabfr(n)(m) retrieves the nth derivative value of all the basis functions. Note that this is the recursive approach as opposed to the dynamic programming approach.

    n

    the order of the derivative

    m

    the order of all the basis function

    t

    the time parameter

  27. def dnabfr_(n: Int)(m: Int)(t: Double): VectorD

    Obtain the value of nth derivative of the m-th order basis functions (all) at time 't'.

    Obtain the value of nth derivative of the m-th order basis functions (all) at time 't'. Or alternatively, obtain the basis function by calling dnabf(m)(j) only. Ex: val x = dnabfr(m)(t) retrieves the nth derivative value of the value of all the basis functions at 't'. val f = dnabfr(m) retrieves the nth derivative value of all the basis functions. Note that this is the recursive approach as opposed to the dynamic programming approach.

    n

    the order of the derivative

    m

    the order of all the basis function

    t

    the time parameter

  28. def dnbb(n: Int)(m: Int)(j: Int)(t: Double): Double

    N-th derivatives of order 'm' B-Spline basis functions (general recurrence).

    N-th derivatives of order 'm' B-Spline basis functions (general recurrence).

    n

    the n-th derivative to be computed

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

  29. def dnbf(n: Int)(m: Int)(j: Int)(t: Double): Double

    Adjusted n-th derivative of order 'm' B-Spline basis functions (general recurrence).

    Adjusted n-th derivative of order 'm' B-Spline basis functions (general recurrence). These are adjusted so that the first "usable" spline is at j = 0. The valid range of usable splines is defined in range.

    n

    the n-th derivative to be computed

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

    Definition Classes
    DB_SplineDBasisFunction
  30. def dnbfr(n: Int)(m: Int)(j: Int)(t: Double): Double

    Adjusted n-th derivative of order 'm' B-Spline basis functions (general recurrence).

    Adjusted n-th derivative of order 'm' B-Spline basis functions (general recurrence). These are adjusted so that the first "usable" spline is at j = 0. The valid range of usable splines is defined in range.

    n

    the n-th derivative to be computed

    m

    the order of the spline function (degree = order - 1)

    j

    indicates which spline function

    t

    the time parameter

  31. def dot_(n: Int)(m: Int)(i: Int, j: Int)(g: DBasisFunction, a: Double, b: Double): Double

    Compute the dot/inner product of nth derivative of 'this' basis function and that of basis function 'g'.

    Compute the dot/inner product of nth derivative of 'this' basis function and that of basis function 'g'.

    n

    the order of the derivative

    m

    the order of the basis function

    j

    indicates which basis function

    g

    the other function

    a

    the start of the interval

    b

    the end of the interval

    Definition Classes
    DBasisFunction
  32. def dot_(m: Int)(i: Int, j: Int)(g: BasisFunction, a: Double = 0.0, b: Double = 1.0): Double

    Compute the dot/inner product of 'this' basis function object and basis function 'g'.

    Compute the dot/inner product of 'this' basis function object and basis function 'g'.

    m

    the order of the basis function

    i

    indicates which basis function of 'this'

    j

    indicates which basis function of 'g'

    g

    the other function

    a

    the start of the interval

    b

    the end of the interval

    Definition Classes
    BasisFunction
  33. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  34. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  35. final def flaw(method: String, message: String): Unit
    Definition Classes
    Error
  36. def getCache(m: Int, t: VectoD): Array[MatrixD]

    Retrieves the cached design matrices and penalty matrices

    Retrieves the cached design matrices and penalty matrices

    m

    the order of all the basis function

    t

    the time parameter

    Definition Classes
    DBasisFunctionBasisFunction
  37. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  38. def getOrder: Int

    Retrieve the order of the this B_Spline.

    Retrieve the order of the this B_Spline.

    Definition Classes
    B_SplineBasisFunction
  39. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  40. val head: Double
    Attributes
    protected
    Definition Classes
    B_Spline
  41. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  42. val l: Int
    Attributes
    protected
    Definition Classes
    B_Spline
  43. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  44. val needCompute: Boolean
    Attributes
    protected
    Definition Classes
    BasisFunction
  45. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  46. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  47. def range(m: Int = mMax): Inclusive

    Range of "usable" splines when using the bs function.

    Range of "usable" splines when using the bs function. This is needed, since extra splines may be generated by the general B-spline recurrence.

    m

    the order of the spline

    Definition Classes
    B_SplineBasisFunction
  48. def recomputeCache: Unit

    Recompute cached matrices

    Recompute cached matrices

    Definition Classes
    BasisFunction
  49. def size(m: Int = mMax): Int

    The number of usable spline basis functions for a specified order, given the configured knot vector.

    The number of usable spline basis functions for a specified order, given the configured knot vector.

    m

    the order of the spline

    Definition Classes
    B_SplineBasisFunction
  50. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  51. val tail: Double
    Attributes
    protected
    Definition Classes
    B_Spline
  52. def toString(): String
    Definition Classes
    AnyRef → Any
  53. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  54. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  55. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  56. val Σ: MatrixD
    Attributes
    protected
    Definition Classes
    DBasisFunction
  57. val Φ: MatrixD
    Attributes
    protected
    Definition Classes
    BasisFunction
  58. val Φt: MatrixD
    Attributes
    protected
    Definition Classes
    BasisFunction
  59. val ΦtΦ: MatrixD
    Attributes
    protected
    Definition Classes
    BasisFunction
  60. val τ: VectoD
    Attributes
    protected
    Definition Classes
    B_Spline

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from DBasisFunction

Inherited from B_Spline

Inherited from Error

Inherited from BasisFunction

Inherited from AnyRef

Inherited from Any

Ungrouped