wigner-symbols-1.0.0: CG coefficients and Wigner symbols.

Stabilitystable
Safe HaskellSafe
LanguageHaskell2010

WignerSymbols

Contents

Description

Clebsch-Gordan coefficients and Wigner n-j symbols.

Note that all j or m arguments are represented via integers equal to twice their mathematical values. To make this distinction clear, we label these variables tj or tm.

The current implementation uses the exact formulas described by L. Wei (1999) (PDF).

Synopsis

SignedSqrtRational

data SignedSqrtRational Source

Represents a mathematical expression of the form:

s √(n / d)

where

  • s is a sign (+, -, or 0),
  • n is a nonnegative numerator, and
  • d is a positive denominator.

ssr_new Source

Arguments

:: (Integer, Rational)

(c, r)

-> SignedSqrtRational 

Construct a SignedSqrtRational equal to c √r.

ssr_approx :: Floating b => SignedSqrtRational -> b Source

Approximate a SignedSqrtRational as a floating-point number.

Coupling/uncoupling coefficients

clebschGordan Source

Arguments

:: (Int, Int, Int, Int, Int, Int)

(tj1, tm1, tj2, tm2, tj12, tm12)

-> Double 

Calculate a Clebsch-Gordan coefficient:

⟨j1 j2 m1 m2|j1 j2 j12 m12⟩

clebschGordanSq Source

Arguments

:: (Int, Int, Int, Int, Int, Int)

(tj1, tm1, tj2, tm2, tj12, tm12)

-> SignedSqrtRational 

Similar to clebschGordan but exact.

wigner3j Source

Arguments

:: (Int, Int, Int, Int, Int, Int)

(tj1, tm1, tj2, tm2, tj3, tm3)

-> Double 

Calculate a Wigner 3-j symbol:

⎛j1 j2 j3⎞
⎝m1 m2 m3⎠

wigner3jSq Source

Arguments

:: (Int, Int, Int, Int, Int, Int)

(tj1, tm1, tj2, tm2, tj3, tm3)

-> SignedSqrtRational 

Similar to wigner3j but exact.

Recoupling coefficients

wigner6j Source

Arguments

:: (Int, Int, Int, Int, Int, Int)

(tj11, tj12, tj13, tj21, tj22, tj23)

-> Double 

Calculate a Wigner 6-j symbol:

⎧j11 j12 j13⎫
⎩j21 j22 j23⎭

wigner6jSq Source

Arguments

:: (Int, Int, Int, Int, Int, Int)

(tj11, tj12, tj13, tj21, tj22, tj23)

-> SignedSqrtRational 

Similar to wigner6j but exact.

wigner9j Source

Arguments

:: (Int, Int, Int, Int, Int, Int, Int, Int, Int)

(tj11, tj12, tj13, tj21, tj22, tj23, tj31, tj32, tj33)

-> Double 

Calculate a Wigner 9-j symbol:

⎧j11 j12 j13⎫
⎨j21 j22 j23⎬
⎩j31 j32 j33⎭

wigner9jSq Source

Arguments

:: (Int, Int, Int, Int, Int, Int, Int, Int, Int)

(tj11, tj12, tj13, tj21, tj22, tj23, tj31, tj32, tj33)

-> SignedSqrtRational 

Similar to wigner9j but exact.