diff --git a/demos/bernoulli_demo.py b/demos/bernoulli_demo.py index 01f6f4135463b634702146af0da020c45bfbf37b..7efd68a31249aa4a3b321265b0615bf68756ce13 100644 --- a/demos/bernoulli_demo.py +++ b/demos/bernoulli_demo.py @@ -33,7 +33,7 @@ if __name__ == '__main__': # Two-dimensional regular grid with inhomogeneous exposure position_space = ift.RGSpace([512, 512]) - # # Sphere with with uniform exposure + # Sphere with uniform exposure # position_space = ift.HPSpace(128) # exposure = ift.Field.full(position_space, 1.) diff --git a/demos/getting_started_2.py b/demos/getting_started_2.py index ffdaf5f64a1de42c67b23129725ed19ea375935b..d878ec0df44e6c725431049ef42d2ebb4e6b2e7f 100644 --- a/demos/getting_started_2.py +++ b/demos/getting_started_2.py @@ -49,7 +49,7 @@ if __name__ == '__main__': position_space = ift.RGSpace([512, 512]) exposure = get_2D_exposure() - # # Sphere with with uniform exposure + # Sphere with uniform exposure # position_space = ift.HPSpace(128) # exposure = ift.Field.full(position_space, 1.) @@ -70,7 +70,7 @@ if __name__ == '__main__': A = pd(a) # Set up a sky model - sky = HT.chain(ift.makeOp(A)).exp() + sky = ift.exp(HT.chain(ift.makeOp(A))) M = ift.DiagonalOperator(exposure) GR = ift.GeometryRemover(position_space) @@ -99,7 +99,6 @@ if __name__ == '__main__': H, convergence = minimizer(H) # Plot results - result_sky = sky(H.position) - ift.plot(result_sky) + ift.plot(sky(H.position)) ift.plot_finish() # FIXME PLOTTING diff --git a/nifty5/minimization/energy.py b/nifty5/minimization/energy.py index d2b53529ff1c056b0bca6de5015ecfed4a88ade5..8fd83882b2dfa7455abbd7abbac755ce82629f33 100644 --- a/nifty5/minimization/energy.py +++ b/nifty5/minimization/energy.py @@ -25,8 +25,8 @@ from ..utilities import NiftyMetaBase, memo class Energy(NiftyMetaBase()): """ Provides the functional used by minimization schemes. - The Energy object is an implementation of a scalar function including its - gradient and metric at some position. + The Energy object is an implementation of a scalar function including its + gradient and metric at some position. Parameters ---------- diff --git a/nifty5/multi/multi_field.py b/nifty5/multi/multi_field.py index 652bd1700a5944811b3a4a6c946c48345b5c6aca..525e79cecf369f6a8a0eb01b3ad853b16a6e8950 100644 --- a/nifty5/multi/multi_field.py +++ b/nifty5/multi/multi_field.py @@ -221,17 +221,16 @@ class MultiField(object): return MultiField.from_dict({key: self[key] for key in subset}) def unite(self, other): + if self._domain is other._domain: + return self + other return self.combine((self, other)) @staticmethod def combine(fields): res = {} for f in fields: - for key in f.keys(): - if key in res: - res[key] = res[key]+f[key] - else: - res[key] = f[key] + for key, val in f.items(): + res[key] = res[key]+val if key in res else val return MultiField.from_dict(res) diff --git a/nifty5/sugar.py b/nifty5/sugar.py index 5f50fc6351b24454f852b06553c163a050f75361..dd290091dbbc1e7e8512f0b8d9682ecc7c4d2a66 100644 --- a/nifty5/sugar.py +++ b/nifty5/sugar.py @@ -261,7 +261,8 @@ for f in ["sqrt", "exp", "log", "tanh", "positive_tanh", "conjugate"]: def func(f): def func2(x): from .linearization import Linearization - if isinstance(x, (Field, MultiField, Linearization)): + from .operators.operator import Operator + if isinstance(x, (Field, MultiField, Linearization, Operator)): return getattr(x, f)() else: return getattr(np, f)(x)