Unfortunately, that's not possible- the GPU isn't just another CPU sitting around, waiting to be used as a calculator- it only accepts certain kinds of information, and outputs that information on the screen. Doing the calculations required to make this work is strictly CPU-side stuff.What about that script by trepan where all the particles are calculated by the GPU. Using a similar approach you could lighten the load on the CPU or maybe even split it to maximize efficiency.
And when I say it's "slow", that's a relative term. "Slow" means that if it's running along with the thousands of other things that need to be calculated per-frame, every frame, it'd be a significant load.
You can do anything you want, if you're willing for it to take forever. However, in video game programming, we want things to take as little time as possible, because otherwise performance suffers- you don't have forever, you have 1/32nd of a second.
In programming stuff with Lua, you want to slow stuff down as much as possible, because a lot of the more expensive, brute-force searches require dipping into array values, or worse yet, arrays that are within arrays, which gets pretty expensive, even if you've already given the arrays to the program as a local variable (to shorten seek times). And a lot of the stuff that involves large-scale manipulation of the game world has to involve these kinds of searches.
There aren't any nice ways out of that. All we can do is to make it as efficient as possible.