Calculate expected value of a function with respect to the distribution
for discrete distribution

Parameters :

fn : function (default: identity mapping)

Function for which sum is calculated. Takes only one argument.

args : tuple

argument (parameters) of the distribution

lb, ub : numbers, optional

lower and upper bound for integration, default is set to the support
of the distribution, lb and ub are inclusive (ul<=k<=ub)

conditional : bool, optional

Default is False.
If true then the expectation is corrected by the conditional
probability of the integration interval. The return value is the
expectation of the function, conditional on being in the given
interval (k such that ul<=k<=ub).

suppnmin=100 internal parameter for minimum number of points to evaluate
could be added as keyword parameter, to evaluate functions with
non-monotonic shapes, points include integers in (-suppnmin, suppnmin)

uses maxcount=1000 limits the number of points that are evaluated
to break loop for infinite sums
(a maximum of suppnmin+1000 positive plus suppnmin+1000 negative
integers are evaluated)