Yeppp

Yeppp! bindings


License
BSD-3-Clause

Documentation

Yeppp bindings for Julia

Linux: Build Status

Windows: Build Status

Yeppp! is a high-performance SIMD-optimized mathematical library. This Julia package makes it possible to call Yeppp from Julia.

Install this package by

Pkg.add("Yeppp")

For common 64-bit platforms, this will download dependencies automatically. For some other platforms such as the PowerPC 64 architecture, you may still be able to use this package by downloading Yeppp! and extracting from the binaries folder the file(s) specific to your OS. Check the platforms supported by Yeppp! here. Make sure the extracted files are available on the system library search path or in the current directory. For example, in Julia's bin folder.

See example usage below. Yeppp's vectorized log is 7x faster than the one in Base that uses openlibm.

using Yeppp

x = rand(10^7)
ty = @elapsed Yeppp.log!(similar(x), x)
t  = @elapsed log(x)
t/ty

The following functions are available for Array{Float64}. Inputs are in x, and outputs are in y.

dot(x1, x2)
sum(x)
sumabs(x)
sumabs2(x)
negate!(x)
max!(y, x1, x2)
min!(y, x1, x2)
add!(y, x1, x2)
subtract!(y, x1, x2)
multiply!(y, x1, x2)

log!(y, x)
exp!(y, x)
evalpoly!(y, x_coeff, x)

sin!(y, x)
cos!(y, x)
tan!(y, x)

See the Yeppp! documentation for the full set of functions available in Yeppp!.