Project

General

Profile

Actions

Bug #10855

closed

[PATCH] Matrix#inverse returns matrix of integers whenever possible

Added by LitoNico (Lito Nicolai) almost 10 years ago. Updated over 2 years ago.

Status:
Third Party's Issue
Target version:
-
[ruby-core:68122]
Tags:

Description

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) matrix_inverse_to_integer.patch LitoNico (Lito Nicolai), 02/15/2015 07:02 PM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0