internal override BaseDistribution InnerGetSumm(BaseDistribution value) { switch (value.InnerDistributionType) { case DistributionType.Number: { return(Mean + value.InnerMean); } case DistributionType.Continious: { return(ContinuousRandomMath.Add((ContinuousDistribution)value, Mean)); } case DistributionType.Discrete: { return(DiscreteRandomMath.Add((DiscreteDistribution)value, Mean)); } default: { throw new DistributionsInvalidOperationException(); } } }
internal override BaseDistribution InnerGetLog(BaseDistribution nBase) { switch (nBase.InnerDistributionType) { case DistributionType.Number: { return(CommonRandomMath.Log(this, (double)nBase)); } case DistributionType.Continious: { return(DiscreteRandomMath.Log(Discretize(), (DiscreteDistribution)(ContinuousDistribution)nBase)); } case DistributionType.Discrete: { return(DiscreteRandomMath.Log(Discretize(), (DiscreteDistribution)nBase)); } default: { throw new DistributionsInvalidOperationException(); } } }
internal override BaseDistribution InnerGetRatio(BaseDistribution value) { switch (value.InnerDistributionType) { case DistributionType.Number: { return(DiscreteRandomMath.Divide(this, (double)value)); } case DistributionType.Discrete: { return(DiscreteRandomMath.Divide(this, (DiscreteDistribution)value)); } case DistributionType.Continious: { return(DiscreteRandomMath.Divide(this, (DiscreteDistribution)(ContinuousDistribution)value)); } default: { throw new DistributionsInvalidOperationException(); } } }
internal override BaseDistribution InnerGetNegate() { return(DiscreteRandomMath.Negate(this)); }