1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#!/usr/bin/python
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgdef gen(x, y):
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    type = "mat" + str(x)
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    if x != y:
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        type = type + "x" + str(y)
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    print type + " outerProduct(vec" + str(y) + " u, vec" + str(x) + " v)\n{"
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    print "    " + type + " m;"
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    for i in range(x):
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org        print "    m[" + str(i) + "] = u * v[" + str(i) + "];"
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    print "    return m;\n}"
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgprint "#version 120"
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orggen(2,2)
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orggen(2,3) # mat2x3 means 2 columns, 3 rows
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orggen(2,4)
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orggen(3,2)
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orggen(3,3)
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orggen(3,4)
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orggen(4,2)
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orggen(4,3)
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orggen(4,4)
24