# [Bug 18961] New: The pseudo-code for matrix-decomposing has a typo in the check for a coordinate system flip

• From: <bugzilla@jessica.w3.org>
• Date: Fri, 21 Sep 2012 20:44:49 +0000
• Message-ID: <bug-18961-5148@http.www.w3.org/Bugs/Public/>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=18961

Summary: The pseudo-code for matrix-decomposing has a typo in
the check for a coordinate system flip
Product: CSS
Version: unspecified
Platform: All
OS/Version: All
Status: NEW
Severity: minor
Priority: P2
Component: Transforms
AssignedTo: smfr@me.com
ReportedBy: nrajbhan@gmail.com
QAContact: public-css-bugzilla@w3.org
CC: ayg@aryeh.name, cmarrin@apple.com, eoconnor@apple.com,

Steps:
1. Go to http://dev.w3.org/csswg/css3-transforms/#matrix-decomposing
2. Look at the following check for a coordinate system flip:

Actual:
scale[0] *= -1

should be

scale[i] *= -1

// At this point, the matrix (in rows) is orthonormal.
// Check for a coordinate system flip.  If the determinant
// is -1, then negate the matrix and the scaling factors.
pdum3 = cross(row[1], row[2])
if (dot(row[0], pdum3) < 0)
for (i = 0; i < 3; i++)
scale[0] *= -1;
row[i][0] *= -1
row[i][1] *= -1
row[i][2] *= -1

Expected:

// At this point, the matrix (in rows) is orthonormal.
// Check for a coordinate system flip.  If the determinant
// is -1, then negate the matrix and the scaling factors.
pdum3 = cross(row[1], row[2])
if (dot(row[0], pdum3) < 0)
for (i = 0; i < 3; i++)
scale[i] *= -1;
row[i][0] *= -1
row[i][1] *= -1
row[i][2] *= -1

--
Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Friday, 21 September 2012 20:44:50 UTC