From: deyan.z.hadzhiev@... Date: 2014-02-07T15:46:11+00:00 Subject: [ruby-core:60564] [ruby-trunk - Bug #9499] [Open] The Vector.cross_product function returns the opposite vector of the expected result Issue #9499 has been reported by Deyan Hadzhiev. ---------------------------------------- Bug #9499: The Vector.cross_product function returns the opposite vector of the expected result https://bugs.ruby-lang.org/issues/9499 * Author: Deyan Hadzhiev * Status: Open * Priority: Normal * Assignee: * Category: lib * Target version: * ruby -v: ruby 2.1.0dev (2013-09-22) [i386-mingw32] * Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- 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 -- http://bugs.ruby-lang.org/