Logging huge numbers fails

Issue #289 closed
dandart created an issue

Originally reported on Google Code with ID 289

What steps will reproduce the problem?
1. ln(70!)

What is the expected output? What do you see instead?
A big (ish) number. I saw 0.

What version of the product are you using? On what operating system?
0.10.0 on Ubuntu 8.10

Please provide any additional information below.
Well that's it, it didn't do the calculation properly.

Reported by dandart on 2009-05-11 20:45:11

Comments (10)

  1. Former user Account Deleted

    ``` "Googling" the result gives: "ln(70 !) = 230.439044". A quick test showed that SpeedCrunch's limit is "ln(57!) = 176,39584840699735171524".

    @Wolf: would you expect this behavior? This sounds similar to issue 98. ```

    Reported by `helder.pereira.correia` on 2009-05-11 23:09:49 - Status changed: `Accepted`

  2. Former user Account Deleted

    ``` No, issue 98 was a problem of the limitations of the old engine. This has gone with v0.8. This looks more like a problem in the argument reduction of the ln function itself, that fails for huge numbers. I'll see to this in a few hours. BTW, what strikes me as weird is that this has not been reported earlier. ```

    Reported by `wolf.lammen` on 2009-05-12 08:10:01

  3. Former user Account Deleted

    ``` The instruction responsible for the fault is found in hmath.cpp, line 1117 in function HNumber HMath::ln( const HNumber&) where the procedure call

    call1ArgPoleCheck(result.d, x.d, float_ln);

    should be replaced by

    call1Arg(result.d, x.d, float_ln);

    I currently have no Git access to the repository, so, maybe, somebody else could make this change.

    Thx

    ```

    Reported by `wolf.lammen` on 2009-05-12 12:29:50

  4. Former user Account Deleted

    ``` I'll do it, thank you! ```

    Reported by `helder.pereira.correia` on 2009-05-12 12:52:09 - Status changed: `Started` - Labels added: Type-Defect, Priority-High, Milestone-0.11, OpSys-All

  5. zanetu NA

    ``` Same problem. This bug doesn't seem to have been fixed. ln(x) doesn't work for x > 10^78. For x > 10^82, it just returns 0.

    SpeedCrunsh v0.10.1 OS: Kubuntu 9.04 (jaunty) 32bit

    ```

    Reported by `zanetu` on 2010-01-14 19:00:05

  6. dandart reporter

    ``` Confirmed: This problem still occurs - but I don't know if the commit was compiled into this version. ```

    Reported by `dandart` on 2010-01-14 19:05:02

  7. Former user Account Deleted

    ``` @zanetu & @dandart : the fix is for 0.11, so you'll find it in the 0.11-alpha release. ```

    Reported by `helder.pereira.correia` on 2010-01-27 21:26:29

  8. Log in to comment