def test_LLinv(adjcube):
"""Tests L and its inverse.
"""
from pydft.bases.fourier import L, Linv
Sprod = np.prod(adjcube.S)
for i in range(10):
v = np.random.random(size=Sprod)
#Our v is real; but due to round-off problems, there will be
#tiny imaginary values. Chop them off. We only keep the last
#N-1 components because the 0 component is NaN.
it = Linv(L(v))[1:]
if abs(np.max(np.imag(it))) < 1e-14:
it = np.real(it)
assert np.allclose(it, v[1:])
评论列表
文章目录