Dan Rosher created SOLR-16361:
---------------------------------

             Summary: 'mod' function query casts to float, returns wrong 
modulus for large ints
                 Key: SOLR-16361
                 URL: https://issues.apache.org/jira/browse/SOLR-16361
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
          Components: search
    Affects Versions: 9.0
            Reporter: Dan Rosher


mod function query uses DualFloatFunction. This eventualy does a conversion
{code:java}
 (float)value {code}
 converting an integer (32bit) into a float which has a 24bit mantissa 
,resulting in a loss of precision.

This means that for integers > 2^24 this returns an incorrect modulus due to 
this loss of precision.

Should we use integer only, or perhaps cast to double (so then create a 
DualDoubleFunction) which has a 52bit mantissa, so can convert int to double 
without loss of precision?

This issue may also affect the other function queries?

 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to