Source code for colour.models.rgb.transfer_functions.linear
"""
Linear Colour Component Transfer Function
=========================================
Define the linear encoding / decoding colour component transfer function
related objects.
- :func:`colour.linear_function`
"""
from __future__ import annotations
import typing
if typing.TYPE_CHECKING:
from colour.hints import ArrayLike, DTypeFloat, NDArray, NDArrayFloat
from colour.utilities import as_float
__author__ = "Colour Developers"
__copyright__ = "Copyright 2013 Colour Developers"
__license__ = "BSD-3-Clause - https://opensource.org/licenses/BSD-3-Clause"
__maintainer__ = "Colour Developers"
__email__ = "colour-developers@colour-science.org"
__status__ = "Production"
__all__ = [
"linear_function",
]
@typing.overload
def linear_function(a: float | DTypeFloat) -> DTypeFloat: ...
@typing.overload
def linear_function(a: NDArray) -> NDArrayFloat: ...
@typing.overload
def linear_function(a: ArrayLike) -> DTypeFloat | NDArrayFloat: ...
[docs]
def linear_function(a: ArrayLike) -> DTypeFloat | NDArrayFloat:
"""
Perform pass-through linear encoding/decoding transformation.
Implement an identity transformation where the output equals the input,
commonly used as a reference or default encoding/decoding function in
colour science workflows.
Parameters
----------
a
Array to encode/decode.
Returns
-------
:class:`numpy.ndarray`
Encoded/decoded array, identical to input.
Examples
--------
>>> linear_function(0.18) # doctest: +ELLIPSIS
np.float64(0.18)
"""
return as_float(a)