Source code for paref.interfaces.pareto_reflections.pareto_reflection
from abc import abstractmethod
import numpy as np
[docs]class ParetoReflection:
"""Interface for Pareto reflections
Implement a Pareto reflection
.. math::
p: \mathbb{R}^n \\to \mathbb{R}^m
with this interface.
Documentation should contain:
When to use
-----------
This sequence should be used if...
What it does
------------
The sequence...
Examples
--------
TBA: into contribution
"""
[docs] @abstractmethod
def __call__(self, x: np.ndarray) -> np.ndarray:
"""Call Pareto reflection to input
Parameters
----------
x : np.ndarray
input to witch Pareto reflection is applied
Returns
-------
np.ndarray
output of Pareto reflection applied to input
"""
raise NotImplementedError
@property
@abstractmethod
def dimension_codomain(self) -> int:
"""Dimension of codomain of Pareto reflection
Returns
-------
int
dimension of codomain of Pareto reflection
"""
raise NotImplementedError
@property
@abstractmethod
def dimension_domain(self) -> int:
"""Dimension of domain of Pareto reflection
Returns
-------
int
dimension of domain of Pareto reflection
"""
raise NotImplementedError