Author: O'Konski

This file defines all the concrete logic and controls available in PyroSim.

Int Output Operations (output integer values):
	SumOp - outputs the number of true inputs
	
Logic Output Operations (output boolean values):
	Pure Logic Ops (boolean input(s) and boolean output):
		AndOp: output = in(0) && in(1) && ... && in(num_inputs - 1)
		OrOp: output = in(0) || in(1) || ... || in(num_inputs - 1)
		NotOp: output = !(input)
		LatchOp: output = input until first state change, then hold value
	Integer Logic Operations (integer input and boolean output):
		IntGreaterThanOp: output = input > n
		IntLessThanOp: output = input < n
		IntEqualOp: output = input == n
		IntNotEqualOp: output = input != n
	UnitDouble Logic Operations (UnitDouble input and boolean output):
		DblGreaterThanOp: output = input > n
		DblLessThanOp: output = input < n
	Misc Operations:
		CustomCtrl: output = defined by custom function
		DeadbandCtrl:
			output = (TRIP_LOWER)? true if input <= lb; false if input >= ub
			output = (TRIP_UPPER)? true if input >= ub; false if input <= lb
		TimeDelayCtrl: output = input, t seconds after input changes state
