Unicode(和其他整数)表打包程序

packtab的Python项目详细描述


包装盒

我第一次写这样的东西是在2001年,当时我在弗里比迪需要它:

https://github.com/fribidi/fribidi/blob/master/gen.tab/packtab.c

2019年,我想用它来生成更紧凑的unicode数据表 对于harfbuzz,但为了方便,我想从python中使用它。当 我考虑过把C代码包装成一个模块,我突然想到 可以用更干净的方式用纯python重写它。代码仍然存在 我的简历在可读性(或缺乏可读性)方面有污点。.:d

这个python版本基于相同的思想,但是与 C版主要有两种方式:

  1. 而C版本使用回溯来寻找最佳分割机会, 我发现使用动态编程也可以达到同样的效果。所以 python版本实现了dp方法,速度更快。

  2. C版本不尝试将多个项打包到单个字节中。 python版本可以。也就是说,如果物品合适,可能会被塞进 每个项目1、2或4位。

还有一些其他的优化,它们使得 complete)python版本更通用,可用于更广泛的种类 数据表的。

待办事项:

  • 减少内部/外部gencode()之间的代码重复。
  • 处理空数据数组。
  • 如果不放大,则将宽度乘数烘焙到数组数据中 数据类型。再说一次,这样可以节省行动。
  • 如果数组不大于64位,直接在代码中内联 作为一个整数。
  • 目前我们只在最后剔除一组默认值。在 同时开始,并调整分割代码以找到最佳移位。
  • 字节重用!更大的工作项目。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Pinch zoom仅放大到中心   简单java程序中的折扣错误   java使用SAP JCO调用获取JCO_错误_系统_失败   java servicedesk plus webflux curl(api3)   字符串java int toString()错误   java我对Kotlin Android Studio 4的Gradle同步有问题   java如何通过引用从Firebase获取一个对象数据   java Esper规则语言:从模式返回类的数据字段   oop Java抽象类实现了一个接口,两者都有相同的方法   java将大型Gzip数据文件上载到HDFS   java Spring引导:处理SizeLimitExceedeException总是在RestTemplate中给出“SocketException:软件导致的连接中止:recv失败”   java未绑定类路径变量   java列出所有liquibase sql类型   java如何通过使用google附近的连接api将文件名发送到具有有效负载的其他设备时更改文件名   java使用OpenLayers在定义的层上捕获双击事件。js   java如何在可见的两个视图之间切换?   java需要关于设计模式的建议