internal override BaseDistribution InnerGetPower(BaseDistribution value)
        {
            switch (value.InnerDistributionType)
            {
            case DistributionType.Number:
            {
                return(CommonRandomMath.Power(this, (double)value));
            }

            case DistributionType.Discrete:
            {
                return(DiscreteRandomMath.Power(Discretize(), (DiscreteDistribution)value));
            }

            case DistributionType.Continious:
            {
                return(DiscreteRandomMath.Power(Discretize(), (DiscreteDistribution)(ContinuousDistribution)value));
            }

            default:
            {
                throw new DistributionsInvalidOperationException();
            }
            }
        }