smolar
一个用C语言实现的类似numpy的微型多维数组,但只有一个文件。
我一直想深入研究多维数组的实现。最终,受到numpy的启发,我决定尝试一下。我想从头开始实现所有功能,因此C语言是完美的选择。
工作原理
目前,smolar
只支持float
数据类型的N维数组。也就是说,N维数组中的每个元素都是float
类型。我这样做是因为:
- 整数也可以用浮点数表示(尽管浮点数在内存中占用更多字节)。
- 出于教育/学习目的,我只想使用浮点数。
- 未来可能会添加对更多数据类型的支持。
文件结构
只有一个文件:smolar.c
所有内容,我是说所有内容都在这个文件中。
使用clang编译器编译并运行此文件:
$ clang smolar.c -o smolar
$ ./smolar
当前进展
- 定义数组结构
- 从形状创建/初始化数组
- 使用步长遍历数组
- 广播数组的能力
- 元素级加法运算
- 更多一元和二元数组运算
- 支持更多
数据类型
- 数组运算中的并行循环