[
https://issues.apache.org/jira/browse/COLLECTIONS-817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alex Herbert resolved COLLECTIONS-817.
--------------------------------------
Resolution: Done
BloomFilter estimate computations have been updated to correct the
implementation, document the expected behaviour and handle infinite values.
> BloomFilter: Converting Double to Int
> -------------------------------------
>
> Key: COLLECTIONS-817
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-817
> Project: Commons Collections
> Issue Type: Bug
> Components: Collection
> Reporter: Claude Warren
> Priority: Minor
> Labels: bloom-filter
> Fix For: 4.5
>
>
> [https://github.com/Claudenw/commons-collections/blob/9f2945cc98747893456b73f42ab53f46a866ac37/src/main/java/org/apache/commons/collections4/bloomfilter/BloomFilter.java#L216-L251]
> Should this be a double?
> Since this is a pass through method that is converting a precise value from
> the shape into an imprecise one I would recommend removing it. A paragraph
> can be added to the class javadoc on how to estimate N and also the size of
> the union and intersection with another filter. Those methods also suffer
> from the same inaccuracy. If this functionality was moved to class javadoc
> then it is clear to the user how to compute it and what the computation
> requires.
> Another issue is that the argument filter's shape is not checked. The merge
> should join the smaller filter into the bigger one and then the estimateN
> called on the larger filter. Otherwise this method is not symmetric. One way
> would be fine but the other would result in a merge error.
> If this is only intended for filters with the same number of bits then the
> expected result of a mismatch is not documented.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)