# Internal functions

Internal functions.

`Polyhedra.add_intersection!`

— Function`add_intersection!(data, idx1, idx2, hp_idx, hs_idx = hp_idx - 1)`

Add the intersection of the elements of indices `idx1`

and `idx2`

that belong to the hyperplane corresponding the halfspace of index `hp_idx`

(see 3.2 (ii) of [FP96]) or have inherited adjacency if `hp_idx === nothing`

(see 3.2 (i) of [FP96]). In case of inherited adjacency, `hs_idx`

is the halfspace where `idx1`

was created. If `idx1`

and `idx2`

are not adjacent or if they are in the hyperplane corresponding to a halfspace of lower index then the intersection is not added to avoid adding redundant elements.

[FP96] Fukuda, K. and Prodon, A. Double description method revisited *Combinatorics and computer science*, *Springer*, **1996**, 91-111

`Polyhedra.combine`

— Function`combine(h::HalfSpace, el1::VRepElement, el2::VRepElement)`

Combine `el1`

and `el2`

which are on two different sides of the halfspace `h`

so that the combination is in the corresponding hyperplane.