In this talk, we describe an algorithm for approximating functions of the form $f(x) = \langle \sigma(\mu),x^\mu \rangle$ over the interval $[0,1]$, where $\sigma(\mu)$ is some distribution supported on $[a,b]$, with $0<a<b<\infty$. Given a desired accuracy and the values of $a$ and $b$, our method determines a priori a collection of non-integer powers, so that functions of this form are approximated by expansions in these powers, and a set of collocation points, such that the expansion coefficients can be found by collocating a given function at these points. Our method has a small uniform approximation error which is proportional to the desired accuracy multiplied by some small constants, and the number of singular powers and collocation points grows logarithmically with the desired accuracy. This method has applications to the solution of partial differential equations on domains with corners.