This is an implementation of non-linear page rank. Page rank can be defined by the equation AX = X where A is an adjacency matrix, and X is the vector of the page ranks. This equation can be altered to be non-linear with a non-linear function f: f(Af(AX)) = X. This is a two layer recurrentauto encoder which can be solved for X using gradient descent. It is recurrent because the A weights are reused in the second layer. The implementation of this algorithm tends to produce results similar to page rank. A complex number version is also provided and tends to produce results less like page rank.