Methods for operators +,-,*,/,... in Package distr
Arithmetics and unary mathematical transformations for distributions
e1,e2 |
objects of class |
-signature(e1 = "UnivariateDistribution", e2 = "missing") unary operator; result again of class "UnivariateDistribution"; exact
-signature(e1 = "Norm", e2 = "missing") unary operator; result again of "Norm"; exact
+signature(e1 = "UnivariateDistribution", e2 = "numeric") result again of class "UnivariateDistribution"; exact
+signature(e1 = "AbscontDistribution", e2 = "numeric") result of
class "AffLinAbscontDistribution"; exact
+signature(e1 = "DiscreteDistribution", e2 = "numeric") result of
class "AffLinDiscreteDistribution"; exact
+signature(e1 = "LatticeDistribution", e2 = "numeric") result of
class "AffLinLatticeDistribution"; exact
+signature(e1 = "UnivarLebDecDistribution", e2 = "numeric") result of
class "AffLinUnivarLebDecDistribution"; exact
+signature(e1 = "CompoundDistribution", e2 = "numeric") result of
class "AffLinUnivarLebDecDistribution"; exact
+signature(e1 = "AffLinAbscontDistribution", e2 = "numeric") result again of
class "AffLinAbscontDistribution"; exact
+signature(e1 = "AffLinDiscreteDistribution", e2 = "numeric") result again of
class "AffLinDiscreteDistribution"; exact
+signature(e1 = "AffLinLatticeDistribution", e2 = "numeric") result again of
class "AffLinLatticeDistribution"; exact
+signature(e1 = "AffLinUnivarLebDecDistribution", e2 = "numeric") result of
class "AffLinUnivarLebDecDistribution"; exact
+signature(e1 = "Cauchy", e2 = "numeric") result again of class "Cauchy"; exact
+signature(e1 = "Dirac", e2 = "numeric") result again of class "Dirac"; exact
+signature(e1 = "Norm", e2 = "numeric") result again of class "Norm"; exact
+signature(e1 = "Unif", e2 = "numeric") result again of class "Unif"; exact
+signature(e1 = "Logis", e2 = "numeric") result again of class "Logis"; exact
+signature(e1 = "numeric", e2 = "UnivariateDistribution") is translated to
signature(e1 = "UnivariateDistribution", e2 = "numeric"); exact
-signature(e1 = "UnivariateDistribution", e2= "ANY");exact
-signature(e1 = "UnivariateDistribution", e2 = "numeric") is translated to
e1 + (-e2); exact
-signature(e1 = "numeric", e2 = "UnivariateDistribution") is translated to (-e1) + e2; exact
-signature(e1 = "numeric", e2 = "Beta") if ncp(e2)==0 and e1 == 1,
an exact (central) Beta(shape1 = shape2(e2), shape2 = shape1(e2)) is returned, else
the default method is used; exact
*signature(e1 = "UnivariateDistribution", e2 = "numeric") result again of class "UnivariateDistribution"; exact
*signature(e1 = "AbscontDistribution", e2 = "numeric") result of
class "AffLinAbscontDistribution"; exact
*signature(e1 = "DiscreteDistribution", e2 = "numeric") result of
class "AffLinDiscreteDistribution"; exact
*signature(e1 = "LatticeDistribution", e2 = "numeric") result of
class "AffLinLatticeDistribution"; exact
*signature(e1 = "UnivarLebDecDistribution", e2 = "numeric") result of
class "AffLinUnivarLebDecDistribution"; exact
*signature(e1 = "CompoundDistribution", e2 = "numeric") result of
class "AffLinUnivarLebDecDistribution"; exact
*signature(e1 = "AffLinAbscontDistribution", e2 = "numeric") result again of
class "AffLinAbscontDistribution"; exact
*signature(e1 = "AffLinDiscreteDistribution", e2 = "numeric") result again of
class "AffLinDiscreteDistribution"; exact
*signature(e1 = "AffLinLatticeDistribution", e2 = "numeric") result again of
class "AffLinLatticeDistribution"; exact
*signature(e1 = "AffLinUnivarLebDecDistribution", e2 = "numeric") result of
class "AffLinUnivarLebDecDistribution"; exact
*signature(e1 = "DExp", e2 = "numeric") if abs(e2)>0 result again of class "DExp"; exact
*signature(e1 = "Exp", e2 = "numeric") if e2>0 result again of class "Exp"; exact
*signature(e1 = "ExpOrGammaOrChisq", e2 = "numeric") if e1 is a Gamma distribution and e2>0
result of class "Gammad"; exact
*signature(e1 = "Weibull", e2 = "numeric") if e2>0
result of class "Weibull"; exact
*signature(e1 = "Cauchy", e2 = "numeric") if abs(e2)>0 result again of class "Cauchy"; exact
*signature(e1 = "Dirac", e2 = "numeric") result again of class "Dirac"; exact
*signature(e1 = "Norm", e2 = "numeric") if abs(e2)>0 result again of class "Norm"; exact
*signature(e1 = "Unif", e2 = "numeric") if abs(e2)>0 result again of class "Unif"; exact
*signature(e1 = "Logis", e2 = "numeric") if e2>0 result again of class "Logis"; exact
*signature(e1 = "Lnorm", e2 = "numeric") if e2>0 result again of class "Lnorm"; exact
*signature(e1 = "numeric", e2 = "UnivariateDistribution") is translated to
signature(e1 = "UnivariateDistribution", e2 = "numeric"); exact
/signature(e1 = "UnivariateDistribution", e2 = "numeric") is translated to e1 * (1/e2); exact
+signature(e1 = "UnivariateDistribution", e2 = "UnivariateDistribution") result again of class
"UnivariateDistribution"; is generated by simulations
-signature(e1 = "UnivariateDistribution", e2 = "UnivariateDistribution") is translated to (-e1) + (-e2);
result again of class "UnivariateDistribution"; is generated by simulations
-signature(e1 = "AcDcLcDistribution", e2 = "AcDcLcDistribution"): both operands are coerced
to class "UnivarLebDecDistribution" and the corresponding method is used.
+signature(e1 = "AbscontDistribution", e2 = "AbscontDistribution") assumes e1, e2 independent; result again of class
"AbscontDistribution"; is generated by FFT
+signature(e1 = "AbscontDistribution", e2 = "DiscreteDistribution") assumes e1, e2 independent; result again of class
"AbscontDistribution"; is generated by FFT
+signature(e1 = "DiscreteDistribution", e2 = "AbscontDistribution") assumes e1, e2 independent; result again of class
"AbscontDistribution"; is generated by FFT
+signature(e1 = "LatticeDistribution", e2 = "LatticeDistribution") assumes e1, e2 independent;
if the larger lattice-width is an integer multiple of the smaller(in abs. value) one: result again of class
"LatticeDistribution"; is generated by D/FFT
+signature(e1 = "DiscreteDistribution", e2 = "DiscreteDistribution") assumes e1, e2 independent; result again of class
"DiscreteDistribution"; is generated by explicite convolution
+signature(e1 = "LatticeDistribution", e2 = "DiscreteDistribution") assumes e1, e2 independent; result again of class
"DiscreteDistribution"; is generated by explicite convolution
+signature(e1 = "UnivarLebDecDistribution", e2 = "UnivarLebDecDistribution") assumes e1, e2 independent; result again of class
"UnivarLebDecDistribution"; is generated by separate explicite convolution of a.c. and discrete parts of e1 and e2
and subsequent flattening with flat.LCD; if getdistrOption("withSimplify") is TRUE, result is piped
through a call to simplifyD
+signature(e1 = "AcDcLcDistribution", e2 = "AcDcLcDistribution"): both operands are coerced
to class "UnivarLebDecDistribution" and the corresponding method is used.
+signature(e1 = "Binom", e2 = "Binom") assumes e1, e2 independent;
if prob(e1)==prob(e2), result again of class
"Binom"; uses the convolution formula for binomial distributions; exact
+signature(e1 = "Cauchy", e2 = "Cauchy") assumes e1, e2 independent; result again of class
"Cauchy"; uses the convolution formula for Cauchy distributions; exact
+signature(e1 = "Chisq", e2 = "Chisq") assumes e1, e2 independent; result again of class
"Chisq"; uses the convolution formula for Chisq distributions; exact
+signature(e1 = "Dirac", e2 = "Dirac") result again of class "Dirac"; exact
+signature(e1 = "ExpOrGammaOrChisq", e2 = "ExpOrGammaOrChisq") assumes e1, e2 independent; if
e1, e2 are Gamma distributions, result is of class
"Gammad"; uses the convolution formula for Gamma distributions; exact
+signature(e1 = "Pois", e2 = "Pois") assumes e1, e2 independent; result again of class
"Pois"; uses the convolution formula for Poisson distributions; exact
+signature(e1 = "Nbinom", e2 = "Nbinom") assumes e1, e2 independent; if
prob(e1)==prob(e2), result again of class
"Nbinom"; uses the convolution formula for negative binomial distributions; exact
+signature(e1 = "Norm", e2 = "Norm") assumes e1, e2 independent; result again of class
"Norm"; uses the convolution formula for normal distributions; exact
+signature(e1 = "UnivariateDistribution", e2 = "Dirac") translated to e1 + location(e2);
result again of class "Dirac"; exact
+signature(e1 = "Dirac", e2 = "UnivariateDistribution") translated to e2 + location(e1);
result again of class "Dirac"; exact
+signature(e1 = "Dirac", e2 = "DiscreteDistribution") translated to e2 + location(e1);
result again of class "Dirac"; exact
-signature(e1 = "Dirac", e2 = "Dirac") result again of class "Dirac"; exact
*signature(e1 = "Dirac", e2 = "Dirac") result again of class "Dirac"; exact
*signature(e1 = "UnivariateDistribution", e2 = "Dirac") translated to e1 * location(e2);
result again of class "Dirac"; exact
*signature(e1 = "Dirac", e2 = "UnivariateDistribution") translated to e2 * location(e1);
result again of class "Dirac"; exact
*signature(e1 = "AcDcLcDistribution", e2 = "AcDcLcDistribution"): by means of decomposePM
e1 and e2 are decomposed into positive and negative parts; of these, convolutions of the
corresponding logarithms are computed separately and finally exp is applied to them, again separately;
the resulting mixing components are then “flattened” to one object of class
UnivarLebDecDistribution by flat.LCD which according to getdistrOption(withSimplify)
gets piped through a call to simplifyD.
/signature(e1 = "Dirac", e2 = "Dirac") result again of class "Dirac"; exact
/signature(e1 = "numeric", e2 = "Dirac") result again of class "Dirac"; exact
/signature(e1 = "numeric", e2 = "AcDcLcDistribution"): if d.discrete(e2)(0)*discreteWeight(e2)>0
throws an error (would give division by 0 with positive probability); else by means of decomposePM
e2 is decomposed into positive and negative parts; then, similarly the result obtains as for
"*"(signature(e1 = "AcDcLcDistribution", e2 = "AcDcLcDistribution")) by the exp-log trick
and is “flattened” to one object of class
UnivarLebDecDistribution by flat.LCD and
according to getdistrOption(withSimplify) is piped through
a call to simplifyD; exact..
/signature(e1 = "AcDcLcDistribution", e2 = "AcDcLcDistribution"): translated to e1 * (1/e2).
^signature(e1 = "AcDcLcDistribution", e2 = "Integer"): if e2=0 returns Dirac(1);
if e2=1 returns e1; if e2<0 translated to (1/e1)^(-e2); exact.
^signature(e1 = "AcDcLcDistribution", e2 = "numeric"): if e2 is integer uses preceding
item; else if e1< 0 with positive probability, throughs an error; else
the result obtains similarly to
"*"(signature(e1 = "AcDcLcDistribution", e2 = "AcDcLcDistribution")) by the exp-log trick
and is “flattened” to one object of class
UnivarLebDecDistribution by flat.LCD and
according to getdistrOption(withSimplify) is piped through
a call to simplifyD; exact.
^signature(e1 = "AcDcLcDistribution", e2 = "AcDcLcDistribution"):
if e1 is negative with positive probability,
throws an error if e2 is non-integer
with positive probability; if e1 is 0 with positive probability
throws an error if e2 is non-integer with positive probability.
if e2 is integer with probability 1 uses
DiscreteDistribution(supp=e1^(Dirac(x)) for each x in support(e2),
builds up a corresponding mixing distribution; the latter is “flattened” to one object of class
UnivarLebDecDistribution by flat.LCD and
according to getdistrOption(withSimplify) is piped through
a call to simplifyD.
Else the result obtains similarly to "*"(signature(e1 = "AcDcLcDistribution",
e2 = "AcDcLcDistribution")) by the exp-log trick
and is “flattened” to one object of class
UnivarLebDecDistribution by flat.LCD and
according to getdistrOption(withSimplify) is piped through
a call to simplifyD; exact.
^signature(e1 = "numeric", e2 = "AcDcLcDistribution"):
if e1 is negative, throws an error if e2 is non-integer
with positive probability; if e1 is 0 throws an error if
e2 is non-integer with positive probability.
if e2 is integer with probability 1 uses
DiscreteDistribution(supp=e1^support(e2), prob=discrete.d(supp))
else the result obtains similarly to "*"(signature(e1 = "AcDcLcDistribution",
e2 = "AcDcLcDistribution")) by the exp-log trick
and is “flattened” to one object of class
UnivarLebDecDistribution by flat.LCD and
according to getdistrOption(withSimplify) is piped through
a call to simplifyD; exact.
Ruckdeschel, P., Kohl, M.(2014): General purpose convolution algorithm for distributions in S4-Classes by means of FFT. J. Statist. Softw. 59(4): 1-25.
N <- Norm(0,3) P <- Pois(4) a <- 3 N + a N + P N - a a * N a * P N / a + sin( a * P - N) N * P N / N ## takes a little time N ^ P 1.2 ^ N abs(N) ^ 1.3
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.