DSL 思考

一、什么是DSL

DSL,即Domain Specific Language,是为在某些特定领域内解决特定问题而设计的专用语言,其基本思想是“求专不求全”。DSL主要目的是消除代码复杂度和间接性,并且应该注重专业领域。此外,也需要合理恰当的语法形式来实现DSL。

阅读更多

gpu.js

gpu.js 使用记录

  1. 定义GPU

    1
    2
    3
    4
    5
    const mode = 'gpu';
    // gpu, cpu
    const gpu = new GPU({ mode: mode });
    console.log(gpu.getMode());
    // gpu
阅读更多

pip 安装包指定头文件和静态库目录

开发中遇到的问题

  1. pip 指定includelib 目录

    在指定目录时需要添加标识 build_ext,例如:

    sudo pip install --global-option=build_ext --global-option="-I/usr/local/include/" --global-option="-L/usr/local/lib" <you package name>

阅读更多

Image processing using Graph_2

L2

  1. 体素或立体像素(voxel) 是体积像素(volume pixel) 的简称,是数字数据位于三维空间分区的最小单位,应用于三维成像、科学数据与医疗视频等领域。

  2. CPP —— Boost Graph libraries

    Matlab —— Graph Analysis toolbox

  3. 适定问题 well-posted problem

    不适定问题 ill-posted problem

阅读更多

pip源

PypiPython Package Index,是Python官方管理第三方软件库,目前共有96202个包。Python的软件管理工具包括pip等都是用PyPI作为默认软件源和以来。

Pypi的默认镜像地址是pypi.python.org

阅读更多

Pin学习1

什么是插桩(Instrumentation)?

向程序注入额外的代码来收集程序运行时的状态。

插桩(Instrumentation)的方法:

  • 源代码插桩(source instrumentation)
    ——对源码进行操作

  • 二进制插桩(Binary instrumentation)
    ——运行时直接注入

阅读更多

字典树Trie2

接着上一篇字典树结构的讲解,我们接着使用C++Python来实现字典树。

一、LeetCode的字典树

LeetCode 208 要求实现字典树。

Implement a trie with insert, search, and startsWith methods.
Note:
You may assume that all inputs are consist of lowercase letters a-z.

阅读更多

Trie字典树

一、字典树

字典树——Trie树,又称为前缀树(Prefix Tree)、单词查找树或键树,是一种多叉树结构。

上图是一棵__Trie__树,表示了关键字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 。从上图可以归纳出Trie树的基本性质:

  1. 根节点不包含字符,除根节点外的每一个子节点都包含一个字符。

  2. 从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串。

  3. 每个节点的所有子节点包含的字符互不相同。

    • 通常在实现的时候,会在结点结构中设置一个标志,用来标记该节点处是否构成一个单词(关键字)。
    • 可以看出,Trie树的关键字一般都是字符串,而且Trie树把每个关键字保存在一条路径上,而不是一个节点中。另外,有两个公共前缀的关键字,在Trie树种前缀部分的路径相同。所以Trie又称为前缀树。
阅读更多