Keep sign and apply pseudorandom permutation after converting to unsigned as above.
| 208 | |
| 209 | /// Keep sign and apply pseudorandom permutation after converting to unsigned as above. |
| 210 | static Int64 transformSigned(Int64 x, UInt64 seed) |
| 211 | { |
| 212 | if (x >= 0) |
| 213 | return transform(x, seed); |
| 214 | else |
| 215 | return -transform(-x, seed); /// It works Ok even for minimum signed number. |
| 216 | } |
| 217 | |
| 218 | |
| 219 | class SignedIntegerModel : public IModel |