dummy-link

VectorizedRoutines

Familiar vectorized routines from R/Python/MATLAB, plus some more.

Readme

VectorizedRoutines.jl

Build Status Build status

VectorizedRoutines.jl provides a library of familiar and useful vectorized routines. This package hopes to include high-performance, tested, and documented Julia implementations of routines which MATLAB/Python/R users would be familiar with. We also welcome generally useful routines for operating on vectors/arrays.

Installation

To install the package, simply use:

Pkg.add("VectorizedRoutines")
using VectorizedRoutines

For the latest features, switch to the master branch via:

Pkg.checkout("VectorizedRoutines")

Using the Package

The functions from R/Python/MATLAB are implemented in order to match the functionality of their appropriate packages. In order to not have namespace issues, they are contained in appropriate modules, so you would call the MATLAB functions like:

mgrid = Matlab.meshgrid(0:1//4:1,0:1//8:1)

and the R functions like:

v1=1:5
v2 = 5:-1:1
repped = R.rep(v1,v2)

Although these look like they are calling some outside package from these languages, they are bonafide Julia implementations and thus can handle Julia specific issues (like using Rational numbers in the meshgrid).

If you want to export the functions to the main namespace, simply use the commands like this:

using VectorizedRoutines.R
rpois(1,[5.2;3.3]) # Same as R.rpois(1,[5.2;3.3])

The original Julia vectorized routines offered here do not need to be prefaced:

xs = 1:26
pairwise((x,y)->sqrt(x^2 + y^2), xs)

Current Functions and Macros

  • MATLAB
    • ngrid
    • meshgrid
    • accumarray (fast)
    • accumarray2 (more functionality)
    • Compatibility Functions:
    • disp
    • strcat
    • num2str
    • max
    • numel
  • Python

    • @vcomp (vector comprehension) macro based on Python's list comprehensions with a conditional clause to filter elements in a succinct way, ie: @vcomp Int[i^2 for i in 1:10] when i % 2 == 0 # Int[4, 16, 36, 64, 100]
  • R

  • The package also offers Julia-native vectorized routines that are not found in MATLAB, Python or R.

    • multireshape (a reshape which can produce views to multiple arrays)
    • pairwise (apply a function to all pairwise combinations of elements from an array)
    • pairwise!

First Commit

07/14/2016

Last Touched

2 months ago

Commits

76 commits