colour.models.exponent_function_monitor_curve#

colour.models.exponent_function_monitor_curve(x: ArrayLike, exponent: ArrayLike = 1, offset: ArrayLike = 0, style: Literal['monCurveFwd', 'monCurveRev', 'monCurveMirrorFwd', 'monCurveMirrorRev'] | str = 'monCurveFwd') NDArrayFloat[source]#

Apply the Monitor Curve exponent transfer function to the specified array.

Parameters:
  • x (ArrayLike) – Exponentially encoded data \(x\).

  • exponent (ArrayLike) – Exponent value used for the conversion.

  • offset (ArrayLike) – Offset value used for the conversion.

  • style (Literal['monCurveFwd', 'monCurveRev', 'monCurveMirrorFwd', 'monCurveMirrorRev'] | str) –

    Specifies the behaviour for the exponentiation function to operate:

    • monCurveFwd: Monitor Curve Forward exponential behaviour where the definition applies a power law function with a linear segment near the origin.

    • monCurveRev: Monitor Curve Reverse exponential behaviour where the definition applies a power law function with a linear segment near the origin.

    • monCurveMirrorFwd: Monitor Curve Mirror Forward exponential behaviour where the definition applies a power law function with a linear segment near the origin and mirrors the function for values less than zero (i.e., rotationally symmetric around the origin).

    • monCurveMirrorRev: Monitor Curve Mirror Reverse exponential behaviour where the definition applies a power law function with a linear segment near the origin and mirrors the function for values less than zero (i.e., rotationally symmetric around the origin).

Returns:

Exponentially converted data.

Return type:

numpy.ndarray

Examples

>>> exponent_function_monitor_curve(0.18, 2.2, 0.001)
np.float64(0.0232240...)
>>> exponent_function_monitor_curve(
...     -0.18, 2.2, 0.001
... )
np.float64(-0.0002054...)
>>> exponent_function_monitor_curve(
...     0.18, 2.2, 0.001, "monCurveRev"
... )
np.float64(0.4581151...)
>>> exponent_function_monitor_curve(
...     -0.18, 2.2, 0.001, "monCurveRev"
... )
np.float64(-157.7302795...)
>>> exponent_function_monitor_curve(
...     0.18, 2.2, 2, "monCurveMirrorFwd"
... )
np.float64(0.1679399...)
>>> exponent_function_monitor_curve(
...     -0.18, 2.2, 0.001, "monCurveMirrorFwd"
... )
np.float64(-0.0232240...)
>>> exponent_function_monitor_curve(
...     0.18, 2.2, 0.001, "monCurveMirrorRev"
... )
np.float64(0.4581151...)
>>> exponent_function_monitor_curve(
...     -0.18, 2.2, 0.001, "monCurveMirrorRev"
... )
np.float64(-0.4581151...)