2023-09-08 12:58:58 +02:00
## ctensor
A simple C library implementing tensors. Still in development. Currently it only utilizes the CPU to enable mathematical operations with tensors.
## Structure
```
├── LICENSE
├── Makefile
2023-09-08 13:00:20 +02:00
├── README.md
2023-09-08 12:58:58 +02:00
├── dtype.h
├── tensor.c
├── tensor.h
├── tensorarray.c
├── tensorarray.h
2023-09-15 17:08:26 +02:00
├── tensorfunc.c
├── tensorfunc.h
2023-09-08 12:58:58 +02:00
└── tests
├── main.c
├── main.h
├── tensor_assert.h
├── tensor_test.c
├── tensor_test.h
2023-09-15 17:08:26 +02:00
├── tensorfunc_test.c
└── tensorfunc_test.h
2023-09-08 12:58:58 +02:00
```
`dtype.h` _ The file that defines the data type for the contents of the tensor. The default is float. _
`tensor.c` _ The file that contains the main functions. This includes functions for creating, destroying, comparing, copying, mathematical operations and more. _
`tensor.h` _ The header file for tensor.c containing among ohter the definition of the tensor struct. _
`tensorarray.c` _ The file for array utility functions. _
`tensorarray.h` _ The header file for tensorarray.c. _
2023-09-15 17:08:26 +02:00
`tensorfunc.c` _ The file for iterators over tensors and map functions. _
2023-09-08 12:58:58 +02:00
2023-09-15 17:08:26 +02:00
`tensorfunc.h` _ The header file for tensorfunc.c. _
2023-09-08 12:58:58 +02:00
`tests` _ The directory containing the unit tests. _
## TODOs
2023-09-15 14:06:13 +02:00
- [ ] Adding DTYPE_COPY macro
- [ ] Make elementwise operations run in parallel
2023-09-08 12:58:58 +02:00
- [ ] Making all functions work with random strides
- [ ] Adding a function for normalising strides
- [ ] Implementing dot product
- [ ] Implementing cross product
- [ ] Adding error codes
- [ ] Adding ability for persistently saving tensors to disk and loading them
- [ ] Adding views of tensor
- [ ] Implementing functions for transposing tensors