Skip to content

Instantly share code, notes, and snippets.

View gist:4753798
boost/simd/toolbox/operator/functions/load.hpp 27,2 Top
#include <boost/simd/include/simd.hpp>
#include <boost/simd/sdk/simd/pack.hpp>
using namespace boost::simd;
int main() {
int n = 100;
int * a = new int[n];
pack<int> v(a);// = unaligned_load< pack<int> >(a,0);
delete [] a;
View gist:5662616
In file included from /home/serge/sources/nt2/_build/install/include/boost/simd/operator/specific/common.hpp:36:0,
from /home/serge/sources/nt2/_build/install/include/boost/simd/arithmetic/functions/tofloat.hpp:64,
from /home/serge/sources/nt2/_build/install/include/boost/simd/arithmetic/include/functions/simd/tofloat.hpp:4,
from /home/serge/sources/nt2/_build/install/include/boost/simd/include/functions/simd/tofloat.hpp:4,
from /home/serge/sources/nt2/_build/install/include/boost/simd/operator/functions/simd/common/splat.hpp:15,
from /home/serge/sources/nt2/_build/install/include/boost/simd/operator/include/functions/simd/splat.hpp:6,
from /home/serge/sources/nt2/_build/install/include/boost/simd/include/functions/simd/splat.hpp:4,
from /home/serge/sources/nt2/_build/install/include/boost/simd/sdk/constant/impl/simd/common.hpp:12,
from /home/serge/sources/nt2/_build/install/
View nano-benchmark.py
import matplotlib.pyplot as plt
import timeit
import hashlib
import gc
import numpy as np
import numexpr as ne
from a import a as pythran
from numba import vectorize, jit
from pythran import compile_pythrancode
View UnionPtr.hpp
#include <cstdint>
#include <type_traits>
template<class T>
constexpr std::intptr_t index_of() {
return 1;
}
template<class T, class T0, class... Ts>
constexpr std::intptr_t index_of() {
return std::is_same<T, T0>::value ? 0 : (1 + index_of<T, Ts...>());
View constexpr_str.cpp
#include <string>
#include <cassert>
#include <array>
#include <numeric>
template<std::size_t N, char Seed = 42>
class constexpr_str {
std::array<char, N> data_;
template<std::size_t... Is>
View build.sh
#!/bin/bash
sed -i -e 's,CC=,CC=/opt/anaconda1anaconda2anaconda3/bin/gcc-4.9,' -e 's,CXX=,CXX=/opt/anaconda1anaconda2anaconda3/bin/g++-4.9,' -e 's,library_dirs=,library_dirs=/opt/anaconda1anaconda2anaconda3/lib ,' -e 's,include_dirs=,include_dirs=/opt/anaconda1anaconda2anaconda3/include ,' -e 's|ldflags=|ldflags=-Wl,-rpath /opt/anaconda1anaconda2anaconda3/lib64 |' pythran/pythran-linux2.cfg
sed -i -e 's,CC=,CC=/opt/anaconda1anaconda2anaconda3/bin/gcc-4.9,' -e 's,CXX=,CXX=/opt/anaconda1anaconda2anaconda3/bin/g++-4.9,' -e 's,library_dirs=,library_dirs=/opt/anaconda1anaconda2anaconda3/lib ,' -e 's,include_dirs=,include_dirs=/opt/anaconda1anaconda2anaconda3/include ,' -e 's|ldflags=|ldflags=-Wl,-rpath /opt/anaconda1anaconda2anaconda3/lib64 |' pythran/pythran-linux.cfg
$PYTHON setup.py install
@serge-sans-paille
serge-sans-paille / jit.py
Created Nov 2, 2018
Pythran-based dummy JIT compiler
View jit.py
import pythran
import inspect
import hashlib
import itertools
import imp
import re
def typename(obj):
# FIXME: only works for some types
return type(obj).__name__
View argminmax.cpp
using vT = xsimd::simd_type<T>;
using iT = xsimd::as_integer_t<T>;
static const size_t vN = vT::size;
const long n = elts.size();
if(n >= std::numeric_limits<iT>::max()) {
return _argminmax_seq<Op>(elts, minmax_elts);
}
auto viter = types::vectorizer_nobroadcast::vbegin(elts),
vend = types::vectorizer_nobroadcast::vend(elts);
View functional_style.py
import ast
import sys
import shutil
import unparse
import unittest
import doctest
import StringIO
import os
from copy import deepcopy
View interp.cpp
// compile with clang++-3.7 `llvm-config-3.7 --cxxflags --ldflags --libs` -rdynamic` interp.cpp -o interp
#include <iostream>
#include <string>
#include "llvm/Bitcode/ReaderWriter.h"
#include "llvm/Support/MemoryBuffer.h"
#include <llvm/ExecutionEngine/GenericValue.h>
#include <llvm/ExecutionEngine/Interpreter.h>
#include <llvm/ExecutionEngine/MCJIT.h>