将 stdint 与 swig 和 numpy.i 一起使用

2023-12-19

我正在开发一个模块来使用c inline在Python代码中基于swig。 为此我想做numpy数组可访问于C。到目前为止我使用的 C 类型如下unsigned short但我想使用类似的类型uint16_t from stdint.h保存我的模块遇到的任何编译器。

不幸的是c++- 使用时函数无法正确包装stdint.h类型。给出的错误是:_setc() takes exactly 2 arguments (1 given)。这意味着,该函数没有被包装来接受numpy数组。当我使用例如时,不会发生错误unsigned short.

你有什么想法吗,我如何制作大口地图numpy数组到stdint-types?

interface.i不工作:

/* interface.i */
extern int __g();
%}
%include "stdint.i"
%include "numpy.i"

%init %{
import_array();
%}
%apply (uint16_t* INPLACE_ARRAY3, int DIM1) {(uint16_t* seq, int n1)};
extern int __g();

c++功能不工作:

#include "Python.h"
#include <stdio.h>
#include <stdint.h>
extern uint16_t* c;
extern int Dc;
extern int Nc[4];
void _setc(uint16_t *seq, int n1, int n2, int n3)
{
    c = seq;
    Nc[0] = n1;
    Nc[1] = n2;
    Nc[2] = n3;
}

interface.i在职的:

/* interface.i */
extern int __g();
%}
%include "stdint.i"
%include "numpy.i"

%init %{
import_array();
%}
%apply (unsigned short* INPLACE_ARRAY3, int DIM1) {(unsigned short* seq, int n1)};
extern int __g();

c++功能工作:

#include "Python.h"
#include <stdio.h>
#include <stdint.h>
extern unsigned short* c;
extern int Dc;
extern int Nc[4];
void _setc(unsigned short *seq, int n1, int n2, int n3)
{
    c = seq;
    Nc[0] = n1;
    Nc[1] = n2;
    Nc[2] = n3;
}

哈哈,在我放弃并发布这个问题几分钟后,我找到了一些“解决方案”。

我编辑了numpy.i适合我的事业: 我替换了旧的C类型与stdint.h在第 3044 行 ff 中输入:

[..]
/* Concrete instances of the %numpy_typemaps() macro: Each invocation
 * below applies all of the typemaps above to the specified data type.
 */
%numpy_typemaps(int8_t       , NPY_BYTE     , int)
%numpy_typemaps(uint8_t     , NPY_UBYTE    , int)
%numpy_typemaps(int16_t             , NPY_SHORT    , int)
%numpy_typemaps(uint16_t    , NPY_USHORT   , int)
%numpy_typemaps(int32_t               , NPY_INT      , int)
%numpy_typemaps(uint32_t      , NPY_UINT     , int)
%numpy_typemaps(long              , NPY_LONG     , int)
%numpy_typemaps(unsigned long     , NPY_ULONG    , int)
%numpy_typemaps(int64_t         , NPY_LONGLONG , int)
%numpy_typemaps(uint64_t, NPY_ULONGLONG, int)
%numpy_typemaps(float             , NPY_FLOAT    , int)
%numpy_typemaps(double            , NPY_DOUBLE   , int)
[..]

我想知道是否有人有比编辑更好的主意numpy.i

干杯 约亨

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 stdint 与 swig 和 numpy.i 一起使用 的相关文章

随机推荐

  • php中逗号分隔的列表

    我正在尝试建立一个用逗号分隔的列表 应该如下所示 绿色 橙色 红色 i 0 taxonomy form state values taxonomy 5 foreach taxonomy as key gt value result db q
  • Java中如何打印Statement(CallableStatement)?

    如何打印此 OracleCallableStatement ocstmt OracleCallableStatement connection prepareCall call package method id gt name gt oc
  • 如何抑制CatBoost迭代结果?

    我正在尝试使用 CatBoost 来拟合二进制模型 当我使用下面的代码时 我想verbose False可以帮助抑制迭代日志 但事实并非如此 有没有办法避免打印迭代 model CatBoostClassifier iterations 3
  • 动态更改数据模板

    我有一个绑定到任务的项目控件 每个任务都有任务状态 我为每个任务状态定义了不同的数据模板 以及数据模板选择器 问题是我无法弄清楚当任务状态动态更改时如何触发数据模板选择器 我想知道如何将数据触发器与数据模板一起使用 如果这不起作用 我将探索
  • 我如何使用 javascript/jquery 知道给定字符串是 hex、rgb、rgba 或 hsl 颜色?

    我使用正则表达式来表示十六进制 a fA F0 9 6 a fA F0 9 3 但我不知道我应该做什么来找到 rgb rgba 和 hsl 我正在以字符串形式获取输入 例如 输入将包含 rgb 0 0 0 或 rgb 0 0 0 0 2 这
  • android 如何比较待处理的意图

    文档PendingIntent FLAG NO CREATE http developer android com reference android app PendingIntent html FLAG NO CREATE reads
  • Android 列表视图搜索过滤器

    我正在尝试为 Android 进行列表视图搜索 我发现很多教程都可以做到这一点 搜索栏位于顶部 如果您在框中键入内容 结果将被过滤 在我的应用程序中 我想在过滤完成后单击给定的项目 我已经实现了 setOnItemClickListener
  • 引导两个导航栏折叠

    在引导程序中 我想在彼此下方有两个导航栏 我的想法 Navbar 1有一个品牌 主菜单 Navbar 2 在navbar1下面 有一个品牌叫做 子菜单 当用户在手机上查看该网站时 他 她会看到两个可折叠的导航栏 用户现在可以选择要打开的导航
  • 您多久更新一次 SQL Server 2000 中的统计信息?

    我想知道更新统计数据之前是否对您有帮助 您是如何知道更新它们的 exec sp updatestats 是的 如果您发现查询的性能未达到应有的效果 更新统计信息会非常有帮助 这可以通过检查查询计划并注意何时执行表扫描或索引扫描而不是索引查找
  • 在 Web 应用程序中记录用户活动

    我希望能够在网络应用程序中记录用户活动 我目前正在使用 log4j 它可以很好地记录错误等 但我不确定记录用户 执行的 servlet 方法和方法参数的最佳方法是什么 我正在使用 spring security 进行身份验证 典型的 Ser
  • 如何向网络服务发送和接收表情符号[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要在我的 Android 应用程序中使用表情符号进行聊天 我正在使用这个库https github com rockerhieu
  • gdb 堆栈奇怪

    我有时会得到这个奇怪的回溯 gdb bt 0 0x00002b36465a5d4c in AY16 Loop M16 from opt intel mkl 10 0 3 020 lib em64t libmkl mc so 1 0x0000
  • Python fastcgi 客户端

    我正在用 python 编写一个工具来监控 fastcgi 应用程序 我唯一需要 fastcgi 的是加载 ping 和状态页面 如果失败则返回某种错误 有很多库 从 python fasctgi 绑定到twisted 似乎能够做到这一点
  • Zend Framework 2 模块在 Bootstrap 控制器之间共享变量

    是否可以在 Module php 中创建变量甚至共享对象 如数据库适配器 以在所有视图控制器中使用 Zend 框架 2 例如 class Module public function onBootstrap MvcEvent e modul
  • python:腌制c对象

    首先 我并不期待解决方案 只是希望得到一些关于如何开始的指导 我有一个带有嵌入式 Python 解释器的 C 程序 程序用作输入的 Python 脚本显然是指 C 定义的对象和函数 我现在想让其中一些对象可腌制 pickle 文档描述了如何
  • Plone/z3c.form 3.2.1-如何使自动完成小部件(不是必填字段)使用自定义绑定源对象?

    我正在尝试使用绑定的源对象获取自动完成小部件以表单 z3c form 呈现 在接口类中 Parent schema Choice title u A Parent source ParentSourceBinder required Fal
  • Bootstrap Validator - 验证成功时发出警报

    我在用着引导验证器 http bootstrapvalidator com 插件来验证我的表单 我试图在表单成功验证时发出警报 HTML
  • LINQ To Entities 无法识别数组索引

    我的代码中有以下功能 public List
  • 如何以不同的方式设置标准 GWT 组件 (TabBar) 的样式?

    我正在使用 TabBar 并且想以不同的方式设置组件的样式 所以一次是这种风格 另一次是那种风格 我以为这会起作用 但事实并非如此 TabBar t new TabBar t addTab 1 t addTab 2 t addStyleNa
  • 将 stdint 与 swig 和 numpy.i 一起使用

    我正在开发一个模块来使用c inline在Python代码中基于swig 为此我想做numpy数组可访问于C 到目前为止我使用的 C 类型如下unsigned short但我想使用类似的类型uint16 t from stdint h保存我