It is over the ring of polynomials in one variable over Q. El miércoles, 13 de diciembre de 2023 a las 15:05:00 UTC+1, Dima Pasechnik escribió:
> On Wed, Dec 13, 2023 at 10:55 AM Enrique Artal <enriqu...@gmail.com> > wrote: > > > > I have the toy example belowto compare the direct use of smith_form and > the combination of hermite_form and smith_form. > > > > Last execution (there are random inputs) gave: > > CPU times: user 2.22 s, sys: 5.93 ms, total: 2.23 s Wall time: 2.23 s > CPU times: user 454 ms, sys: 990 µs, total: 455 ms Wall time: 456 ms > > > > %%%%%%%%%%%%%%%%%%%%% > > R.<t> = QQ[] > > n = 3 > > m = 5 > > ds = (n, m) > > M = MatrixSpace(R, n, m) > > V = random_vector(R, n) > > A0 = Matrix(R, n, m) > > A0[0, 0] = R.random_element() > > for j in range(1, n): > > A0[j, j] = A0[j -1, j - 1] * R.random_element() > > def par(n): > > i1 = ZZ.random_element(0,n) > > j1 = i1 > > while j1 == i1: > > j1 = ZZ.random_element(0,n) > > return (i1, j1) > > def smith_hermite(A): > > D1, U1 = A.hermite_form(transformation=True) > > D, U2, V = D1.smith_form() > > U = U2 * U1 > > return D, U, V > > P = {j: identity_matrix(R, ds[j]) for j in range(2)} > > s = 20 > > for k in range(2): > > for a in range(s): > > i, j = par(n) > > f = R.random_element() > > P[k].add_multiple_of_row(i, j ,f) > > i, j = par(n) > > P[k].swap_rows(i, j) > > i, j = par(n) > > f = R.random_element() > > P[k].add_multiple_of_column(i, j ,f) > > i, j = par(n) > > P[0].swap_columns(i, j) > > A = P[0] * A0 * P[1] > > %time D, U, V = A.smith_form() > > %time D1, U1, V1 = smith_hermite(A) > > hmm, what's Smith form of a matrix over Q ? > Q is not a PID. > > > > -- > > You received this message because you are subscribed to the Google > Groups "sage-support" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to sage-support...@googlegroups.com. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/sage-support/dec24250-3a00-4c3e-a2e6-e352cde6ff2bn%40googlegroups.com > . > -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-support+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/87a33d6e-b0e5-4dbf-9b53-30c0535f7f53n%40googlegroups.com.