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 answers
Related Questions in PERFORMANCE
- Upsert huge amount of data by EFCore.BulkExtensions
- How can I resolve this error and work smoothly in deep learning?
- Efficiently processing many small elements of a collection concurrently in Java
- Theme Preloader for speed optimization in WordPress
- I need help to understand the time wich my simple ''hello world'' is taking to execute
- Non-blocking state update
- Do conditional checks cause bottlenecks in Javascript?
- Performance of sketch drastically decreases outside of the P5 Web Editor
- sample query for review for improvement on big query
- Is there an indexing strategy in Postgres which will operate effectively for JOINs with ORs
- Performance difference between two JavaScript code snippets for comparing arrays of strings
- C++ : Is there an objective universal way to compare the speed of iterative algorithms?
- How to configure api http request with load testing
- the difference in terms of performance two types of update in opensearch
- Sveltekit : really long to send the first page and intense CPU computation
Related Questions in OPTIMIZATION
- Optimize LCP ReactJs
- Efficiently processing many small elements of a collection concurrently in Java
- How to convert the size of the HTML document from 68 Kb to the average of 33 Kb?
- Optimizing Memory-Bound Loop with Indirect Prefetching
- Google or-tools soft constraint issue
- How to find function G(x), and make for every x, G(x) always returns fixed point for another function F(G(x))
- Trying to sort a set of words with the information theory to solve Worlde in Python but my program is way to slow
- Do conditional checks cause bottlenecks in Javascript?
- Hourly and annual optimization problem over matrix
- Sending asynchronous requests without a pre-defined task list
- DBT - Using SELECT * in the staging layer
- Using `static` on a AVX2 counter function increases performance ~10x in MT environment without any change in Compiler optimizations
- Is this a GCC optimiser bug or a feature?
- Performance difference between two JavaScript code snippets for comparing arrays of strings
- Distribute a list of positive numbers into a desired number of sets, aiming to have sums as close as possible between them
Related Questions in FORTRAN
- Writing code for River Section Coordinates in Fortran
- How to get size of array directly from Fortran to R?
- OpenMP multi-threading not working if OpenMPI set to use one or two MPI processor
- Problems with converting old Fortran code
- Why is my code crashing with "Illegal address during kernel execution" when I use subroutines to copy or deallocate members of derived type variables?
- Getting distances of points in 2D space in an array in Fortran using the concept of broadcasting (Python)
- Conflict between lexer rules in ANTLR4 for Fortran grammar
- how to automatically generate a Module from a project in Visual Studio
- I am encountering an f2py dimension error when passing numpy array to fortran
- Why is there an error with gfortran but ifort and pgf90 do not?
- Parallelize nested loop with running sum in Fortran
- Calling c++ from fortran
- Visual Studio Code Not Recognizing findent Installation for Modern Fortran Extension Despite Correct Python Interpreter and PATH Configuration
- Different floating point representations of identical 64 bit double precision numbers
- How to define a Function in Fortran
Related Questions in SQRT
- Intel C++ Compiler (oneAPI) is failing to export DLL functions when sqrt() is called
- Why is it quicker to calculate the reciprocal square root than to compute the square root?
- Check if a number is a perfect square in C
- While loop does not show any output
- Transferring function from Desmos to Excel: Error due to SQRT(-ve) number
- Does sqrt(float) have a standard return type?
- Does ARM frsqrts need to be used with extra fmul instructions for a Newton iteration?
- np.sqrt with integers and where condition returns wrong results
- Because sqrt(x) * sqrt(x) is distinct to x
- RuntimeError: Function 'SqrtBackward0' returned nan values in its 0th output with l1 regularisation
- How to fix internal rounded in Python
- Emmeans on sqrt transform - no variable in reference grid
- Is the result of sqrtf exact when value is actually squared?
- How to substitute a libm.a math function?
- Python squaring a square rooted number gives a different result although it should be the original number
Related Questions in TRIGONOMETRY
- Rotate an object around another object in javascript
- SFML/C++ Why does my method to move the enemy towards the player stop working when the player is moving?
- How to create a pareto distribution prediction function?
- finding the last coordinate of the triangle
- Get third control point quadratic Bezier curve for parabola with given fucus and directrix, Lua
- Pyton curve fit returns completely wrong values for cosine wave
- Generating a smooth sine wave transition from one set of value to another with Javascript
- Scaling a rotated rectangle to the minimum size needed to cover it's container
- Expanding quad to be oriented along control points
- Inverse Kinematics for a 2DOF planar robot
- Rolling effect when looking at corners with custom rotation function
- Plotting points around a circle non-uniformly
- Add multiple curve label's along with circular wheel that can rotate
- Best way to set desired range with inverse trig functions?
- Reverse function to obtain original input values
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?
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)
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.