BTW: If I recall correctly, it is the difference between "Left" and "Right"
bit-shifting that causes the problem. The default "carry" behavior is
different at the CPU level.
From: Ben Stabile [mailto:[log in to unmask]]
Sent: Friday, December 02, 2011 9:06 PM
To: 'ECJ Evolutionary Computation Toolkit'
Subject: RE: Minor bug in Parity -- some help?
I had the same issue when I was converting the code into C#. I had to use
"System.UInt32" because the high bit is always treated as the sign, as you
mention. This is mainly a problem when bit-shifting, as I recall.
I also encountered issues with Java Byte, which has to be "System.SByte"
in C#. Can't remember exactly what issues were caused by that difference.
But I did have to change the type for .NET. I will probably have to do some
additional testing in the forked version to make sure I got all that right.
I don't have the time right now to provide more details. But the issues were
very pronounced in a language (or VM) conversion scenario, as one might
From: ECJ Evolutionary Computation Toolkit
[mailto:[log in to unmask]] On Behalf Of Sean Luke
Sent: Friday, December 02, 2011 4:45 PM
To: [log in to unmask]
Subject: Minor bug in Parity -- some help?
I'm too tired to figure out why Parity with 31 bits (the maximum) doesn't
operate right but with < 31 bits it's great. I'm sure it's a Java
signedness issue. Can anyone help out?