[This message was posted by Sergey Axenov of Metabit Systems Co., Ltd. 
<[email protected]> to the "Algorithmic Trading" discussion forum at 
http://fixprotocol.org/discuss/31. You can reply to it on-line at 
http://fixprotocol.org/discuss/read/b13ef5a1 - PLEASE DO NOT REPLY BY MAIL.]

Thank you, everyone, for your opinions. I agree that the safest approach is to 
ask the client to refactor atdl file. That's what I am going to do.

However, just a small comment on ...

> All logical operators are binary....

Yes, it is true that all logical operators (AND, OR, XOR) can be considered as 
binary. But, for example, in Java  and C# we can write an expression:
boolean result1 = true ^ true ^ true ^ true; (result1 = false - even number of 
true arguments)
boolean result2 = true ^ true ^ false ^ true; (result2 = true - odd number of 
true arguments)
boolean result3 = true ^ false ^ false ^ true; (result2 = false - even number 
of true arguments)
no matter what is your expression interpretation rules are:
- like that: true ^ (true ^ (true ^ true))
- or like that: (((true ^ true) ^ true) ^ true)
result going to be the same because the XOR operator in those languages is 
associative. I believe it is associative in many other languages too.
The same in logic gates, you can cascade two-input XOR gates into a 
multi-inputs XOR gate. 
Therefore, generally speaking, I would not limit XOR operator in ATDL to two 
operand I would rather make it clearer in the spec that XOR is associative, 
which means 
(A XOR B) XOR C = A XOR (B XOR C) = A XOR B XOR C 
to avoid interpretations.


[You can unsubscribe from this discussion group by sending a message to 
mailto:[email protected]]

-- 
You received this message because you are subscribed to the Google Groups 
"Financial Information eXchange" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fix-protocol?hl=en.

Reply via email to