Skip to content
This repository was archived by the owner on Jul 20, 2023. It is now read-only.

ChrisRackauckas/VectorizedRoutines.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • 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!

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 9

Languages