Computing transcendental functions with error bounds

We hope this content on epidemiology, disease modeling, pandemics and vaccines will help in the rapid fight against this global problem. Click on title above or here to access this collection.

Sign in Help View Cart. Article Tools. Add to my favorites. Recommend to Library. Email to a friend. Digg This. Notify Me! E-mail Alerts. RSS Feeds. SIAM J. Related Databases. Web of Record jacket printing small run You must be logged in with an active subscription to view this.

Publication Data. Publisher: Society for Industrial and Applied Mathematics. Herbert W. Cited by Asymptotic approximations of the continuous Hahn polynomials and their zeros. Journal of Approximation Theory Inequalities, Estimates, Expansions, etc. Computational Mathematics and Mathematical Physics 58 :1, A floating-point unit FPUcolloquially a math coprocessor is a part of a computer system specially designed to carry out operations on floating-point numbers. Some FPUs can also perform various transcendental functions such as exponential or trigonometric calculations, but the accuracy can be very low, [2] [3] so that some systems prefer to compute these functions in software.

In general-purpose computer architecturesone or more FPUs may be integrated as execution units within the central processing unit ; however, many embedded processors do not have hardware support for floating-point operations while they increasingly have them as standard, at least bit ones.

When a CPU is executing a program that calls for a floating-point operation, there are three ways to carry it out:. Historically systems implemented floating point with a coprocessor rather than as an integrated unit but now in addition to the CPU, e.

This could be a single integrated circuitan entire circuit board or a cabinet. Where floating-point calculation hardware has not been provided, floating-point calculations are done in software, which takes more processor time, but avoids the cost of the extra hardware. For a particular computer architecture, the floating-point unit instructions may be emulated by a library of software functions; this may permit the same object code to run on systems with or without floating-point hardware.

Emulation can be implemented on any of several levels: in the CPU as microcode not a common practiceas an operating system function, or in user-space code. In most modern computer architectures, there is some division of floating-point operations from integer operations. This division varies significantly by architecture; some have dedicated floating-point registerswhile some, like the Intel x86take it as far as independent clocking schemes.

CORDIC routines have been implemented in the Intel[5] [6] [7] [8] [9][9] [10] [9] [10] up to the [5] coprocessor series, as well as in the Motorola [5] [6] and for some kinds of floating-point instructions, mainly as a way to reduce the gate counts and complexity of the FPU subsystem. Floating-point operations are often pipelined.

In earlier superscalar architectures without general out-of-order executionfloating-point operations were sometimes pipelined separately from integer operations. Each physical integer core, two per module, is single-threaded, in contrast with Intel's Hyperthreadingwhere two virtual simultaneous threads share the resources of a single physical core.

Category: Taylor Series

Some floating-point hardware only supports the simplest operations: addition, subtraction, and multiplication. When a CPU is executing a program that calls for a floating-point operation that is not directly supported by the hardware, the CPU uses a series of simpler floating-point operations. In systems without any floating-point hardware, the CPU emulates it using a series of simpler fixed-point arithmetic operations that run on the integer arithmetic logic unit. The software that lists the necessary series of operations to emulate floating-point operations is often packaged in a floating-point library.

In some cases, FPUs may be specialized, and divided between simpler floating-point operations mainly addition and multiplication and more complicated operations, like division. In some cases, only the simple operations may be implemented in hardware or microcodewhile the more complex operations are implemented as software.

In some current architectures, the FPU functionality is combined with units to perform SIMD computation; an example of this is the augmentation of the x87 instructions set with SSE instruction set in the x architecture used in newer Intel and AMD processors.

It would only be purchased if needed to speed up or enable math-intensive programs. Other companies manufactured co-processors for the Intel x86 series. These included Cyrix and Weitek. Coprocessors were available for the Motorola familythe and They were also commonly added to higher-end models of Apple Macintosh and Commodore Amiga series, but unlike IBM PC-compatible systems, sockets for adding the coprocessor were not as common in lower-end systems.

These add-on FPUs are host-processor-independent, possess their own programming requirements operationsinstruction setsetc. From Wikipedia, the free encyclopedia. This article's factual accuracy may be compromised due to out-of-date information. Please update this article to reflect recent events or newly available information.By using our site, you acknowledge that you have read and understand our Cookie PolicyPrivacy Policyand our Terms of Service.

Transcendental equations are equations containing transcendental functions, i. An algebraic function is a function that satisfies a polynomial equation whose terms are themselves polynomials with rational coefficients. Home Questions Tags Users Unanswered. Questions tagged [transcendental-equations].

Ask Question. Learn more… Top users Synonyms. Filter by. Sorted by. Tagged with. Apply filter. The first solution But I am not sure if there is an analytical solution for this type of equations. I would appreciate it Exponential function and fractions [closed] I am not sure how to solve the following type of equation, would appreciate the help. Is this a Transcendental equation?

computing transcendental functions with error bounds

If not how can it be solved? Can someone tell me if this can be solved, and if so, how? Thank you Rodin Akrami 19 5 5 bronze badges. What is surprising is the "all positive solutions". Obviously this equation involves the Lambert function, but "positive' is meaningless for complex numbers Jacob 1. Oyvach 99 1 1 silver badge 7 7 bronze badges.

I tried taking logarithm of both side but it doesn't really lead anywhere. Giuseppe 33 1 1 silver badge 5 5 bronze badges. Looking at the graph it seems like the inverse of this function can exist and be defined on the entire domain. I have no idea what to Winter 5 5 silver badges 21 21 bronze badges.

For any Are there any examples of closed form solutions of transcendental equations An ambitious and amateur question regarding closed form solution of equations involving finite exponential terms.

Umesh shankar 6, 3 3 gold badges 13 13 silver badges 27 27 bronze badges. Is there a closed form for this transcendental equation? If the Martin G 1 1 silver badge 8 8 bronze badges.Taylor polynomial is an essential concept in understanding numerical methods.

Examples abound and include finding accuracy of divided difference approximation of derivatives and forming the basis for Romberg method of numerical integration. In this example, we are given an ordinary differential equation and we use the Taylor polynomial to approximately solve the ODE for the value of the dependent variable at a particular value of the independent variable.

As a homework assignment, do the following. Let the information follow you. The Taylor series for a function f x of one variable x is given by.

computing transcendental functions with error bounds

What does this mean in plain English? It is very important to note that the Taylor series is not asking for the expression of the function and its derivatives, just the value of the function and its derivatives at a single point.

computing transcendental functions with error bounds

Reference: Taylor Series Revisited. Subscribe to the blog via a reader or email to stay updated with this blog.

Floating-point unit

Taylor series is an important concept for learning numerical methods — not only for understanding how trigonometric and transcendental functions are calculated by a computer, but also for error analysis in numerical methods. I asked the question below in the first test in the course, and half of the students did not get to the final answer.

In a previous blogI showed you the method that most instructors would use. See how some students approached another approach the problem. The pdf file of the solution is also available.

See how some students approached the problem. So how many terms should I use in getting a certain pre-determined accuracy in a Taylor series. This is shown in the example below. An abridged for low cost book on Numerical Methods with Applications will be in print includes problem sets, TOC, index on December 10, and available at lulu storefront.

Taylor series is a very important concept that is used in numerical methods. From the concept of truncation error to finding the true error in Trapezoidal rule, having a clear understanding of Taylor series is extremely important. Other places in numerical methods where Taylor series concept is used include: the derivation of finite difference formulas for derivatives, finite difference method of solving differential equations, error in Newton Raphson method of solving nonlinear equations, Newton divided difference polynomial for interpolation, etc.

I have written a short chapter on Taylor series. After reading the chapter, you should be able to:. Skip to content Taylor polynomial is an essential concept in understanding numerical methods. Like this: Like Loading The Taylor series for a function f x of one variable x is given by What does this mean in plain English?

After reading the chapter, you should be able to: 1. Post was not sent - check your email addresses! Sorry, your blog cannot share posts by email.By using our site, you acknowledge that you have read and understand our Cookie PolicyPrivacy Policyand our Terms of Service.

The dark mode beta is finally here. Change your preferences any time. Stack Overflow for Teams is a private, secure spot for you and your coworkers to find and share information. I've been poring through. NET disassemblies and the GCC source code, but can't seem to find anywhere the actual implementation of sin and other math functions Can anyone help me find them?

I feel like it's unlikely that ALL hardware that C will run on supports trig functions in hardware, so there must be a software algorithm somewhereright? I'm aware of several ways that functions can be calculated, and have written my own routines to compute functions using taylor series for fun.

I'm curious about how real, production languages do it, since all of my implementations are always several orders of magnitude slower, even though I think my algorithms are pretty clever obviously they're not. In GNU libm, the implementation of sin is system-dependent. Therefore you can find the implementation, for each platform, somewhere in the appropriate subdirectory of sysdeps. One directory includes an implementation in C, contributed by IBM. Since Octoberthis is the code that actually runs when you call sin on a typical x Linux system.

It is apparently faster than the fsin assembly instruction. This code is very complex. No one software algorithm is as fast as possible and also accurate over the whole range of x values, so the library implements several different algorithms, and its first job is to look at x and decide which algorithm to use. A bit further out, sin x uses the familiar Taylor series. However, this is only accurate near 0, so This code uses some numerical hacks I've never seen before, though for all I know they might be well-known among floating-point experts.

Sometimes a few lines of code would take several paragraphs to explain. For example, these two lines. The way this is done without division or branching is rather clever. But there's no comment at all! There's a fascinating blog post illustrating this with just 2 lines of code. Functions like sine and cosine are implemented in microcode inside microprocessors.

Intel chips, for example, have assembly instructions for these. A C compiler will generate code that calls these assembly instructions.This is not true.

The worst-case error for the fsin instruction for small inputs is actually about 1. I was shocked when I discovered this. The great news is that when I shared an early version of this blog post with Intel they reacted quickly and the documentation is going to get fixed! I discovered this while playing around with my favorite mathematical identity. If you add a double-precision approximation for pi to the sin of that same value then the sum of the two values added by hand gives you a quad-precision estimate about 33 digits for the value of pi.

This works because the sine of a number very close to pi is almost equal to the error in the estimate of pi. So, you either need custom printing code or you need to wait for Dev 14 which has improved printing code.

I eventually realized that the sin function in bit versions of 2. The first step in calculating trigonometric functions like sin is range reduction.

Range reduction in general is a tricky problembut range reduction around pi is actually very easy. You just have to subtract the input number from a sufficiently precise approximation of pi. The worst-case for range reduction near pi will be the value that is closest to pi. For double-precision this will be a bit approximation to pi that is off by, at most, half a unit in the last place 0.

But you actually need more than that. The x87 FPU has bit registers which have a bit mantissa. If you are doing long-double math and you want your range reduction of numbers near pi to be accurate then you need to subtract from at least a bit approximation to pi.

This is still easy. If you know your input number is near pi then just extract the mantissa and do high-precision integer math to subtract from a hard-coded bit approximation to pi. Round carefully and then convert back to floating-point. Their approximation has just 66 bits. Here it is, taken from their manuals:. Therein lies the problem. When doing range reduction from the bit long-double format there will be almost complete cancellation and the worst-case error is 1.

After range reduction the next step is to calculate sin. For numbers that are sufficiently close to pi this is trivial — the range-reduced number is the answer.

Absolute Extrema of Transcendental Functions

Note that sin double pi should not return zero. It is surprising that fsin is so inaccurate. Then, in Volume 3: System Programming Guide, section They reiterate this in section 8. Section 8.

This optimistic documentation has consequences. In an up-and-coming Linux kernel programmer believed this documentation and used it to argue against adding an fsin wrapper function to glibc. See this blog post for more details and pretty pictures. Intel has known for years that these instructions are not as accurate as promised.

They are now making updates to their documentation. Updating the instruction is not a realistic option. I ran my tests on the 2. Clearly the glibc developers are aware of the problems with fsin and have stopped using it.Most of the common math library functions standardized by programming languages, such ass exponential, logarithmic, and trigonometric functions, are expensive to round correctly, compared to rational arithmetic or algebraic functions like square root sqrt.

Nearly correctly rounded functions are suitable for most purposes, and much faster. But the fastest nearly-correctly-rounded functions differ on different platforms. Use portable code for the functions used by the application. One source of such code is the Freely-Distributable Math Library, fdlibm.

It can be obtained from the Netlib software repository. Avoid the —xvector option. The vectorized versions of transcendental functions are optimized for a particular platform and produce slightly different results on different platforms. Avoid the x86 hardware transcendental instructions. Even though these instructions have error bounds almost as small as possible, they are not quite correctly rounded.

Also, the Intel and AMD versions differ occasionally, even though both are quite good. Likewise the —xnolibmil option after —fast disables inline templates; libm. Exit Print View. Search Scope:. This Document Entire Library. All rights reserved. Legal Notices.

thoughts on “Computing transcendental functions with error bounds

Leave a Reply

Your email address will not be published. Required fields are marked *