From: lito.nicolai@... Date: 2015-02-15T19:08:16+00:00 Subject: [ruby-core:68122] [Ruby trunk - Bug #10855] [Open] [PATCH] Matrix#inverse returns matrix of integers whenever possible Issue #10855 has been reported by Lito Nicolai. ---------------------------------------- Bug #10855: [PATCH] Matrix#inverse returns matrix of integers whenever possible https://bugs.ruby-lang.org/issues/10855 * Author: Lito Nicolai * Status: Open * Priority: Normal * Assignee: * 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/