Thread overview | ||||||
---|---|---|---|---|---|---|
|
August 06, 2017 std.math module | ||||
---|---|---|---|---|
| ||||
import std.math; import std.stdio; cos(90*PI/180) = -2.7e-20 instead of zero. I will appreciate any help. thanks in advance. tan(90*PI/180) = -3.689e+19 instead of infinity. What is the best way to use this module |
August 07, 2017 Re: std.math module | ||||
---|---|---|---|---|
| ||||
Posted in reply to greatsam4sure | On Sunday, 6 August 2017 at 23:33:26 UTC, greatsam4sure wrote: > import std.math; > import std.stdio; > > cos(90*PI/180) = -2.7e-20 instead of zero. I will appreciate any help. thanks in advance. > > tan(90*PI/180) = -3.689e+19 instead of infinity. What is the best way to use this module That's just floating point maths for you. You're not putting exactly pi/2 into cos, just a good floating point approximation. What you're getting out isn't exactly 0, either, just a good floating point approximation. (-2.7e-20 is really, really small.) Here's a good talk from DConf 2016: https://www.youtube.com/watch?v=97bxjeP3LzY If you need exact maths, you'll need a symbolic manipulation library (never used one in D, but there was a discussion recently https://forum.dlang.org/thread/ghihookwgzxculshibyc@forum.dlang.org). You don't need this for most practical applications, though. |
August 07, 2017 Re: std.math module | ||||
---|---|---|---|---|
| ||||
Posted in reply to greatsam4sure | On Sunday, 6 August 2017 at 23:33:26 UTC, greatsam4sure wrote:
> import std.math;
> import std.stdio;
>
> cos(90*PI/180) = -2.7e-20 instead of zero. I will appreciate any help. thanks in advance.
>
> tan(90*PI/180) = -3.689e+19 instead of infinity. What is the best way to use this module
in addition to what sarn said, tan(3pi/4) is a pole, not infinity. the mean of the left and right hand limits is 0
|
August 07, 2017 Re: std.math module | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nicholas Wilson | On Monday, 7 August 2017 at 04:47:56 UTC, Nicholas Wilson wrote:
> On Sunday, 6 August 2017 at 23:33:26 UTC, greatsam4sure wrote:
>> import std.math;
>> import std.stdio;
>>
>> cos(90*PI/180) = -2.7e-20 instead of zero. I will appreciate any help. thanks in advance.
>>
>> tan(90*PI/180) = -3.689e+19 instead of infinity. What is the best way to use this module
>
> in addition to what sarn said, tan(3pi/4) is a pole, not infinity. the mean of the left and right hand limits is 0
Thanks for the help. I will appreciate any resources for further reading
|
Copyright © 1999-2021 by the D Language Foundation