Skip to content

Instantly share code, notes, and snippets.

View gpakosz's full-sized avatar

Grégory Pakosz gpakosz

View GitHub Profile
@gpakosz
gpakosz / gist:1128030
Created August 5, 2011 17:22
ARM NEON integer 16x8 dot product
# ------------------------------------------------------------------------------
# int32_t dotProduct_16x8_neon(int16_t const* __restrict u, int8_t const* __restrict v, int32_t size)
.globl _dotProduct_16x8_neon
.private_extern _dotProduct_16x8_neon
.no_dead_strip _dotProduct_16x8_neon
_dotProduct_16x8_neon:
# calling conventions:
#---------------------
@gpakosz
gpakosz / update_repositories.sh
Created August 13, 2011 14:34
Bulk update of SVN and Git repositories located under a common top level directory
#!/bin/sh
echo updating svn repositories
find . -type d -exec test -d '{}'/.svn.disabled \; -prune -o -exec test -d '{}'/.svn \; -prune -exec sh -c "echo updating {} && svn cleanup {} && svn update --non-interactive --trust-server-cert {}" \;
echo updating git repositories
find . -type d -exec test -d '{}'/.git \; -prune -exec sh -c "echo updating {} && cd {} && git clean -xdf && git pull" \;
@gpakosz
gpakosz / gist:2947616
Created June 18, 2012 09:18
vim - toggle between relative / absolute / no line numbering
if exists("+relativenumber")
set relativenumber " show relative line numbers
set numberwidth=3 " narrow number column
" cycles between relative / absolute / no numbering
function! RelativeNumberToggle()
if (&relativenumber == 1)
set number number?
elseif (&number == 1)
set nonumber number?
else
@gpakosz
gpakosz / null.h
Created July 10, 2012 21:02
pre C++11 nullptr anonymous class
#include <core/Preprocessor.h>
namespace core {
namespace types {
/**
* Anonymous class, to be used instead of <code>0</code> or <code>NULL</code>.
* Enables the selection of the correct form when methods are overloaded for
* both pointers & integrals types.
*/
@gpakosz
gpakosz / nanoc-sites.rb
Last active October 8, 2015 02:28
lists nanoc based sites hosted on github
#!/usr/bin/env ruby
require 'inifile'
require 'net/https'
require 'json'
local_repositories = []
Dir['_all/**/.git/config'].each do |f|
config = IniFile.load(f)
url = config['remote "origin"']['url']
@gpakosz
gpakosz / gist:4691383
Created February 1, 2013 13:42
Somewhere between /W4 and /Wall
/Wall /we4013 /wd4820 /we4289 /wd4342 /wd4347 /wd4514 /we4545 /we4546 /we4547 /we4548 /we4549 /we4619 /we4623 /we4625 /we4626 /wd4710 /we4836 /we4905 /we4906 /we4928 /we4946 /wd4986 /wd4350
@gpakosz
gpakosz / gist:4730132
Created February 7, 2013 10:32
suppress Microsoft CRT dialog box
#ifdef _WIN32
int stfuHook(int, char*, int* returnValue)
{
if (returnValue)
*returnValue = 0;
return true;
}
#endif
" -- tabular settings ----------------------------------------------------------
nnoremap <silent> <Leader>a= :Tabularize /=<CR>
vnoremap <silent> <Leader>a= :Tabularize /=<CR>
nnoremap <silent> <Leader>a: :Tabularize /:\zs<CR>
vnoremap <silent> <Leader>a: :Tabularize /:\zs<CR>
" auto align on pipes
inoremap <silent> <Bar> <Bar><Esc>:call <SID>pipe_align()<CR>a
function! s:pipe_align()
@gpakosz
gpakosz / compass.rb
Created April 19, 2013 12:59
Better yet hacky Compass / nanoc integration.
def compass_sass_engine_options
fail "configuring Compass with 'relative_assets = true' doesn't make much sense in the context of nanoc" if Compass.configuration.relative_assets?
options = Compass.sass_engine_options
options[:load_paths].each do |x|
class << x
alias _inspect inspect
def inspect
_inspect.gsub(/:0x\h+/, '')
@gpakosz
gpakosz / PackedArray.pp.c
Created August 3, 2013 13:31
Loop unrolling and code generation with self inclusion and preprocessing.
#include "PackedArray.h"
#include <assert.h>
void __PackedArray_pack_1(uint32_t* __restrict out, uint32_t offset, const uint32_t* __restrict in, uint32_t count)
{
uint32_t startBit;
uint32_t packed;
const uint32_t* __restrict end;