{"action":"created","issue":{"url":"https://api.github.com/repos/twitter/algebird/issues/394","labels_url":"https://api.github.com/repos/twitter/algebird/issues/394/labels{/name}","comments_url":"https://api.github.com/repos/twitter/algebird/issues/394/comments","events_url":"https://api.github.com/repos/twitter/algebird/issues/394/events","html_url":"https://github.com/twitter/algebird/pull/394","id":53760129,"number":394,"title":"GH-392: Improve hashing of BigInt","user":{"login":"miguno","id":294849,"avatar_url":"https://avatars.githubusercontent.com/u/294849?v=3","gravatar_id":"","url":"https://api.github.com/users/miguno","html_url":"https://github.com/miguno","followers_url":"https://api.github.com/users/miguno/followers","following_url":"https://api.github.com/users/miguno/following{/other_user}","gists_url":"https://api.github.com/users/miguno/gists{/gist_id}","starred_url":"https://api.github.com/users/miguno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miguno/subscriptions","organizations_url":"https://api.github.com/users/miguno/orgs","repos_url":"https://api.github.com/users/miguno/repos","events_url":"https://api.github.com/users/miguno/events{/privacy}","received_events_url":"https://api.github.com/users/miguno/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-01-08T15:08:41Z","updated_at":"2015-01-12T11:13:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/twitter/algebird/pulls/394","html_url":"https://github.com/twitter/algebird/pull/394","diff_url":"https://github.com/twitter/algebird/pull/394.diff","patch_url":"https://github.com/twitter/algebird/pull/394.patch"},"body":"This PR addresses the issue described in #392.\r\n\r\nIn addition, this PR includes several CMS code fixes as well as CMS test/spec fixes that I described at #393.  The reason these fixes are included in the PR is that the hashing improvements for BigInt exposed these code bugs / test bugs, and excluding those fixes would have meant that we end up with non-working code.\r\n\r\nOn a high-level, the hashing improvement for `CMS[BigInt]` covers (cf. #392):\r\n\r\n- We now use Murmur3-based hashing for `BigInt` instead of the \"default\" hashing implementation we use for `Long` and friends.  See #392 for the justification of using Murmur3 and for why this change in general is important for `BigInt` use cases.\r\n\r\nOn a high-level, the additional fixes cover (cf. #393):\r\n\r\n- Fixes to how we estimate inner products of CMS.\r\n- Fixes and improvements (we use ScalaCheck now) to how we test the estimation of inner products.\r\n- Fix to ensure `TopCMSItem` instances (which represent a single item with count 1) are created with a correct counting table.  The previous code was buggy and resulted in miscomputation of inner products."},"comment":{"url":"https://api.github.com/repos/twitter/algebird/issues/comments/69555973","html_url":"https://github.com/twitter/algebird/pull/394#issuecomment-69555973","issue_url":"https://api.github.com/repos/twitter/algebird/issues/394","id":69555973,"user":{"login":"miguno","id":294849,"avatar_url":"https://avatars.githubusercontent.com/u/294849?v=3","gravatar_id":"","url":"https://api.github.com/users/miguno","html_url":"https://github.com/miguno","followers_url":"https://api.github.com/users/miguno/followers","following_url":"https://api.github.com/users/miguno/following{/other_user}","gists_url":"https://api.github.com/users/miguno/gists{/gist_id}","starred_url":"https://api.github.com/users/miguno/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/miguno/subscriptions","organizations_url":"https://api.github.com/users/miguno/orgs","repos_url":"https://api.github.com/users/miguno/repos","events_url":"https://api.github.com/users/miguno/events{/privacy}","received_events_url":"https://api.github.com/users/miguno/received_events","type":"User","site_admin":false},"created_at":"2015-01-12T11:13:49Z","updated_at":"2015-01-12T11:13:49Z","body":"Note: One of the Travis build jobs failed but for an unrelated test (BloomFilter):\r\n\r\n```\r\n[info] BloomFilter\r\n[info] - should identify all true positives\r\n[info] - should have small false positive rate *** FAILED ***\r\n[info] 0.0021 was not less than or equal to 0.002 (BloomFilterTest.scala:141)\r\n```\r\n\r\n"}}