add hypergeo function