I am computing a lot of cos(x)'s in my program. Is it more efficient in Fortran to stick with cos(x) or to calculate sqrt(1-sin(x)**2)? Will I be sacrificing any accuracy if the sqrt method is more efficient? And, I guess, the most important question if sqrt is more efficient. Can I expect that the compiler is recognizing this anyways and changing it for me?
Performance of Cos vs. Sqrt(1 - Sin() ** 2)
1.4k Views Asked by Higgy At
1
There are 1 best solutions below
Related Questions in PERFORMANCE
- Slow performance on ipad erasing image
- Can Apache Ant be told to cache its XML files?
- What are the pros and cons of the picture element?
- DB candidate as CouchDB/Schema replacement
- python member str performance too slow
- Split a large query (2 days) into pieces to increase the speed in Postgres
- Use GUI displayed results of SQL query vs new queries?
- fastest way to map a large number of longs
- Bash regular expression execution hangs on long expressions
- Why is calling a function so slow in Javascript?
- Performance of element-compare in java collections
- "Capture GPU Frame" in XCode -- iOS only?
- Efficiency penalty of initializing a struct/class within a loop
- Change the rotating speed of the circle when the mouse moves using javascript
- Replace foreach to make loop into queryable
Related Questions in OPTIMIZATION
- Does compiler optimize operation on const variable and literal const number?
- Optimizing for Social Leaderboards
- 3D FFT with data larger than cache
- Optimum directory structure for large number of files to display on a page
- How to make faster queries on my mysql table?
- Xib taking long time (>1s) to load. UIFont cache seems to blame
- How to speed up string comparisons in an array with a for loop?
- How to load all symbols from shared library on start up?
- Cython speed vs numpy
- Improve Speed of Piecewise Function in MATLAB
- How to check that all values are equal in array using recursion?
- PHP split string into known tokens and remaining words add to single-worded array
- Python: why is my O(n) slowing down as it progresses?
- Hint indexes to mysql on Join
- Error When Compiler Optimizations are on
Related Questions in FORTRAN
- Looping over defined array elements in Fortran
- Is it safe to list optional fortran function argument in OpenMP shared clause?
- Equivalent to asm volatile in Gfortran?
- gfortran does not find symbol fabsq_ in libquadmath
- Assigning values of an array in a loop
- Data exchange - Python and Fortran
- ieee_arithmetic intrinsic module in gfortran
- How to initialize two distinct blacs contexts?
- Fortran Debugging
- need to get f2py working, but don't know any fortran
- Combine Fortran .for and .f90 include header files
- How to parallelize csh script with nested loop
- VS2013 integration with Intel Fortran Compiler
- Windows 8.1 Pro MinGW Gfortran Command Prompt 'not recognized command' error
- How does automatic typecasting (type conversion) work in Fortran?
Related Questions in SQRT
- testing for an integer square root in R
- Weird way of calculating square root
- Performance of Cos vs. Sqrt(1 - Sin() ** 2)
- Why is math.sqrt() incorrect for large numbers?
- Sqrt function not working
- Why isn't 2 equal to √2 * √2?
- Why is multiplied many times faster than taking the square root?
- Perl - Square Root results
- Haskell sqrt - converting a list of Integer to Float
- Calculate a square root of a number in XSL
- Implement double sqrt(double x) in C++
- sqrt() returning INF
- php sqrt function that returns an integer?
- Generating digits of square root of 2
- How to compute the square root of negative numbers?
Related Questions in TRIGONOMETRY
- How to translate an object to a location slowly (so that it can be seen)
- Which is the answer for Sin(2πx0,6248)
- finding the angle of a triangle using tan
- Calculate Camera tilt angle
- javascript trig functions in degrees (slightly wrong answers)
- Rendering concentric hexes on Canvas
- Wrong cosine values in Python
- How to find third point coordinates given variables
- Libgdx Trigonometry Wrong Angle
- How to produce coordinates to cover a sphere with a single line?
- Sync two FPGAs to generate same Sine Wave
- Export buffer to WAV in C++
- Best way to draw a path traveled
- Trying to fit a sine function to phased light curve
- Polar curve equation with plus-minus sign (±) in Javascript
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The first thing you should note is that you'll have to be careful to pick the correct root for
sqrt(1 - sin(x)**2), otherwise you run the risk of evaluating|cos(x)|, which is not the same. That itself adds complexity.Use
cos(x)as you should avoid such perceived micro-optimisations: you'll do well to beat any optimisation approach adopted by a modern FORTRAN compiler.Even when I was using FORTRAN, the clever FORTRAN compilers would use the trig functions available on a chipset.
sqrtis still on the whole implemented with a Newton-Raphson type algorithm and its evaluation will take a handful of clock cycles.My hunch is that the latest compilers would reverse out your identity for you and substitute
cos(x): check the output assembly.But if you are in any doubt, profile it.