An idea on-- Round[Log[2]/Log[4]]

• To: mathgroup at smc.vnet.net
• Subject: [mg14022] An idea on-- Round[Log[2]/Log[4]]
• From: "Ersek, Ted R" <ErsekTR at navair.navy.mil>
• Date: Wed, 16 Sep 1998 14:12:02 -0400
• Sender: owner-wri-mathgroup at wolfram.com

```Improving on my earlier solution we can give Round an option! With the
lines below I give it the option UseFullSimplify->True.

In[1]:=
\$DoThis=True;
Unprotect[Round];

Round[expr_,opts___]/;\$DoThis:=Block[{\$DoThis},
If[
(UseFullSimplify/.{opts}/.Options[Round])=!=True,
Round[expr],
Block[{\$Messages},
Check[
Round[expr],
Round[FullSimplify[expr]],
\$MaxExtraPrecision::meprec
]
]
]
];

Options[Round]={UseFullSimplify->True}; Protect[Round];

UseFullSimplify::usage="UseFullSimplify is an option for select
functions that determines whether FullSimplify should be used on the
arguments when numerical evaluation has trouble determining the
result.";

Now we get the desired answer for
Round[Log[2]/Log[4]]
As with my previous solution, FullSimplify is only used when needed.

In[3]:=
Round[Log[2]/Log[4]]

Out[3]=
0

If you don't want Round to use FullSimplify you can specify that with
the option (see In[4]).  You can also change the default setting of the
option using;
SetOptions[Round, UseFullSimplify->False]

In[4]:=
Round[Log[2]/Log[4], UseFullSimplify->False]

\$MaxEtraPrecision::meprec:
In increasing internal precision while attempting to evaluate
Round[Log[2]/Log[4]], the limit \$MaxExtraPrecision=49.99  was reached.
Increasing the value of \$MaxExtraPrecision may help resolve the
uncertainty.

Out[4]=
Round[Log[2]/Log[4]]

As far as I can tell this will work as if this new option was a built-in
feature.  Well I suspect Wolfram Research could make it work more
efficiently if they made it a built-in feature.

I don't include the code here, but similar enhancements can be made for
Floor, Ceiling, Equal, and Unequal.

Cheers,
Ted Ersek

```

• Prev by Date: An idea on-- Round[Log[2]/Log[4]]
• Next by Date: Rotate Tick Labels
• Previous by thread: An idea on-- Round[Log[2]/Log[4]]
• Next by thread: Rotate Tick Labels