Ejemplo n.º 1
0
    def forward(self,
                input_array=None,
                output_array=None,
                fast_transform=True,
                padding_factor=1):
        if padding_factor > 1:
            assert self._padded_basis is not None
            output_array = self._padded_basis.forward(
                input_array, output_array, fast_transform=fast_transform)
            return output_array

        if fast_transform is False:
            return SpectralBase.forward(self, input_array, output_array, False)

        if input_array is not None:
            self.forward.input_array[...] = input_array

        self.forward.xfftn()
        self._truncation_forward(self.forward.tmp_array,
                                 self.forward.output_array)
        M = self.get_normalization()
        self.forward._output_array *= M

        if output_array is not None:
            output_array[...] = self.forward.output_array
            return output_array
        return self.forward.output_array
Ejemplo n.º 2
0
    def forward(self, input_array=None, output_array=None, fast_transform=True):
        if fast_transform is False:
            return SpectralBase.forward(self, input_array, output_array, False)

        if input_array is not None:
            self.forward.input_array[...] = input_array

        self.forward.xfftn()
        self._truncation_forward(self.forward.tmp_array,
                                 self.forward.output_array)
        M = self.get_normalization()
        self.forward._output_array *= M

        if output_array is not None:
            output_array[...] = self.forward.output_array
            return output_array
        return self.forward.output_array
Ejemplo n.º 3
0
    def forward(self,
                input_array=None,
                output_array=None,
                fast_transform=True):
        if fast_transform is False:
            return SpectralBase.forward(self, input_array, output_array, False)

        if input_array is not None:
            self.forward.input_array[...] = input_array

        self.forward.xfftn()
        self._truncation_forward(self.forward.tmp_array,
                                 self.forward.output_array)
        self.forward._output_array *= (1. / self.N / self.padding_factor)

        if output_array is not None:
            output_array[...] = self.forward.output_array
            return output_array
        return self.forward.output_array