Documentation | Build Status | Code Coverage | Quality |
---|---|---|---|
Image credit: "xkcd: Error Bars" (CC-BY-NC 2.5)
Physical measures are typically reported with an error, a quantification of the uncertainty of the accuracy of the measurement. Whenever you perform mathematical operations involving these quantities you have also to propagate the uncertainty, so that the resulting number will also have an attached error to quantify the confidence about its accuracy. Measurements.jl relieves you from the hassle of propagating uncertainties coming from physical measurements, when performing mathematical operations involving them. The linear error propagation theory is employed to propagate the errors.
This library is written in Julia, a modern high-level, high-performance dynamic programming language designed for technical computing.
When used in the Julia interactive session, it can serve also as an easy-to-use calculator.
SpecialFunctions.jl
package, involving real and complex numbers. All existing functions that
accept AbstractFloat
(and Complex{AbstractFloat}
as well) arguments and
internally use already supported functions can in turn perform calculations
involving numbers with uncertainties without being redefined. This greatly
enhances the power of Measurements.jl
without effort for the usersx-x ≈ zero(x)
, x/x ≈ one(x)
, tan(x) ≈ sin(x)/cos(x)
, cis(x) ≈ exp(im*x)
,
etc...@uncertain
macro±
sign as infix
operator. This syntactic sugar makes the code more readable and visually
appealingQuadGK.jl
, numerical and
automatic differentiation, and much more.Plots.jl
.The method used to handle functional correlation is described in this paper:
2016arXiv161008716G
)A current limitation of the package is that it is not yet possible to define quantities related by a correlation matrix.
If you use use this package for your research, please cite it.
The complete manual of Measurements.jl
is available at
https://juliaphysics.github.io/Measurements.jl/stable/. There, people
interested in the details of the package, in order integrate the package in
their workflow, can find a technical appendix explaining how the package
internally works.
The latest version of Measurements.jl
is available for Julia v1.0 and later
releases, and can be installed with Julia built-in package
manager. In a Julia session, after
entering the package manager mode with ]
, run the command
pkg> update
pkg> add Measurements
Older versions of this package are also available for Julia 0.4-0.7.
After installing the package, you can start using it with
using Measurements
The module defines a new Measurement
data type. Measurement
objects can be
created with the two following constructors:
measurement(value, uncertainty)
value ± uncertainty
where
value
is the nominal value of the measurementuncertainty
is its uncertainty, assumed to be a
standard deviation.Here is a quick taster of the functionalities of the package:
julia> using Measurements
julia> a = measurement(4.5, 0.1)
4.5 ± 0.1
julia> b = 3.8 ± 0.4
3.8 ± 0.4
julia> 2a + b
12.8 ± 0.4472135954999579
julia> x = 8.4 ± 0.7
julia> x - x
0.0 ± 0.0
julia> x/x
1.0 ± 0.0
julia> x*x*x - x^3
0.0 ± 0.0
julia> sin(x)/cos(x) - tan(x)
-2.220446049250313e-16 ± 0.0 # They are equal within numerical accuracy
For more details about the use of the package read the documentation, in particular the Usage and Examples sections.
The Measurements.jl
package is licensed under the MIT "Expat" License. The
original author is Mosè Giordano.
Please, cite the paper Giordano 2016 (http://arxiv.org/abs/1610.08716) if you
employ this package in your research work. For your convenience, a BibTeX entry
is provided in the CITATION.bib
file.