diff --git a/src/library/nft.py b/src/library/nft.py index b84b88cc636171edf9dc215766d60247be20d59a..b918c8ba8d7ff5b8bd3d96b0b53a83a7ffb24ae8 100644 --- a/src/library/nft.py +++ b/src/library/nft.py @@ -26,6 +26,17 @@ from ..sugar import makeDomain, makeField class Gridder(LinearOperator): + """ + Operator computing non-uniform 2D FFTs using ducc0 package. + + Parameters + ---------- + target : Domain, tuple of domains or DomainTuple. This must be a 2D RGSpace. + uv : coordinates of the data-points. This is supposed to be a 2D numpy.array + eps : requested precision + nthreads: @Parras, please fill this + + """ def __init__(self, target, uv, eps=2e-10, nthreads=1): self._capability = self.TIMES | self.ADJOINT_TIMES self._target = makeDomain(target) @@ -67,19 +78,24 @@ class Gridder(LinearOperator): class FinuFFT(LinearOperator): """ - Operator computing non-uniform FFTs using finufft package + Operator computing non-uniform 1D,2D and 3D FFTs using finufft package. Parameters ---------- - target: must be RGSpace? - pos: - eps: + target : Domain, tuple of domains or DomainTuple. + This must be an RGSpace with 1 to 3 dimensions. + pos : coordinates of the data-points + eps: requested precision """ def __init__(self, target, pos, eps=2e-10): import finufft self._capability = self.TIMES | self.ADJOINT_TIMES self._target = makeDomain(target) + if not isinstance(self._target[0], RGSpace): + raise TypeError("target needs to be an RGSpace") + if len(self._target.shape) > 3: + raise ValueError("Only 1D, 2D and 3D FFTs are supported by finufft") self._domain = DomainTuple.make(UnstructuredDomain((pos.shape[0]))) self._eps = float(eps) dst = np.array(self._target[0].distances) diff --git a/src/library/special_distributions.py b/src/library/special_distributions.py index 49b37ca61b94b3d50b5c0ceaa0d401e41c7c1150..ee393648985eb9c813e0bb64e60ab204f9fe8edf 100644 --- a/src/library/special_distributions.py +++ b/src/library/special_distributions.py @@ -136,7 +136,6 @@ class UniformOperator(Operator): The domain on which the field shall be defined. This is at the same time the domain and the target of the operator. loc: float - scale: float """ diff --git a/src/operators/simple_linear_operators.py b/src/operators/simple_linear_operators.py index 307d5d9a4eca9b46072e9ddf4b3397811cb00861..445b035d4768dd15764dc30dfd3adf9275729fa7 100644 --- a/src/operators/simple_linear_operators.py +++ b/src/operators/simple_linear_operators.py @@ -141,7 +141,7 @@ class FieldAdapter(LinearOperator): Parameters ---------- - tgt : Domain, tuple of Domain, DomainTuple, dict or MultiDomain: + tgt : Domain, tuple of domains, DomainTuple, dict or MultiDomain: If this is a Domain, tuple of Domain or DomainTuple, this will be the operator's target, and its domain will be a MultiDomain consisting of its domain with the supplied `name`