Add public facing API

Please review. I will work on a PR for tests and docs next so we can get this rolling :8ball: 
we should properly indicate in the method name what is a double and what is 2xint.