From: nagachika00@... Date: 2014-07-11T14:09:10+00:00 Subject: [ruby-core:63667] [ruby-trunk - Bug #9499] [Closed] The Vector.cross_product function returns the opposite vector of the expected result Issue #9499 has been updated by Tomoyuki Chikanaga. Status changed from Assigned to Closed % Done changed from 0 to 100 Applied in changeset ruby-21:r46789. ---------- merge revision(s) r46780: [Backport #9499] * lib/matrix.rb: Fix sign for cross_product [#9499] ---------------------------------------- Bug #9499: The Vector.cross_product function returns the opposite vector of the expected result https://bugs.ruby-lang.org/issues/9499#change-47717 * Author: Deyan Hadzhiev * Status: Closed * Priority: Normal * Assignee: Marc-Andre Lafortune * Category: lib * Target version: * ruby -v: ruby 2.1.0dev (2013-09-22) [i386-mingw32] * Backport: 1.9.3: DONTNEED, 2.0.0: DONTNEED, 2.1: REQUIRED ---------------------------------------- The member function of class Vector returns the opposite vector of the expected result. The function calculates the resulting vector as if the cross_product is v X self instead of self X v. Just to be sure I tried running the exact example from the 2.1.0 documentation, where is specified: Vector[1, 0, 0].cross_product Vector[0, 1, 0] => Vector[0, 0, 1] The documentation is right, but running the example produces Vector[0, 0, -1]. The fix is just to swap the two arguments of the '-' operator. The implementation is in matrix.rb line:1764 -- https://bugs.ruby-lang.org/