cl3-1.0.0.2: Clifford Algebra of three dimensional space.

Copyright (C) 2018 Nathan Waivio BSD3 Nathan Waivio Stable unportable Safe Haskell2010

Algebra.Geometric.Cl3.JonesCalculus

Description

Library implementing standard functions for the Jones Calculus in the Cl3 Library. This implementation of the Jones Calculus is based on the convensions of SPIE's Field Guide to Polarization (ϕ = ω t − k z).

• E. Collett, Field Guide to Polarization, SPIE Field Guides vol. FG05, SPIE (2005). ISBN 0-8194-5868-6.

# Jones Vectors

Within the system of the Bloch Sphere, the Jones Vectors in Cl3 are calculated by generating the left ideal of the rotation of a unit vector to the e3 basis. Standard form for for a versor is 'rot = exp \$ (-i/2) * theta * u' for angle theta and the rotational axis unit vector u.

Bloch Sphere Coordinates:

                e3
|
|____e2
/
/
e1


Synopsis

# Jones Vectors

hpv horizontally polarized Jones vector

vpv vertically polarized Jones vector

dpv diagonally polarized Jones vector

apv anti-diagonally polarized Jones vector

rpv right hand circularly polarized Jones vector

lpv left hand circularly polarized Jones vector

jv :: Cl3 -> Cl3 Source #

jv function that returns Jones vector from input vector unit vector currently converts the input to a unit vector

# Jones Matrices

hpm Horizontal Polarizer Jones Matrix

vpm Vertical Polarizer Jones Matrix

dpm Diagonal Polarizer Jones Matrix

apm Anti-diagonal Polarizer Jones Matrix

rpm Right Hand Circular Polarizer Jones Matrix

lpm Left Hand Circular Polarizer Jones Matrix

jm :: Cl3 -> Cl3 Source #

jm funciton that returns a Jones Matrix from an input Bloch Vector currently converts the input to a unit vector

hpmRot Jones matrix for a rotated ideal Linear Horizontal Polarizer. Input value should be a scalar angle in Radians.

# Wave Plates

qwp Quarter Wave Plate Jones Matrix

hwp Half Wave Plate Jones Matrix

qwpRot Rotated Quarter Wave Plate Jones Matrix. Input value should be a scalar angle in Radians.

hwpRot Rotated Half Wave Plate Jones Matrix. Input value should be a scalar angle in Radians.

wp :: Cl3 -> Cl3 Source #

wp a Wave Plate with phase shift of phi Jones Matrix. Input value should be a scalar angle in Radians.

wpRot :: Cl3 -> Cl3 -> Cl3 Source #

wpRot a Rotated Wave Plate with phase shift of phi and rotation theta Jones Matrix. The first input value is phi the phase shift as a scalar value in Radians. The second input value is theta the rotation a scalar angle in Radians.

# Reflection

refl a Refelection Jones Matrix

# Random Jones Vectors

randJonesVec :: RandomGen g => g -> (Cl3, g) Source #

randJonesVec a Random Jones Vector.

randOrthogonalJonesVec :: RandomGen g => g -> ((Cl3, Cl3), g) Source #

randOrthogonalJonesVec a Random Orthogonal Complementary pair of Jones Vectors.

# Normalization Factorization

factorize :: Cl3 -> (Cl3, Cl3, Cl3) Source #

factorize is a function that takes an Jones Vector after transformation by an optical chain, and returns the amplitude (amp), phase (phi), and normalized Jones Vector (vec), by the factorization of the input such that: amp * exp (i*phi/2) * vec