Projectile Launching

Given a projectile at position '(x0, y0)' and a launch angle 'a', at which speed must I launch the projectile to make it pass through a point '(x, y)', assuming that the only force that acts upon it is gravity (which causes acceleration 'g')?

I came up with the following:

vx0 = s * cos(a)
vy0 = s * sin(a)

x = x0 + vx0 * t
y = y0 + vy0 * t + g/2 * t^2

x = x0 + s * cos(a) * t
y = y0 + s * sin(a) * t + g/2 * t^2

s = -((x0 - x) * sec(a)) / t

y = y0 -((x0 - x) * sec(a)) / t * sin(a) * t + g/2 * t^2

y = y0 - (x0 - x) * tan(a) + g/2 * t^2

t = +- (sqrt(2) * sqrt(y - y0 - x * tan(a) + x0 * tan(a)) / sqrt(g)

But there's no point in going any further because of 'sqrt(g)', which is a square root of a negative value.
I tried doing it the other way around, but that also yields a complex solution.

That's what I was talking about when I said "I tried solving it the other way around".
Test it for origin point '(0, 0)', destination point '(100, 10)', angle '0.4' and gravitational acceleration of '-9.8'.
You get '-32.2793'.

[EDIT]

If I use a negative angle, the solution is positive!
All this time I was chosing angles which were pointing in the opposite direction, so the projectile coudln't reach the destination point, making the equation unsolvable.

Notice how I make g a positive constant, and subtract. This will avoid the confusion you had over taking the square root of a negative number... you were taking the square root of a fraction, then broke it up into top and bottom, when both of them were really negative (so you could have cancelled the - signs, and been much happier).

In fact, you'll notice how it's conveniently set up to make sense only when dX*tan(a) - dY > 0, because you can't get to every point from any point at any angle (try getting to (10, 100) from the origin with an angle of .1 radians, it doesn't work).