Skip to content

☂️Unemploy yourself with useless NIF bridges

Notifications You must be signed in to change notification settings

vKxni/explusplus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ExPlusPlus (Elixir++)

A simple attempt to build a bridge between Elixir (mix) and C++.

Vectors

Elixir

def dot(a, b) do
    Enum.zip(a, b)
    |> Enum.map(fn {ea, eb} -> ea * eb end)
    |> Enum.reduce(&Kernel.+/2)
end

C++

double dot(const vector<double> &a, const vector<double> &b)
{
    double result = 0.0d;
    for (int i = 0; i < a.size(); ++i) 
    {
        result += a[i] * b[i];    
    }
    return result;
}

Compile

g++ -O3 -fpic -shared -o nativly.so natifly.cpp

Terminal

iex(1)> Home.benchmark
For N = 1000000:
=============
Elixir took 0.283104s
Native took 0.05946s

About

☂️Unemploy yourself with useless NIF bridges

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published