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 floating-point number.
Calculate a Clebsch-Gordan coefficient:
⟨j1 j2 m1 m2|j1 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 0-387-95330-2).
(Note: clebschGordan
is not implemented using this function.)
Calculate a Wigner 3-j symbol:
⎛j1 j2 j3⎞ ⎝m1 m2 m3⎠
Similar to wigner3j
but exact.
Calculate the Wigner 3-j symbol times (−1) ^ (j1 − j2 − m3)
.
:: (Int, Int) |
|
-> (Int, Int, Int, Int, Int, Int) |
|
-> SignedSqrtRational |
Calculate the Wigner 3-j symbol times (−1) ^ (j1 − j2 − m3)
.
The selection rules are not checked.
Calculate a Wigner 6-j symbol:
⎧j11 j12 j13⎫ ⎩j21 j22 j23⎭
Similar to wigner6j
but exact.
Calculate the Wigner 6-j symbol. The selection rules are not checked.
:: (Int, Int, Int, Int, Int, Int, Int, Int, Int) |
|
-> Double |
Calculate a Wigner 9-j 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 9-j 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 6-j 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 3-j 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 6-j 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 9-j symbol that satisfy the
selection rules up to a maximum of jmax
.
tuple6ToList :: (a, a, a, a, a, a) -> [a] Source
Convert a 6-tuple into a list.
tuple9ToList :: (a, a, a, a, a, a, a, a, a) -> [a] Source
Convert a 9-tuple into a list.