mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-05-14 19:43:41 +02:00
feat: epsilon tensors moved to dirac submodule, tests added
This commit is contained in:
parent
b50346dcf3
commit
c8cb0e4cb8
3 changed files with 36 additions and 12 deletions
|
@ -22,6 +22,30 @@ identity = np.array(
|
||||||
dtype=complex)
|
dtype=complex)
|
||||||
|
|
||||||
|
|
||||||
|
def epsilon_tensor(i, j, k):
|
||||||
|
"""Rank-3 epsilon tensor
|
||||||
|
|
||||||
|
Based on https://codegolf.stackexchange.com/a/160375
|
||||||
|
"""
|
||||||
|
test_set = set((i, j, k))
|
||||||
|
if not (test_set <= set((1, 2, 3)) or test_set <= set((0, 1, 2))):
|
||||||
|
raise Exception("Unexpected input", i, j, k)
|
||||||
|
|
||||||
|
return (i - j) * (j - k) * (k - i) / 2
|
||||||
|
|
||||||
|
|
||||||
|
def epsilon_tensor_rank4(i, j, k, o):
|
||||||
|
"""Rank-4 epsilon tensor
|
||||||
|
|
||||||
|
Extension of https://codegolf.stackexchange.com/a/160375
|
||||||
|
"""
|
||||||
|
test_set = set((i, j, k, o))
|
||||||
|
if not (test_set <= set((1, 2, 3, 4)) or test_set <= set((0, 1, 2, 3))):
|
||||||
|
raise Exception("Unexpected input", i, j, k, o)
|
||||||
|
|
||||||
|
return (i - j) * (j - k) * (k - i) * (i - o) * (j - o) * (o - k) / 12
|
||||||
|
|
||||||
|
|
||||||
def Grid_gamma(gamma_tag):
|
def Grid_gamma(gamma_tag):
|
||||||
"""Returns gamma matrix in Grid labeling."""
|
"""Returns gamma matrix in Grid labeling."""
|
||||||
if gamma_tag == 'Identity':
|
if gamma_tag == 'Identity':
|
||||||
|
|
|
@ -298,18 +298,6 @@ def read_Fourquark_hd5(path, filestem, ens_id, idl=None, vertices=["VA", "AV"]):
|
||||||
return result_dict
|
return result_dict
|
||||||
|
|
||||||
|
|
||||||
def _epsilon_tensor(i, j, k, o):
|
|
||||||
"""Rank-4 epsilon tensor
|
|
||||||
|
|
||||||
Extension of https://codegolf.stackexchange.com/a/160375
|
|
||||||
"""
|
|
||||||
test_set = set((i, j, k, o))
|
|
||||||
if not (test_set <= set((1, 2, 3, 4)) or test_set <= set((0, 1, 2, 3))):
|
|
||||||
raise Exception("Unexpected input", i, j, k, o)
|
|
||||||
|
|
||||||
return (i - j) * (j - k) * (k - i) * (i - o) * (j - o) * (o - k) / 12
|
|
||||||
|
|
||||||
|
|
||||||
def _get_lorentz_names(name):
|
def _get_lorentz_names(name):
|
||||||
assert len(name) == 2
|
assert len(name) == 2
|
||||||
|
|
||||||
|
|
|
@ -32,3 +32,15 @@ def test_grid_dirac():
|
||||||
pe.dirac.Grid_gamma(gamma)
|
pe.dirac.Grid_gamma(gamma)
|
||||||
with pytest.raises(Exception):
|
with pytest.raises(Exception):
|
||||||
pe.dirac.Grid_gamma('Not a gamma matrix')
|
pe.dirac.Grid_gamma('Not a gamma matrix')
|
||||||
|
|
||||||
|
|
||||||
|
def test_epsilon_tensor():
|
||||||
|
check = {(1, 2, 3) : 1.0,
|
||||||
|
(3, 1, 2) : 1.0,
|
||||||
|
(2, 3, 1) : 1.0,
|
||||||
|
(1, 1, 1) : 0.0,
|
||||||
|
(3, 2, 1) : -1.0,
|
||||||
|
(1, 3, 2) : -1.0,
|
||||||
|
(1, 1, 3) : 0.0}
|
||||||
|
for key, value in check.items():
|
||||||
|
assert pe.dirac.epsilon_tensor(*key) == value
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue