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/