[ https://issues.apache.org/jira/browse/RNG-76?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alex Herbert resolved RNG-76. ----------------------------- Fix Version/s: 1.3 Resolution: Implemented In git master. > Add a primitive constructor to SplitMix64 > ----------------------------------------- > > Key: RNG-76 > URL: https://issues.apache.org/jira/browse/RNG-76 > Project: Commons RNG > Issue Type: Improvement > Components: core > Affects Versions: 1.3 > Reporter: Alex Herbert > Assignee: Alex Herbert > Priority: Trivial > Fix For: 1.3 > > Time Spent: 40m > Remaining Estimate: 0h > > The constructor for {{SplitMix64}} uses a {{Long}} for the seed. If > constructed using a primitive {{long}} then auto-boxing will occur. > I added a {{long}} version of the constructor to SplitMix64: > {code:java} > SplitMix64(Long seed); > SplitMix64(long seed); > {code} > I modified the {{ConstructionPerformance}} benchmark to generate 5000 random > seeds as {{Long}} or {{long}} then tested: > {code:java} > // Pre-generated Long > new SplitMix64(Long seed); > // Pre-generated long that is boxed to Long > new SplitMix64(Long.valueOf(long seed)); > // Pre-generated long > new SplitMix64(long seed); > {code} > Results: > ||Method||Score||Error||Median|| > |newSplitMix64Long|34.70|0.85|34.57| > |newSplitMix64LongValueOf|55.84|5.38|55.91| > |newSplitMix64long|32.66|1.49|32.46| > Given that the {{SplitMix64}} is the preferred RNG for seeding from a single > {{long}} value it makes sense to add the constructor version that accepts a > {{long}}. -- This message was sent by Atlassian Jira (v8.3.4#803005)