Change error to throwError in readPort
Add missing error checking for unary primitives
Simplify numericOp