http://docs.sympy.org/0.7.2-py3k/modules/physics/quantum/ind...
My coding followed a specific talk which didn't go at all into why these particular gates are useful.
Once I grok that, I'll improve the code.