I am making an orthographic projection for a fullscreen quad for post processing.
On the desktop I do the usual projection matrix using my favourite math library, but on the ipad only the top function would work. I still cant quite understand why, I obtained the iPad value through trial and error. Those values are left, right, bottom, top.
If all else is equal, this is equal too. In other words, you have just swept a bug under the carpet by using a hack to get the desired result. There is something else wrong somewhere else in your code. An incorrect viewport, transform matrix, or vertex positions, for example. My engine runs on Windows, Macintosh OS X, and iOS devices using OpenGL or OpenGL ES 2, and in these cases there is no difference in the results if all of the same matrices, shaders, viewports, etc. are used.
It is also possible that the library you are using changes for each platform.
If you can verify this is not the case, then you should start looking elsewhere for differences between the environments.
Although if this is just for post-processing, it would be more efficient to simply make a quad with vertices at [-1, -1], [1, -1], [-1, 1], and [1, 1] and perform no matrix transform on them. Not only is it faster (avoids matrix multiply, which does nothing but put the vertices into those positions anyway), it also guarantees the same result on all platforms.