# {py:mod}`evox.operators.selection.non_dominate` ```{py:module} evox.operators.selection.non_dominate ``` ```{autodoc2-docstring} evox.operators.selection.non_dominate :allowtitles: ``` ## Module Contents ### Functions ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`dominate_relation ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate.dominate_relation :summary: ``` * - {py:obj}`update_dc_and_rank ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate.update_dc_and_rank :summary: ``` * - {py:obj}`_igr_fake ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate._igr_fake :summary: ``` * - {py:obj}`_igr_fake_vmap ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate._igr_fake_vmap :summary: ``` * - {py:obj}`_vmap_iterative_get_ranks_compile ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate._vmap_iterative_get_ranks_compile :summary: ``` * - {py:obj}`_vmap_iterative_get_ranks ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate._vmap_iterative_get_ranks :summary: ``` * - {py:obj}`_iterative_get_ranks_compile ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate._iterative_get_ranks_compile :summary: ``` * - {py:obj}`_iterative_get_ranks ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate._iterative_get_ranks :summary: ``` * - {py:obj}`non_dominate_rank ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate.non_dominate_rank :summary: ``` * - {py:obj}`crowding_distance ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate.crowding_distance :summary: ``` * - {py:obj}`nd_environmental_selection ` - ```{autodoc2-docstring} evox.operators.selection.non_dominate.nd_environmental_selection :summary: ``` ```` ### API ````{py:function} dominate_relation(x: torch.Tensor, y: torch.Tensor) -> torch.Tensor :canonical: evox.operators.selection.non_dominate.dominate_relation ```{autodoc2-docstring} evox.operators.selection.non_dominate.dominate_relation ``` ```` ````{py:function} update_dc_and_rank(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, pareto_front: torch.BoolTensor, rank: torch.Tensor, current_rank: int) :canonical: evox.operators.selection.non_dominate.update_dc_and_rank ```{autodoc2-docstring} evox.operators.selection.non_dominate.update_dc_and_rank ``` ```` ````{py:function} _igr_fake(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor, compiling: bool) -> torch.Tensor :canonical: evox.operators.selection.non_dominate._igr_fake ```{autodoc2-docstring} evox.operators.selection.non_dominate._igr_fake ``` ```` ````{py:function} _igr_fake_vmap(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor, compiling: bool) -> torch.Tensor :canonical: evox.operators.selection.non_dominate._igr_fake_vmap ```{autodoc2-docstring} evox.operators.selection.non_dominate._igr_fake_vmap ``` ```` ````{py:function} _vmap_iterative_get_ranks_compile(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor) -> torch.Tensor :canonical: evox.operators.selection.non_dominate._vmap_iterative_get_ranks_compile ```{autodoc2-docstring} evox.operators.selection.non_dominate._vmap_iterative_get_ranks_compile ``` ```` ````{py:function} _vmap_iterative_get_ranks(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor, compiling: bool) -> torch.Tensor :canonical: evox.operators.selection.non_dominate._vmap_iterative_get_ranks ```{autodoc2-docstring} evox.operators.selection.non_dominate._vmap_iterative_get_ranks ``` ```` ````{py:function} _iterative_get_ranks_compile(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor) -> torch.Tensor :canonical: evox.operators.selection.non_dominate._iterative_get_ranks_compile ```{autodoc2-docstring} evox.operators.selection.non_dominate._iterative_get_ranks_compile ``` ```` ````{py:function} _iterative_get_ranks(dominate_relation_matrix: torch.Tensor, dominate_count: torch.Tensor, rank: torch.Tensor, pareto_front: torch.Tensor, compiling: bool) -> torch.Tensor :canonical: evox.operators.selection.non_dominate._iterative_get_ranks ```{autodoc2-docstring} evox.operators.selection.non_dominate._iterative_get_ranks ``` ```` ````{py:function} non_dominate_rank(x: torch.Tensor) -> torch.Tensor :canonical: evox.operators.selection.non_dominate.non_dominate_rank ```{autodoc2-docstring} evox.operators.selection.non_dominate.non_dominate_rank ``` ```` ````{py:function} crowding_distance(costs: torch.Tensor, mask: torch.Tensor) :canonical: evox.operators.selection.non_dominate.crowding_distance ```{autodoc2-docstring} evox.operators.selection.non_dominate.crowding_distance ``` ```` ````{py:function} nd_environmental_selection(x: torch.Tensor, f: torch.Tensor, topk: int) :canonical: evox.operators.selection.non_dominate.nd_environmental_selection ```{autodoc2-docstring} evox.operators.selection.non_dominate.nd_environmental_selection ``` ````