-
Notifications
You must be signed in to change notification settings - Fork 11
/
params.json
6 lines (6 loc) · 6.43 KB
/
params.json
1
2
3
4
5
6
{
"name": "ArbFloats.jl",
"tagline": "extended precision *values* for arithmetic, elementary, and some special functions (25..500 digits)",
"body": "## ArbFloats.jl\r\n###### Arb available as an extended precision floating point context.\r\n\r\n```ruby\r\n Jeffrey Sarnoff © 2016˗May˗26 in New York City\r\n```\r\n#####This is for Julia v0.5.\r\n\r\n####Appropriateness \r\n\r\nPreferred for extending the precision of floating point computations from 64 bits [17 digits] up to 512 bits [150 digits]. \r\nRecommended for use where elementary or special functions are evaluated to obtain results with up to 250 digits [800 bits].\r\n\r\n####Conceptual Background\r\n\r\n`Transparency`: a desireable quality that may obtain in the presentation of numerical quantity. Where `transparency` exists, it may well not persist. A diminution of `transparency` increases `opacity`, and vice versa. Presentation of a floating point value either evinces `transparency` or furthers `opacity`. With `transparent` values, 'looking at a value' is 'looking through to see the knowable value'. With `opaque` values, 'looking at a value' is 'looking away from' that. And it is that nonresponsive, nonparticipative engagement of cognitive attention that is the `opaqueness` underlying `opacity`. \r\n\r\nPresented with a `transparent` floating point value, the perceiver is become best informed. There is no other rendition of that floating point realization which is intrinsically more informing and none which relays the value of that floating point realization more accurately -- none with fewer digits, none with more digits, none of greater magnitude, none of lesser magnitude.\r\n\r\nAn `ArbFloat` is an extended precision float architected to evince `transparency`. It informs without leading or misleading. An `ArbFloat`, when viewed, appears as an extended precision floating point value. When any of the exported arithmetic, elementary or special functions is applied to an `ArbFloat`, the value transforms as an extended precision floating point interval.\r\n\r\n\r\n###About Arb\r\n\r\n This work is constructed atop a state-of-the-art C library for working with _midpoint ± radius_ intervals, `Arb`. \r\n `Arb` is designed and written by Fredrik Johansson, who graciously allows Julia to use it under the MIT License. \r\n \r\n The C libraries that this package accesses are some of the shared libraries that Nemo.jl requires and builds when it is installed; and I am calling them directly. Nemo is a computational environment where the most important software for number theory and related work. Julia is used to create a cohesive whole that shares a manner of use. Fredrik Johansson, William Hart, and Tommy Hoffman have been especially helpful, taking the time to explain details of Arb as I was working on ArbFloats. \r\n \r\n######Hint\r\nIt is a useful fiction to think of `ArbFloats` as Arb values with a zero radius -- and sometimes they are. When an `ArbFloat` has a nonzero radius, the user sees only those digits that _don`t care_: the digits which remain after rounding the `ArbFloat` so that the radius is subsumed (as if 0.0).\r\n\r\n\r\n####Install\r\n```julia\r\nPkg.clone(\"https://github.com/JuliaArbTypes/ArbFloats.jl\") # requires a recent Julia v0.5.0-dev\r\n```\r\n\r\n####Use\r\n```F#\r\nusing ArbFloats\r\n\r\nfive = ArbFloat(5)\r\n5\r\n\r\ne = exp(ArbFloat(1))\r\n2.7182_8182_8459_0452_3536_0287_4713_5266_2 ± 4.8148250e-35\r\nfuzzed_e = tan(atanh(tanh(atan(e))))\r\n2.7182_8182_8459_0452_3536_0287_4713_52662 ± 7.8836806e-33\r\n\r\nbounds(e)\r\n( 2.7182_8182_8459_0452_3536_0287_4713_52663,\r\n 2.7182_8182_8459_0452_3536_0287_4713_52664 )\r\nsmartstring(e)\r\n2.7182_8182_8459_0452_3536_0287_4713_5266₊\r\n\r\nbounds(fuzzed_e)\r\n( 2.7182_8182_8459_0452_3536_0287_4713_52654,\r\n 2.7182_8182_8459_0452_3536_0287_4713_52670 )\r\nsmartstring(fuzzed_e)\r\n2.7182_8182_8459_0452_3536_0287_4713_527₋\r\n\r\n\r\n# Float32 and ArbFloat32\r\n# const ArbFloat32 = ArbFloat{24} # predefined\r\nsetprecision(ArbFloat, 24)\r\n\r\n\r\nfpOneThird = 1.0f0 / 3.0f0\r\n0.3333_334f0\r\n\r\noneThird = ArbFloat(1) / ArbFloat(3)\r\n0.3333_333 ± 2.9803_322e-8\r\n\r\n# gamma(1/3) is 2.6789_3853_4707_7476_3365_5692_9409_7467_7644~\r\n\r\ngamma_oneThird = gamma( oneThird )\r\n2.6789_380 ± 1.8211887e-6\r\n\r\nbounds(gamma_oneThird)\r\n(2.6789_360, 2.6789_400)\r\n\r\ngamma( fpOneThird )\r\n2.6789_384f0\r\n```\r\n\r\n## Exports (including re-exports)\r\n\r\nused with Arb and ArbFloat | nature\r\n---------------------------|-------\r\nprecision, setprecision, | as with BigFloat\r\n\r\n\r\nArb values are intervals | nature\r\n--------|--------\r\nmidpoint, radius, lowerbound, upperbound, bounds, | Arb's constituent parts \r\nisexact, notexact, | float-y or interval-y \r\noverlap, donotoverlap, | of interval suborder \r\ncontains, iscontainedby, doesnotcontain, isnotcontainedby, | of interval partial order \r\n\r\n \r\n \r\n\r\n```lua\r\nArbFloat values: Arb seen as precisely accurate floats \r\n elevates transparant information over number mumble \r\n each digit shown is an accurate refinement of value \r\n\r\nThe least significant digit observable, through show(af) or with string(af), \r\n is smallest transparent _(intrisically non-misleading)_ refinement of value.\r\n```\r\n\r\n \r\n \r\n\r\nArbFloat attributes | nature\r\n--------|--------\r\nisnan, isinf, isfinite, issubnormal, isinteger, notinteger, | floatingpoint predicates\r\niszero, notzero, nonzero, isone, notone, | number predicates\r\nispositive, notpositive, isnegative, notnegative, | numerical predicates\r\n\r\n\r\n> copy, deepcopy, \r\n> zero, one, eps, epsilon, \r\n> isequal, notequal, isless, \r\n> (==),(!=),(<),(<=),(>=),(>), \r\n> approxeq, ≊, \r\n> min, max, minmax, \r\n\r\n> signbit, sign, flipsign, copysign, abs, \r\n> (+),(-),(*),(/),(\\),(%),(^),\r\n> inv, sqrt, invsqrt, hypot, \r\n> factorial, doublefactorial, risingfactorial, \r\n> trunc, round, ceil, floor, \r\n\r\n> pow, root, \r\n> exp, expm1, log, log1p, log2, log10, logbase, \r\n> sin, cos, sincos, sincospi, tan, csc, sec, cot, \r\n> asin, acos, atan, atan2, \r\n> sinh, cosh, sinhcosh, tanh, csch, sech, coth, \r\n> asinh, acosh, atanh, \r\n\r\n> gamma, lgamma, digamma, \r\n> sinc, zeta, polylog, agm \r\n",
"note": "Don't delete this file! It's used internally to help with page regeneration."
}