The following opcodes cause the top two values to be popped from the stack. The topmost value is divided by the value just beneath it, and the remainder of that division is pushed back onto the stack. Floating-point remainder of any value divided by zero yields a NaN result. No exception is thrown as a result of any floating-point division. The following opcodes perform arithmetic negation on floats and doubles.
Negation opcodes pop the top value from the stack, negates it, and pushes the result.
Push float constant 2. Pop top two floats, multiply, push float result. Push float constant 0. Each time the float is squared it is also negated. The float starts out as 2.