The `modal_form()` function appears to assume that all eigenvalues are distinct. The following example gives strange results: ``` import control as ct sys_repeat = ct.StateSpace([[-1, 1], [0, -1]], [[0], [1]], [[1, 0]], [[0]]) sys_modal, T = ct.modal_form(sys_repeat) print(sys_modal) ``` which yields ``` A = [[-1.00000000e+00 0.00000000e+00] [ 2.22044605e-16 -1.00000000e+00]] B = [[4.50359963e+15] [4.50359963e+15]] C = [[-1. 1.]] D = [[0.]] ``` The problem is that the transformation `T` as computed in `modal_form` is singular: ``` [[-1.00000000e+00 1.00000000e+00] [ 2.22044605e-16 0.00000000e+00]] ```