Added halfOp() and deHalfOp()