GSL implementation