Skip to content

Commit

Permalink
set up documentation using Documenter.jl (#4)
Browse files Browse the repository at this point in the history
Enable citations in docs using DocumenterCitations.jl

add separate Project.toml file for docs
  • Loading branch information
fzierler committed May 24, 2021
1 parent 864f28e commit d5f7c8d
Show file tree
Hide file tree
Showing 7 changed files with 66 additions and 7 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/Manifest.toml
**Manifest.toml
docs/build
10 changes: 10 additions & 0 deletions docs/LatSpec.bib
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@book{Gattringer/Lang,
author = {Gattringer/Lang},
title = {Quantum chromodynamics on the lattice},
doi = {10.1007/978-3-642-01850-3},
isbn = {978-3-642-01849-7},
publisher = {Springer},
address = {Berlin},
volume = {788},
year = {2010}
}
4 changes: 4 additions & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244"
LatSpec = "5648dd92-b909-466b-b6bb-bca0d81a8536"
14 changes: 14 additions & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using Documenter
using DocumenterCitations
using LatSpec

bib = CitationBibliography("LatSpec.bib")
makedocs(
bib,
sitename="LatSpec.jl",
pages = [
"Home" => "index.md",
"References" => "references.md"
],
format = Documenter.HTML(prettyurls = get(ENV, "CI", nothing) == "true")
)
10 changes: 10 additions & 0 deletions docs/src/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# LatSpec.jl Documentation

```@meta
CurrentModule = LatSpec
```

```@docs
autocor
autotimeexp
```
2 changes: 2 additions & 0 deletions docs/src/references.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
```@bibliography
```
30 changes: 24 additions & 6 deletions src/statistics.jl
Original file line number Diff line number Diff line change
@@ -1,28 +1,46 @@
# Autocorrelation for a specifig lag
function autocor(x::AbstractVector, lag::Integer)
"""
autocor(x,lag)
Returns autocorrelation function for a distance of lag, i.e. between values of
```x[t]``` and ```x[t+lag]```. The autocorrelation function is normalized such
that ```autocor(x,0) = 1```. This is equvivalent to the quantity
``\\Gamma_X(t)`` of equation (4.61) in [GattringerLang](@cite).
"""
function autocor(x, lag)
# (wasteful in terms of allocations but clear)
z = x .- mean(x)
a = sum(z[1+lag:end].*z[1:end-lag])/sum(z.*z)
return a
end
# Autocorrelation for a automatically choosen number of lags
"""
autocor(x)
Returns autocorrelation function for a set of lags from ``0`` up to the closest
integer to ``10 \\text{log}_{10}(l)``. Here ``l`` is the number of elements in
```x```.
"""
function autocor(x)
lx = length(x)
# heuristic for choosing a suitable number of lags
lags = collect(0:min(lx-1, round(Int,10*log10(lx))))
a = zeros(eltype(x),length(lags))
for i in 1:length(lags)
a[i] = autocor(x, lags[i])
end
return a
end
# Perform exponential fit of autocorrelation and extract characteristic time
"""
autotimeexp(x)
Returns ``\\max(1,\\tau)`` where ``\\tau`` is the exponential autocorrelation
time of a series of measurements ``x``. This is obtained by fitting the
autocorrelation function to an exponential function of the form
``A \\exp(\\frac{t}{\\tau})``.
"""
function autotimeexp(O)
a = autocor(O)
@. modelτ(x,p) = abs.(p[2])*exp(-x/p[1])
x = collect(1:length(a))
c = curve_fit(modelτ, x, a, ones(2))
τ = c.param[1]
# if autocorrelation time τ is smaller than 1 return just 1
return max(one(τ),τ)
end

0 comments on commit d5f7c8d

Please sign in to comment.