This project is just a simple practice on Swift and Accelerate framework. The swift files contain some basic function used in numeric computation. The main functionality is build upon Accelearate framework which leaverages SIMD of the CPU, which make the codes run faster than native Swift code.
I am a big fan of python. In this project, you can find many of the functions mimic the API from numpy which is a popular package for scientific computation.
I hope you enjoy this package. Cheers.
AccelerateframeworkFoundationframework
First, change working directory to NumSwift.
We use numpy (python package for numeric computation) as reference. Please setup the python environment by following steps:
- Instll
pythonandvirtualenv.- See this guide for detail of
virtualenv
- See this guide for detail of
- Activate a testing virtual environment.
virtualenv venv_test source venv_test/bin/activate - Install required python packages
- run
pip install -r requirements.txt
- run
You are ready to go!
- Run
make test-osxon Mac OSX.
- change working directory to
NumSwift - Run
make module - You will see a directory named
NumSwiftModule- There are three files in that directory:
NumSwift.swiftmodule,NumSwift.swiftdocandlibNumSwift.dylib
- There are three files in that directory:
- Include files generated in
NumSwiftModulein you Xcode Project.- If you hate Xcode just like me, you can use
swiftcinstead with flags-Iand-L - ex: Suppose you have a
main.swiftand importNumSwiftin it, you can runxcrun -sdk macosx swiftc -I /path/to/NumSwiftModule -L /path/to/NumSwiftModule -lNumSwift -o main.
- If you hate Xcode just like me, you can use
- Open
NumSwift.xcodeprojunderNumSwift/NumSwift/directory. - Press
Build. - You should be able to see
NumSwift.frameworkunderNumSwift/NumSwift/. Drag the framework file to any project you'd like to use it. - You should be able to import
NumSwiftin your project.
- DFT v.s FFT
- vDSP Guide - DFT
- That is why we use
vDSP_DFT_XXXrather thanvDSP_fft_XXX. - The header file which states you should prefer
DFToverfftis located in/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Kernel.framework/Versions/Current/Headers/vecLibon my computer. Go see it for yourself.
- That is why we use
MIT