Algorithmic level recomputing with shifted operands: A high level synthesis approach to concurrent error detection