[ 
https://issues.apache.org/jira/browse/LUCENE-5759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Adrien Grand updated LUCENE-5759:
---------------------------------

    Attachment: LUCENE-5759.patch

I don't think it's confusing: you first need to compute how many bits you 
require and then to bump it to the next value that is supported by the 
{{DirectWriter}} API? But I agree your idea makes the API a bit easier to use 
since there is a single method to call instead of 2, here is an updated patch.

> Add PackedInts.unsignedBitsRequired
> -----------------------------------
>
>                 Key: LUCENE-5759
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5759
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Adrien Grand
>            Assignee: Adrien Grand
>            Priority: Minor
>             Fix For: 4.9
>
>         Attachments: LUCENE-5759.patch, LUCENE-5759.patch, LUCENE-5759.patch
>
>
> Across the code base, we have lots of:
> {code}
> long minValue, maxValue;
> final long delta = maxValue - minValue;
> final int bitsRequired = delta < 0 64 : Packedints.bitsRequired(delta);
> {code}
> {{Packedints.bitsRequired(delta)}} doesn't work directly in that case since 
> it expects a positive value. And that is important that it does so in order 
> to get an error instead of silently being super wasteful if a negative value 
> is provided.
> Yet in some cases such as the one depicted above, the value should be 
> interpreted as an unsigned long. So I propose to add another {{bitsRequired}} 
> method that would interpret the value as unsigned.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to