Algorithm Based Fault Tolerance