From 72d05366066176f73d7199da67036c4f8778595a Mon Sep 17 00:00:00 2001 From: marcandre Date: Fri, 11 Jul 2014 05:19:33 +0000 Subject: [PATCH] * lib/matrix.rb: Fix sign for cross_product [#9499] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ lib/matrix.rb | 6 +++--- test/matrix/test_vector.rb | 5 +++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index d69a5cf86c..484078e199 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Fri Jul 11 14:19:14 2014 Marc-Andre Lafortune + + * lib/matrix.rb: Fix sign for cross_product [#9499] + Fri Jul 11 11:11:50 2014 Koichi Sasada * benchmark/prepare_so_k_nucleotide.rb: use require_relative. diff --git a/lib/matrix.rb b/lib/matrix.rb index 1a7519f408..026492b6b8 100644 --- a/lib/matrix.rb +++ b/lib/matrix.rb @@ -1811,9 +1811,9 @@ class Vector # def cross_product(v) Vector.Raise ErrDimensionMismatch unless size == v.size && v.size == 3 - Vector[ v[1]*@elements[2] - v[2]*@elements[1], - v[2]*@elements[0] - v[0]*@elements[2], - v[0]*@elements[1] - v[1]*@elements[0] ] + Vector[ v[2]*@elements[1] - v[1]*@elements[2], + v[0]*@elements[2] - v[2]*@elements[0], + v[1]*@elements[0] - v[0]*@elements[1] ] end # diff --git a/test/matrix/test_vector.rb b/test/matrix/test_vector.rb index 18660df574..ced774c490 100644 --- a/test/matrix/test_vector.rb +++ b/test/matrix/test_vector.rb @@ -146,4 +146,9 @@ class TestVector < Test::Unit::TestCase v = Vector[Rational(1,2), 0] assert_equal(0.5, v.norm) end + + def test_cross_product + v = Vector[1, 0, 0].cross_product Vector[0, 1, 0] + assert_equal(Vector[0, 0, 1], v) + end end