OT sine recursion (was: Re: Parsing infinite streams style)

Carsten Schultz <>
Tue Mar 9 12:37:20 CET 2004


Hi Joe,

<smart-alec>

On Tue, Mar 09, 2004 at 11:16:27AM +0100, Joe Armstrong wrote:
> I learnt this in school, but it was called something different.
> 
> I learnt this:
> 
> 	sin(2A) = 2sin(A)cos(A)
> 	cos(2A) = 1 - 2sin^(X)

cos(2A) = 1 - 2sin^2(A)

>         sin(0) = 0
> 	cos(0) = 1
> 
> So to compute sin(X) we have to compute sin(X/2) and cos(X/2)
> and to compute cos(X) we have to compute sin(X/2)
> 
> this is the recursive case where the argument gets smaller.
> 
>   The base  case is sin(0) =  0 or cos(0)  = 1 (actually it's  a small
> angle not zero) 

Ah, but then you will have to control the error.  Actually, this will
not work, because the above equations are also satisfied by 

   sin(x) = 0, cos(x) = 1, for all x.

To get a (numerically) working recursion you will have to replace
`sin(x)=0 for small x' by `sin x \approx x' for small x.  I have not
checked the numerics of this one, though.

</smart-alec>

Grreetings,

Carsten

To all readers of Irvine Welsh:  ``Smart-alec is a posh word for a
...''  Stopping here to avoid spam filters :-)

-- 
Carsten Schultz (2:38, 33:47), FB Mathematik, FU Berlin
http://carsten.codimi.de/
PGP/GPG key on the pgp.net key servers, 
fingerprint on my home page.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20040309/b0f34682/attachment.bin>


More information about the erlang-questions mailing list