Module curvepy.constant

Expand source code
import math
from .curve import Curve, MIN_STEP
from intervalpy import Interval

class Constant(Curve):

    @property
    def value(self):
        return self._value

    @classmethod
    def zero(cls):
        return _zero

    @value.setter
    def value(self, value):
        if value == self._value:
            return
        self.begin_update(self.domain)
        self._value = value
        self.end_update(self.domain)

    def get_domain(self):
        return self._const_interval

    def __init__(self, y, domain=None):
        super().__init__(min_step=math.inf)
        self._value = y
        if domain is not None:
            domain = Interval.parse(domain)
        else:
            domain = Interval.infinite()
        self._const_interval = domain

    def __repr__(self):
        try:
            return str(self.value)
        except Exception as e:
            return super().__repr__() + f'({e})'

    def y(self, x):
        return self.value

    def d_y(self, x, forward=False, min_step=MIN_STEP, limit=None):
        return 0.0

    def x(self, y):
        if y == self.value:
            return 0.0
        return None

_zero = Constant(0)

Classes

class Constant (y, domain=None)
Expand source code
class Constant(Curve):

    @property
    def value(self):
        return self._value

    @classmethod
    def zero(cls):
        return _zero

    @value.setter
    def value(self, value):
        if value == self._value:
            return
        self.begin_update(self.domain)
        self._value = value
        self.end_update(self.domain)

    def get_domain(self):
        return self._const_interval

    def __init__(self, y, domain=None):
        super().__init__(min_step=math.inf)
        self._value = y
        if domain is not None:
            domain = Interval.parse(domain)
        else:
            domain = Interval.infinite()
        self._const_interval = domain

    def __repr__(self):
        try:
            return str(self.value)
        except Exception as e:
            return super().__repr__() + f'({e})'

    def y(self, x):
        return self.value

    def d_y(self, x, forward=False, min_step=MIN_STEP, limit=None):
        return 0.0

    def x(self, y):
        if y == self.value:
            return 0.0
        return None

Ancestors

Static methods

def zero()
Expand source code
@classmethod
def zero(cls):
    return _zero

Instance variables

var value
Expand source code
@property
def value(self):
    return self._value

Methods

def d_y(self, x, forward=False, min_step=1e-05, limit=None)
Expand source code
def d_y(self, x, forward=False, min_step=MIN_STEP, limit=None):
    return 0.0
def get_domain(self)
Expand source code
def get_domain(self):
    return self._const_interval
def x(self, y)
Expand source code
def x(self, y):
    if y == self.value:
        return 0.0
    return None
def y(self, x)
Expand source code
def y(self, x):
    return self.value

Inherited members