oineus.Decomposition

class oineus.Decomposition(*args, **kwargs)

Bases: object

apply_move_schedule

realize a target order as a sequence of moves; returns the move count.

Type:

Move schedule

clone
compute_full_u_rows
compute_partial_u_rows
compute_u_from_v
compute_u_from_v_1
d_as_csc
property d_data

(self) -> list[list[int]]

densify_v_for_selinv
densify_v_for_selinv_with_targets
diagram
diagram_serial
property dim_first

(self) -> list[int]

property dim_last

(self) -> list[int]

property dualize

(self) -> bool

filtration_index
has_matrix_u
has_matrix_v
is_column_elz
is_dynamic
is_elz
property is_reduced

(self) -> bool

is_reduced_consistent

True if R is reduced and D V == R (does not require V upper-triangular).

make_dynamic

Build the row-incidence indices (in parallel) so subsequent manipulations cost O(changed support); optional, built on first use otherwise. Dropped by reduce().

move

Move the cell at position i to position j.

move_left
move_right
n_elz_violators
n_elz_violators_in_dim
r_as_csc
property r_data

(self) -> list[list[int]]

reduce
remove_simplices

update the reduced R = D V decomposition in place after removing a coface-closed set of cells (sorted_ids; a union of stars, e.g. from Filtration.star_closure). Updates the barcode and representative cycles minimally; survivors keep filtration order, matching Filtration.without_cells. Homology only.

Type:

SiRUP (Giunti-Lazovskis)

restore_elz
sanity_check
transpose

transpose adjacent filtration positions i and i+1.

Type:

Vineyards

transpose_to

realize a target order as adjacent transpositions; returns the count.

Type:

Vineyards

u_as_csr
property u_data_t

(self) -> list[list[int]]

update_with_edits

warm-start update with cell insertion/deletion + reorder.

Type:

Luo-Nelson Alg 3

update_with_permutation

warm-start update under a pure reorder.

Type:

Luo-Nelson Alg 2

v_as_csc
property v_data

(self) -> list[list[int]]

zero_pers_diagram