Commit 56077e8d authored by Steininger, Theo (theos)'s avatar Steininger, Theo (theos)

Merge branch 'real_power_synthesize' into 'master'

Real power synthesize

See merge request !187
parents f64c8f54 bcb2055f
Pipeline #16818 failed with stages
in 60 minutes and 4 seconds
......@@ -599,6 +599,9 @@ class Field(Loggable, Versionable, object):
if real_power:
result = result_list[0]
if not issubclass(result_val_list[0].dtype.type,
np.complexfloating):
result = result.real
else:
result = result_list[0] + 1j*result_list[1]
......@@ -613,9 +616,17 @@ class Field(Loggable, Versionable, object):
flipped_val = domain[space].hermitianize_inverter(
x=flipped_val,
axes=domain_axes[space])
flipped_val = flipped_val.conjugate()
h = (val + flipped_val)/2.
a = val - h
# if no flips at all where performed `h` is a real field.
# if all spaces use the default implementation of doing nothing when
# no flips are applied, one can use `is` to infer this case.
if flipped_val is val:
h = flipped_val.real
a = 1j * flipped_val.imag
else:
flipped_val = flipped_val.conjugate()
h = (val + flipped_val)/2.
a = val - h
# correct variance
if preserve_gaussian_variance:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment