# [csswg-drafts] [css-transforms-1] Clarify use of matrices by columns in pseudo-code

From: Simon Fraser via GitHub <sysbot+gh@w3.org>
Date: Fri, 13 Jan 2017 23:54:30 +0000

Message-ID: <issues.opened-200760511-1484351669-sysbot+gh@w3.org>
```smfr has just created a new issue for
https://github.com/w3c/csswg-drafts:

== [css-transforms-1] Clarify use of matrices by columns in
pseudo-code ==
https://lists.w3.org/Archives/Public/public-fx/2014OctDec/0134.html

Hi,
Any particular reason to have matrix internally represented by array
of columns in pseudo-code?

I think is more common to have them by row, but it may be better like
that.

Anyway please make it clearer that youâ€™re using M[col][row], cause I
could guess it only from 2d decomposition code:
translate[0] = matrix[3][0]
translate[1] = matrix[3][1]
Where tx is m14 and ty is m24.

Also few lines below in 3d decomposition:
for (i = 0; i < 3; i++)
row[i][0] = matrix[i][0]
row[i][1] = matrix[i][1]
row[i][2] = matrix[i][2]
This is completely confusing: we are trying to obtain a 3x4 sub-matrix
or a 4x3 one? The name of the variable (row)
makes me think of an array of rows, while row[i] will contain m0i,
m1i, m2i instead, so those are the first 3 columns of the transform
matrix, am i wrong?

One minor misprint here: `cross` function (that should be the cross
product of 2 vector) is not listed in
http://www.w3.org/TR/css3-transforms/#supporting-functions
<http://www.w3.org/TR/css3-transforms/#supporting-functions>

Please view or discuss this issue at