pub unsafe extern "C" fn tsk_treeseq_simplify(
    self_: *const tsk_treeseq_t,
    samples: *const tsk_id_t,
    num_samples: tsk_size_t,
    options: tsk_flags_t,
    output: *mut tsk_treeseq_t,
    node_map: *mut tsk_id_t
) -> c_int
Expand description

@brief Create a simplified instance of this tree sequence

@rst Copies this tree sequence to the specified destination and performs simplification. The destination tree sequence should be uninitialised. Simplification transforms the tables to remove redundancy and canonicalise tree sequence data. See the :ref:simplification <sec_simplification> tutorial for more details.

For full details and flags see :c:func:tsk_table_collection_simplify which performs the same operation in place.

@endrst @param self A pointer to a uninitialised tsk_treeseq_t object. @param samples Either NULL or an array of num_samples distinct and valid node IDs. If non-null the nodes in this array will be marked as samples in the output. If NULL, the num_samples parameter is ignored and the samples in the output will be the same as the samples in the input. This is equivalent to populating the samples array with all of the sample nodes in the input in increasing order of ID. @param num_samples The number of node IDs in the input samples array. Ignored if the samples array is NULL. @param options Simplify options; see above for the available bitwise flags. For the default behaviour, a value of 0 should be provided. @param output A pointer to an uninitialised tsk_treeseq_t object. @param node_map If not NULL, this array will be filled to define the mapping between nodes IDs in the table collection before and after simplification. @return Return 0 on success or a negative value on failure.