Maths/C Question

Discussion in 'HTML, Graphics & Programming' started by NotAGolf, 16 Sep 2009.

1. NotAGolf

Location: Moving...

Could someone help me out with the following equation please. I'm trying to calculate the following equation in C:

Code:
```                             1
C =   ---------------------------------------------------
sqrt( cos^2(latitude) + (1-f)^2 * sin^2(latitude) )```

First off, is there a function in C to do cos or sin^2(x)? I coulnd't find one, just the ordinary sin/cos functions.

Because I couldn't find out how to do that, I used the following trig identities which I found:

Code:
```cos^2(x) = 1/2 + 1/2 cos(2x)
and
sin^2(x) = 1/2 - 1/2 cos(2x)```
Are these correct?

Thanks for any help!

Last edited: 16 Sep 2009
2. NotAGolf

Location: Moving...

Sorry I'm being a massive spanner. The function works fine now. I just can't tell the difference between longitude and latitude .

The first question still stands though, is there a function for sin/cos^2(x)?

Cheers.

3. azteched

Posts: 423

cos^2(x) means (cos(x))^2 ...

double c = cos(x)
double cc = c*c /*cc = cos^2(x)*/

4. BullBoyShoes

Posts: 346

it depends on what platform your running the code on. Most efficient way would be a look up table of precalculated values

5. Inquisitor

Location: Birmingham

They're correct, but as azteched said, you may as well just calculate the cosine once and then multiply it by itself. It's far cheaper in terms of processing time (not that something so trivial should make any real difference anyway).

Or just use the cos function?

6. Makhaira

Location: Lancashire, UK

sin/cos = tan. So you can simplify that down to just tan/cos.

7. BullBoyShoes

Posts: 346

thats why I said its dependant on the platform its running on. You wont find any trig libraries on an 8-bit micro