Skip to content

Instantly share code, notes, and snippets.

@jasjisdo
Created February 6, 2020 08:36
Show Gist options
  • Save jasjisdo/a068b698b186066d355d2c6b3bfaf005 to your computer and use it in GitHub Desktop.
Save jasjisdo/a068b698b186066d355d2c6b3bfaf005 to your computer and use it in GitHub Desktop.
/**
* This binary logical operator represents the following truth table:
*
* | a | b | p |
* =============
* | T | T | T |
* | T | F | T |
* | F | T | F |
* | F | F | F |
*
* @param a first logical value
* @param b second logical value
*/
export function logicalProjection(a: boolean, b: boolean): boolean {
return ( (a && b ) || (a && !b) ) || !( (!a && b) || (!a && !b) );
}
/**
* This binary logical operator represents the following truth table:
*
* | a | b | p |
* =============
* | T | T | T |
* | T | F | F |
* | F | T | T |
* | F | F | F |
*
* @param a first logical value
* @param b second logical value
*/
export function logicalInvProjection(a: boolean, b: boolean): boolean {
return ( (a && b ) || (!a && b) ) || !( (a && !b) || (!a && !b) );
}
/**
* This binary logical operator represents the following truth table:
*
* | a | b | p |
* =============
* | T | T | T |
* | T | F | F |
* | F | T | F |
* | F | F | T |
*
* @param a first logical value
* @param b second logical value
*/
export function xnor(a: boolean, b: boolean): boolean {
return !(!a && !b);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment