Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View gramian's full-sized avatar
☯️

Christian Himpe gramian

☯️
View GitHub Profile
@gramian
gramian / matlab-octave.m
Last active June 24, 2023 19:15
Octave and Matlab Snippets
%% Math %%
si = @(x) sin(x) ./ (x + (x==0)); % cardinal sine without pi multiplied argument
hsin = @(x) 0.5 * (1.0 - cos(x)); % haversed sine
hcos = @(x) 0.5 * (1.0 + cos(x)); % haversed cosine
sigm = @(x,k) 0.5 * tanh(0.5 * k * x) + 0.5; % sigmoid function to (exp(-kx)+1)^-1
@gramian
gramian / antijet.m
Created September 22, 2014 23:57
Antijet Colormap
function m = antijet(n)
% antijet colormap
% by Christian Himpe 2014
% released under BSD 2-Clause License ( opensource.org/licenses/BSD-2-Clause )
if(nargin<1 || isempty(n)), n = 256; end;
L = linspace(0,1,n);
R = -0.5*sin( L*(1.37*pi)+0.13*pi )+0.5;
G = -0.4*cos( L*(1.5*pi) )+0.4;
@gramian
gramian / bashrc
Last active October 20, 2018 10:08
bash helpers
HISTIGNORE='git *'
alias cd..='cd ..'
alias uncommit='git reset --soft HEAD~'
alias forcepull='git fetch --all && git reset --hard origin/master'
alias oct='octave-cli'
alias mem='/usr/bin/time -f "%M KB"'
alias nano='nano -c -S'
alias ls='ls -la'
@gramian
gramian / hack4tex
Last active April 23, 2017 08:52
A small script to use the hack truetype font in pdflatex
#!/bin/sh
# hack4tex 0.1
# Copyright (c) 2016 Christian Himpe
# released under BSD 2-Clause License ( opensource.org/licenses/BSD-2-Clause )
# based on Stephan Lehmke's answer to "How do I use TrueType Fonts with PDFTeX
# using otftotfm?" on tex.stackexchange.com/a/52902
#
# requires otftotfm which is part of lcdf-typetools
#
@gramian
gramian / ainv.m
Last active July 18, 2016 14:27
Approximate matrix inverse of quadratic complexity ( A⁻¹ ≈ D⁻¹ - D⁻¹ E D⁻¹ )
function x = ainv(m)
% ainv - approximate inverse
% by Christian Himpe 2016
% released under BSD 2-Clause License ( opensource.org/licenses/BSD-2-Clause )
d = diag(m);
d(d~=0) = 1.0./d(d~=0);
n = numel(d);
x = bsxfun(@times,m,-d);
x = bsxfun(@times,x,d');
@gramian
gramian / texutils.tex
Created January 9, 2017 12:47
Useful TeX macros
\usepackage{adjustbox} % \ftitle
\usepackage{bbold} % for \1
% Text
%% Identifiers
\newcommand*{\doi}[1]{DOI \href{http://doi.org/#1}{\texttt{#1}}} % doi command
\newcommand*{\isbn}[1]{ISBN \href{http://www.worldcat.org/search?q=#1}{\texttt{#1}}} % isbn command
%% Colors
@gramian
gramian / neotemp
Created March 28, 2017 18:35
Read CPU temperature of Nanopi Neo
#!/bin/sh
echo $((`cat /sys/class/thermal/thermal_zone0/temp` / 1000))
@gramian
gramian / cropper
Created November 15, 2017 08:22
Convert all files in a directory from eps to pdf and crop the pdf to minimum area.
#!/bin/sh
for i in *.eps; do
epspdf ${i}
done
for i in *.pdf; do
pdfcrop ${i} ${i}
done
@gramian
gramian / build_oct.sh
Last active January 5, 2023 14:37
Build Octave and numerical dependencies from source in Ubuntu 20.04
#!/bin/bash
# project: build_oct
# version: 1.12 (2023-01-01)
# authors: C. Himpe (0000-0003-2194-6754), M. Koehler (0000-0003-2338-9904)
# license: BSD-2-Clause License (opensource.org/licenses/BSD-2-Clause)
# summary: Build Octave and numerical dependencies from source (in Ubuntu 20.04 with GCC >= 10.3).
# requires hardware: either X86-64 with AVX2 or ARM64 with NEON.
# requires software packages: octave libpcre2-dev libreadline-dev libgmp3-dev libmpfr-dev libfreetype6-dev libgl2ps-dev libfontconfig1-dev libglu1-mesa-dev
@gramian
gramian / flamegraph.m
Last active July 28, 2021 18:01
Flame graph visualization for Octave's profiler output.
function flamegraph(profdata)
### project: flamegraph
### authors: Christian Himpe (0000-0003-2194-6754)
### version: 0.3 (2021-02-06)
### license: BSD-2-Clause (opensource.org/licenses/BSD-2-Clause)
### summary: Flame graph visualization for Octave's profiler output.
#
# USAGE:
#
# profile on;