A Swift library providing numpy-like multi-dimensional data structures and operations for numerical computing.
Upsurge is a Swift library that provides multi-dimensional data structures and operations, similar to numpy in Python. It enables efficient numerical computing with tensors, matrices, and optimized arrays, solving the need for high-performance math operations in Swift applications.
Swift developers working on scientific computing, machine learning, or data analysis projects that require efficient multi-dimensional data manipulation and linear algebra operations.
Developers choose Upsurge for its numpy-like functionality in Swift, optimized memory management with ValueArrays, and seamless integration with other Swift libraries like Surge for DSP operations.
Multi-dimensional Swift math
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
ValueArrays are optimized to reduce unnecessary memory allocation with fixed capacities and class-based references, ideal for performance-critical numerical computing as described in the usage section.
Brings numpy-style multi-dimensional data structures and operations to Swift, including tensor slicing (e.g., tensor.asMatrix) and matrix arithmetic, filling a gap in the Swift ecosystem.
Offers intuitive operators for vector and matrix operations, such as A + B for addition and A • B for dot product, making code readable and maintainable.
Designed to complement Surge for DSP operations, allowing developers to leverage both libraries for comprehensive numerical computing without redundancy.
For DSP and certain linear operations, users must integrate Surge separately, adding complexity and potential dependency management issues to projects.
ValueArrays have immutable capacities after creation, making dynamic data handling cumbersome and error-prone for scenarios that require frequent resizing or appending.
Assignments create references rather than copies, which can lead to unintended mutations and bugs if developers aren't vigilant, as warned in the README's usage notes.