fullseye

mueller_element — OPTICS polarization op

使い方

A 4x4 real Mueller matrix for one polarisation element.

kind is one of :data:MUELLER_KINDS — the same five as :func:jones_element plus "depolarizer" (ideal, diag(1, 0, 0, 0)), which has no Jones counterpart at all. That extra kind is the reason this family exists: Jones algebra can only carry fully polarised light, Mueller algebra carries partial polarisation, scattering and depolarisation — which is what a real polarisation camera sees.

Angles are doubled inside (c = cos(2a), s = sin(2a)) because the Stokes parameters live on the Poincare sphere, where a physical rotation by a is a rotation by 2a.

Returns a (4, 4) float64 matrix acting on [S0, S1, S2, S3]; apply it with :func:mueller_apply and compose a train as M_last @ ... @ M_first.

Ground truth it reproduces exactly: an ideal polariser transmits exactly half of unpolarised light ([1,0,0,0] -> S0 = 0.5) and fully polarises it; two polarisers at relative angle theta transmit 0.5*cos^2(theta) (Malus); a rotator by 45 degrees turns horizontal into 45-degree linear; the depolariser leaves S0 and kills S1..S3. Cross-checked against the Jones family in the tests — for every kind and a sweep of angles, the Jones path and the Mueller path return the same Stokes vector to 1e-14, which is the only construction that catches a sign slip in either one.

Raises ValueError: an unknown kind; non-finite angle_deg or retardance_deg.

Ideal, lossless (except the polariser’s physical loss), normal-incidence elements; no diattenuation-plus-retardance combinations, no depolarisation other than the ideal case.

ファミリ共通の入力契約(fail-closed)

optics の全 op は入力を検証してから計算する(黙って通さない):

詳しい使い方ガイド

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(matrix を入力に取れる)

abcd_trace · mueller_apply

同カテゴリ(polarization)

jones_element · jones_apply · stokes_from_jones · mueller_apply · stokes_analyze


Provenance: optics.py — OPTICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.