diff --git a/src/inverse-stereographic-projection.py b/src/inverse-stereographic-projection.py
new file mode 100644
index 0000000000000000000000000000000000000000..1cb2b25f74225bb9fa50a58d25dff2f1466d4218
--- /dev/null
+++ b/src/inverse-stereographic-projection.py
@@ -0,0 +1,14 @@
+# The inverse stereographic projection through the north pole, and its derivative
+def f(x):
+    normSquared = x[0]*x[0]+x[1]*x[1]
+    return [2*x[0] / (normSquared+1), 2*x[1] / (normSquared+1), (normSquared-1)/ (normSquared+1)]
+
+def df(x):
+    normSquared = x[0]*x[0]+x[1]*x[1]
+    denominator = (1+normSquared)*(1+normSquared)
+
+    return (( (2*(1+normSquared) - 4*x[0]*x[0]) / denominator, (-4*x[0]*x[1]) / denominator),
+            ( (-4*x[1]*x[0]) / denominator, (2*(1+normSquared) - 4*x[1]*x[1]) / denominator),
+            (4*x[0]/denominator,4*x[1]/denominator))
+
+fdf = (f, df)