Stability | stable |
---|---|
Safe Haskell | Safe |
Language | Haskell2010 |
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).
- data SignedSqrtRational
- ssr_new :: (Integer, Rational) -> SignedSqrtRational
- ssr_split :: SignedSqrtRational -> (Integer, Rational)
- ssr_signum :: SignedSqrtRational -> Integer
- ssr_numerator :: SignedSqrtRational -> Integer
- ssr_denominator :: SignedSqrtRational -> Integer
- ssr_approx :: Floating b => SignedSqrtRational -> b
- clebschGordan :: (Int, Int, Int, Int, Int, Int) -> Double
- clebschGordanSq :: (Int, Int, Int, Int, Int, Int) -> SignedSqrtRational
- wigner3j :: (Int, Int, Int, Int, Int, Int) -> Double
- wigner3jSq :: (Int, Int, Int, Int, Int, Int) -> SignedSqrtRational
- wigner6j :: (Int, Int, Int, Int, Int, Int) -> Double
- wigner6jSq :: (Int, Int, Int, Int, Int, Int) -> SignedSqrtRational
- wigner9j :: (Int, Int, Int, Int, Int, Int, Int, Int, Int) -> Double
- wigner9jSq :: (Int, Int, Int, Int, Int, Int, Int, Int, Int) -> SignedSqrtRational
SignedSqrtRational
data SignedSqrtRational Source
Represents a mathematical expression of the form:
s √(n / d)
where
s
is a sign (+
,-
, or0
),n
is a nonnegative numerator, andd
is a positive denominator.
:: (Integer, Rational) |
|
-> SignedSqrtRational |
Construct a SignedSqrtRational
equal to c √r
.
ssr_split :: SignedSqrtRational -> (Integer, Rational) Source
Deconstruct a SignedSqrtRational
.
ssr_signum :: SignedSqrtRational -> Integer Source
Extract the sign of a SignedSqrtRational
.
ssr_numerator :: SignedSqrtRational -> Integer Source
Extract the numerator of a SignedSqrtRational
.
ssr_denominator :: SignedSqrtRational -> Integer Source
Extract the denominator of a SignedSqrtRational
.
ssr_approx :: Floating b => SignedSqrtRational -> b Source
Approximate a SignedSqrtRational
as a floating-point number.
Coupling/uncoupling coefficients
Calculate a Clebsch-Gordan coefficient:
⟨j1 j2 m1 m2|j1 j2 j12 m12⟩
Similar to clebschGordan
but exact.
Calculate a Wigner 3-j symbol:
⎛j1 j2 j3⎞ ⎝m1 m2 m3⎠
Similar to wigner3j
but exact.
Recoupling coefficients
Calculate a Wigner 6-j symbol:
⎧j11 j12 j13⎫ ⎩j21 j22 j23⎭
Similar to wigner6j
but exact.