All Projects → stsievert → Swix

stsievert / Swix

Licence: mit
Swift Matrix Library

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Swix

Tensor
A library and extension that provides objects for scientific computing in PHP.
Stars: ✭ 146 (-74.87%)
Mutual labels:  math, linear-algebra
sblas
Scala Native BLAS (Basic Linear Algebra Subprograms) supporting Linux and macOS
Stars: ✭ 25 (-95.7%)
Mutual labels:  math, linear-algebra
zalgebra
Linear algebra library for games and real-time graphics.
Stars: ✭ 129 (-77.8%)
Mutual labels:  math, linear-algebra
topologic
Visualiser for basic geometric primitives and fractals in arbitrary-dimensional spaces
Stars: ✭ 39 (-93.29%)
Mutual labels:  math, linear-algebra
Awesome-Math-Learning
📜 Collection of the most awesome Math learning resources in the form of notes, videos and cheatsheets.
Stars: ✭ 73 (-87.44%)
Mutual labels:  math, linear-algebra
Linear-Algebra-and-Its-Applications-notes
《线性代数及其应用》笔记
Stars: ✭ 196 (-66.27%)
Mutual labels:  math, linear-algebra
maths-for-deep-learning-ai
A open source book covering the foundational maths of deep learning and machine learning using TensorFlow
Stars: ✭ 35 (-93.98%)
Mutual labels:  math, linear-algebra
Numerix
A collection of useful mathematical functions in Elixir with a slant towards statistics, linear algebra and machine learning
Stars: ✭ 159 (-72.63%)
Mutual labels:  math, linear-algebra
math-app-ml
Essential mathematics for applied machine learning and data science
Stars: ✭ 43 (-92.6%)
Mutual labels:  math, linear-algebra
launchpad
Resources to get started in Quantum Computing!
Stars: ✭ 21 (-96.39%)
Mutual labels:  math, linear-algebra
mathcore
Advanced .NET math library (.NET Standard).
Stars: ✭ 24 (-95.87%)
Mutual labels:  math, linear-algebra
Machine Learning Curriculum
Complete path for a beginner to become a Machine Learning Scientist!
Stars: ✭ 279 (-51.98%)
Mutual labels:  math, linear-algebra
Mathnet Numerics
Math.NET Numerics
Stars: ✭ 2,688 (+362.65%)
Mutual labels:  math, linear-algebra
Mathematics for Machine Learning
Learn mathematics behind machine learning and explore different mathematics in machine learning.
Stars: ✭ 28 (-95.18%)
Mutual labels:  math, linear-algebra
Tutorials
AI-related tutorials. Access any of them for free → https://towardsai.net/editorial
Stars: ✭ 204 (-64.89%)
Mutual labels:  math, linear-algebra
pyGameMath
Math library for game programming in python.
Stars: ✭ 20 (-96.56%)
Mutual labels:  math, linear-algebra
Numphp
Mathematical PHP library for scientific computing
Stars: ✭ 120 (-79.35%)
Mutual labels:  math, linear-algebra
Math Php
Powerful modern math library for PHP: Features descriptive statistics and regressions; Continuous and discrete probability distributions; Linear algebra with matrices and vectors, Numerical analysis; special mathematical functions; Algebra
Stars: ✭ 2,009 (+245.78%)
Mutual labels:  math, linear-algebra
ign-math
General purpose math library for robot applications.
Stars: ✭ 35 (-93.98%)
Mutual labels:  math, linear-algebra
Mather
zzllrr mather(an offline tool for Math learning, education and research)小乐数学,离线可用的数学学习(自学或教学)、研究辅助工具。计划覆盖数学全部学科的解题、作图、演示、探索工具箱。目前是演示Demo版(抛转引玉),但已经支持数学公式编辑显示,部分作图功能,部分学科,如线性代数、离散数学的部分解题功能。最终目标是推动专业数学家、编程专家、教育工作者、科普工作者共同打造出更加专业级的Mather数学工具
Stars: ✭ 270 (-53.53%)
Mutual labels:  math, linear-algebra

Swift Matrix and Machine Learning Library

Note: tensorflow/swift and apple/swift-numerics/issues/6 have or will have more complete support for NumPy-like ndarrays and autodiff. Fast AI has a good overview: https://www.fast.ai/2019/01/10/swift-numerics/

An alternate and much mature library is https://github.com/AlexanderTar/LASwift

Apple's Swift is a high level language that's asking for some numerical library to perform computation fast or at the very least easily. This is a bare-bones wrapper for that library.

A way to have iOS run high-level code similar to Python or Matlab is something I've been waiting for, and am incredibly excited to see the results. This will make porting complex signal processing algorithms to C much easier. Porting from Python/MATLAB to C was (and is) a pain in the butt, and this library aims to make the conversion between a Python/Matlab algorithm and a mobile app simple.

In most cases, this library calls Accelerate or OpenCV. If you want to speed up some function or add add another feature in those libraries, feel free to file an issue or submit a pull request (preferred!).

Currently, this library gives you

  • operators and various functions (sin, etc) that operate on entire arrays
  • helper function (reshape, reverse, delete, repeat, etc)
  • easy initializers for 1D and 2D arrays
  • complex math (dot product, matrix inversion, eigenvalues, etc)
  • machine learning algorithms (SVM, kNN, SVD/PCA, more to come)
  • one dimensional Fourier transforms
  • speed optimization using Accelerate and OpenCV

When I was crafting this library, I primarily followed the footsteps and example set by NumPy. For the more complex mathematical functions (e.g., SVD) I tested it against NumPy. Matlab, at least for the SVD, returns slightly different output.

Additionally, I followed NumPy's syntax whenever possible. For example, NumPy and Matlab differ in their initializer called ones by ones((M,N)) and ones(M, N) respectively. If in doubt or getting weird compiler bugs, look at NumPy for Matlab users or the section on possible swix bugs that may pop up during the Install or other Bugs you may find.

Documentation

Details on how to install can be found in Install. The swix documentation includes details on each individual function and possible bugs.

Third Party Frameworks/Libraries

To be integrated

Uses

FAQ

Why does this library exist?

Not only should you be able to do simple math in arrays like in Surge, Swift makes it possible to call high level mathematical functions just like in Python/Matlab.

How does this library compare to Python/Matlab?

Complete speed results can be found in Speed

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].