LaplacePrior

 
LaplacePrior = class LaplacePrior(Prior)
    LaplacePrior(center=0.0, scale=1.0, limits=None, circular=False, prior=None)
 
Laplace prior distribution.
 
    Pr( x ) = 1 / ( 2 s ) exp( - |x - c| / s )
 
By default: c = center = 0.0 and s = scale = 1.
 
It can also have a limited domain.
By default the domain is [-Inf,+Inf].
In computational practice the domain is limited to about [-36,36] scale units
 
Equivalent to a double-sided exponential prior
 
domain2unit: u = 0.5 * exp( ( d - c ) / scale )             if d < c
                 1.0 - 0.5 * exp( ( c - d ) / scale )       otherwise
unit2domain: d = c + log( 2 * u ) * scale                   if u < 0.5
                 c - log( 2 * ( 1 - u ) ) * scale           otherwise
 
Examples
--------
>>> pr = LaplacePrior()                         # center=0, scale=1
>>> pr = LaplacePrior( center=1.0, scale=0.5 )
>>> pr = LaplacePrior( limits=[0,None] )        # limites to values >= 0
>>> pr = LaplacePrior( center=1, circular=3 )   # circular between 0.5 and 2.5
 
Attributes
----------
center : float
    center of the Laplace prior
scale : float
    scale of the Laplace prior
 
Attributes from Prior
--------------------=
lowLimit, highLimit, deltaP, _lowDomain, _highDomain
 
lowLimit and highLimit cannot be used in this implementation.
 
 
Method resolution order:
LaplacePrior
Prior
builtins.object

Constructor:
LaplacePrior( center=0.0, scale=1.0, limits=None, circular=False, prior=None )
Constructor.
 
Parameters
----------
center : float
    of the prior
scale : float
    of the prior
limits : None or list of 2 float/None
    None : no limits.
    2 limits, resp low and high
circular : bool or float
    bool : y|n circular with period from limits[0] to limits[1]
    float :period of circularity
prior : LaplacePrior
    prior to copy (with new scale if applicable)
Methods defined here:
copy()
Return a copy
domain2Unit( dval )
Return a value in [0,1] given a value within the valid domain of
a parameter for a Laplace distribution.
 
domain2unit: u = 0.5 * exp( ( d - c ) / s ) if d < c else
                 1.0 - 0.5 * exp( ( c - d ) / s )
 
Parameters
----------
dval : float
    value within the domain of a parameter
isBound()
Return true if the integral over the prior is bound.
logResult( x )
Return a the log of the result of the distribution function to p.
 
Parameters
----------
x : float
    value within the domain of a parameter
partialLog( x )
Return partial derivative of log( Prior ) wrt parameter.
 
Parameters
----------
x : float
    the value
result( x )
Return a the result of the distribution function at x.
 
Parameters
----------
x : float
    value within the domain of a parameter
shortName()
unit2Domain( uval )
Return a value within the valid domain of the parameter given a value
between [0,1] for a Laplace distribution.
 
unit2domain: d = c + log( 2 * u ) * scale if u < 0.5 else
                 c - log( 2 * ( 1 - u ) ) * scale;
 
Parameters
----------
uval : float
    value within [0,1]

Methods inherited from Prior: