import scipy.special as sp
import numpy as np
def gentable(X):
l = '%5s %13s %13s %13s %13s %13s %13s\n' % ('x','exp(-x)*I0(x)','exp(-x)*I1(x)','x^{-2}*I2(x)','exp(x)*K0(x)','exp(x)*K1(x)','x^2*K2(x)')
for i, x in enumerate(X):
a = np.exp(-x)
A = 1.0/a
B = x*x
b = 1.0/B
l += '%5.2f %13.10f %13.10f %13.10f %13.10f %13.10f %13.10f\n' % (x, a*sp.i0(x), a*sp.i1(x), b*sp.iv(2,x), A*sp.k0(x), A*sp.k1(x), B*sp.kn(2,x))
if (i+1) % 5 == 0:
l += '\n'
return l
def gendata(X):
l = '%5s%23s%23s%23s%23s%23s%23s%23s%23s\n' % ('x', 'I0', 'I1', 'I2', 'I3', 'K0', 'K1', 'K2', 'K3')
for i, x in enumerate(X):
l += '%5.2f%23.15e%23.15e%23.15e%23.15e%23.15e%23.15e%23.15e%23.15e\n' % (x, sp.i0(x), sp.i1(x), sp.iv(2,x), sp.iv(3,x), sp.k0(x), sp.k1(x), sp.kn(2,x), sp.kn(3,x))
return l
def gendataNeg(X):
l = '%6s%23s%23s%23s%23s\n' % ('x', 'I0', 'I1', 'I2', 'I3')
for i, x in enumerate(X):
l += '%6.2f%23.15e%23.15e%23.15e%23.15e\n' % (x, sp.i0(x), sp.i1(x), sp.iv(2,x), sp.iv(3,x))
return l
def savefile(l, fn):
f = open(fn,'w')
f.write(l)
f.close()
print('file <%s> written' % fn)
l = gentable(np.linspace(0,5.0,51))
savefile(l, '/tmp/as-9-modbessel-integer-tables9.txt')
X = np.linspace(0,20,41)
l = gendata(X)
savefile(l, '/tmp/as-9-modbessel-integer-sml.cmp')
X = np.linspace(0,20,201)
l = gendata(X)
savefile(l, '/tmp/as-9-modbessel-integer-big.cmp')
X = np.linspace(-10,0,41)
l = gendataNeg(X)
savefile(l, '/tmp/as-9-modbessel-integer-neg.cmp')