Oh dear, where to start...
I don't know the target hardware, since I'm writing a library for use in other projects. No way of knowing what they use it for and on what hardware.
What I'm actually doing is to place slices along a path. The z-axis of such a slice is to be matched with the average path at its point. Since the path is saved as a set of vectors from one slice to the next, I can just add the two vectors of the last and the current slice together and normalize the new vector, then I have the z-axis. This normalization is what takes a square root. I'm not actually out for 100 percent accuracy, though some amount of it would be nice, since the library is very likely to be used in computer graphics.
And I'm not talking about a few cycles here. The square root almost doubles the time my algorithm takes (since its also done mutliple times, once for each slice).
And to be honest, I'm not much of a hard-core mathematician, so I would be very pleased to recieve an explanation of this inverse square root thing.
Since you already brough up the Newton-Raphson approach (of which I've heard before, but of which I also know just about as much to know that it takes a guess and refines it iteratively by derivations), then it would be nice to know how you get a square root with such a Newton-Raphson approach. Maybe even this Quake3 approach described in the Wikipedia article.