예제 #1
0
 def evaluate_expansion_all(self,
                            input_array,
                            output_array,
                            fast_transform=True):
     if fast_transform is False:
         SpectralBase.evaluate_expansion_all(self, input_array,
                                             output_array, False)
     else:
         self.backward.xfftn(normalise_idft=False)
예제 #2
0
 def evaluate_expansion_all(self, input_array, output_array, fast_transform=True):
     if fast_transform is False:
         SpectralBase.evaluate_expansion_all(self, input_array, output_array, False)
         return
     w_hat = work[(input_array, 0)]
     self.set_factor_arrays(input_array)
     w_hat = self.set_w_hat(w_hat, input_array, self._factor1, self._factor2)
     self.CT.backward(w_hat)
     assert input_array is self.backward.input_array
     assert output_array is self.backward.output_array
예제 #3
0
 def evaluate_expansion_all(self, input_array, output_array, fast_transform=True):
     if fast_transform is False:
         SpectralBase.evaluate_expansion_all(self, input_array, output_array, False)
         return
     w_hat = work[(input_array, 0)]
     self.set_factor_array(input_array)
     s0 = self.sl(slice(0, -2))
     s1 = self.sl(slice(2, None))
     w_hat[s0] = input_array[s0]
     w_hat[s1] -= self._factor*input_array[s0]
     self.CT.backward(w_hat)
     assert output_array is self.CT.backward.output_array
예제 #4
0
 def evaluate_expansion_all(self, input_array, output_array, fast_transform=True):
     if fast_transform is False:
         SpectralBase.evaluate_expansion_all(self, input_array, output_array, False)
         return
     w_hat = work[(input_array, 0)]
     s0 = self.sl(slice(0, -2))
     s1 = self.sl(slice(2, None))
     w_hat[s0] = input_array[s0]
     w_hat[s1] -= input_array[s0]
     self.bc.apply_before(w_hat, False, (0.5, 0.5))
     self.CT.backward(w_hat)
     assert output_array is self.CT.backward.output_array
예제 #5
0
    def evaluate_expansion_all(self, input_array, output_array, fast_transform=True):
        if fast_transform is False:
            SpectralBase.evaluate_expansion_all(self, input_array, output_array, False)
            return

        output_array = self.backward.xfftn()
        s0 = self.sl(slice(0, 1))
        if self.quad == "GC":
            output_array *= 0.5
            output_array += input_array[s0]/2

        elif self.quad == "GL":
            output_array *= 0.5
            output_array += input_array[s0]/2
            s0[self.axis] = slice(-1, None)
            s2 = self.sl(slice(0, None, 2))
            output_array[s2] += input_array[s0]/2
            s2[self.axis] = slice(1, None, 2)
            output_array[s2] -= input_array[s0]/2