http://www.math.chalmers.se/Math/Grundutb/CTH/tmv136/0607/