implement the Dedekind eta function