Source code for pypint.solvers.diagnosis.norms

# coding=utf-8
"""

.. moduleauthor:: Torbjörn Klatt <[email protected]>
"""
import numpy as np

from pypint.solvers.diagnosis.i_diagnosis_value import IDiagnosisValue


[docs]def supremum_norm(vec): """Computes uniform (or infinity) norm of given vector or :py:class:`.IDiagnosisValue`. Uses numpy's norm function internally. Parameters ---------- vec : :py:class:`numpy.ndarray` or :py:class:`.IDiagnosisValue` Returns ------- sup-norm : :py:class:`numpy.ndarray` """ if isinstance(vec, float): return vec elif isinstance(vec, np.ndarray): return np.linalg.norm(vec, np.inf) elif isinstance(vec, IDiagnosisValue): return np.linalg.norm(vec.value, np.inf) else: return np.nan
[docs]def two_norm(vec): """Computes two-norm of given vector or :py:class:`.IDiagnosisValue`. Uses numpy's norm function internally. Parameters ---------- vec : :py:class:`numpy.ndarray` or :py:class:`.IDiagnosisValue` Returns ------- two-norm : :py:class:`numpy.ndarray` """ if isinstance(vec, float): return vec elif isinstance(vec, np.ndarray): return np.linalg.norm(vec) elif isinstance(vec, IDiagnosisValue): return np.linalg.norm(vec.value) else: return np.nan
__all__ = ['supremum_norm', 'two_norm']