Source code for pyaml.magnet.curve

from abc import ABCMeta, abstractmethod

import numpy as np


[docs] class Curve(metaclass=ABCMeta): """ Abstract class providing access to a curve """
[docs] @abstractmethod def get_curve(self) -> np.array: """ Returns the curve (n rows,2 columns). Curve is expected to be monotonic (non-decreasing or non-increasing). """ pass
[docs] @classmethod def inverse(cls, curve: np.array) -> np.array: """ Returns the inverse curve. Basically swap x and y and sort y in ascending order. Parameters ---------- curve : np.array Curve to be inverted """ __curve = curve __sortedCurve = __curve[__curve[:, 1].argsort()] return __sortedCurve[:, [1, 0]]