     /// Multiplies the affine transformations in `a` and `b` together and stores the result in result.
     /// The effect of the resulting transformation is to first apply the transformation in `a` to the coordinates
     /// and then apply the transformation in `b` to the coordinates.
+    @inline(__always)
     mutating func multiply(a: Matrix, b: Matrix) {
         
         var copy = (a: a, b: b)

    // MARK: - Initialization
    
    static var identity: Matrix {
    
        var matrix = Matrix()
        
        cairo_matrix_init_identity(&matrix)
        
        return matrix
    }
    
    init(scale: (x: Double, y: Double)) {
        
        self.init()

        cairo_matrix_multiply(&self, &copy.a, &copy.b)
    }
    
    @inline(__always)
    mutating func scale(x: Double, y: Double) {
        
        cairo_matrix_scale(&self, x, y)
    }
    
    /// Applies a translation by `x , y` to the transformation in matrix .
    /// The effect of the new transformation is to first translate the coordinates by `x` and `y`,
    /// then apply the original transformation to the coordinates.
    @inline(__always)
    mutating func translate(x: Double, y: Double) {
        
        cairo_matrix_translate(&self, x, y)
    }
}
