Computing transcendental functions with error bounds

By | 14.10.2020

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 Science 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, Monotonicity, convexity, concavity, and other properties. Computational Mathematics and Mathematical Physics 56 :7, Constructive Approximation 40 :1, Analysis and Applications 12 Mathematische Nachrichten Analysis and Applications 10 Studies in Applied Mathematics :4, Analysis and Applications 09By 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? 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.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.

Category: Taylor Series

All rights reserved. Legal Notices.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.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. 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 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. 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. Reference: Taylor Series Revisited.

Subscribe to the blog via a reader or email to stay updated with this blog. 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.

Differentiate Transcendental Function Using Product Rule

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?

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.

SIAM Journal on Mathematical Analysis

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.

Floating-point unit

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. By contrast, a Java compiler will not. Java evaluates trig functions in software rather than hardware, and so it runs much slower. Chips do not use Taylor series to compute trig functions, at least not entirely.

For more explanation, see this StackOverflow answer. OK kiddies, time for the pros

Category: qmm