11d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke#!/usr/bin/python 21d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke 31d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkedef gen(x, y): 41d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke origtype = "mat" + str(x) 51d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke trantype = "mat" + str(y) 61d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke if x != y: 71d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke origtype = origtype + "x" + str(y) 81d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke trantype = trantype + "x" + str(x) 91d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke print trantype + " transpose(" + origtype + " m)\n{" 101d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke print " " + trantype + " t;" 111d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke 121d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke # The obvious implementation of transpose 131d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke for i in range(x): 141d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke for j in range(y): 151d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke print " t[" + str(j) + "][" + str(i) + "] =", 161d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke print "m[" + str(i) + "][" + str(j) + "];" 171d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke print " return t;\n}" 181d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunke 191d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkeprint "#version 120" 201d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkegen(2,2) 211d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkegen(2,3) # mat2x3 means 2 columns, 3 rows 221d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkegen(2,4) 231d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkegen(3,2) 241d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkegen(3,3) 251d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkegen(3,4) 261d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkegen(4,2) 271d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkegen(4,3) 281d0e07c42007d1dbab1d582b9ae211e186fcdcddKenneth Graunkegen(4,4) 29