update 37
This commit is contained in:
parent
413b156e8f
commit
1ceab58844
2 changed files with 6 additions and 5 deletions
|
@ -1,4 +1,4 @@
|
||||||
from . import tau
|
from . import tau, ceil2
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
|
@ -37,15 +37,16 @@ def tsp(N, m=0.5):
|
||||||
if N < 0:
|
if N < 0:
|
||||||
raise Exception("The number of length must be the positive number")
|
raise Exception("The number of length must be the positive number")
|
||||||
|
|
||||||
NN = int(2**np.floor(np.log2(N))) # nearest
|
NN = ceil2(N)
|
||||||
NN2 = NN // 2
|
NN2 = NN // 2
|
||||||
M = int(np.round(NN2 * m))
|
M = int(np.round(NN2 * m))
|
||||||
|
|
||||||
nn2 = np.square(np.arange(NN2 + 1))
|
# this has been tweaked to prevent overflow:
|
||||||
|
s = np.square(np.arange(NN2 + 1) / NN)
|
||||||
|
|
||||||
j = np.complex(0, 1)
|
j = np.complex(0, 1)
|
||||||
|
|
||||||
H = np.exp(j * 4 * M * np.pi * nn2 / np.square(NN))
|
H = np.exp(j * 4 * M * np.pi * s)
|
||||||
H2 = np.r_[H, np.conj(H[1:NN2][::-1])]
|
H2 = np.r_[H, np.conj(H[1:NN2][::-1])]
|
||||||
|
|
||||||
x = np.fft.ifft(H2)
|
x = np.fft.ifft(H2)
|
||||||
|
|
|
@ -36,7 +36,7 @@ def warp(w):
|
||||||
|
|
||||||
|
|
||||||
def ceil2(x):
|
def ceil2(x):
|
||||||
return np.power(2, np.ceil(np.log2(x)))
|
return np.power(2, np.ceil(np.log2(x)).astype(int))
|
||||||
|
|
||||||
|
|
||||||
def pad2(x):
|
def pad2(x):
|
||||||
|
|
Loading…
Add table
Reference in a new issue