def filter_controls(a,b,ndims,controls): from dolo.numeric.interpolation.filter_cubic_splines import filter_data dinv = (b-a)/(ndims-1) ndims = array(ndims) n_m, N, n_x = controls.shape coefs = zeros( (n_m, n_x) + tuple(ndims + 2) ) for i_m in range(n_m): for i_x in range(n_x): coefs[i_m,i_x,...] = filter_data(dinv, controls[i_m,:,i_x].reshape(ndims)) return coefs
def filter(smin, smax, orders, controls): from dolo.numeric.interpolation.filter_cubic_splines import filter_data n_mc, N, n_x = controls.shape dinv = (smax-smin)/(orders-1) oorders = ( orders + 2 ).tolist() res = zeros( [n_mc] + [n_x] + oorders ) for i in range(n_mc): for j in range(n_x): ddd = controls[i,:,j].reshape(orders).copy() rhs = filter_data(dinv, ddd) #, dinv ) res[i,j,...] = rhs return res
def filter(smin, smax, orders, controls): from dolo.numeric.interpolation.filter_cubic_splines import filter_data n_mc, N, n_x = controls.shape dinv = (smax - smin) / (orders - 1) oorders = (orders + 2).tolist() res = zeros([n_mc] + [n_x] + oorders) for i in range(n_mc): for j in range(n_x): ddd = controls[i, :, j].reshape(orders).copy() rhs = filter_data(dinv, ddd) #, dinv ) res[i, j, ...] = rhs return res