コード例 #1
0
def test_cubic_spline():

    from interpolation.splines.filter_cubic import filter_coeffs
    from interpolation.splines.eval_cubic import eval_cubic_spline, vec_eval_cubic_spline

    cc = filter_coeffs(a,b,orders,vals)
    assert(tuple(cc.shape)==tuple([o+2 for o in orders]))

    ii = eval_cubic_spline(a, b, orders, cc, point)
    iii = vec_eval_cubic_spline(a, b, orders, cc, points)

    assert(isinstance(ii,float))
    assert(iii.ndim==1)
コード例 #2
0
def test_cubic_spline():

    from interpolation.splines.filter_cubic import filter_coeffs
    from interpolation.splines.eval_cubic import eval_cubic_spline, vec_eval_cubic_spline

    cc = filter_coeffs(a, b, orders, vals)
    assert (tuple(cc.shape) == tuple([o + 2 for o in orders]))

    ii = eval_cubic_spline(a, b, orders, cc, point)
    iii = vec_eval_cubic_spline(a, b, orders, cc, points)

    assert (isinstance(ii, float))
    assert (iii.ndim == 1)
コード例 #3
0
from interpolation.splines.misc import mlinspace

import numpy

K = 50
d = 2
N = 10**6
# N = 100

a = numpy.array([0.0] * d)
b = numpy.array([1.0] * d)
orders = numpy.array([K] * d, dtype=int)

V = numpy.random.random(orders)
C = filter_coeffs(a, b, orders, V)

X = numpy.random.random((N, d))
res = numpy.zeros(N)
res2 = res.copy()

if d == 3:
    vec_eval_cubic_spline = vec_eval_cubic_spline_3
elif d == 2:
    vec_eval_cubic_spline = vec_eval_cubic_spline_2

vec_eval_cubic_spline(a, b, orders, C, X, res)

multilinear_interpolation(a, b, orders, V, X, res)

import time
コード例 #4
0
from interpolation.splines.misc import mlinspace

import numpy

K = 50
d = 3
N = 10**6
# N = 100

a = numpy.array([0.0,0.0,0.0])
b = numpy.array([1.0,1.0,1.0])
orders = numpy.array([K,K,K],dtype=int)

V = numpy.random.random(orders)
C = filter_coeffs(a,b,orders,V)


X = numpy.random.random((N,3))
res = numpy.zeros(N)
res2 = res.copy()

vec_eval_cubic_spline_3(a,b,orders,C,X,res)

multilinear_interpolation(a,b,orders,V,X,res)



import time

t1 = time.time()
コード例 #5
0
N = 100           # nb of points to evaluate
a = array([0.0]*d, dtype=float)
b = array([1.0]*d, dtype=float)
orders = array([K]*d, dtype=int)

grid = mlinspace(a,b,orders)

# single valued function to interpolate
f = lambda vec: sqrt(vec.sum(axis=1))
# df

# single valued function to interpolate
vals = f(grid)

from interpolation.splines.filter_cubic import filter_coeffs
cc = filter_coeffs(a,b,orders,vals)


def test_cuda():

    mvals = concatenate([vals[:,None],vals[:,None]],axis=1)

    # many points
    points = row_stack([[0.5, 0.5]]*N)

    from numba import cuda

    from interpolation.splines.eval_cubic_cuda import vec_eval_cubic_spline_2, Ad, dAd
    jitted = cuda.jit(vec_eval_cubic_spline_2)

    out = zeros(N)