def METHOD_NAME(self, layer: Layer, rank: int, comp_layer_db: LayerDatabase):
    """
    Performs spatial svd and splits given layer into two layers
    :param layer: Layer to split
    :param rank: Rank to use for spatial svd splitting
    :param comp_layer_db: Compressed layer db to update with the split layers
    :return: None
    """
    # Split module using Spatial SVD
    module_a, module_b = SpatialSvdModuleSplitter.split_module(comp_layer_db.model, layer, rank)
    # get the output activation shape for first conv op
    output_shape_a = _get_layer_output_shape(module_a)
    # get the output activation shape for second conv op
    output_shape_b = _get_layer_output_shape(module_b)
    # Create two new layers and return them
    layer_a = Layer(layer=module_a, name=module_a.name, output_shape=output_shape_a)
    layer_b = Layer(layer=module_b, name=module_b.name, output_shape=output_shape_b)
    comp_layer_db.replace_layer_with_sequential_of_two_layers(layer, layer_a, layer_b)