Hi Luceners!

I am misusing the document score for date sorting (I display news
headlines in a chronological list).

As the document score is ultimately encoded as a byte the maximum
possible number of values is 256 minus the special value of 0
(document not found).

In the current implementation; all negative float values get
rounded up to zero by Similarity.floatToByte() and the method
Similarity.byteToFloat() returns only values in the range of
1 to 127 values that are greater than the decode for the
next lower byte value.

i.e. 
Similarity.byteToFloat(byteVal+1) > Similarity.byteToFloat(byteVal)

For my application having 255 possible scores from searches was better
than 127 so....

I have patched the Similarity class to encode negative floats into
the negative byte values and to decode the negative byte values back
into negative floats.

The encoding of the positive values are unchanged by this patch.

Could this version please be checked into CVS by someone with commit
rights?  Or is there are a more formal procedure to submitting patches,
say via the Bugzilla?

Many Thanks,

Nick Smith
byte -128 float 2.0 encoded -128
byte -127 float 2.5 encoded -127
byte -126 float 3.0 encoded -126
byte -125 float 3.5 encoded -125
byte -124 float 4.0 encoded -124
byte -123 float 5.0 encoded -123
byte -122 float 6.0 encoded -122
byte -121 float 7.0 encoded -121
byte -120 float 8.0 encoded -120
byte -119 float 10.0 encoded -119
byte -118 float 12.0 encoded -118
byte -117 float 14.0 encoded -117
byte -116 float 16.0 encoded -116
byte -115 float 20.0 encoded -115
byte -114 float 24.0 encoded -114
byte -113 float 28.0 encoded -113
byte -112 float 32.0 encoded -112
byte -111 float 40.0 encoded -111
byte -110 float 48.0 encoded -110
byte -109 float 56.0 encoded -109
byte -108 float 64.0 encoded -108
byte -107 float 80.0 encoded -107
byte -106 float 96.0 encoded -106
byte -105 float 112.0 encoded -105
byte -104 float 128.0 encoded -104
byte -103 float 160.0 encoded -103
byte -102 float 192.0 encoded -102
byte -101 float 224.0 encoded -101
byte -100 float 256.0 encoded -100
byte -99 float 320.0 encoded -99
byte -98 float 384.0 encoded -98
byte -97 float 448.0 encoded -97
byte -96 float 512.0 encoded -96
byte -95 float 640.0 encoded -95
byte -94 float 768.0 encoded -94
byte -93 float 896.0 encoded -93
byte -92 float 1024.0 encoded -92
byte -91 float 1280.0 encoded -91
byte -90 float 1536.0 encoded -90
byte -89 float 1792.0 encoded -89
byte -88 float 2048.0 encoded -88
byte -87 float 2560.0 encoded -87
byte -86 float 3072.0 encoded -86
byte -85 float 3584.0 encoded -85
byte -84 float 4096.0 encoded -84
byte -83 float 5120.0 encoded -83
byte -82 float 6144.0 encoded -82
byte -81 float 7168.0 encoded -81
byte -80 float 8192.0 encoded -80
byte -79 float 10240.0 encoded -79
byte -78 float 12288.0 encoded -78
byte -77 float 14336.0 encoded -77
byte -76 float 16384.0 encoded -76
byte -75 float 20480.0 encoded -75
byte -74 float 24576.0 encoded -74
byte -73 float 28672.0 encoded -73
byte -72 float 32768.0 encoded -72
byte -71 float 40960.0 encoded -71
byte -70 float 49152.0 encoded -70
byte -69 float 57344.0 encoded -69
byte -68 float 65536.0 encoded -68
byte -67 float 81920.0 encoded -67
byte -66 float 98304.0 encoded -66
byte -65 float 114688.0 encoded -65
byte -64 float 131072.0 encoded -64
byte -63 float 163840.0 encoded -63
byte -62 float 196608.0 encoded -62
byte -61 float 229376.0 encoded -61
byte -60 float 262144.0 encoded -60
byte -59 float 327680.0 encoded -59
byte -58 float 393216.0 encoded -58
byte -57 float 458752.0 encoded -57
byte -56 float 524288.0 encoded -56
byte -55 float 655360.0 encoded -55
byte -54 float 786432.0 encoded -54
byte -53 float 917504.0 encoded -53
byte -52 float 1048576.0 encoded -52
byte -51 float 1310720.0 encoded -51
byte -50 float 1572864.0 encoded -50
byte -49 float 1835008.0 encoded -49
byte -48 float 2097152.0 encoded -48
byte -47 float 2621440.0 encoded -47
byte -46 float 3145728.0 encoded -46
byte -45 float 3670016.0 encoded -45
byte -44 float 4194304.0 encoded -44
byte -43 float 5242880.0 encoded -43
byte -42 float 6291456.0 encoded -42
byte -41 float 7340032.0 encoded -41
byte -40 float 8388608.0 encoded -40
byte -39 float 1.048576E7 encoded -39
byte -38 float 1.2582912E7 encoded -38
byte -37 float 1.4680064E7 encoded -37
byte -36 float 1.6777216E7 encoded -36
byte -35 float 2.097152E7 encoded -35
byte -34 float 2.5165824E7 encoded -34
byte -33 float 2.9360128E7 encoded -33
byte -32 float 3.3554432E7 encoded -32
byte -31 float 4.194304E7 encoded -31
byte -30 float 5.0331648E7 encoded -30
byte -29 float 5.8720256E7 encoded -29
byte -28 float 6.7108864E7 encoded -28
byte -27 float 8.388608E7 encoded -27
byte -26 float 1.00663296E8 encoded -26
byte -25 float 1.17440512E8 encoded -25
byte -24 float 1.34217728E8 encoded -24
byte -23 float 1.6777216E8 encoded -23
byte -22 float 2.01326592E8 encoded -22
byte -21 float 2.34881024E8 encoded -21
byte -20 float 2.68435456E8 encoded -20
byte -19 float 3.3554432E8 encoded -19
byte -18 float 4.02653184E8 encoded -18
byte -17 float 4.69762048E8 encoded -17
byte -16 float 5.3687091E8 encoded -16
byte -15 float 6.7108864E8 encoded -15
byte -14 float 8.0530637E8 encoded -14
byte -13 float 9.395241E8 encoded -13
byte -12 float 1.07374182E9 encoded -12
byte -11 float 1.34217728E9 encoded -11
byte -10 float 1.61061274E9 encoded -10
byte -9 float 1.87904819E9 encoded -9
byte -8 float 2.14748365E9 encoded -8
byte -7 float 2.68435456E9 encoded -7
byte -6 float 3.22122547E9 encoded -6
byte -5 float 3.75809638E9 encoded -5
byte -4 float 4.2949673E9 encoded -4
byte -3 float 5.3687091E9 encoded -3
byte -2 float 6.4424509E9 encoded -2
byte -1 float 7.5161928E9 encoded -1
byte 0 float 0.0 encoded 0
byte 1 float 5.820766E-10 encoded 1
byte 2 float 6.9849193E-10 encoded 2
byte 3 float 8.1490725E-10 encoded 3
byte 4 float 9.313226E-10 encoded 4
byte 5 float 1.1641532E-9 encoded 5
byte 6 float 1.3969839E-9 encoded 6
byte 7 float 1.6298145E-9 encoded 7
byte 8 float 1.8626451E-9 encoded 8
byte 9 float 2.3283064E-9 encoded 9
byte 10 float 2.7939677E-9 encoded 10
byte 11 float 3.259629E-9 encoded 11
byte 12 float 3.7252903E-9 encoded 12
byte 13 float 4.656613E-9 encoded 13
byte 14 float 5.5879354E-9 encoded 14
byte 15 float 6.519258E-9 encoded 15
byte 16 float 7.4505806E-9 encoded 16
byte 17 float 9.313226E-9 encoded 17
byte 18 float 1.1175871E-8 encoded 18
byte 19 float 1.3038516E-8 encoded 19
byte 20 float 1.4901161E-8 encoded 20
byte 21 float 1.8626451E-8 encoded 21
byte 22 float 2.2351742E-8 encoded 22
byte 23 float 2.6077032E-8 encoded 23
byte 24 float 2.9802322E-8 encoded 24
byte 25 float 3.7252903E-8 encoded 25
byte 26 float 4.4703484E-8 encoded 26
byte 27 float 5.2154064E-8 encoded 27
byte 28 float 5.9604645E-8 encoded 28
byte 29 float 7.4505806E-8 encoded 29
byte 30 float 8.940697E-8 encoded 30
byte 31 float 1.0430813E-7 encoded 31
byte 32 float 1.1920929E-7 encoded 32
byte 33 float 1.4901161E-7 encoded 33
byte 34 float 1.7881393E-7 encoded 34
byte 35 float 2.0861626E-7 encoded 35
byte 36 float 2.3841858E-7 encoded 36
byte 37 float 2.9802322E-7 encoded 37
byte 38 float 3.5762787E-7 encoded 38
byte 39 float 4.172325E-7 encoded 39
byte 40 float 4.7683716E-7 encoded 40
byte 41 float 5.9604645E-7 encoded 41
byte 42 float 7.1525574E-7 encoded 42
byte 43 float 8.34465E-7 encoded 43
byte 44 float 9.536743E-7 encoded 44
byte 45 float 1.1920929E-6 encoded 45
byte 46 float 1.4305115E-6 encoded 46
byte 47 float 1.66893E-6 encoded 47
byte 48 float 1.9073486E-6 encoded 48
byte 49 float 2.3841858E-6 encoded 49
byte 50 float 2.861023E-6 encoded 50
byte 51 float 3.33786E-6 encoded 51
byte 52 float 3.8146973E-6 encoded 52
byte 53 float 4.7683716E-6 encoded 53
byte 54 float 5.722046E-6 encoded 54
byte 55 float 6.67572E-6 encoded 55
byte 56 float 7.6293945E-6 encoded 56
byte 57 float 9.536743E-6 encoded 57
byte 58 float 1.1444092E-5 encoded 58
byte 59 float 1.335144E-5 encoded 59
byte 60 float 1.5258789E-5 encoded 60
byte 61 float 1.9073486E-5 encoded 61
byte 62 float 2.2888184E-5 encoded 62
byte 63 float 2.670288E-5 encoded 63
byte 64 float 3.0517578E-5 encoded 64
byte 65 float 3.8146973E-5 encoded 65
byte 66 float 4.5776367E-5 encoded 66
byte 67 float 5.340576E-5 encoded 67
byte 68 float 6.1035156E-5 encoded 68
byte 69 float 7.6293945E-5 encoded 69
byte 70 float 9.1552734E-5 encoded 70
byte 71 float 1.0681152E-4 encoded 71
byte 72 float 1.2207031E-4 encoded 72
byte 73 float 1.5258789E-4 encoded 73
byte 74 float 1.8310547E-4 encoded 74
byte 75 float 2.1362305E-4 encoded 75
byte 76 float 2.4414062E-4 encoded 76
byte 77 float 3.0517578E-4 encoded 77
byte 78 float 3.6621094E-4 encoded 78
byte 79 float 4.272461E-4 encoded 79
byte 80 float 4.8828125E-4 encoded 80
byte 81 float 6.1035156E-4 encoded 81
byte 82 float 7.324219E-4 encoded 82
byte 83 float 8.544922E-4 encoded 83
byte 84 float 9.765625E-4 encoded 84
byte 85 float 0.0012207031 encoded 85
byte 86 float 0.0014648438 encoded 86
byte 87 float 0.0017089844 encoded 87
byte 88 float 0.001953125 encoded 88
byte 89 float 0.0024414062 encoded 89
byte 90 float 0.0029296875 encoded 90
byte 91 float 0.0034179688 encoded 91
byte 92 float 0.00390625 encoded 92
byte 93 float 0.0048828125 encoded 93
byte 94 float 0.005859375 encoded 94
byte 95 float 0.0068359375 encoded 95
byte 96 float 0.0078125 encoded 96
byte 97 float 0.009765625 encoded 97
byte 98 float 0.01171875 encoded 98
byte 99 float 0.013671875 encoded 99
byte 100 float 0.015625 encoded 100
byte 101 float 0.01953125 encoded 101
byte 102 float 0.0234375 encoded 102
byte 103 float 0.02734375 encoded 103
byte 104 float 0.03125 encoded 104
byte 105 float 0.0390625 encoded 105
byte 106 float 0.046875 encoded 106
byte 107 float 0.0546875 encoded 107
byte 108 float 0.0625 encoded 108
byte 109 float 0.078125 encoded 109
byte 110 float 0.09375 encoded 110
byte 111 float 0.109375 encoded 111
byte 112 float 0.125 encoded 112
byte 113 float 0.15625 encoded 113
byte 114 float 0.1875 encoded 114
byte 115 float 0.21875 encoded 115
byte 116 float 0.25 encoded 116
byte 117 float 0.3125 encoded 117
byte 118 float 0.375 encoded 118
byte 119 float 0.4375 encoded 119
byte 120 float 0.5 encoded 120
byte 121 float 0.625 encoded 121
byte 122 float 0.75 encoded 122
byte 123 float 0.875 encoded 123
byte 124 float 1.0 encoded 124
byte 125 float 1.25 encoded 125
byte 126 float 1.5 encoded 126
byte -128 float -1.75 encoded -128
byte -127 float -1.5 encoded -127
byte -126 float -1.25 encoded -126
byte -125 float -1.0 encoded -125
byte -124 float -0.875 encoded -124
byte -123 float -0.75 encoded -123
byte -122 float -0.625 encoded -122
byte -121 float -0.5 encoded -121
byte -120 float -0.4375 encoded -120
byte -119 float -0.375 encoded -119
byte -118 float -0.3125 encoded -118
byte -117 float -0.25 encoded -117
byte -116 float -0.21875 encoded -116
byte -115 float -0.1875 encoded -115
byte -114 float -0.15625 encoded -114
byte -113 float -0.125 encoded -113
byte -112 float -0.109375 encoded -112
byte -111 float -0.09375 encoded -111
byte -110 float -0.078125 encoded -110
byte -109 float -0.0625 encoded -109
byte -108 float -0.0546875 encoded -108
byte -107 float -0.046875 encoded -107
byte -106 float -0.0390625 encoded -106
byte -105 float -0.03125 encoded -105
byte -104 float -0.02734375 encoded -104
byte -103 float -0.0234375 encoded -103
byte -102 float -0.01953125 encoded -102
byte -101 float -0.015625 encoded -101
byte -100 float -0.013671875 encoded -100
byte -99 float -0.01171875 encoded -99
byte -98 float -0.009765625 encoded -98
byte -97 float -0.0078125 encoded -97
byte -96 float -0.0068359375 encoded -96
byte -95 float -0.005859375 encoded -95
byte -94 float -0.0048828125 encoded -94
byte -93 float -0.00390625 encoded -93
byte -92 float -0.0034179688 encoded -92
byte -91 float -0.0029296875 encoded -91
byte -90 float -0.0024414062 encoded -90
byte -89 float -0.001953125 encoded -89
byte -88 float -0.0017089844 encoded -88
byte -87 float -0.0014648438 encoded -87
byte -86 float -0.0012207031 encoded -86
byte -85 float -9.765625E-4 encoded -85
byte -84 float -8.544922E-4 encoded -84
byte -83 float -7.324219E-4 encoded -83
byte -82 float -6.1035156E-4 encoded -82
byte -81 float -4.8828125E-4 encoded -81
byte -80 float -4.272461E-4 encoded -80
byte -79 float -3.6621094E-4 encoded -79
byte -78 float -3.0517578E-4 encoded -78
byte -77 float -2.4414062E-4 encoded -77
byte -76 float -2.1362305E-4 encoded -76
byte -75 float -1.8310547E-4 encoded -75
byte -74 float -1.5258789E-4 encoded -74
byte -73 float -1.2207031E-4 encoded -73
byte -72 float -1.0681152E-4 encoded -72
byte -71 float -9.1552734E-5 encoded -71
byte -70 float -7.6293945E-5 encoded -70
byte -69 float -6.1035156E-5 encoded -69
byte -68 float -5.340576E-5 encoded -68
byte -67 float -4.5776367E-5 encoded -67
byte -66 float -3.8146973E-5 encoded -66
byte -65 float -3.0517578E-5 encoded -65
byte -64 float -2.670288E-5 encoded -64
byte -63 float -2.2888184E-5 encoded -63
byte -62 float -1.9073486E-5 encoded -62
byte -61 float -1.5258789E-5 encoded -61
byte -60 float -1.335144E-5 encoded -60
byte -59 float -1.1444092E-5 encoded -59
byte -58 float -9.536743E-6 encoded -58
byte -57 float -7.6293945E-6 encoded -57
byte -56 float -6.67572E-6 encoded -56
byte -55 float -5.722046E-6 encoded -55
byte -54 float -4.7683716E-6 encoded -54
byte -53 float -3.8146973E-6 encoded -53
byte -52 float -3.33786E-6 encoded -52
byte -51 float -2.861023E-6 encoded -51
byte -50 float -2.3841858E-6 encoded -50
byte -49 float -1.9073486E-6 encoded -49
byte -48 float -1.66893E-6 encoded -48
byte -47 float -1.4305115E-6 encoded -47
byte -46 float -1.1920929E-6 encoded -46
byte -45 float -9.536743E-7 encoded -45
byte -44 float -8.34465E-7 encoded -44
byte -43 float -7.1525574E-7 encoded -43
byte -42 float -5.9604645E-7 encoded -42
byte -41 float -4.7683716E-7 encoded -41
byte -40 float -4.172325E-7 encoded -40
byte -39 float -3.5762787E-7 encoded -39
byte -38 float -2.9802322E-7 encoded -38
byte -37 float -2.3841858E-7 encoded -37
byte -36 float -2.0861626E-7 encoded -36
byte -35 float -1.7881393E-7 encoded -35
byte -34 float -1.4901161E-7 encoded -34
byte -33 float -1.1920929E-7 encoded -33
byte -32 float -1.0430813E-7 encoded -32
byte -31 float -8.940697E-8 encoded -31
byte -30 float -7.4505806E-8 encoded -30
byte -29 float -5.9604645E-8 encoded -29
byte -28 float -5.2154064E-8 encoded -28
byte -27 float -4.4703484E-8 encoded -27
byte -26 float -3.7252903E-8 encoded -26
byte -25 float -2.9802322E-8 encoded -25
byte -24 float -2.6077032E-8 encoded -24
byte -23 float -2.2351742E-8 encoded -23
byte -22 float -1.8626451E-8 encoded -22
byte -21 float -1.4901161E-8 encoded -21
byte -20 float -1.3038516E-8 encoded -20
byte -19 float -1.1175871E-8 encoded -19
byte -18 float -9.313226E-9 encoded -18
byte -17 float -7.4505806E-9 encoded -17
byte -16 float -6.519258E-9 encoded -16
byte -15 float -5.5879354E-9 encoded -15
byte -14 float -4.656613E-9 encoded -14
byte -13 float -3.7252903E-9 encoded -13
byte -12 float -3.259629E-9 encoded -12
byte -11 float -2.7939677E-9 encoded -11
byte -10 float -2.3283064E-9 encoded -10
byte -9 float -1.8626451E-9 encoded -9
byte -8 float -1.6298145E-9 encoded -8
byte -7 float -1.3969839E-9 encoded -7
byte -6 float -1.1641532E-9 encoded -6
byte -5 float -9.313226E-10 encoded -5
byte -4 float -8.1490725E-10 encoded -4
byte -3 float -6.9849193E-10 encoded -3
byte -2 float -5.820766E-10 encoded -2
byte -1 float -4.656613E-10 encoded -1
byte 0 float 0.0 encoded 0
byte 1 float 5.820766E-10 encoded 1
byte 2 float 6.9849193E-10 encoded 2
byte 3 float 8.1490725E-10 encoded 3
byte 4 float 9.313226E-10 encoded 4
byte 5 float 1.1641532E-9 encoded 5
byte 6 float 1.3969839E-9 encoded 6
byte 7 float 1.6298145E-9 encoded 7
byte 8 float 1.8626451E-9 encoded 8
byte 9 float 2.3283064E-9 encoded 9
byte 10 float 2.7939677E-9 encoded 10
byte 11 float 3.259629E-9 encoded 11
byte 12 float 3.7252903E-9 encoded 12
byte 13 float 4.656613E-9 encoded 13
byte 14 float 5.5879354E-9 encoded 14
byte 15 float 6.519258E-9 encoded 15
byte 16 float 7.4505806E-9 encoded 16
byte 17 float 9.313226E-9 encoded 17
byte 18 float 1.1175871E-8 encoded 18
byte 19 float 1.3038516E-8 encoded 19
byte 20 float 1.4901161E-8 encoded 20
byte 21 float 1.8626451E-8 encoded 21
byte 22 float 2.2351742E-8 encoded 22
byte 23 float 2.6077032E-8 encoded 23
byte 24 float 2.9802322E-8 encoded 24
byte 25 float 3.7252903E-8 encoded 25
byte 26 float 4.4703484E-8 encoded 26
byte 27 float 5.2154064E-8 encoded 27
byte 28 float 5.9604645E-8 encoded 28
byte 29 float 7.4505806E-8 encoded 29
byte 30 float 8.940697E-8 encoded 30
byte 31 float 1.0430813E-7 encoded 31
byte 32 float 1.1920929E-7 encoded 32
byte 33 float 1.4901161E-7 encoded 33
byte 34 float 1.7881393E-7 encoded 34
byte 35 float 2.0861626E-7 encoded 35
byte 36 float 2.3841858E-7 encoded 36
byte 37 float 2.9802322E-7 encoded 37
byte 38 float 3.5762787E-7 encoded 38
byte 39 float 4.172325E-7 encoded 39
byte 40 float 4.7683716E-7 encoded 40
byte 41 float 5.9604645E-7 encoded 41
byte 42 float 7.1525574E-7 encoded 42
byte 43 float 8.34465E-7 encoded 43
byte 44 float 9.536743E-7 encoded 44
byte 45 float 1.1920929E-6 encoded 45
byte 46 float 1.4305115E-6 encoded 46
byte 47 float 1.66893E-6 encoded 47
byte 48 float 1.9073486E-6 encoded 48
byte 49 float 2.3841858E-6 encoded 49
byte 50 float 2.861023E-6 encoded 50
byte 51 float 3.33786E-6 encoded 51
byte 52 float 3.8146973E-6 encoded 52
byte 53 float 4.7683716E-6 encoded 53
byte 54 float 5.722046E-6 encoded 54
byte 55 float 6.67572E-6 encoded 55
byte 56 float 7.6293945E-6 encoded 56
byte 57 float 9.536743E-6 encoded 57
byte 58 float 1.1444092E-5 encoded 58
byte 59 float 1.335144E-5 encoded 59
byte 60 float 1.5258789E-5 encoded 60
byte 61 float 1.9073486E-5 encoded 61
byte 62 float 2.2888184E-5 encoded 62
byte 63 float 2.670288E-5 encoded 63
byte 64 float 3.0517578E-5 encoded 64
byte 65 float 3.8146973E-5 encoded 65
byte 66 float 4.5776367E-5 encoded 66
byte 67 float 5.340576E-5 encoded 67
byte 68 float 6.1035156E-5 encoded 68
byte 69 float 7.6293945E-5 encoded 69
byte 70 float 9.1552734E-5 encoded 70
byte 71 float 1.0681152E-4 encoded 71
byte 72 float 1.2207031E-4 encoded 72
byte 73 float 1.5258789E-4 encoded 73
byte 74 float 1.8310547E-4 encoded 74
byte 75 float 2.1362305E-4 encoded 75
byte 76 float 2.4414062E-4 encoded 76
byte 77 float 3.0517578E-4 encoded 77
byte 78 float 3.6621094E-4 encoded 78
byte 79 float 4.272461E-4 encoded 79
byte 80 float 4.8828125E-4 encoded 80
byte 81 float 6.1035156E-4 encoded 81
byte 82 float 7.324219E-4 encoded 82
byte 83 float 8.544922E-4 encoded 83
byte 84 float 9.765625E-4 encoded 84
byte 85 float 0.0012207031 encoded 85
byte 86 float 0.0014648438 encoded 86
byte 87 float 0.0017089844 encoded 87
byte 88 float 0.001953125 encoded 88
byte 89 float 0.0024414062 encoded 89
byte 90 float 0.0029296875 encoded 90
byte 91 float 0.0034179688 encoded 91
byte 92 float 0.00390625 encoded 92
byte 93 float 0.0048828125 encoded 93
byte 94 float 0.005859375 encoded 94
byte 95 float 0.0068359375 encoded 95
byte 96 float 0.0078125 encoded 96
byte 97 float 0.009765625 encoded 97
byte 98 float 0.01171875 encoded 98
byte 99 float 0.013671875 encoded 99
byte 100 float 0.015625 encoded 100
byte 101 float 0.01953125 encoded 101
byte 102 float 0.0234375 encoded 102
byte 103 float 0.02734375 encoded 103
byte 104 float 0.03125 encoded 104
byte 105 float 0.0390625 encoded 105
byte 106 float 0.046875 encoded 106
byte 107 float 0.0546875 encoded 107
byte 108 float 0.0625 encoded 108
byte 109 float 0.078125 encoded 109
byte 110 float 0.09375 encoded 110
byte 111 float 0.109375 encoded 111
byte 112 float 0.125 encoded 112
byte 113 float 0.15625 encoded 113
byte 114 float 0.1875 encoded 114
byte 115 float 0.21875 encoded 115
byte 116 float 0.25 encoded 116
byte 117 float 0.3125 encoded 117
byte 118 float 0.375 encoded 118
byte 119 float 0.4375 encoded 119
byte 120 float 0.5 encoded 120
byte 121 float 0.625 encoded 121
byte 122 float 0.75 encoded 122
byte 123 float 0.875 encoded 123
byte 124 float 1.0 encoded 124
byte 125 float 1.25 encoded 125
byte 126 float 1.5 encoded 126
Index: src/java/org/apache/lucene/search/Similarity.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-lucene/src/java/org/apache/lucene/search/Similarity.java,v
retrieving revision 1.7
diff -r1.7 Similarity.java
195,197c195,199
<     int mantissa = b & 7;
<     int exponent = (b >> 3) & 31;
<     int bits = ((exponent+(63-15)) << 24) | (mantissa << 21);
---
>     int sign = (b >> 7);
>     int mantissa = (sign == 0 ? b : ~b) & 7;
>     int exponent = ((sign == 0 ? b : ~b) >> 3) & 31;
>     int bits = (sign << 31) | ((exponent+(63-15)) << 24) | (mantissa << 21);
> 
200,203d201
<    
<   private static byte floatToByte(float f) {
<     if (f < 0.0f)                                 // round negatives up to zero
<       f = 0.0f;
204a203
>   private static byte floatToByte(float f) {
208a208
>     int sign = (bits >>> 31);
222c222,226
<     return (byte)((exponent << 3) | mantissa);    // pack into a byte
---
>     byte b = (byte)((exponent << 3) | mantissa);  // pack into a byte
>     if (sign == 1)
>         b = (byte)~b;
> 
>     return b;

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to