# {py:mod}`evox.algorithms.so.es_variants.cma_es` ```{py:module} evox.algorithms.so.es_variants.cma_es ``` ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`CMAES ` - ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES :summary: ``` ```` ### API `````{py:class} CMAES(mean_init: torch.Tensor, sigma: float, pop_size: int | None = None, weights: torch.Tensor | None = None, device: torch.device | None = None) :canonical: evox.algorithms.so.es_variants.cma_es.CMAES Bases: {py:obj}`evox.core.Algorithm` ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES.__init__ ``` ````{py:method} step() :canonical: evox.algorithms.so.es_variants.cma_es.CMAES.step ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES.step ``` ```` ````{py:method} _update_mean(mean: torch.Tensor, population: torch.Tensor) -> torch.Tensor :canonical: evox.algorithms.so.es_variants.cma_es.CMAES._update_mean ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES._update_mean ``` ```` ````{py:method} _update_covariance_matrix(C: torch.Tensor, p_c: torch.Tensor, population: torch.Tensor, old_mean: torch.Tensor, h_sigma) :canonical: evox.algorithms.so.es_variants.cma_es.CMAES._update_covariance_matrix ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES._update_covariance_matrix ``` ```` ````{py:method} _update_path_c(path_c: torch.Tensor, h_sigma, delta_mean: torch.Tensor) :canonical: evox.algorithms.so.es_variants.cma_es.CMAES._update_path_c ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES._update_path_c ``` ```` ````{py:method} _update_path_sigma(path_sigma: torch.Tensor, C_invsqrt: torch.Tensor, delta_mean: torch.Tensor) :canonical: evox.algorithms.so.es_variants.cma_es.CMAES._update_path_sigma ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES._update_path_sigma ``` ```` ````{py:method} _update_step_size(step_size: torch.Tensor) :canonical: evox.algorithms.so.es_variants.cma_es.CMAES._update_step_size ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES._update_step_size ``` ```` ````{py:method} _conditional_decomposition(iteration: torch.Tensor, C: torch.Tensor) :canonical: evox.algorithms.so.es_variants.cma_es.CMAES._conditional_decomposition ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES._conditional_decomposition ``` ```` ````{py:method} _no_decomposition(C: torch.Tensor) :canonical: evox.algorithms.so.es_variants.cma_es.CMAES._no_decomposition ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES._no_decomposition ``` ```` ````{py:method} _decomposition(C: torch.Tensor) -> typing.Tuple[torch.Tensor, torch.Tensor, torch.Tensor] :canonical: evox.algorithms.so.es_variants.cma_es.CMAES._decomposition ```{autodoc2-docstring} evox.algorithms.so.es_variants.cma_es.CMAES._decomposition ``` ```` ````{py:method} record_step() :canonical: evox.algorithms.so.es_variants.cma_es.CMAES.record_step ```` `````