扩展与嵌入Perl:从自由度到实践应用
1. XS和SWIG的自由度
在扩展Perl时,有几个关键的代码插入点可以帮助XS和SWIG为脚本程序员生成流畅的接口:
- Perl模块 :到目前为止,这些工具生成的Perl模块仅用于引导C代码,但它也可以包含一些自定义子例程。例如,之前“修改参数”部分的XS示例可以很容易地在Perl空间中实现。
- 类型映射 :提供代码片段,用于在Perl和C数据类型之间进行转换。
- 接口文件中的包装代码 :CODE和PPCODE指令允许插入各种自定义翻译任务。在SWIG中,可以内联自定义C代码,示例如下:
%module FunMath
%inline %{
int factorial(int n){return (n == 1) ? 1 : n *(n -1)};
%}
2. 分形之旅:曼德勃罗集与Julia集
在深入了解分形之前,我们先回顾一下复数的知识。一个复数 $a + bi$ 由实部 $a$ 和虚部 $b$ 组成,它们共同构成了图上的一个点。
考虑表达式 $z = z^2 - 1$,其中 $z$ 是一个复数。我们从一个复数 $z_0$ 开始并绘制它,然后将其代入上述表达式以生成一个新的复数并绘制这个新数。这个过程重复20或30次。我们发现,不同的 $z_0$ 起始值会导致这个序列要么趋向无穷大,要么保持在一个边界内。所有导致有界序列的 $z_0$ 都属于Julia集,以数学家G
超级会员免费看
订阅专栏 解锁全文
38

被折叠的 条评论
为什么被折叠?



