def update_J(self):
self.calc_J()<EOL>step = np.ceil(<NUM_LIT> * self.J.shape[<NUM_LIT:1>]).astype('<STR_LIT:int>')  <EOL>self.JTJ = low_mem_sq(self.J, step=step)<EOL>self._fresh_JTJ = True<EOL>self._J_update_counter = <NUM_LIT:0><EOL>if np.any(np.isnan(self.JTJ)):<EOL><INDENT>raise FloatingPointError('<STR_LIT>')<EOL><DEDENT>self._exp_err = self.error - self.find_expected_error(delta_params='<STR_LIT>')<EOL>
Updates J, JTJ, and internal counters.