error analysis