예제 #1
0
        private void InternalInitialize(int iteration, int timestep, EPDistributionProvider provider)
        {
            this.CheckDisabled();

            if (this.m_DistributionTypeId.HasValue)
            {
                int IterationToUse = iteration;
                int TimestepToUse  = timestep;

                if (this.m_Iteration.HasValue)
                {
                    IterationToUse = this.m_Iteration.Value;
                }

                if (this.m_Timestep.HasValue)
                {
                    TimestepToUse = this.m_Timestep.Value;
                }

                this.m_CurrentValue = provider.EPSample(
                    this.m_DistributionTypeId.Value, this.m_DistributionValue,
                    this.m_DistributionSD, this.m_DistributionMin, this.m_DistributionMax,
                    IterationToUse, TimestepToUse, this.m_JurisdictionId);
            }
            else
            {
                Debug.Assert(this.m_DistributionValue.HasValue);
                this.m_CurrentValue = this.m_DistributionValue.Value;
            }

            Debug.Assert(this.m_CurrentValue.HasValue);
        }
예제 #2
0
        private double InternalSample(int iteration, int timestep, EPDistributionProvider provider, DistributionFrequency frequency)
        {
            this.CheckDisabled();

            if (this.m_DistributionTypeId.HasValue)
            {
                if (this.m_DistributionFrequency == frequency || this.m_DistributionFrequency == DistributionFrequency.Always)
                {
                    this.m_CurrentValue = provider.EPSample(
                        this.m_DistributionTypeId.Value, this.m_DistributionValue,
                        this.m_DistributionSD, this.m_DistributionMin, this.m_DistributionMax,
                        iteration, timestep, this.m_JurisdictionId);
                }
            }

            Debug.Assert(this.m_CurrentValue.HasValue);
            return(this.m_CurrentValue.Value);
        }