Computational Circle Packing: Geometry And Discrete Analytic Function Theory