# Symbolic pkg vpa trig speed Classic List Threaded 4 messages Open this post in threaded view
|

## Symbolic pkg vpa trig speed

 In a bug report Dan asked: > Just curious, from what you know about the arbitrary precision > library, is it slow to compute trig functions out to sixteen digits > compared to the floating point library? Its currently a bit hard to tell, especially as Symbolic's handling of large arrays of doubles is non-optimal (pending pytave GSoC work!) but probably hundreds of times slower. x = rand(10, 10); % make vpa objects from x in 16, 32, 48 (of course these will not magically have extra precision, its just for timing) xv16 = vpa(x, 16); xv32 = vpa(x, 32); xv48 = vpa(x, 48); tic; sin(x); toc Elapsed time is 0.000461817 seconds. tic; sin(xv16); toc Elapsed time is 0.156639 seconds. tic; sin(xv32); toc Elapsed time is 0.118703 seconds. tic; sin(xv48); toc Elapsed time is 0.175145 seconds. The xv16 = bit seems take longer than I expect..., I filed https://github.com/cbm755/octsympy/issues/499) best, Colin
Open this post in threaded view
|

## Re: Symbolic pkg vpa trig speed

 Colin Macdonald-2 wrote x = rand(10, 10); % make vpa objects from x in 16, 32, 48 (of course these will not magically have extra precision, its just for timing) xv16 = vpa(x, 16); xv32 = vpa(x, 32); xv48 = vpa(x, 48); tic; sin(x); toc Elapsed time is 0.000461817 seconds. tic; sin(xv16); toc Elapsed time is 0.156639 seconds. tic; sin(xv32); toc Elapsed time is 0.118703 seconds. tic; sin(xv48); toc Elapsed time is 0.175145 seconds. The xv16 = bit seems take longer than I expect... If the xv16 case was the first time sin was called for a symbolic variable, the time may include loading some code into memory, or other initialization.  What happens if you do them in the reverse order? Cheers, Lachlan