'setprecision', 24
    5 views (last 30 days)
  
       Show older comments
    
    Beat Aebischer
 on 21 Jan 2021
  
    
    
    
    
    Commented: Beat Aebischer
 on 26 Jan 2021
            Why are the two results below the same? I would like to simulate single precision with system_dependent('setprecision' , 24).
>> system_dependent('setprecision', 64)
>> 10000*sqrt(exp(pi))-48104
ans =
   0.773809653510398
>> system_dependent('setprecision', 24)
>> 10000*sqrt(exp(pi))-48104
ans =
   0.773809653510398
0 Comments
Accepted Answer
  Walter Roberson
      
      
 on 25 Jan 2021
        system_dependent('setprecision')... I seem to recall that it only ever had effect on windows and only for some of the older releases. You could find more information on Yair's undocumented-matlab site.
More Answers (1)
  Gaurav Garg
    
 on 25 Jan 2021
        Hi, 
On running the same code, and then verifying the variable precision being used, I could see that the variable precision was never changed.
You can verify the variable precision using the digits.
digits
In your case, if you need to change the precision, you can use the below piece of code -
digitsOld = digits(64);
vpa(10000*sqrt(exp(pi))-48104)
digits
digitsOld = digits(24);
vpa(10000*sqrt(exp(pi))-48104)
digits
3 Comments
  Walter Roberson
      
      
 on 25 Jan 2021
				The solution with vpa needs modification to prevent the argument from being evaluated in double precision before it gets to vpa.
Q = @(v) sym(v) ;
digitsOld = digits(64);
vpa(10000*sqrt(exp(Q(pi)))-48104)
digits
digitsOld = digits(24);
vpa(10000*sqrt(exp(Q(pi)))-48104)
It would need further modifications to emulate step by step evaluation at the chosen digits the way that setting system_dependent('precision') would
See Also
Categories
				Find more on Numbers and Precision in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!