使用 PyUblas、Boost.Python 和 py_tsg 从 python 访问塔斯马尼亚稀疏网格.make_g
Accessing Tasmanian Sparse Grid from python using PyUblas, Boost.Python and py_tsg. Type mismatch in arguments for make_global_grid
我正在使用py_tsg从Python调用稀疏网格生成器Tasmanian(用C++编写(。 py_tsg网站表明我需要PyUblas和Boost.Python作为先决条件。 我已经完成了所有设置,并正在运行给出的第一个示例问题,以确保一切都是犹太洁食(在前面给出的相同py_tsg链接上(。
所以,除了一件事之外,一切似乎都很好...塔斯马尼亚网格方法中的一个参数之间的类型不匹配:make_global_grid。 具体来说,Python 将 numpy.ndarray 的整数传递给 pyublas::numpy_vector,解释器不喜欢它。
以下是来源:
import scipy, scipy.integrate, itertools
import pyublas
import _py_tsg as tsg
grid = tsg.TSG()
def fn1(x): return scipy.exp(-x[0]*x[0])*scipy.cos(x[1])
dimension = 2
outputs = 0
level = 7
grid.make_global_grid( dimension, outputs, level, tsg.TypeDepth.type_level, tsg.TypeOneDRule.rule_clenshawcurtis, scipy.array([], dtype=int), 0.0, 0.0 )
points = grid.get_points()
weights = grid.get_weights()
sum = scipy.sum( [w*fn1(x) for (x,w) in zip(points, weights)] )
print("nExample 1")
print("grid has: %d points" % grid.get_num_points())
print("integral is: %.17f" % sum)
print("error: %.17f" % scipy.fabs( sum - 2.513723354063905e+00 ))
和堆栈跟踪:Boost.Python.ArgumentError:Python 参数类型在TSG.make_global_grid(TSG, int, int, int, TypeDepth, TypeOneDRule, numpy.ndarray, float, float(与C++签名不匹配:make_global_grid(TSG_Wrap {lvalue}, int, int, int, TasGrid::TypeDepth, TasGrid::TypeOneDRule, pyublas::numpy_vector, double, double(
我发现塔斯马尼亚语在 4.0 或更高版本中为其C++库提供了一个 Python 包装器。 如果您遇到类似的问题,请查看塔斯马尼亚文档并使用 TSG 4.0 或更高版本...
相关文章:
- 通过方法访问结构
- 使用不带参数的函数访问结构元素
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 亚马逊在线评估编码问题,以找到第n个几何级数
- 如何在亚马逊kinesis_video_gstreamer_sample_app.cpp中更改视频源?
- 如何在 C/C++ 中计算 n=100 的加泰罗尼亚数
- 使用 PyUblas、Boost.Python 和 py_tsg 从 python 访问塔斯马尼亚稀疏网格.make_g
- 在Facebook的愚蠢中,大恩德尼亚人和小恩迪安
- 无声的夏尼亚克解析无法解析句子 - 它行不通
- 亚马逊,产品广告 API,签名请求 (C++)
- C++桌库特和约马尼普
- 加泰罗尼亚数字,递归函数时间复杂度
- 计算加泰罗尼亚数模数
- 在VMWare机器上编译的程序在亚马逊服务器上运行时会因非法指令而崩溃
- 为什么我的签名与亚马逊的例子不同?(C++/REST/授权签名版本4)
- 计算加泰罗尼亚语的第n个数字
- c++ pthread多线程2倍Intel Xeon X5570,四核cpu在亚马逊EC2 HPC ubuntu实例
- 递归的河内塔,访问冲突/分段错误,在dev c++编译器上
- 登录到亚马逊没有浏览器
- 在 Linux 上使用 C++ 访问索尼 Playstation SixAxis 控制器