Template Struct stokes_parameters_t

Struct Documentation

template<Quantity Q>
struct stokes_parameters_t

Stokes parameters vector.

Template Parameters:

Q – quantity of vector elements

Public Types

using quantity_type = Q

Public Functions

inline bool isfinite() const noexcept
inline bool isnan() const noexcept
inline auto polarization_state() const noexcept

Returns the polarization state vector.

inline auto is_unpolarized() const noexcept

Returns TRUE for perfectly randomly polarized Stokes parameters vector.

inline auto intensity() const noexcept

0-th element of the Stokes parameters, i.e. total intensity. “Intensity” is used in a generalized sense, the actual units depend on Q.

inline auto polarized_intensity() const noexcept

Intensity of polarized light. “Intensity” is used in a generalized sense, the actual units depend on Q.

inline auto unpolarized_intensity() const noexcept

Intensity of randomly polarized light. “Intensity” is used in a generalized sense, the actual units depend on Q.

inline auto linearly_polarized_intensity() const noexcept

Intensity of linearly-polarized light. “Intensity” is used in a generalized sense, the actual units depend on Q.

inline auto circularly_polarized_intensity() const noexcept

Intensity of circularly-polarized light. “Intensity” is used in a generalized sense, the actual units depend on Q.

inline f_t degree_of_polarization() const noexcept

Degree of polarization.

inline auto degree_of_linear_polarization() const noexcept

Degree of linear polarization.

inline auto degree_of_circular_polarization() const noexcept

Degree of circular polarization.

inline Angle auto linear_polarization_angle() const noexcept

Angle of the linearly-polarized part.

inline bool is_circularly_polarized_rhs() const noexcept

Is circularly-polarized part right-hand polarized?

inline auto flip_handness() const noexcept

Returns the Stokes parameters vector with its frame handness flipped.

inline auto reorient(const frame_t &current_frame, const frame_t &new_frame) const noexcept

Returns the Stokes parameters vector reoriented to align with the new tangent direction.

Parameters:
  • current_frame – current frame orientation

  • new_frame – desired frame orientation

template<Quantity Q2>
inline explicit operator stokes_parameters_t<Q2>() const noexcept
inline bool operator==(const stokes_parameters_t&) const noexcept = default
inline auto &operator*=(f_t scale) noexcept
inline auto &operator/=(f_t scale) noexcept
inline auto &operator+=(const stokes_parameters_t &S2) noexcept
inline auto operator+(const stokes_parameters_t &S2) const noexcept

Public Members

qvec4<Q> S = {}

Public Static Functions

static inline auto zero() noexcept
static inline auto unpolarized(Q I) noexcept
static inline auto linearly_polarized(Angle auto lp_angle, Q I) noexcept
static inline auto linearly_polarized_0deg(Q I) noexcept
static inline auto linearly_polarized_45deg(Q I) noexcept
static inline auto linearly_polarized_90deg(Q I) noexcept
static inline auto linearly_polarized_135deg(Q I) noexcept
static inline auto circularly_polarized(bool rhc, Q I) noexcept