     left = left / right
 }
 
-extension CGAffineTransform {
+extension CGAffineTransform: CustomStringConvertible {
+    public var description: String {
+        return "(\(a), \(b), \(c), \(d), \(tx), \(ty))"
+    }
+    
     public var inverse: CGAffineTransform {
         return CGAffineTransformInvert(self)
     }


public func == (left: CGAffineTransform, right: CGAffineTransform) -> Bool {
    return CGAffineTransformEqualToTransform(left, right)
}

extension CGFloat {

    public static var e: CGFloat {
        return CGFloat(M_E)
    }
}

public func + (left: CGPoint, right: CGSize) -> CGPoint {
    return CGPoint(x: left.x + right.width, y: left.y + right.height)
}

public func + (left: CGSize, right: CGPoint) -> CGPoint {
    return CGPoint(x: left.width + right.x, y: left.height + right.y)
}

public func - (left: CGPoint, right: CGSize) -> CGPoint {
    return CGPoint(x: left.x - right.width, y: left.y - right.height)
}

public func - (left: CGSize, right: CGPoint) -> CGPoint {
    return CGPoint(x: left.width - right.x, y: left.height - right.y)
}
