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