Keep sign and apply pseudorandom permutation after converting to unsigned as above.
| 236 | |
| 237 | /// Keep sign and apply pseudorandom permutation after converting to unsigned as above. |
| 238 | static Int64 transformSigned(Int64 x, UInt64 seed) |
| 239 | { |
| 240 | if (x >= 0) |
| 241 | return transform(x, seed); |
| 242 | |
| 243 | return -transform(-x, seed); /// It works Ok even for minimum signed number. |
| 244 | } |
| 245 | |
| 246 | |
| 247 | class SignedIntegerModel : public IModel |