MathGroup Archive 1998

[Date Index] [Thread Index] [Author Index]

Search the Archive

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