def R_isrk(self, k):
ind = int(self.index[self.R_time_var_index, k])<EOL>R = self.R[:, :, ind]<EOL>if (R.shape[<NUM_LIT:0>] == <NUM_LIT:1>):  <EOL><INDENT>inv_square_root = np.sqrt(<NUM_LIT:1.0>/R)<EOL><DEDENT>else:<EOL><INDENT>if self.svd_each_time:<EOL><INDENT>(U, S, Vh) = sp.linalg.svd(R, full_matrices=False,<EOL>compute_uv=True, overwrite_a=False,<EOL>check_finite=True)<EOL>inv_square_root = U * <NUM_LIT:1.0>/np.sqrt(S)<EOL><DEDENT>else:<EOL><INDENT>if ind in self.R_square_root:<EOL><INDENT>inv_square_root = self.R_square_root[ind]<EOL><DEDENT>else:<EOL><INDENT>(U, S, Vh) = sp.linalg.svd(R, full_matrices=False,<EOL>compute_uv=True,<EOL>overwrite_a=False,<EOL>check_finite=True)<EOL>inv_square_root = U * <NUM_LIT:1.0>/np.sqrt(S)<EOL>self.R_square_root[ind] = inv_square_root<EOL><DEDENT><DEDENT><DEDENT>return inv_square_root<EOL>
Function returns the inverse square root of R matrix on step k.