Source code for openalea.stat_tool.convolution
#!/usr/bin/env python
#-*- coding: utf-8 -*-
"""Convolution module
.. topic:: Summary
A module dedicated to Convolution
:Code status: mature
:Documentation status: mature
:Author: Samuel Dufour-Kowalski <samuel.dufour@sophia.inria.fr>
Thomas Cokelaer <Thomas.Cokelaer@sophia.inria.fr>
:Revision: $Id$
.. testsetup:: *
from openalea.stat_tool import *
"""
__version__ = "$Id$"
from . import interface
from . import error
from openalea.stat_tool._stat_tool import _Convolution
from openalea.stat_tool._stat_tool import _DiscreteMixture
from openalea.stat_tool._stat_tool import _Compound
from openalea.stat_tool._stat_tool import _ConvolutionData
from openalea.stat_tool._stat_tool import _DiscreteParametricModel
__all__ = ['Convolution',
'_Convolution',
'_ConvolutionData',]
[docs]
def Convolution(*args):
"""Construction of an object of type convolution from elementary
distributions or from an ASCII file.
The convolution of independent random variables is the distribution
of their sum.
:Parameters:
* dist1, dist2, ...(distribution, mixture, convolution, compound) -
elementary distributions,
* file_name (string).
:Returns:
If the construction succeeds, the returned object is of type
convolution, otherwise no object is returned.
:Examples:
.. doctest::
:options: +SKIP
>>> Convolution(dist1, dist2, ...)
>>> Convolution(file_name)
.. plot::
:width: 50%
:include-source:
from openalea.stat_tool import *
dist1 = Binomial(0,10,0.5)
dist2 = Binomial(0,15,0.2)
c = Convolution(dist1, dist2)
c.plot()
.. seealso::
:func:`~openalea.stat_tool.output.Save`,
:func:`~openalea.stat_tool.estimate.Estimate`,
:func:`~openalea.stat_tool.simulate.Simulate`.
"""
error.CheckArgumentsLength(args, 1)
possible_types = [_DiscreteParametricModel, _DiscreteMixture,
_Compound, _Convolution]
# filename
if(len(args)==1):
error.CheckType([args[0]], [str], arg_id=[1])
result = _Convolution(args[0])
# build from list of distributions
else:
arguments = []
#check that all arguments are correct
for arg, i in zip(args, list(range(0, len(args)))):
error.CheckType([arg], [possible_types], variable_pos=[i+1])
arguments.append(arg)
result = _Convolution(arguments)
return result
# Extend _Convolution
interface.extend_class(_Convolution, interface.StatInterface)
# Extend _ConvolutionData
interface.extend_class(_ConvolutionData, interface.StatInterface)