diff --git a/nifty5/operators/block_diagonal_operator.py b/nifty5/operators/block_diagonal_operator.py index 2006ff11655841000c195b55f07783076d45389d..7320215504d48805a5e78ca9626ef4e45f0a829a 100644 --- a/nifty5/operators/block_diagonal_operator.py +++ b/nifty5/operators/block_diagonal_operator.py @@ -19,9 +19,9 @@ from __future__ import absolute_import, division, print_function from ..compat import * -from .endomorphic_operator import EndomorphicOperator from ..multi_domain import MultiDomain from ..multi_field import MultiField +from .endomorphic_operator import EndomorphicOperator class BlockDiagonalOperator(EndomorphicOperator): diff --git a/nifty5/operators/central_zero_padder.py b/nifty5/operators/central_zero_padder.py index 414cab51cc7fede5ea574cd8a7d0030248476b5d..36e303822c2c99f90edc2101b95c2d477d49ea4d 100644 --- a/nifty5/operators/central_zero_padder.py +++ b/nifty5/operators/central_zero_padder.py @@ -18,16 +18,16 @@ from __future__ import absolute_import, division, print_function -import numpy as np import itertools +import numpy as np + +from .. import dobj, utilities from ..compat import * -from .. import utilities -from .linear_operator import LinearOperator from ..domain_tuple import DomainTuple from ..domains.rg_space import RGSpace from ..field import Field -from .. import dobj +from .linear_operator import LinearOperator # MR FIXME: for even axis lengths, we probably should split the value at the @@ -95,7 +95,6 @@ class CentralZeroPadder(LinearOperator): self._check_input(x, mode) x = x.val dax = dobj.distaxis(x) - shp_in = x.shape shp_out = self._tgt(mode).shape axes = self._target.axes[self._space] if dax in axes: diff --git a/nifty5/operators/chain_operator.py b/nifty5/operators/chain_operator.py index 5e8025e5b6c72d9a38ba45f4baa6cc18bbd4f6c5..b25d8bc07d80cf8e10f8b7134b7e2db8e8f5261a 100644 --- a/nifty5/operators/chain_operator.py +++ b/nifty5/operators/chain_operator.py @@ -18,13 +18,11 @@ from __future__ import absolute_import, division, print_function -import numpy as np - +from .. import utilities from ..compat import * +from .diagonal_operator import DiagonalOperator from .linear_operator import LinearOperator -from .. import utilities from .scaling_operator import ScalingOperator -from .diagonal_operator import DiagonalOperator from .simple_linear_operators import NullOperator @@ -44,8 +42,8 @@ class ChainOperator(LinearOperator): @staticmethod def simplify(ops): # verify domains - for i in range(len(ops)-1): - if ops[i+1].target != ops[i].domain: + for i in range(len(ops) - 1): + if ops[i + 1].target != ops[i].domain: raise ValueError("domain mismatch") # unpack ChainOperators opsnew = [] @@ -78,9 +76,8 @@ class ChainOperator(LinearOperator): # combine DiagonalOperators where possible opsnew = [] for op in ops: - if (len(opsnew) > 0 and - isinstance(opsnew[-1], DiagonalOperator) and - isinstance(op, DiagonalOperator)): + if (len(opsnew) > 0 and isinstance(opsnew[-1], DiagonalOperator) + and isinstance(op, DiagonalOperator)): opsnew[-1] = opsnew[-1]._combine_prod(op) else: opsnew.append(op) @@ -89,9 +86,9 @@ class ChainOperator(LinearOperator): from .block_diagonal_operator import BlockDiagonalOperator opsnew = [] for op in ops: - if (len(opsnew) > 0 and - isinstance(opsnew[-1], BlockDiagonalOperator) and - isinstance(op, BlockDiagonalOperator)): + if (len(opsnew) > 0 + and isinstance(opsnew[-1], BlockDiagonalOperator) + and isinstance(op, BlockDiagonalOperator)): opsnew[-1] = opsnew[-1]._combine_chain(op) else: opsnew.append(op) @@ -123,8 +120,8 @@ class ChainOperator(LinearOperator): if trafo == 0: return self if trafo == ADJ or trafo == INV: - return self.make([op._flip_modes(trafo) - for op in reversed(self._ops)]) + return self.make( + [op._flip_modes(trafo) for op in reversed(self._ops)]) if trafo == ADJ | INV: return self.make([op._flip_modes(trafo) for op in self._ops]) raise ValueError("invalid operator transformation") @@ -136,6 +133,7 @@ class ChainOperator(LinearOperator): x = op.apply(x, mode) return x + # def draw_sample(self, from_inverse=False, dtype=np.float64): # from ..sugar import from_random # if len(self._ops) == 1: @@ -149,4 +147,4 @@ class ChainOperator(LinearOperator): def __repr__(self): subs = "\n".join(sub.__repr__() for sub in self._ops) - return "ChainOperator:\n"+utilities.indent(subs) + return "ChainOperator:\n" + utilities.indent(subs) diff --git a/nifty5/operators/domain_distributor.py b/nifty5/operators/domain_distributor.py index 6044e6e32161f1eb24fefddd8aa4cf5d20d1d15e..da744a1026fbd1698e5ab1dcdab3100cfab33f34 100644 --- a/nifty5/operators/domain_distributor.py +++ b/nifty5/operators/domain_distributor.py @@ -20,12 +20,11 @@ from __future__ import absolute_import, division, print_function import numpy as np -from .. import dobj +from .. import utilities from ..compat import * from ..domain_tuple import DomainTuple from ..field import Field from .linear_operator import LinearOperator -from .. import utilities class DomainDistributor(LinearOperator): diff --git a/nifty5/operators/energy_operators.py b/nifty5/operators/energy_operators.py index e0e3ce674434a7a9b758aa84412436c5708d9ddb..7d502421e295b5f3f79697b9cf187ac202e56440 100644 --- a/nifty5/operators/energy_operators.py +++ b/nifty5/operators/energy_operators.py @@ -18,15 +18,15 @@ from __future__ import absolute_import, division, print_function +from .. import utilities from ..compat import * from ..domain_tuple import DomainTuple +from ..field import Field +from ..linearization import Linearization +from ..sugar import makeOp from .operator import Operator -from .sandwich_operator import SandwichOperator from .sampling_enabler import SamplingEnabler -from ..sugar import makeOp -from ..linearization import Linearization -from .. import utilities -from ..field import Field +from .sandwich_operator import SandwichOperator from .simple_linear_operators import VdotOperator diff --git a/nifty5/operators/exp_transform.py b/nifty5/operators/exp_transform.py index b27505bc54d2fc9a7534c95aa8a50a0f0b2c31c2..252830adb8a2604faf0bea446ded68e8427a5e6e 100644 --- a/nifty5/operators/exp_transform.py +++ b/nifty5/operators/exp_transform.py @@ -26,8 +26,8 @@ from ..domain_tuple import DomainTuple from ..domains.power_space import PowerSpace from ..domains.rg_space import RGSpace from ..field import Field -from .linear_operator import LinearOperator from ..utilities import infer_space, special_add_at +from .linear_operator import LinearOperator class ExpTransform(LinearOperator): diff --git a/nifty5/operators/field_zero_padder.py b/nifty5/operators/field_zero_padder.py index 60be737c4b882b289f6f472a3a6b938b2d8a6699..f39cb28ae981e59a07fbdae78ea80e0b537738a4 100644 --- a/nifty5/operators/field_zero_padder.py +++ b/nifty5/operators/field_zero_padder.py @@ -2,13 +2,12 @@ from __future__ import absolute_import, division, print_function import numpy as np -from .. import dobj +from .. import dobj, utilities from ..compat import * from ..domain_tuple import DomainTuple from ..domains.rg_space import RGSpace from ..field import Field from .linear_operator import LinearOperator -from .. import utilities class FieldZeroPadder(LinearOperator): diff --git a/nifty5/operators/harmonic_operators.py b/nifty5/operators/harmonic_operators.py index 480540848da3eb06ee8fd0dfd8ed976705c71ba9..4ac2a595270ae1254c4bb00e2939b9c558be2c20 100644 --- a/nifty5/operators/harmonic_operators.py +++ b/nifty5/operators/harmonic_operators.py @@ -23,12 +23,12 @@ import numpy as np from .. import dobj, utilities from ..compat import * from ..domain_tuple import DomainTuple -from ..domains.rg_space import RGSpace -from ..domains.lm_space import LMSpace from ..domains.gl_space import GLSpace +from ..domains.lm_space import LMSpace +from ..domains.rg_space import RGSpace from ..field import Field -from .linear_operator import LinearOperator from .diagonal_operator import DiagonalOperator +from .linear_operator import LinearOperator from .scaling_operator import ScalingOperator diff --git a/nifty5/operators/linear_operator.py b/nifty5/operators/linear_operator.py index d2000e99788d047bb2ecbcc728c425e68de94218..26a0cf81dc0dfac484ce06f2ba567158198c09c6 100644 --- a/nifty5/operators/linear_operator.py +++ b/nifty5/operators/linear_operator.py @@ -18,8 +18,6 @@ from __future__ import absolute_import, division, print_function -import numpy as np - from ..compat import * from .operator import Operator diff --git a/nifty5/operators/operator.py b/nifty5/operators/operator.py index e3a8e815bfcfea248dfc6a896f4241e81cc389a0..73ece15e64ef3e1f64b8d8e27f75e09f4ced4f89 100644 --- a/nifty5/operators/operator.py +++ b/nifty5/operators/operator.py @@ -1,8 +1,7 @@ from __future__ import absolute_import, division, print_function from ..compat import * -from ..utilities import NiftyMetaBase, my_product -from ..domain_tuple import DomainTuple +from ..utilities import NiftyMetaBase class Operator(NiftyMetaBase()): diff --git a/nifty5/operators/scaling_operator.py b/nifty5/operators/scaling_operator.py index 051a4f30f7f79d4c5ed76bad34cee6262eb7e251..dac7bdb2a244c96cb218a6506bc7af2e0b1b01fe 100644 --- a/nifty5/operators/scaling_operator.py +++ b/nifty5/operators/scaling_operator.py @@ -21,10 +21,8 @@ from __future__ import absolute_import, division, print_function import numpy as np from ..compat import * -from ..domain_tuple import DomainTuple from ..sugar import full from .endomorphic_operator import EndomorphicOperator -from .. import utilities class ScalingOperator(EndomorphicOperator): diff --git a/nifty5/operators/simple_linear_operators.py b/nifty5/operators/simple_linear_operators.py index 05d5f640afa301be1b0d36db6c2ef40a32ac6b1f..e011778ef14089caaabcf2e2ba9753fb7d2049bf 100644 --- a/nifty5/operators/simple_linear_operators.py +++ b/nifty5/operators/simple_linear_operators.py @@ -18,17 +18,15 @@ from __future__ import absolute_import, division, print_function -import numpy as np - from ..compat import * from ..domain_tuple import DomainTuple -from ..multi_domain import MultiDomain from ..domains.unstructured_domain import UnstructuredDomain -from .linear_operator import LinearOperator -from .endomorphic_operator import EndomorphicOperator -from ..sugar import full from ..field import Field +from ..multi_domain import MultiDomain from ..multi_field import MultiField +from ..sugar import full +from .endomorphic_operator import EndomorphicOperator +from .linear_operator import LinearOperator class VdotOperator(LinearOperator): diff --git a/nifty5/operators/sum_operator.py b/nifty5/operators/sum_operator.py index 0b46a0b487d57b93cf0d2e0a1aa3b71ca3ab6443..97806be7207550f369b8bf3fd8749f313d02451a 100644 --- a/nifty5/operators/sum_operator.py +++ b/nifty5/operators/sum_operator.py @@ -18,16 +18,15 @@ from __future__ import absolute_import, division, print_function +from collections import defaultdict + import numpy as np from ..compat import * -from ..utilities import my_sum, indent -from .linear_operator import LinearOperator -from .scaling_operator import ScalingOperator -from .diagonal_operator import DiagonalOperator -from .block_diagonal_operator import BlockDiagonalOperator -from collections import defaultdict from ..sugar import domain_union +from ..utilities import indent +from .block_diagonal_operator import BlockDiagonalOperator +from .linear_operator import LinearOperator class SumOperator(LinearOperator): diff --git a/nifty5/operators/symmetrizing_operator.py b/nifty5/operators/symmetrizing_operator.py index 0681e3dffc83289e74a3ed996552568ed7497718..09a5b9b893a67b118af9053df1823363a9d5a12a 100644 --- a/nifty5/operators/symmetrizing_operator.py +++ b/nifty5/operators/symmetrizing_operator.py @@ -18,13 +18,12 @@ from __future__ import absolute_import, division, print_function -from .. import dobj +from .. import dobj, utilities from ..compat import * from ..domain_tuple import DomainTuple from ..domains.log_rg_space import LogRGSpace from ..field import Field from .endomorphic_operator import EndomorphicOperator -from .. import utilities class SymmetrizingOperator(EndomorphicOperator):