If
input1.divisor is
-0.0 (negative zero as a double value), then
is "true", which permits the division to take place.
You can test this from the command-line with
sbd (for StreamBase 7) as so:
sbd -e "0.0 != 0"
(bool) false
sbd -e "-0.0 != 0"
(bool) true
sbd -e "abs(-0.0) != 0"
(bool) false
The absolute-value function,
abs(), will avoid this. The expression needs to be:
notnull(input1.divisor) and abs(input1.divisor) != 0
More discussion of what is going on in
http://en.wikipedia.org/wiki/Signed_zero:
"However, some programming languages may provide alternative comparison operators that do distinguish the two zeros. This is the case, for example, of the equals method in Java's Double class."