From: "mame (Yusuke Endoh)" Date: 2022-06-14T06:36:24+00:00 Subject: [ruby-core:108895] [Ruby master Bug#10855] [PATCH] Matrix#inverse returns matrix of integers whenever possible Issue #10855 has been updated by mame (Yusuke Endoh). Status changed from Open to Third Party's Issue Now the matrix library is a bundled gem, so (if needed) let's continue to discuss it in their bug tracker https://github.com/ruby/matrix. ---------------------------------------- Bug #10855: [PATCH] Matrix#inverse returns matrix of integers whenever possible https://bugs.ruby-lang.org/issues/10855#change-97975 * Author: LitoNico (Lito Nicolai) * Status: Third Party's Issue * Priority: Normal * Assignee: marcandre (Marc-Andre Lafortune) * ruby -v: 2.3.0 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- Currently, Matrix#inverse returns a matrix of Rationals, even when each element has a denominator of 1. This leads to > x = Matrix.identity 3 => Matrix[[1, 0, 0], [0, 1, 0], [0, 0, 1]] > x.inverse => Matrix[[(1/1), (0/1), (0/1)], [(0/1), (1/1), (0/1)], [(0/1), (0/1), (1/1)]] Even though `Matrix.identity.inverse` should be identical to `Matrix.identity`. This patch guarantees that Matrix#inverse will return a matrix of integers whenever it can. To maintain uniform types across a matrix, the conversion is only performedif *every* element can be converted to an integer. ---Files-------------------------------- matrix_inverse_to_integer.patch (2.14 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: