Sunday, November 03, 2024

Re: bc cannot calculate very big number

On Sun, Nov 03, 2024 at 08:13:20AM +0100, Otto Moerbeek wrote:

> On Sun, Nov 03, 2024 at 09:38:47AM +0700, hahahahacker2009 wrote:
>
> > Hello,
> > OpenBSD bc(1) is unable to calculate very big number,
> > for example, (1024*1024)^(1024*1024) run for an hour and still cannot
> > give me the result.
> > It just use about 11M of memory and 100% CPU.
> > Gavin Howard's bc port do it in 2 minutes
> > GNU bc on Linux do it in 5 minutes.
> >
> > I'm sending this email from a phone, apologize for poor formatting and
> > no full dmesg.
> > cpu0: Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz, 3192.89 MHz
> > Dell Inc. OptiPlex 9020
> > spdmem0 at iic0 addr 0x50: 2GB DDR3 SDRAM PC3-12800
> > spdmem1 at iic0 addr 0x51: 2GB DDR3 SDRAM PC3-12800
> > spdmem2 at iic0 addr 0x52: 2GB DDR3 SDRAM PC3-12800
> > spdmem3 at iic0 addr 0x53: 2GB DDR3 SDRAM PC3-12800
>
> bc uses dc which does a simple exponentation computation, which is
> basically doing repeated multiplications. I'm sure there are smarter
> methods, it's not just implemented that way.

Oh, I looked and I did it a bit smarter when I wrote that code 20
years back, but still, I think it can be improved.

-Otto

No comments:

Post a Comment