derivatives

the library is based on the Frechet derivative for functions of one and several variables, that supports the concepts of manifold, tangent space and vector field from a geometrical perspective. The library also includes operators for tangent, curvature, centre of curvature and osculating circles of curves and some support for differential geometry of surfaces

  • Binormal returns the coordinate functions of binormal vector function to a curve
    Pre/Post conds (curve::isseqof:isfun) => (isseqof:isfun)
    Example binormal:(beziercurve:< < -1,2,1>,< 0,1.2,3>,< 0,2,-1>,< 3,2,2>>)

  • Curl returns the curl of a smooth vector field f computed at x point
    Pre/Post conds (f::isseqof:isfun)(x::ispoint) => (isvect)
    Example curl:< sin~s1,cos~s2,s1*s3>:< 0,pi,pi/6> == < 0.0,-0.52359,0.0>

  • Curvature computes the scalar curvature function of the input curve
    Pre/Post conds (curve::isseqof:isfun)(a::ispoint) => (isfun)
    Example MAP:< s1, curvature:< cos ~ s1, sin ~ s1>>:(intervals:(2*pi):24);

  • Divergence returns the trace of Jacobian matrix of vector field f, evaluated at x
    Pre/Post conds (f::isseqof:isfun)(x::isseqof:isreal) => (isnum)
    Example def g = < sin ~ s1, cos ~ s2, s1 * s3>; divergence:< s1 ~ curl:g, s2 ~ curl:g, s3 ~ curl:g >:
    < 0.5,110.5,1> == 0.0

  • Dp partial derivative in the i-th coordinate direction of the real function f of several variables, at a point x
    Pre/Post conds (i::isIntPos)(f::IsFun)(x::IsPoint) => (isfun)
    Example dp:2:(sin ~ s1 * sin ~ s2):< pi/3, pi/6>:< 1> == 0.75

  • Ds i-th partial derivative of a vector function f of several variables
    Pre/Post conds (i::isintpos)(f::isseqof:isfun) => (isseqof:isfun)
    Example MAP:(DS:1:< s1,s2,sin~s1,sin~s2>):((sqr ~ intervals:pi):12)
    == PolComplex< 1,4>

  • D derivative operator for scalar and vector functions of one or more variables
    Pre/Post conds (f::or~[isfun,isseqof:isfun])(u::or~[isnum,isseqof:isnum])
    => (or~[isnum,isseqof:isnum])
    Example d:sin:pi == -1
    CONS:(d:(beziercurve:< < -2,0>,< 1,3>,< 2,1>>):< 1>):< 0.5>==< 1,-2>

  • Gausscurvature returns the Gauss curvature of vector field f at point x
    Pre/Post conds (f::isseqof:isfun)(x::ispoint) => (isnum)
    Example gausscurvature:< s1, s2, sin~s1 * sin~s2 >:< 0,0> == -1.0

  • Grad gradient (linear map) of a scalar function f of several variables at point a
    Pre/Post conds (f::isfun)(a::ispoint) => (isseqof:isfun)
    Example cons:(grad:(sin~s1*sin~s2):< pi/3,pi/-2>):< 1,1> == < -0.5,0>

  • Gradient gradient (vector) of a scalar field point a
    Pre/Post conds (f::isfun)(a::ispoint) => (isvect)
    Example Gradient:(s1*s1 - s2*s2):< 0.25,0.3> == < 0.5,-0.6>

  • Jacobian returns the Jacobian matrix at point a of a vector field f
    Pre/Post conds (f::isseqof:isfun)(a::ispoint) => (ismat)
    Example Jacobian:< (s1*s1 - s2*s2)/K:2, (s1*s1 + s2*s2)/K:2>:< 0.25,0.3>
    == < < 0.25,-0.3>,< 0.25,0.3>>

  • Normalmap normal vector field map
    Pre/Post conds (f::isseqof:isfun; dom::ispol) => (ispol)
    Example normalmap:< s1,s2,sin ~ s1*sin ~ s2>:((sqr ~ intervals:pi):5)

  • N normal field operator, i.e. the normalized vector product of the (tangent) fields
    generators DS:1 and DS:2
    Pre/Post conds (f::isseqof:isfun) => (isseqof:isfun)
    Example (cons~n):< s1,s2,sin~s1*sin~s2>:< 0,0> == < 0,0,1.0>

  • Principalnormal intrinsic vector for a curve given by coordinate functions
    Pre/Post conds (curve::isseqof:isfun)(a::ispoint) => (isfun)
    Example MAP:(principalnormal:< cos ~ s1, sin ~ s1>):(intervals:(pi):12)

  • Tangent intrinsic vector for a curve given by coordinate functions
    Pre/Post conds (curve::isseqof:isfun)(a::ispoint) => (isfun)
    Example MAP:((tangent ~ bezier:s1):< < 0,0,0>,< 1,0,0>,< 1,1,0>,< 1,1,1>>):
    (intervals:1:20)

  • X i-th partial derivative of a scalar function f of several variables at point x
    Pre/Post conds (i::isintpos)(f::isfun)(x::ispoint) => (isnum)
    Example cons:(aa:(x:2):< s1,s2,sin ~ s1*sin ~ s2>):< 0,0> == < 0,1.0,0>  

PLaSM is Free Software and may be distributed under GNU LGPL