Comments (5)
Could the answer be, that if I do things like sin(x)
, then the prec
parameter specifies the internal working precision, but the result will always be correctly rounded to whatever precision is mathematically correct (so it can be both less or more than prec
, depending on the operation and the internal algorithm)?
from arb.
Or is the result's accuracy always strictly less than prec
or always strictly more than prec
?
It's really confusing, I can imagine it working either way.
from arb.
The prec parameter just specifies the internal working precision used to compute the midpoint. For example, if adding two balls x +/- r, y +/- s, the result is round(x + y, prec) +/- (r + s + eps) where eps is a bound for the error from round(x + y, prec).
If the precision is much higher than the accuracy of the inputs, all that happens is that eps is much smaller than r + s, so the output radius is approximately r + s.
If the precision is much lower than the accuracy of the inputs, all that happens is that eps is much larger than r + s, so the output radius is approximately eps.
The only restrictions are that the precision has to be at least 2 bits, and not so large that overflow occurs (not usually an issue, at least on 64-bit systems).
The only strict guarantee for all functions is that the output ball contains the mathematically exact result. There's not a simple answer for how one should choose the precision in any given situation.
from arb.
Thanks, I think that explains it. I created #5 fixing this issue.
from arb.
You answered all the questions. The answer to the question what prec
to use if I want to have as accurate result as possible is simply: minimize eps
. To minimize eps
, I just need to use accuracy something like max(r, s) + extra
, where extra
depends on the algorithm done internally. Then eps
will be very small and that's what I wanted.
In situations like evaluating a symbolic expression, I would just set prec
everywhere the same, then check the accuracy of the answer, and if it's not enough for me, then double prec
.
from arb.
Related Issues (20)
- time complexity of algorithms behind arb HOT 1
- Question on the real_root.c example HOT 4
- Feature request: conversion to/from __float128 type HOT 1
- Memory leak for arb_hypergeom_coulomb HOT 3
- Re-optimize matrix multiplication
- Mittag-Leffler function
- Build failure with v2.23.0 HOT 4
- Gaussian integers worklist
- Integration produces a nan HOT 4
- Feature request: `arf_set_str`
- Spheroidal wave functions
- Would you want to have an arb_abs_slow() function? HOT 6
- Arb library Interoperability with Fortran
- arb_pow could do much better for <a +- a> ^ <b +- c> with b >= c > 0 and a > 0 HOT 5
- Root finding for degenerate polynomials HOT 1
- Speed Benchmarking
- Segmentation Fault ( Memory Error ) Error in Fortran-C Interoperability
- arb_hypgeom_2f1 output nan HOT 1
- Support flint 3.0.0 HOT 2
- static declaration of ‘fmpz_ui_pow_ui’ follows non-static declaration HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arb.