The XOR node is an exclusive OR. It is true only when only one child-node is true and the rest are false. The XOR uses a fuzzy algorithm to determine how true it is when there is missing data or levels of trueness. The return value is the “logical distance” between the two most true nodes. The minimum distance possible is 0, indicating that both nodes have the same value and therefore the XOR would be false. The maximum distance occurs when one node is fully true and others are fully false resulting in a value of true for the XOR node.

- Minimum number of child-nodes: 0
- Maximum number of child-nodes: no limit
- Valid input range: -1 to +1 (false to true)

The XOR node's value is calculated by offsetting the difference between its two most true child-nodes.

value = -1 + value_{max1} - value_{max2}

where

- max1 = the most true child-node
- max2 = the second most true child-node

Where A and B are child-nodes of the XOR node:

value_{A} | value_{B} | XOR value |
---|---|---|

true | true | false |

undetermined | undetermined | false |

false | false | false |

true | undetermined | undetermined |

undetermined | true | undetermined |

undetermined | false | undetermined |

false | undetermined | undetermined |

true | false | true |

false | true | true |

Where A,B,C, and D are child-nodes of the XOR node:

value_{A} | value_{B} | value_{C} | value_{D} | XOR value |
---|---|---|---|---|

true | true | any value | any value | false |

false | false | false | false | false |

true | undetermined | false | false | undetermined |

true | false | false | false | true |

false | true | false | false | true |

false | false | true | false | true |

false | false | false | true | true |