def viewing_condition_dependent_parameters(Y_b, Y_w, L_A): """ Returns the viewing condition dependent parameters. Parameters ---------- Y_b : numeric or array_like Adapting field *Y* tristimulus value :math:`Y_b`. Y_w : numeric or array_like Whitepoint *Y* tristimulus value :math:`Y_w`. L_A : numeric or array_like Adapting field *luminance* :math:`L_A` in :math:`cd/m^2`. Returns ------- ndarray Viewing condition dependent parameters. Examples -------- >>> viewing_condition_dependent_parameters( # doctest: +ELLIPSIS ... 20.0, 100.0, 318.31) array([ 0.2..., 1.1675444..., 1.000304..., 1.000304..., 1.9272136...]) """ Y_b = np.asarray(Y_b) Y_w = np.asarray(Y_w) n = Y_b / Y_w F_L = luminance_level_adaptation_factor(L_A) N_bb, N_cb = tsplit(chromatic_induction_factors(n)) z = base_exponential_non_linearity(n) return tstack((n, F_L, N_bb, N_cb, z))
def viewing_condition_dependent_parameters(Y_b, Y_w, L_A): """ Returns the viewing condition dependent parameters. Parameters ---------- Y_b : numeric Adapting field *Y* tristimulus value :math:`Y_b`. Y_w : numeric Whitepoint *Y* tristimulus value :math:`Y_w`. L_A : numeric Adapting field *luminance* :math:`L_A` in :math:`cd/m^2`. Returns ------- tuple Viewing condition dependent parameters. Examples -------- >>> viewing_condition_dependent_parameters(20.0, 100.0, 318.31) # noqa # doctest: +ELLIPSIS (0.2000000..., 1.1675444..., 1.0003040..., 1.0003040..., 1.9272135...) """ n = Y_b / Y_w F_L = luminance_level_adaptation_factor(L_A) N_bb, N_cb = chromatic_induction_factors(n) z = base_exponential_non_linearity(n) return n, F_L, N_bb, N_cb, z
def viewing_condition_dependent_parameters( Y_b: FloatingOrArrayLike, Y_w: FloatingOrArrayLike, L_A: FloatingOrArrayLike, ) -> Tuple[FloatingOrNDArray, FloatingOrNDArray, FloatingOrNDArray, FloatingOrNDArray, FloatingOrNDArray, ]: """ Return the viewing condition dependent parameters. Parameters ---------- Y_b Adapting field *Y* tristimulus value :math:`Y_b`. Y_w Whitepoint *Y* tristimulus value :math:`Y_w`. L_A Adapting field *luminance* :math:`L_A` in :math:`cd/m^2`. Returns ------- :class:`tuple` Viewing condition dependent parameters. Examples -------- >>> viewing_condition_dependent_parameters(20.0, 100.0, 318.31) ... # doctest: +ELLIPSIS (0.2000000..., 1.1675444..., 1.0003040..., 1.0003040..., 1.9272135...) """ Y_b = as_float_array(Y_b) Y_w = as_float_array(Y_w) n = Y_b / Y_w F_L = luminance_level_adaptation_factor(L_A) N_bb, N_cb = tsplit(chromatic_induction_factors(n)) z = base_exponential_non_linearity(n) return n, F_L, N_bb, N_cb, z