Releases: stsievert/swix
ndarray => vector
Swift 2 and bug fixes
This release runs and compiles under the release version of Xcode 7, downloaded from the App Store.
Further modifications were made after integrating swix into another project. This release cleans up the code and removes or adds certain functions/operators. Specifically, it
- gets rid of the
*!
operator for scoping issues. Instead ofA *! x
, useA.dot(x)
. - removes function
find
. Theargwhere
function is more clear whatfind
/argwhere
does. - allows changing the seed for
rand
, etc - removes swixUseCases and implements
swix_ios_app
- updates image functions for Swift 2
- adds
matrix.dot(ndarray)
.
Swift 2 compatibility
That is, XCode7b4 compatibility
Further emulating NumPy
Significant work has been done to further emulate NumPy. Added functions for stuff I think everyone would find useful, not just me. This library is not under heavy development anymore.
New backend
A much cleaner and faster library. It calls the Accelerate library in most cases (all operators, some simple functions and all complex functions) and is nicely structured (matrix
depends on ndarray
depends on [Double]
).
In addition, I have implemented a complex signal processing algorithm from Matlab to iOS with this framework. The conversion was almost line for line. For example, here's a real-world example of my Matlab-iOS conversion:
swix
var i = abs(S) < mu/2
S[argwhere(i)] = zeros(i.n)
i = argwhere(1 - i) // equivalent to notting every element
S[i] = S[i] - sign(S[i]) * mu/2;
var S0 = zeros((sm, sn))
S0["diag"] = S
var L_new = U *! (S0 *! V)
matlab
i = abs(S) > mu/2;
S(~i) = 0;
S(i) = S(i) - sign(S(i))*mu/2;
S = diag(S);
S0(1:min_snm, 1:min_snm) = S;
L_new = U * S0 * V';
Prelim release
A very preliminary release that details how to integrate OpenCV/Accelerate and includes ScalarArithmetic and swift-complex. This release relies on some very rough behaviors, such as calling a matrix2d an Array of Arrays. I intend to rewrap matrix and matrix2d into structs and integrate the rest of the code to reflect that.
Since this release is beta, the API may change.