Solved

Using bc to perform calculation of LARGE Numbers

Posted on 2002-06-30
12
288 Views
Last Modified: 2013-12-06
I was told that: "each UNIX comes with a small program called bc (precision calculator), depending on the (math)libs installed on the system, bc can do the calculation of 4^(10^9)"

Could you please tell me what math libs are needed?
How do I refer to them?
And in general what is the exact command that I need to use to perform that calculation?


Thanks!
0
Comment
Question by:ody13
  • 5
  • 4
  • 3
12 Comments
 
LVL 51

Expert Comment

by:ahoffmann
Comment Utility
echo "4^(10^9)" | bc

but I sugest to try following first:
echo "2^(10^6)" | bc

be prepared for a huge output, but you already know this ;-)

If bc is compiled with a libm which is not sufficient for huge numbers, you get an error message.
0
 
LVL 51

Expert Comment

by:ahoffmann
Comment Utility
another suggestion:
perl -MMath::BigInt=:constant -le 'print (4**(10**9))'
0
 

Author Comment

by:ody13
Comment Utility
I am getting errors with both suggestions.

Anything else I can do?

Thanks
0
 
LVL 51

Expert Comment

by:ahoffmann
Comment Utility
2^(10^)  produces errors too?, then you have insufficient libs and/or programs.
To track down this, please post results of:
  uname -a
  echo 1 | bc -v
  # errors produced by suggested commands
0
 
LVL 7

Expert Comment

by:waynezhu
Comment Utility
Even for 2^10^6, it may take long time to calculate.

While ago, I was asking my students to calculate
2^10^5 using bc. The trick is to avoid
large exponent.
Below shows an example.
The output is piped to wc, so that you can see how
many lines and digits:

echo "(2^1000)^100" |  bc | wc
443     443   30988

Good luck.


0
 

Author Comment

by:ody13
Comment Utility
ahoffmann,

I am not sure what you mean. 2^10 gives the correct result.

I typed:
uname -a   THEN PRESSED ENTER AND THEN TYPED
echo 1 | bc -v   THEN PRESSED ENTER AND I DID NOT GET ANY ERRORS

Up until 2^9999 I get a result, but after that I get the following error:
2^10000
exp too big
empty stack
save:args

Any thoughts of what is going on?

0
6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

 

Author Comment

by:ody13
Comment Utility
Hey waynezhu,

thanks for your insight. However, I am not familiar with wc, what is that and where and how can I see the result?

ODY
0
 
LVL 51

Expert Comment

by:ahoffmann
Comment Utility
wc  - word count
it just count words, lines and characters, that's all.

About bc's "exp too big":
  does uname -a not give you anything?
  ich "echo 1|bc" does not produce a string, please simply call:
      bc

it should print a version number. You can exit bc by using the    quit    command.

Sounds that you need another bc.
0
 

Author Comment

by:ody13
Comment Utility
Ok,

now I understand,  I thought that I had to type these commands while being in bc.

Here is the output:
/prod/users/usm/u58554> uname -a
HP-UX groucho B.11.00 U 9000/800 47704516 unlimited-user license
/prod/users/usm/u58554> echo 1 | bc -v
bc: illegal option -- v
/prod/users/usm/u58554> echo 1|bc
1
/prod/users/usm/u58554>


However, I managed to do 2^(10^6) by writing instead (2^1000)^1000.

Is there anyway that I can have this output get printed on a file?
0
 
LVL 7

Accepted Solution

by:
waynezhu earned 100 total points
Comment Utility
try either

echo "(2^1000)^100" | bc |tee 2to100000.txt

or

echo "(2^1000)^100" | bc > 2to100000.txt
0
 

Author Comment

by:ody13
Comment Utility
Thanks!

BTW, are you familiar with Maple at all?
0
 
LVL 7

Expert Comment

by:waynezhu
Comment Utility
No.
However 5-6 years ago, people (including myself) in my group were using Maple V, Mathlab, and Mathematica along with freeware such as xmgr, gnuplot, etc  
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

When you do backups in the Solaris Operating System, the file system must be inactive. Otherwise, the output may be inconsistent. A file system is inactive when it's unmounted or it's write-locked by the operating system. Although the fssnap utility…
Using libpcap/Jpcap to capture and send packets on Solaris version (10/11) Library used: 1.      Libpcap (http://www.tcpdump.org) Version 1.2 2.      Jpcap(http://netresearch.ics.uci.edu/kfujii/Jpcap/doc/index.html) Version 0.6 Prerequisite: 1.      GCC …
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now