Stability  unstable 

Safe Haskell  Safe 
Language  Haskell2010 
Functions in this module are subject to change without notice.
 newtype SignedSqrtRational = SignedSqrtRational Rational
 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
 clebschGordanSqSlow :: (Int, Int, Int, Int, Int, Int) > SignedSqrtRational
 wigner3j :: (Int, Int, Int, Int, Int, Int) > Double
 wigner3jSq :: (Int, Int, Int, Int, Int, Int) > SignedSqrtRational
 wigner3jSqRawC :: (Int, Int, Int, Int, Int, Int) > SignedSqrtRational
 wigner3jSqRaw :: (Int, Int) > (Int, Int, Int, Int, Int, Int) > SignedSqrtRational
 wigner6j :: (Int, Int, Int, Int, Int, Int) > Double
 wigner6jSq :: (Int, Int, Int, Int, Int, Int) > SignedSqrtRational
 wigner6jSqRaw :: (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
 wigner9jSqRaw :: (Int, Int, Int, Int, Int, Int, Int, Int, Int) > SignedSqrtRational
 factorial :: Int > Integer
 fallingFactorial :: Int > Int > Integer
 binomial :: Int > Int > Integer
 minusOnePow :: Int > Int
 triangleCondition :: (Int, Int, Int) > Bool
 triangularFactor :: (Int, Int, Int) > Rational
 triangularFactorRaw :: Int > (Int, Int, Int) > Rational
 tetrahedralSum :: (Int, Int, Int, Int, Int, Int) > Integer
 getTriangularTjs :: Int > (Int, Int) > [Int]
 getBitriangularTjs :: Int > ((Int, Int), (Int, Int)) > [Int]
 getTms :: Int > [Int]
 get3tjms :: Int > [(Int, Int, Int, Int, Int, Int)]
 get6tjs :: Int > [(Int, Int, Int, Int, Int, Int)]
 get9tjs :: Int > [(Int, Int, Int, Int, Int, Int, Int, Int, Int)]
 tuple6ToList :: (a, a, a, a, a, a) > [a]
 tuple9ToList :: (a, a, a, a, a, a, a, a, a) > [a]
Documentation
newtype 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 floatingpoint number.
Calculate a ClebschGordan coefficient:
⟨j1 j2 m1 m2j1 j2 j12 m12⟩
Similar to clebschGordan
but exact.
clebschGordanSqSlow :: (Int, Int, Int, Int, Int, Int) > SignedSqrtRational Source
Used only as a reference, it implements the formula from Wikipedia, which comes from equation (2.41) on page 172 of Quantum Mechanics: Foundations and Applications (1993) by A. Bohm and M. Loewe (ISBN 0387953302).
(Note: clebschGordan
is not implemented using this function.)
Calculate a Wigner 3j symbol:
⎛j1 j2 j3⎞ ⎝m1 m2 m3⎠
Similar to wigner3j
but exact.
Calculate the Wigner 3j symbol times (−1) ^ (j1 − j2 − m3)
.
:: (Int, Int) 

> (Int, Int, Int, Int, Int, Int) 

> SignedSqrtRational 
Calculate the Wigner 3j symbol times (−1) ^ (j1 − j2 − m3)
.
The selection rules are not checked.
Calculate a Wigner 6j symbol:
⎧j11 j12 j13⎫ ⎩j21 j22 j23⎭
Similar to wigner6j
but exact.
Calculate the Wigner 6j symbol. The selection rules are not checked.
:: (Int, Int, Int, Int, Int, Int, Int, Int, Int) 

> Double 
Calculate a Wigner 9j symbol:
⎧j11 j12 j13⎫ ⎨j21 j22 j23⎬ ⎩j31 j32 j33⎭
:: (Int, Int, Int, Int, Int, Int, Int, Int, Int) 

> SignedSqrtRational 
Similar to wigner9j
but exact.
:: (Int, Int, Int, Int, Int, Int, Int, Int, Int) 

> SignedSqrtRational 
Calculate the Wigner 9j symbol. The selection rules are not checked.
Calculate the falling factorial, i.e. the product of the integers [n, k)
.
Check j1 − j2 ≤ j3 ≤ j1 + j2
and j1 + j2 + j3 ∈ ℤ
.
Calculate the triangular factor:
Δ(j1, j2, j3) = (−j1 + j2 _ j3)! (j1 − j2 + j3)! (j1 + j2 − j3)! / (j1 + j2 + j3 + 1)!
Calculate ja! jb! jc! / jd!
.
Calculate the symbol in the paper by L. Wei that is enclosed in square brackets:
⎡j11 j12 j13⎤ ⎣j21 j22 j23⎦
This is essentially a Wigner 6j symbol without the triangular factors, although the ordering of the arguments is a bit funky here.
Get all angular momenta that satisfy the triangle condition with the
given pair of angular momenta, up to a maximum of jmax
.
Get all angular momenta that satisfy the triangle condition with each of
the given two pairs of angular momenta, up to a maximum of jmax
.
Get all projection quantum numbers that lie within the multiplet of j
.
Get all possible arguments of the Wigner 3j symbol that satisfy the
selection rules up to a maximum of jmax
.
get6tjs :: Int > [(Int, Int, Int, Int, Int, Int)] Source
Get all possible arguments of the Wigner 6j symbol that satisfy the
selection rules up to a maximum of jmax
.
get9tjs :: Int > [(Int, Int, Int, Int, Int, Int, Int, Int, Int)] Source
Get all possible arguments of the Wigner 9j symbol that satisfy the
selection rules up to a maximum of jmax
.
tuple6ToList :: (a, a, a, a, a, a) > [a] Source
Convert a 6tuple into a list.
tuple9ToList :: (a, a, a, a, a, a, a, a, a) > [a] Source
Convert a 9tuple into a list.