Skip to content

Instantly share code, notes, and snippets.

@basp1
basp1 / cholupdate_norm.m
Last active August 29, 2015 14:24
rank-one update with normalization
% H = A'*A;
% D = diag(1 ./ sqrt(diag(H)));
% L = chol(D*H*D)';
% cholupd_norm(L, A_new_row, H)
%% http://math.stackexchange.com/a/1345569/61331
function [Lx] = cholupdate_norm(L, x, H)
n = 1 ./ sqrt(diag(H));
D = diag(n);
nx = 1 ./ sqrt(diag(H + x*x'));
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <uv.h>
void alloc_buffer(uv_handle_t *handle, size_t suggested_size, uv_buf_t *buf)
{
buf->base = (char*)malloc(suggested_size);
buf->len = suggested_size;
}
@basp1
basp1 / h.ijs
Last active August 29, 2015 14:21
dummy key-value list in J language
cocurrent 'H'
fst =: [: > 0&{
snd =: [: > 1&{
nop =: ''"_
pos =: 1: i.~ [: ; (([: # ]) = [: +/ (] = [: fst [) :: 0:) each
add =: ;~
unsafe_get =: [: snd ([: > [) {~ pos
get =: (unsafe_get <) :: nop
@basp1
basp1 / refal.pl
Last active July 31, 2016 11:23
simple (in 8 lines) Refal like pattern matching in Prolog
prefix([], [X|Xs], [X|Xs]).
prefix([X|Prefix], [X|List], Rest) :- prefix(Prefix, List, Rest).
refal([X | Pat], [X|Xs]) :- refal(Pat, Xs).
refal([e(X) | Pat], Xs) :- prefix(X, Xs, Rest), refal(Pat, Rest).
refal([e(X)], X).
refal([s(X) | Pat], [X|Xs]) :- refal(Pat, Xs).
refal([], []).
%% usage example
@basp1
basp1 / SuperLU_API.cpp
Last active August 29, 2015 14:21
simple API to SuperLU
#include "slu_ddefs.h"
#include <vector>
struct Interal_SuperLU
{
superlu_options_t options;
SuperLUStat_t stat;
std::vector<int> etree;