Just another Perl shrine PerlMonks

### Re^3: Exponential Function Programming

by pajout (Curate)
 on Nov 23, 2007 at 18:21 UTC ( #652634=note: print w/replies, xml ) Need Help??

in reply to Re^2: Exponential Function Programming

Of course, underflow behaves friendly in this case. But my prime goal was to demonstrate no necessity for evaluating both factorial and power in each loop.

Replies are listed 'Best First'.
Re^4: Exponential Function Programming
by ikegami (Patriarch) on Nov 23, 2007 at 18:44 UTC

But such a demonstrations wasn't necessary for me since I had finished writing the following from scratch before you posted your solution. (I didn't post it since I didn't want to do the OP's homework for him.)

```sub ikegami_exp {
my (\$x) = @_;
my \$last   = 0;
my \$result = 1;
my \$acc    = 1;
for (my \$n = 1; abs(\$result-\$last)>0; \$n++) {
\$last = \$result;
\$acc *= \$x/\$n;
\$result += \$acc;
}
return \$result;
}

for (1, 0.1, 10, 3.14, 0.1234, 100) {
printf("%.16e: exp() = %.16e  ikegami_exp() = %.16e\n",
\$_,
exp(\$_),
ikegami_exp(\$_),
);
}

The only difference was the terminating condition, so naturally, that's what interested me :) Mine goes into an infinite loop if you try to find ikegami_exp(1000), but that's easily fixed by replacing abs(\$result-\$last)>0 with \$result != \$last.

Yep :>)
I have decided to post it because my experience is that such tiny codes could initiate interest. Additionally, if somebody will present it as homework, there is a big risk that question "How it works" will appear...

Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://652634]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2022-01-23 13:26 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
In 2022, my preferred method to securely store passwords is:

Results (63 votes). Check out past polls.

Notices?