Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# Using bc to perform calculation of LARGE Numbers

Posted on 2002-06-30
Medium Priority
303 Views
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
Question by:ody13
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 5
• 4
• 3

LVL 51

Expert Comment

ID: 7121232
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

ID: 7121421
another suggestion:
perl -MMath::BigInt=:constant -le 'print (4**(10**9))'
0

Author Comment

ID: 7124937
I am getting errors with both suggestions.

Anything else I can do?

Thanks
0

LVL 51

Expert Comment

ID: 7125453
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

ID: 7128096
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

ID: 7128187
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

Author Comment

ID: 7128196
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

ID: 7128262
wc  - word count
it just count words, lines and characters, that's all.

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

ID: 7128303
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

waynezhu earned 400 total points
ID: 7128503
try either

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

or

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

Author Comment

ID: 7130784
Thanks!

BTW, are you familiar with Maple at all?
0

LVL 7

Expert Comment

ID: 7130830
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

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Hello fellow BSD lovers, I've created a patch process for patching openjdk6 for BSD (FreeBSD specifically), although I tried to keep all BSD versions in mind when creating my patch. Welcome to OpenJDK6 on BSD First let me start with a little ā¦
This tech tip describes how to install the Solaris Operating System from a tape backup that was created using the Solaris flash archive utility. I have used this procedure on the Solaris 8 and 9 OS, and it shoudl also work well on the Solaris 10 relā¦
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us morā¦
In a previous video, we went over how to export a DynamoDB table into Amazon S3.  In this video, we show how to load the export from S3 into a DynamoDB table.
###### Suggested Courses
Course of the Month11 days, 18 hours left to enroll