TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Arb: Efficient Arbitrary-Precision Midpoint-Radius Interval Arithmetic (2016)

78 pointsby helltoneover 4 years ago

8 comments

fdejover 4 years ago
Author here. I will take the opportunity to advertise my blog at <a href="https:&#x2F;&#x2F;fredrikj.net&#x2F;blog&#x2F;" rel="nofollow">https:&#x2F;&#x2F;fredrikj.net&#x2F;blog&#x2F;</a> where I post occasional development updates about Arb and other projects.<p>Some improvements not covered in the 2016 preprint include much faster code for arithmetic and matrix multiplication (<a href="https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;1901.04289" rel="nofollow">https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;1901.04289</a>, <a href="https:&#x2F;&#x2F;fredrikj.net&#x2F;blog&#x2F;2018&#x2F;07&#x2F;high-precision-linear-algebra-in-julia-bigfloat-vs-arb&#x2F;" rel="nofollow">https:&#x2F;&#x2F;fredrikj.net&#x2F;blog&#x2F;2018&#x2F;07&#x2F;high-precision-linear-alge...</a>), and code for rigorous arbitrary-precision numerical integration (<a href="https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;1802.07942" rel="nofollow">https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;1802.07942</a>, <a href="http:&#x2F;&#x2F;fredrikj.net&#x2F;blog&#x2F;2017&#x2F;11&#x2F;new-rigorous-numerical-integration-in-arb&#x2F;" rel="nofollow">http:&#x2F;&#x2F;fredrikj.net&#x2F;blog&#x2F;2017&#x2F;11&#x2F;new-rigorous-numerical-inte...</a>).
评论 #26062134 未加载
评论 #26055699 未加载
fdejover 4 years ago
For anyone wondering about the difference between endpoint-based interval arithmetic ([a,b]) and midpoint-radius ([m +&#x2F;- r]) arithmetic (ball arithmetic): they are often interchangeable, but they have different tradeoffs. Roughly speaking, standard interval arithmetic is better for subdivision of space, while ball arithmetic is better for representing individual numbers.<p>A good technical introduction to ball arithmetic is this paper by Joris van der Hoeven: <a href="https:&#x2F;&#x2F;www.texmacs.org&#x2F;joris&#x2F;ball&#x2F;ball.html" rel="nofollow">https:&#x2F;&#x2F;www.texmacs.org&#x2F;joris&#x2F;ball&#x2F;ball.html</a>
评论 #26057142 未加载
评论 #26057059 未加载
评论 #26056187 未加载
评论 #26055305 未加载
dataflowover 4 years ago
Looks cool, but how does it get around the table-maker&#x27;s dilemma? <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Rounding#Table-maker&#x27;s_dilemma" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Rounding#Table-maker&#x27;s_dilemma</a><p><i>&quot;No general way exists to predict how many extra digits will have to be carried to compute a transcendental expression and round it correctly to some preassigned number of digits. Even the fact (if true) that a finite number of extra digits will ultimately suffice may be a deep theorem.&quot;</i><p>My guess is they aim for convergence and it works well in practice but it&#x27;s still unknown if that&#x27;s guaranteed to be correct... is that right?
评论 #26055111 未加载
评论 #26054802 未加载
评论 #26054693 未加载
评论 #26054793 未加载
评论 #26054664 未加载
stabblesover 4 years ago
Relatedly, there&#x27;s a relatively new julia package called MultiFloats.jl [1] for doing arithmetic with numbers of the form a_1 + a_2 + ... + a_n where a_{i+1} is of the order of the round off of a_i. So it&#x27;s fixed precision, but the cool thing is you can easily generate code for arbitrary `n`. The package itself is just a few hundred lines of code. I&#x27;ve tried it on an NVIDIA GPU with fast double precision, and it seems to &quot;just work&quot; for basic linear algebra.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;dzhang314&#x2F;MultiFloats.jl" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dzhang314&#x2F;MultiFloats.jl</a>
评论 #26055243 未加载
mklover 4 years ago
The library: <a href="https:&#x2F;&#x2F;github.com&#x2F;fredrik-johansson&#x2F;arb" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;fredrik-johansson&#x2F;arb</a><p>LGPL
joeldaover 4 years ago
Arblib.jl [1] is a Julia wrapper for Arb. Most of the basic wrapping is auto-generated from Arbs documentation. There is still work left to make it interface well with the Julia ecosystem, and document it, but it&#x27;s on it&#x27;s way.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;kalmarek&#x2F;Arblib.jl" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kalmarek&#x2F;Arblib.jl</a>
knuthsatover 4 years ago
Whenever I encounter arbitrary precision libraries I want to try them out on extended Dudeney&#x27;s digital century puzzle.<p>This is from TAOCP 4A part 1:<p>&gt; Dudeney&#x27;s Digital Century puzzle.) There are many curious ways to obtain the number 100 by inserting arithmetical operators and possibly also parentheses into the sequence 123456789. For example, 100 = 1 + 2 x 3 + 4 x 5 - 6 + 7 + 8 x 9 = (1 + 2 - 3 - 4 ) x (5-6-7-8-9) = ((1&#x2F;((2 + 3)&#x2F;4 - 5 + 6)) x 7 + 8) x 9.<p>Of course, instead of 100 we can put something else, add exponentiation, decimal point and an operator that reinterprets the number as if written in base X (12345_6789 = 2124962081444303 in base 10).<p>I also like how Knuth adds the number of possible trees in a grammar that generates these expressions without redundant parentheses :D
FrozenVoidover 4 years ago
The github repo <a href="https:&#x2F;&#x2F;github.com&#x2F;fredrik-johansson&#x2F;arb" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;fredrik-johansson&#x2F;arb</a>