diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | lib/matrix.rb | 8 | ||||
-rw-r--r-- | test/matrix/test_matrix.rb | 6 | ||||
-rw-r--r-- | test/matrix/test_vector.rb | 4 |
5 files changed, 26 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Fri Mar 6 08:45:26 2015 Marc-Andre Lafortune <ruby-core@marc-andre.ca> + + * lib/matrix.rb: Add Vector#round. Patch by Jordan Stephens. + [Fixes GH-802] + Fri Mar 6 07:33:03 2015 Koichi Sasada <ko1@atdot.net> * gc.c (obj_info): show node name too. @@ -44,6 +44,9 @@ with all sufficient information, see the ChangeLog file. * Base64.urlsafe_decode64: now it accepts not only correctly-padded input but also unpadded input. +* lib/matrix.rb + * Add Vector#round. https://github.com/ruby/ruby/pull/802 + * ext/coverage/coverage.c * Coverage.peek_result: new method to allow coverage to be captured without stopping the coverage tool. diff --git a/lib/matrix.rb b/lib/matrix.rb index 1f8f0589e1..f1e30f82cb 100644 --- a/lib/matrix.rb +++ b/lib/matrix.rb @@ -1713,6 +1713,7 @@ end # * #norm # * #normalize # * #r +# * #round # * #size # # Conversion to other data types: @@ -1790,6 +1791,13 @@ class Vector alias set_component []= private :[]=, :set_element, :set_component + # Returns a vector with entries rounded to the given precision + # (see Float#round) + # + def round(ndigits=0) + map{|e| e.round(ndigits)} + end + # # Returns the number of elements in the vector. # diff --git a/test/matrix/test_matrix.rb b/test/matrix/test_matrix.rb index 3fdef3b314..7f058abe37 100644 --- a/test/matrix/test_matrix.rb +++ b/test/matrix/test_matrix.rb @@ -190,6 +190,12 @@ class TestMatrix < Test::Unit::TestCase assert_equal(@m1, Matrix[o, [4,5,6]]) end + def test_round + a = Matrix[[1.0111, 2.32320, 3.04343], [4.81, 5.0, 6.997]] + b = Matrix[[1.01, 2.32, 3.04], [4.81, 5.0, 7.0]] + assert_equal(a.round(2), b) + end + def test_rows assert_equal(@m1, Matrix.rows([[1, 2, 3], [4, 5, 6]])) end diff --git a/test/matrix/test_vector.rb b/test/matrix/test_vector.rb index 3275310b42..77fc68dd2b 100644 --- a/test/matrix/test_vector.rb +++ b/test/matrix/test_vector.rb @@ -157,6 +157,10 @@ class TestVector < Test::Unit::TestCase assert_equal(5, Vector[3, 4].r) end + def test_round + assert_equal(Vector[1.234, 2.345, 3.40].round(2), Vector[1.23, 2.35, 3.4]) + end + def test_covector assert_equal(Matrix[[1,2,3]], @v1.covector) end |