def rotate(self, vecs):
assert vecs.dtype == np.float32<EOL>assert vecs.ndim in [<NUM_LIT:1>, <NUM_LIT:2>]<EOL>if vecs.ndim == <NUM_LIT:2>:<EOL><INDENT>return vecs @ self.R<EOL><DEDENT>elif vecs.ndim == <NUM_LIT:1>:<EOL><INDENT>return (vecs.reshape(<NUM_LIT:1>, -<NUM_LIT:1>) @ self.R).reshape(-<NUM_LIT:1>)<EOL><DEDENT>
Rotate input vector(s) by the rotation matrix.`

        Args:
            vecs (np.ndarray): Input vector(s) with dtype=np.float32.
                The shape can be a single vector (D, ) or several vectors (N, D)

        Returns:
            np.ndarray: Rotated vectors with the same shape and dtype to the input vecs.