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.
Accelerate
frameworkFoundation
framework
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
python
andvirtualenv
.- 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-osx
on 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.swiftdoc
andlibNumSwift.dylib
- There are three files in that directory:
- Include files generated in
NumSwiftModule
in you Xcode Project.- If you hate Xcode just like me, you can use
swiftc
instead with flags-I
and-L
- ex: Suppose you have a
main.swift
and importNumSwift
in 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.xcodeproj
underNumSwift/NumSwift/
directory. - Press
Build
. - You should be able to see
NumSwift.framework
underNumSwift/NumSwift/
. Drag the framework file to any project you'd like to use it. - You should be able to import
NumSwift
in your project.
- DFT v.s FFT
- vDSP Guide - DFT
- That is why we use
vDSP_DFT_XXX
rather thanvDSP_fft_XXX
. - The header file which states you should prefer
DFT
overfft
is located in/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/Kernel.framework/Versions/Current/Headers/vecLib
on my computer. Go see it for yourself.
- That is why we use
MIT