Sponsored Content
Top Forums Shell Programming and Scripting Calculate the constant e to 14+ decimal places using integer maths. Post 303039716 by wisecracker on Sunday 13th of October 2019 10:40:33 AM
Old 10-13-2019
Calculate the constant e to 14+ decimal places using integer maths.

Hi guys...

I am loving this integer maths thing.
64 bit systems are certainly easier than 32 bit, but hey, I don't intend to leave out my fav' platform.
Using one of the 'Brothers' methods, URL inside the code.
Code:
#!/bin/sh
#
# #!/usr/local/bin/dash
# e_constant.sh
# Brother's formula [2].
# http://www.brotherstechnology.com/math/e-formulas.html
# e=2.718281828459045 from Python 3.8.0.
# Google's value, e=2.71828182846.
#
# For *NIX 64 bit or greater systems, 32 bit systems commented out.
# (Also tested on AMIGA OS_3.1 using ADE the UNIX emulator and ksh88.)

echo ""
echo "Calculate e to 14+ decimal places, 64 bit, (7+ decimal places, 32 bit),"
echo "integer maths inside 'dash' or 'sh'."
echo ""

initial_e=0

# 32 bit version for AMIGA ADE.
# e=200000000

# Default 64 bit version.
e=2000000000000000
k=0
factorial=1
diff=$(( e - initial_e ))
while [ ${diff} -gt 1 ]
do
    initial_e=${e}
    k=$(( k + 1 ))
    factorial=$(( factorial * 2 * k * (2 * k + 1) ))

    # 32 bit version.
    # e=$(( e + (((2 * k + 2) * 100000000) / factorial) ))

    # Default 64 bit version.
    e=$(( e + (((2 * k + 2) * 1000000000000000) / factorial) ))
    diff=$(( e - initial_e ))
done

# 32 bit version.
# printf "%.8f\n" $(( e ))e-8

# Default 64 bit version.
result=$( printf "%.15f\n" $(( e ))e-15 )
# Result: 2.718281828459041
echo "${result}"

echo ""
echo "Python 3.8.0 value, e = 2.718281828459045."
echo "Number of iterations = ${k}."
echo ""

Result in 64 bit mode, my usual platform.
Code:
Last login: Sun Oct 13 15:21:17 on ttys000
AMIGA:amiga~> cd Desktop/Code/Shell
AMIGA:amiga~/Desktop/Code/Shell> ./e_constant.sh

Calculate e to 14+ decimal places, 64 bit, (7+ decimal places, 32 bit),
integer maths inside 'dash' or 'sh'.

2.718281828459041

Python 3.8.0 value, e = 2.718281828459045.
Number of iterations = 9.

AMIGA:amiga~/Desktop/Code/Shell> _

These 2 Users Gave Thanks to wisecracker For This Post:
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

trimm up the decimal places in output

I have a perl script that reports the avg time of a application call and the total number of calls. This works fine, however I would like to trim the number of decimal places reported from 12 to like 3 and I don't know how. Any suggestions? Here is what I use to get the avg time... for $eRef (... (2 Replies)
Discussion started by: theninja
2 Replies

2. Shell Programming and Scripting

Four decimal places with awk

i have a script in which awk prints "($2-1700)/10000" and the answer is -0.07,but i want the answer in 4 decimal places. that is -0.0700. How can i sue awk to get my results in four decimal places (4 Replies)
Discussion started by: tomjones
4 Replies

3. Shell Programming and Scripting

Decimal places

i need to multiplay a number with 1.00.. so that the output should contain two decimal places at end.. for example... 236 * 1.00 = 236.00 245.8 * 1.00 = 245.80 but when i perform multiplication it shows output as. 236 245.8 can anyone help me to get the actual output of... (11 Replies)
Discussion started by: arunmanas
11 Replies

4. Shell Programming and Scripting

Using IF statements with maths where the input is not an integer

Hi All I've made a few scripts which using GDAL extract the value of a pixel within a given raster. The purpose is to work out the combine value of every pixel. I thought there may have been an easier way to do this but alas! The code below extracts the pixel value at position X Y. The... (3 Replies)
Discussion started by: StudentFitz
3 Replies

5. Shell Programming and Scripting

Arithmetic but keep 2 decimal places

I am trying to perform arithmetric, for example, to increment the value of variable $a (say 3) by 0.05 but when I tried the following expression let a=a+0.05 or a=$((a+0.05)) both returned 3.0499999999999998 I want to keep 2 decimal places so it returns 3.05 instead. (6 Replies)
Discussion started by: piynik
6 Replies

6. Shell Programming and Scripting

Bash Rounding to 2 decimal places

I have a number in a bash variable n, and want to round it to 2 decimal places. How can I do that? n=0.0867268 Need to have num=0.09 (1 Reply)
Discussion started by: kristinu
1 Replies

7. Shell Programming and Scripting

How to round up value upto 2 decimal places using sed?

Please help me in rounding up value upto 2 decimal palces using sed command #!/usr/bin/bash a=15.42 b=13.33 c=`echo $a*$b |bc -l` echo $c above code is is giving output "205.5486" but i want the output as "205.55" Thank you... (15 Replies)
Discussion started by: ranabhavish
15 Replies

8. Shell Programming and Scripting

Printing with decimal places from last 4 digits

I have input file like below, 201424|9999|OSS|622010|RGT|00378228764 201424|8888|OM|587079|RGT|00284329675 201424|7777|OM|587076|RGT|00128671024 201424|6666|OM|581528|RGT|00113552084 Output should be like below, should add decimal (.) from last 4 digits. ... (2 Replies)
Discussion started by: vinothsekark
2 Replies

9. Shell Programming and Scripting

Sum the fields with 6 decimal places - getting only 2 decimal places as output

I used the below script to Sum up a field in a file based on some unique values. But the problem is when it is summing up the units, it is truncating to 2 decimals and not 6 decimals as in the input file (Input file has the units with up to 6 Decimals – Sample data below, when the units in the 2... (4 Replies)
Discussion started by: brlsubbu
4 Replies
FIRST(1)						      General Commands Manual							  FIRST(1)

NAME
first - Yagi-Uda project quick antenna builder SYNOPSIS
first filename elements f_min f_design f_max f_step diameter DESCRIPTION
The program first is one of a number of executable programs that forms part of a set of programs, collectively known as the Yagi-Uda project , which were designed for analysis and optimisation of Yagi-Uda antennas. first is used to define an antenna quickly, if you are not interested in analysing a specific design (in which case use input ) but need to get a design that is half-way reasonable so that it may be optimised. It is much faster in use (since its not interactive) than input The design methodology that first is the DL6WU antenna designs, which are valid for 10 or more elements, although first will calculate for any number of elements. DL6WU reccomends a folded dipole, but the designs here are for a simple dipole, since I don't yet know how to calculate the self and mutual impedances of folded dipoles. LIMITATIONS
Filenames, including full path, can't exceed 90 characters. Does not take into account the variation of impedance of a dipole with change in wavelength/diameter of elements. FILES
filename Yagi description, created by first. filename.out Binary data file, created by yagi. filename.dat Performance of antenna, created by output. filename.gai Gain of antenna, created by output. The DOS .EXE files as distributed require a 387 maths coprocessor to be present and will not run without it. A 486, Pentium, and I assume later processors of this series will run it without any extra hardware. PLATFORMS
Both DOS and and Unix versions have been built. The DOS version as distributed requires a 386 PC with a 387 maths coprocessor. The DOS ver- sion is no longer being developed, so the DOS executables included with the distribution are not upto date with the current source code. AUTHORS
Dr. David Kirkby G8WRB (david.kirkby@onetel.net). with help with the conversion to the DOS/PC enviroment from Dr. Joe Mack NA3T (mack@fcrfv2.ncifcrf.gov) SEE ALSO
input(1), output(1), yagi(1), optimise(1). BUGS
Bugs should be reported to: David Kirkby G8WRB (david.kirkby@onetel.net). Bugs tend actually to be fixed if they can be isolated, so it is in your interest to report them in such a way that they can be easily reproduced. If the input file is edited manually and done incorrectly, there can be unpredictable results. Options are not checked for sensible numbers. A negative length can be entered! Version 1.10 Fri Dec 2 1994 FIRST(1)
All times are GMT -4. The time now is 05:20 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy