[ https://issues.apache.org/jira/browse/MATH-1338?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15212142#comment-15212142 ]
Rob Tompkins edited comment on MATH-1338 at 3/25/16 5:50 PM: ------------------------------------------------------------- I see. I just read {{doc/development/development.howto.txt}} and now see how the branching strategy works. I'll spend some time reading over the MATH-1158 branch to the work there for future reference. Thanks for the patience with my naivety here. was (Author: chtompki): I see. I just read {{doc/development/development.howto.txt}} and now see how the branching strategy works. I'll spend some time reading over the MATH-1158 branch to see if I can mimic the work there. Thanks for the patience with my naivety here. > Does "EmpiricalDistribution" use "RandomDataGenerator"? > ------------------------------------------------------- > > Key: MATH-1338 > URL: https://issues.apache.org/jira/browse/MATH-1338 > Project: Commons Math > Issue Type: Bug > Reporter: Gilles > Priority: Blocker > Labels: api, cleanup, exception > Fix For: 4.0 > > > The class {{EmpiricalDistribution}} (in package "o.a.c.m.random") holds an > instance field ("randomData") of type {{RandomDataGenerator}}. > The documentation of this field indicates that it is only used for sampling, > and indeed the field is only accessed in order to fetch the RNG object stored > in it. > It is unclear why {{RandomDataGenerator}} was needed to hold a RNG since the > same RNG could have been (in the current design) readily available in the > base class. > Sampling is performed in method {{getNextValue()}} (which in turn calls > {{sample()}} in the parent class). > {{getNextValue()}} performs a precondition check before calling {{sample()}} > and raises a CM specific {{MathIllegalStateException}}; but the inherited > {{sample()}} method can be still called directly on the instance, and in that > case, if the (same) condition is not fulfilled, a standard > {{NullPointerException}} will be thrown instead. > In line with MATH-1158, the sampling functionality should be accessed through > the {{RealDistribution.Sampler}} interface, and {{getNextValue()}} is to be > removed as it duplicates the common API (i.e. the {{sample()}} method). > Since the RNG is then passed to the {{createSampler}} factory method, the > "randomData" field becomes obsolete. -- This message was sent by Atlassian JIRA (v6.3.4#6332)