<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Home · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"data-theme-primary-dark/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><liclass="is-active"><aclass="tocitem"href="index.html">Home</a><ulclass="internal"><li><aclass="tocitem"href="#Contents"><span>Contents</span></a></li></ul></li><li><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="index.html">Home</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="index.html">Home</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="DOCUMENTATION"><aclass="docs-heading-anchor"href="#DOCUMENTATION">DOCUMENTATION</a><aid="DOCUMENTATION-1"></a><aclass="docs-heading-anchor-permalink"href="#DOCUMENTATION"title="Permalink"></a></h1><h2id="Contents"><aclass="docs-heading-anchor"href="#Contents">Contents</a><aid="Contents-1"></a><aclass="docs-heading-anchor-permalink"href="#Contents"title="Permalink"></a></h2><ul><li><ahref="reader.html#Reader">Reader</a></li><li><ahref="tools.html#Tools">Tools</a></li><li><ahref="obs.html#Observables">Observables</a></li><li><ahref="linalg.html#Linear-Algebra">Linear Algebra</a></li></ul></article><navclass="docs-footer"><aclass="docs-footer-nextpage"href="reader.html">Reader »</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Wednesday 24 February 2021 11:46">Wednesday 24 February 2021</span>. Using Julia version 1.5.0.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Home · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><liclass="is-active"><aclass="tocitem"href="index.html">Home</a><ulclass="internal"><li><aclass="tocitem"href="#Contents"><span>Contents</span></a></li></ul></li><li><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="index.html">Home</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="index.html">Home</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="DOCUMENTATION"><aclass="docs-heading-anchor"href="#DOCUMENTATION">DOCUMENTATION</a><aid="DOCUMENTATION-1"></a><aclass="docs-heading-anchor-permalink"href="#DOCUMENTATION"title="Permalink"></a></h1><h2id="Contents"><aclass="docs-heading-anchor"href="#Contents">Contents</a><aid="Contents-1"></a><aclass="docs-heading-anchor-permalink"href="#Contents"title="Permalink"></a></h2><ul><li><ahref="reader.html#Reader">Reader</a></li><li><ahref="tools.html#Tools">Tools</a></li><li><ahref="obs.html#Observables">Observables</a></li><li><ahref="linalg.html#Linear-Algebra">Linear Algebra</a></li></ul></article><navclass="docs-footer"><aclass="docs-footer-nextpage"href="reader.html">Reader »</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Friday 26 February 2021 09:53">Friday 26 February 2021</span>. Using Julia version 1.4.2.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Linear Algebra · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"data-theme-primary-dark/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><li><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><liclass="is-active"><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="linalg.html">Linear Algebra</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="linalg.html">Linear Algebra</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="Linear-Algebra"><aclass="docs-heading-anchor"href="#Linear-Algebra">Linear Algebra</a><aid="Linear-Algebra-1"></a><aclass="docs-heading-anchor-permalink"href="#Linear-Algebra"title="Permalink"></a></h1><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.uweigvals"href="#juobs.uweigvals"><code>juobs.uweigvals</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">uweigvals(a::Matrix{uwreal}; iter = 30)
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Linear Algebra · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><li><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><liclass="is-active"><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="linalg.html">Linear Algebra</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="linalg.html">Linear Algebra</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="Linear-Algebra"><aclass="docs-heading-anchor"href="#Linear-Algebra">Linear Algebra</a><aid="Linear-Algebra-1"></a><aclass="docs-heading-anchor-permalink"href="#Linear-Algebra"title="Permalink"></a></h1><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.uweigvals"href="#juobs.uweigvals"><code>juobs.uweigvals</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">uweigvals(a::Matrix{uwreal}; iter = 30)
uweigvals(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)</code></pre><p>This function computes the eigenvalues of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvalues instead. It takes as input:</p><ul><li><p><code>a::Matrix{uwreal}</code> : a matrix of uwreal</p></li><li><p><code>b::Matrix{uwreal}</code> : a matrix of uwreal, optional</p></li></ul><p>It returns:</p><ul><li><code>res = Vector{uwreal}</code>: a vector where each elements is an eigenvalue </li></ul></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.uweigvecs"href="#juobs.uweigvecs"><code>juobs.uweigvecs</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">uweigvecs(a::Matrix{uwreal}; iter = 30)
uweigvals(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)</code></pre><p>This function computes the eigenvalues of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvalues instead. It takes as input:</p><ul><li><p><code>a::Matrix{uwreal}</code> : a matrix of uwreal</p></li><li><p><code>b::Matrix{uwreal}</code> : a matrix of uwreal, optional</p></li><li><p><code>iter=30</code>: optional flag to set the iterations of the qr algorithm used to solve the eigenvalue problem</p></li></ul><p>It returns:</p><ul><li><code>res = Vector{uwreal}</code>: a vector where each elements is an eigenvalue </li></ul><pre><codeclass="language-">a = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
b = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
uweigvecs(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)</code></pre><p>This function computes the eigenvectors of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvectors instead. It takes as input:</p><ul><li><p><code>a::Matrix{uwreal}</code> : a matrix of uwreal</p></li><li><p><code>b::Matrix{uwreal}</code> : a matrix of uwreal, optional</p></li></ul><p>It returns:</p><ul><li><code>res = Matrix{uwreal}</code>: a matrix where each column is an eigenvector </li></ul></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.uweigen"href="#juobs.uweigen"><code>juobs.uweigen</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">uweigen(a::Matrix{uwreal}; iter = 30)
uweigen(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)</code></pre><p>This function computes the eigenvalues and the eigenvectors of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvalues and eigenvectors instead. It takes as input:</p><ul><li><p><code>a::Matrix{uwreal}</code> : a matrix of uwreal</p></li><li><p><code>b::Matrix{uwreal}</code> : a matrix of uwreal, optional</p></li></ul><p>It returns:</p><ul><li><code>evals = Vector{uwreal}</code>: a vector where each elements is an eigenvalue </li><li><code>evecs = Matrix{uwreal}</code>: a matrix where the i-th column is the eigenvector of the i-th eigenvalue</li></ul></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.get_matrix"href="#juobs.get_matrix"><code>juobs.get_matrix</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">get_matrix(corr_diag::Vector{Array}, corr_upper::Vector{Array} )</code></pre><p>This method returns an array of dim <code>T</code> where each element is a symmetrix matrix of dimension n of <code>uwreal</code> correlators at fixed time i=1..T. It takes as input:</p><p><code>corr_diag</code>: vector of dimension n of correlators liying on the diagonal </p><p><code>corr_upper</code>: vector of correlators liying on the upper diagonal.</p><p>Each correlator is an vector of uwreal variables of dimension <code>T</code>.</p><p>Example:</p><pre><codeclass="language-">for i in 1:n
uweigvecs(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)</code></pre><p>This function computes the eigenvectors of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvectors instead. It takes as input:</p><ul><li><p><code>a::Matrix{uwreal}</code> : a matrix of uwreal</p></li><li><p><code>b::Matrix{uwreal}</code> : a matrix of uwreal, optional</p></li><li><p><code>iter=30</code> : the number of iterations of the qr algorithm used to extract the eigenvalues </p></li></ul><p>It returns:</p><ul><li><code>res = Matrix{uwreal}</code>: a matrix where each column is an eigenvector </li></ul><p>Examples:</p><pre><codeclass="language-">a = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
a[i,i] = Vector{uwreal} # vector of uwreal variables of dimension T. They will constitute the diagonal elements of the matrices
b = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
for i in 1:n-1
res = uweigvecs(a) ##eigenvectors in column
for j in i+1:n
res1 = uweigvecs(a,b) ## generalised eigenvectors in column </code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.uweigen"href="#juobs.uweigen"><code>juobs.uweigen</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">uweigen(a::Matrix{uwreal}; iter = 30)
a[i,j] = Vector{uwreal} # vector of uwreal variables of dimension T. They will constitute the upper diagonal elements of the matrices. A matrix
of dimension n*n has n(n-1)/2 upper diagonal elements.
Assume n=4
uweigen(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)</code></pre><p>This function computes the eigenvalues and the eigenvectors of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvalues and eigenvectors instead. It takes as input:</p><ul><li><p><code>a::Matrix{uwreal}</code> : a matrix of uwreal</p></li><li><p><code>b::Matrix{uwreal}</code> : a matrix of uwreal, optional</p></li><li><p><code>iter=30</code> : the number of iterations of the qr algorithm used to extract the eigenvalues </p></li></ul><p>It returns:</p><ul><li><p><code>evals = Vector{uwreal}</code>: a vector where each elements is an eigenvalue </p></li><li><p><code>evecs = Matrix{uwreal}</code>: a matrix where the i-th column is the eigenvector of the i-th eigenvalue</p></li></ul><p>Examples:</p><pre><codeclass="language-">a = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
b = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
diagonal = Vector{Array}()
eval, evec = uweigen(a)
push!(diagonal, a[1,1],a[2,2],a[3,3],a[4,4])
eval1, evec1 = uweigvecs(a,b) </code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.get_matrix"href="#juobs.get_matrix"><code>juobs.get_matrix</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">get_matrix(diag::Vector{Array}, upper::Vector{Array} )</code></pre><p>This function allows the user to build an array of matrices, where each matrix is a symmetric matrix of correlators at a given timeslice. </p><p>It takes as input:</p><ul><li><p><code>diag::Vector{Array}</code>: vector of correlators. Each correlator will constitute a diagonal element of the matrices A[i] where i runs over the timeslices, i.e. <code>A[i][1,1] = diag[1], .... A[i][n,n] = diag[n]</code><code>Given n=length(diag)</code>, the matrices will have dimension n*n </p></li><li><p><code>upper::Vector{Array}</code>: vector of correlators liying on the upper diagonal position. <code>A[i][1,2] = upper[1], .. , A[i][1,n] = upper[n-1],</code><code>A[i][2,3] = upper[n], .. , A[i][n-1,n] = upper[n(n-1)/2]</code> Given n, <code>length(upper)=n(n-1)/2</code></p></li></ul><p>The method returns an array of symmetric matrices of dimension n for each timeslice </p><p>Examples:</p><pre><codeclass="language-">## load data
corr_aa = corr_obs.(aa_data) # array of correlators for different \mu_q combinations
Julia> T-element Array{Array,1}
## set up matrices
corr_diag = [corr_pp[1], corr_aa[1]]
corr_upper = [corr_pa[1]]
size(array_of_matrices)
matrices = [corr_diag, corr_upper]
Julia> (T,)
Julia> matrices[i]
pp[i] ap[i]
pa[i] aa[i]
array_of_matrices[t] # t in 1:T
## where i runs over the timeslices</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.energies"href="#juobs.energies"><code>juobs.energies</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">energies(evals::Vector{Array}; wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}}, Nothing}=nothing)</code></pre><p>This method computes the energy level from the eigenvalues according to:</p><p><span>$E_i(t) = \log(λ(t) / λ(t+1))$</span></p><p>where <code>i=1,..,n</code> with <code>n=length(evals[1])</code> and <code>t=1,..,T</code> total time slices. It returns a vector array en where each entry en[i][t] contains the i-th states energy at time t </p><p>Examples:</p><pre><codeclass="language-">## load data
Julia> 4*4 Array{uwreal,2}</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.energies"href="#juobs.energies"><code>juobs.energies</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">energies(evals::Vector{Array})</code></pre><p>Given a vector where each entry <code>evals[t]</code> is a <code>uwreal</code> array of eigenvalues, this method computes the effective energies of the first N states, where <code>N=dim(evals[t])</code>. The index <code>t</code> here runs from 1:T=lenght(evals), while the index <code>i</code> stands for the number of energy levels computed: i = length(evals[t]) It returns a vector array <code>eff_en</code> where each entry <code>eff_en[t]</code> contains the first N states energies as uwreal objects </p></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.getall_eigvals"href="#juobs.getall_eigvals"><code>juobs.getall_eigvals</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">getall_eigvals(a::Vector{Matrix}, t0; iter=30 )</code></pre><p>This function solves a GEVP problem, returning the eigenvalues, for a list of matrices, taking as generalised matrix the one at index t0, i.e:</p><p><span>$C(t_i)v_i = λ_i C(t_0) v_i$</span>, with i=1:lenght(a)</p><p>It takes as input:</p><ul><li><p><code>a::Vector{Matrix}</code> : a vector of matrices</p></li><li><p><code>t0::Int64</code> : idex value at which the fixed matrix is taken</p></li><li><p><code>iter=30</code> : the number of iterations of the qr algorithm used to extract the eigenvalues </p></li></ul><p>It returns:</p><ul><li><code>res</code> = Vector{Vector{uwreal}}</li></ul><p>where <code>res[i]</code> are the generalised eigenvalues of the i-th matrix of the input array. </p><p>Examples:</p><pre><codeclass="language-">mat_array = get_matrix(diag, upper_diag)
## create Corr struct
evals = getall_eigvals(mat_array, 5)</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.getall_eigvecs"href="#juobs.getall_eigvecs"><code>juobs.getall_eigvecs</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">getall_eigvecs(a::Vector{Matrix}, delta_t; iter=30 )</code></pre><p>This function solves a GEVP problem, returning the eigenvectors, for a list of matrices.</p><p><span>$C(t_i)v_i = λ_i C(t_i-\delta_t) v_i$</span>, with i=1:lenght(a)</p><p>Here <code>delta_t</code> is the time shift within the two matrices of the problem, and is kept fixed. It takes as input:</p><ul><li><p><code>a::Vector{Matrix}</code> : a vector of matrices</p></li><li><p><code>delta_t::Int64</code> : the fixed time shift t-t_0</p></li><li><p><code>iter=30</code> : the number of iterations of the qr algorithm used to extract the eigenvalues </p></li></ul><p>It returns:</p><ul><li><code>res</code> = Vector{Matrix{uwreal}}</li></ul><p>where each <code>res[i]</code> is a matrix with the eigenvectors as columns Examples:</p><pre><codeclass="language-">mat_array = get_matrix(diag, upper_diag)
corr_pp = corr_obs.(pp_data)
evecs = getall_eigvecs(mat_array, 5)</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article></article><navclass="docs-footer"><aclass="docs-footer-prevpage"href="obs.html">« Observables</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Wednesday 24 February 2021 11:46">Wednesday 24 February 2021</span>. Using Julia version 1.5.0.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
corr_pa = corr_obs.(pa_data)
corr_aa = corr_obs.(aa_data) # array of correlators for different \mu_q combinations
## set up matrices
corr_diag = [corr_pp[1], corr_aa[1]]
corr_upper = [corr_pa[1]]
matrices = [corr_diag, corr_upper]
## solve the GEVP
evals = getall_eigvals(matrices, 5) #where t_0=5
en = energies(evals)
Julia> en[i] # i-th state energy at each timeslice</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.getall_eigvals"href="#juobs.getall_eigvals"><code>juobs.getall_eigvals</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">getall_eigvals(a::Vector{Matrix}, t0; iter=30 )</code></pre><p>This function solves a GEVP problem, returning the eigenvalues, for a list of matrices, taking as generalised matrix the one at index t0, i.e:</p><p><span>$C(t_i)v_i = λ_i C(t_0) v_i$</span>, with i=1:lenght(a)</p><p>It takes as input:</p><ul><li><p><code>a::Vector{Matrix}</code> : a vector of matrices</p></li><li><p><code>t0::Int64</code> : idex value at which the fixed matrix is taken</p></li><li><p><code>iter=30</code> : the number of iterations of the qr algorithm used to extract the eigenvalues </p></li></ul><p>It returns:</p><ul><li><code>res</code> = Vector{Vector{uwreal}}</li></ul><p>where <code>res[i]</code> are the generalised eigenvalues of the i-th matrix of the input array. </p><p>Examples:</p><pre><codeclass="language-">## load data
corr_aa = corr_obs.(aa_data) # array of correlators for different \mu_q combinations
## set up matrices
corr_diag = [corr_pp[1], corr_aa[1]]
corr_upper = [corr_pa[1]]
matrices = [corr_diag, corr_upper]
## solve the GEVP
evals = getall_eigvals(matrices, 5) #where t_0=5
Julia></code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.getall_eigvecs"href="#juobs.getall_eigvecs"><code>juobs.getall_eigvecs</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">getall_eigvecs(a::Vector{Matrix}, delta_t; iter=30 )</code></pre><p>This function solves a GEVP problem, returning the eigenvectors, for a list of matrices.</p><p><span>$C(t_i)v_i = λ_i C(t_i-\delta_t) v_i$</span>, with i=1:lenght(a)</p><p>Here <code>delta_t</code> is the time shift within the two matrices of the problem, and is kept fixed. It takes as input:</p><ul><li><p><code>a::Vector{Matrix}</code> : a vector of matrices</p></li><li><p><code>delta_t::Int64</code> : the fixed time shift t-t_0</p></li><li><p><code>iter=30</code> : the number of iterations of the qr algorithm used to extract the eigenvalues </p></li></ul><p>It returns:</p><ul><li><code>res = Vector{Matrix{uwreal}}</code></li></ul><p>where each <code>res[i]</code> is a matrix with the eigenvectors as columns Examples:</p><pre><codeclass="language-">mat_array = get_matrix(diag, upper_diag)
evecs = getall_eigvecs(mat_array, 5)</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article></article><navclass="docs-footer"><aclass="docs-footer-prevpage"href="obs.html">« Observables</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Friday 26 February 2021 09:53">Friday 26 February 2021</span>. Using Julia version 1.4.2.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Observables · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"data-theme-primary-dark/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><li><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><liclass="is-active"><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="obs.html">Observables</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="obs.html">Observables</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="Observables"><aclass="docs-heading-anchor"href="#Observables">Observables</a><aid="Observables-1"></a><aclass="docs-heading-anchor-permalink"href="#Observables"title="Permalink"></a></h1><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.meff"href="#juobs.meff"><code>juobs.meff</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">meff(corr::Vector{uwreal}, plat::Vector{Int64}; pl::Bool=true, data::Bool=false )
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Observables · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><li><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><liclass="is-active"><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="obs.html">Observables</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="obs.html">Observables</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="Observables"><aclass="docs-heading-anchor"href="#Observables">Observables</a><aid="Observables-1"></a><aclass="docs-heading-anchor-permalink"href="#Observables"title="Permalink"></a></h1><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.meff"href="#juobs.meff"><code>juobs.meff</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">meff(corr::Vector{uwreal}, plat::Vector{Int64}; pl::Bool=true, data::Bool=false )
meff(corr::Corr, plat::Vector{Int64}; pl::Bool=true, data::Bool=false)</code></pre><p>Computes effective mass for a given correlator corr at a given plateau <code>plat</code>. Correlator can be passed as an <code>Corr</code> struct or <code>Vector{uwreal}</code>.</p><p>The flags <code>pl</code> and <code>data</code> allow to show the plots and return data as an extra result.</p><pre><codeclass="language-">data = read_mesons(path, "G5", "G5")
meff(corr::Corr, plat::Vector{Int64}; pl::Bool=true, data::Bool=false)</code></pre><p>Computes effective mass for a given correlator corr at a given plateau <code>plat</code>. Correlator can be passed as an <code>Corr</code> struct or <code>Vector{uwreal}</code>.</p><p>The flags <code>pl</code> and <code>data</code> allow to show the plots and return data as an extra result.</p><pre><codeclass="language-">data = read_mesons(path, "G5", "G5")
</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article></article><navclass="docs-footer"><aclass="docs-footer-prevpage"href="tools.html">« Tools</a><aclass="docs-footer-nextpage"href="linalg.html">Linear Algebra »</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Wednesday 24 February 2021 11:46">Wednesday 24 February 2021</span>. Using Julia version 1.5.0.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article></article><navclass="docs-footer"><aclass="docs-footer-prevpage"href="tools.html">« Tools</a><aclass="docs-footer-nextpage"href="linalg.html">Linear Algebra »</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Friday 26 February 2021 09:53">Friday 26 February 2021</span>. Using Julia version 1.4.2.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Reader · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"data-theme-primary-dark/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><liclass="is-active"><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="reader.html">Reader</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="reader.html">Reader</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="Reader"><aclass="docs-heading-anchor"href="#Reader">Reader</a><aid="Reader-1"></a><aclass="docs-heading-anchor-permalink"href="#Reader"title="Permalink"></a></h1><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.read_mesons"href="#juobs.read_mesons"><code>juobs.read_mesons</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">read_mesons(path::String, g1::Union{String, Nothing}=nothing, g2::Union{String, Nothing}=nothing; id::Union{Int64, Nothing}=nothing)
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Reader · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><liclass="is-active"><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="reader.html">Reader</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="reader.html">Reader</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="Reader"><aclass="docs-heading-anchor"href="#Reader">Reader</a><aid="Reader-1"></a><aclass="docs-heading-anchor-permalink"href="#Reader"title="Permalink"></a></h1><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.read_mesons"href="#juobs.read_mesons"><code>juobs.read_mesons</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">read_mesons(path::String, g1::Union{String, Nothing}=nothing, g2::Union{String, Nothing}=nothing; id::Union{Int64, Nothing}=nothing)
read_mesons(path::Vector{String}, g1::Union{String, Nothing}=nothing, g2::Union{String, Nothing}=nothing; id::Union{Int64, Nothing}=nothing)</code></pre><p>This function read a mesons dat file at a given path and returns a vector of <code>CData</code> structures for different masses and Dirac structures. Dirac structures <code>g1</code> and/or <code>g2</code> can be passed as string arguments in order to filter correaltors. ADerrors id can be specified as argument. If is not specified, the <code>id</code> is fixed according to the ensemble name (example: "H400"-> id = 400)</p><p>Examples:</p><pre><codeclass="language-">read_mesons(path)
read_mesons(path::Vector{String}, g1::Union{String, Nothing}=nothing, g2::Union{String, Nothing}=nothing; id::Union{Int64, Nothing}=nothing)</code></pre><p>This function read a mesons dat file at a given path and returns a vector of <code>CData</code> structures for different masses and Dirac structures. Dirac structures <code>g1</code> and/or <code>g2</code> can be passed as string arguments in order to filter correaltors. ADerrors id can be specified as argument. If is not specified, the <code>id</code> is fixed according to the ensemble name (example: "H400"-> id = 400)</p><p>Examples:</p><pre><codeclass="language-">read_mesons(path)
read_mesons(path, "G5")
read_mesons(path, "G5")
...
@@ -24,4 +24,4 @@ truncate_data!(Y, nc)
...
@@ -24,4 +24,4 @@ truncate_data!(Y, nc)
dat = read_mesons([path1, path2], "G5", "G5")
dat = read_mesons([path1, path2], "G5", "G5")
Y = read_ms.([path1_ms, path2_ms])
Y = read_ms.([path1_ms, path2_ms])
truncate_data!(dat, [nc1, nc2])
truncate_data!(dat, [nc1, nc2])
truncate_data!(Y, [nc1, nc2])</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article></article><navclass="docs-footer"><aclass="docs-footer-prevpage"href="index.html">« Home</a><aclass="docs-footer-nextpage"href="tools.html">Tools »</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Wednesday 24 February 2021 11:46">Wednesday 24 February 2021</span>. Using Julia version 1.5.0.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
truncate_data!(Y, [nc1, nc2])</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article></article><navclass="docs-footer"><aclass="docs-footer-prevpage"href="index.html">« Home</a><aclass="docs-footer-nextpage"href="tools.html">Tools »</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Friday 26 February 2021 09:53">Friday 26 February 2021</span>. Using Julia version 1.4.2.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Search · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"data-theme-primary-dark/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><li><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="search.html">Search</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="search.html">Search</a></li></ul></nav><divclass="docs-right"><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><article><pid="documenter-search-info">Loading search...</p><ulid="documenter-search-results"></ul></article><navclass="docs-footer"><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Wednesday 24 February 2021 11:46">Wednesday 24 February 2021</span>. Using Julia version 1.5.0.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body><script src="search_index.js"></script><script src="assets/search.js"></script></html>
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Search · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><li><aclass="tocitem"href="reader.html">Reader</a></li><li><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="search.html">Search</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="search.html">Search</a></li></ul></nav><divclass="docs-right"><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><article><pid="documenter-search-info">Loading search...</p><ulid="documenter-search-results"></ul></article><navclass="docs-footer"><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Friday 26 February 2021 09:53">Friday 26 February 2021</span>. Using Julia version 1.4.2.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body><script src="search_index.js"></script><script src="assets/search.js"></script></html>
[{"location":"reader.html#Reader","page":"Reader","title":"Reader","text":"","category":"section"},{"location":"reader.html","page":"Reader","title":"Reader","text":"read_mesons\nread_ms\nread_ms1\nread_md\ntruncate_data!","category":"page"},{"location":"reader.html#juobs.read_mesons","page":"Reader","title":"juobs.read_mesons","text":"read_mesons(path::String, g1::Union{String, Nothing}=nothing, g2::Union{String, Nothing}=nothing; id::Union{Int64, Nothing}=nothing)\n\nread_mesons(path::Vector{String}, g1::Union{String, Nothing}=nothing, g2::Union{String, Nothing}=nothing; id::Union{Int64, Nothing}=nothing)\n\nThis function read a mesons dat file at a given path and returns a vector of CData structures for different masses and Dirac structures. Dirac structures g1 and/or g2 can be passed as string arguments in order to filter correaltors. ADerrors id can be specified as argument. If is not specified, the id is fixed according to the ensemble name (example: \"H400\"-> id = 400)\n\nExamples:\n\nread_mesons(path)\nread_mesons(path, \"G5\")\nread_mesons(path, nothing, \"G5\")\nread_mesons(path, \"G5\", \"G5\")\nread_mesons(path, \"G5\", \"G5\", id=1)\nread_mesons([path1, path2], \"G5\", \"G5\")\n\n\n\n\n\n","category":"function"},{"location":"reader.html#juobs.read_ms","page":"Reader","title":"juobs.read_ms","text":"read_ms(path::String; id::Union{Int64, Nothing}=nothing, dtr::Int64=1)\n\nReads openQCD ms dat files at a given path. This method return YData: \n\nt(t): flow time values\nYsl(icfg, x0, t): the time-slice sums of the densities of the Yang-Mills action \nvtr: vector that contains trajectory number\nid: ensmble id\n\nExamples:\n\nY = read_ms(path)\n\n\n\n\n\n","category":"function"},{"location":"reader.html#juobs.read_ms1","page":"Reader","title":"juobs.read_ms1","text":"read_ms1(path::String; v::String=\"1.2\")\n\nReads openQCD ms1 dat files at a given path. This method returns a matrix W[irw, icfg] that contains the reweighting factors, where irw is the rwf index and icfg the configuration number. The function is compatible with the output files of openQCD v=1.2, 1.4 and 1.6. Version can be specified as argument.\n\nExamples:\n\nread_ms1(path)\nread_ms1(path, v=\"1.4\")\nread_ms1(path, v=\"1.6\")\n\n\n\n\n\n","category":"function"},{"location":"reader.html#juobs.read_md","page":"Reader","title":"juobs.read_md","text":"read_md(path::String)\n\nReads openQCD pbp.dat files at a given path. This method returns a matrix md[irw, icfg] that contains the derivatives dSdm, where mdirw=1 = dSdm_l and mdirw=2 = dSdm_s\n\nSeff = -tr(log(D+m))\n\ndSeff dm = -tr((D+m)^-1)\n\nExamples:\n\nmd = read_md(path)\n\n\n\n\n\n","category":"function"},{"location":"reader.html#juobs.truncate_data!","page":"Reader","title":"juobs.truncate_data!","text":"truncate_data!(data::YData, nc::Int64)\n\ntruncate_data!(data::Vector{YData}, nc::Vector{Int64})\n\ntruncate_data!(data::Vector{CData}, nc::Int64)\n\ntruncate_data!(data::Vector{Vector{CData}}, nc::Vector{Int64})\n\nTruncates the output of read_mesons and read_ms taking the first nc configurations.\n\nExamples:\n\n#Single replica\ndat = read_mesons(path, \"G5\", \"G5\")\nY = read_ms(path)\ntruncate_data!(dat, nc)\ntruncate_data!(Y, nc)\n\n#Two replicas\ndat = read_mesons([path1, path2], \"G5\", \"G5\")\nY = read_ms.([path1_ms, path2_ms])\ntruncate_data!(dat, [nc1, nc2])\ntruncate_data!(Y, [nc1, nc2])\n\n\n\n\n\n","category":"function"},{"location":"linalg.html#Linear-Algebra","page":"Linear Algebra","title":"Linear Algebra","text":"","category":"section"},{"location":"linalg.html","page":"Linear Algebra","title":"Linear Algebra","text":"uweigvals\nuweigvecs\nuweigen\nget_matrix\nenergies\ngetall_eigvals\ngetall_eigvecs","category":"page"},{"location":"linalg.html#juobs.uweigvals","page":"Linear Algebra","title":"juobs.uweigvals","text":"uweigvals(a::Matrix{uwreal}; iter = 30)\n\nuweigvals(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)\n\nThis function computes the eigenvalues of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvalues instead. It takes as input:\n\na::Matrix{uwreal} : a matrix of uwreal\nb::Matrix{uwreal} : a matrix of uwreal, optional\n\nIt returns:\n\nres = Vector{uwreal}: a vector where each elements is an eigenvalue \n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.uweigvecs","page":"Linear Algebra","title":"juobs.uweigvecs","text":"uweigvecs(a::Matrix{uwreal}; iter = 30)\n\nuweigvecs(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)\n\nThis function computes the eigenvectors of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvectors instead. It takes as input:\n\na::Matrix{uwreal} : a matrix of uwreal\nb::Matrix{uwreal} : a matrix of uwreal, optional\n\nIt returns:\n\nres = Matrix{uwreal}: a matrix where each column is an eigenvector \n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.uweigen","page":"Linear Algebra","title":"juobs.uweigen","text":"uweigen(a::Matrix{uwreal}; iter = 30)\n\nuweigen(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)\n\nThis function computes the eigenvalues and the eigenvectors of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvalues and eigenvectors instead. It takes as input:\n\na::Matrix{uwreal} : a matrix of uwreal\nb::Matrix{uwreal} : a matrix of uwreal, optional\n\nIt returns:\n\nevals = Vector{uwreal}: a vector where each elements is an eigenvalue \nevecs = Matrix{uwreal}: a matrix where the i-th column is the eigenvector of the i-th eigenvalue\n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.get_matrix","page":"Linear Algebra","title":"juobs.get_matrix","text":"get_matrix(corr_diag::Vector{Array}, corr_upper::Vector{Array} )\n\nThis method returns an array of dim T where each element is a symmetrix matrix of dimension n of uwreal correlators at fixed time i=1..T. It takes as input:\n\ncorr_diag: vector of dimension n of correlators liying on the diagonal \n\ncorr_upper: vector of correlators liying on the upper diagonal.\n\nEach correlator is an vector of uwreal variables of dimension T.\n\nExample:\n\nfor i in 1:n\na[i,i] = Vector{uwreal} # vector of uwreal variables of dimension T. They will constitute the diagonal elements of the matrices\n\nfor i in 1:n-1 \n for j in i+1:n\n a[i,j] = Vector{uwreal} # vector of uwreal variables of dimension T. They will constitute the upper diagonal elements of the matrices. A matrix\n of dimension n*n has n(n-1)/2 upper diagonal elements.\n\nAssume n=4\n\ndiagonal = Vector{Array}()\npush!(diagonal, a[1,1],a[2,2],a[3,3],a[4,4])\nupsize = Vector{Array}()\npush!(upsize, a[1,2], a[1,3], a[1,4], a[2,3], a[2,4], a[3,4])\n\narray_of_matrices = get_matrix(diagonal, upsize)\n\nJulia> T-element Array{Array,1}\n\nsize(array_of_matrices)\n\nJulia> (T,)\n\narray_of_matrices[t] # t in 1:T\n\nJulia> 4*4 Array{uwreal,2}\n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.energies","page":"Linear Algebra","title":"juobs.energies","text":"energies(evals::Vector{Array})\n\nGiven a vector where each entry evals[t] is a uwreal array of eigenvalues, this method computes the effective energies of the first N states, where N=dim(evals[t]). The index t here runs from 1:T=lenght(evals), while the index i stands for the number of energy levels computed: i = length(evals[t]) It returns a vector array eff_en where each entry eff_en[t] contains the first N states energies as uwreal objects \n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.getall_eigvals","page":"Linear Algebra","title":"juobs.getall_eigvals","text":"getall_eigvals(a::Vector{Matrix}, t0; iter=30 )\n\nThis function solves a GEVP problem, returning the eigenvalues, for a list of matrices, taking as generalised matrix the one at index t0, i.e:\n\nC(t_i)v_i = λ_i C(t_0) v_i, with i=1:lenght(a)\n\nIt takes as input:\n\na::Vector{Matrix} : a vector of matrices\nt0::Int64 : idex value at which the fixed matrix is taken\niter=30 : the number of iterations of the qr algorithm used to extract the eigenvalues \n\nIt returns:\n\nres = Vector{Vector{uwreal}}\n\nwhere res[i] are the generalised eigenvalues of the i-th matrix of the input array. \n\nExamples:\n\nmat_array = get_matrix(diag, upper_diag)\nevals = getall_eigvals(mat_array, 5)\n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.getall_eigvecs","page":"Linear Algebra","title":"juobs.getall_eigvecs","text":"getall_eigvecs(a::Vector{Matrix}, delta_t; iter=30 )\n\nThis function solves a GEVP problem, returning the eigenvectors, for a list of matrices.\n\nC(t_i)v_i = λ_i C(t_i-delta_t) v_i, with i=1:lenght(a)\n\nHere delta_t is the time shift within the two matrices of the problem, and is kept fixed. It takes as input:\n\na::Vector{Matrix} : a vector of matrices\ndelta_t::Int64 : the fixed time shift t-t_0\niter=30 : the number of iterations of the qr algorithm used to extract the eigenvalues \n\nIt returns:\n\nres = Vector{Matrix{uwreal}}\n\nwhere each res[i] is a matrix with the eigenvectors as columns Examples:\n\nmat_array = get_matrix(diag, upper_diag)\nevecs = getall_eigvecs(mat_array, 5)\n\n\n\n\n\n","category":"function"},{"location":"obs.html#Observables","page":"Observables","title":"Observables","text":"","category":"section"},{"location":"obs.html","page":"Observables","title":"Observables","text":"meff\ndec_const_pcvc\ncomp_t0","category":"page"},{"location":"obs.html#juobs.meff","page":"Observables","title":"juobs.meff","text":"meff(corr::Vector{uwreal}, plat::Vector{Int64}; pl::Bool=true, data::Bool=false ) \n\nmeff(corr::Corr, plat::Vector{Int64}; pl::Bool=true, data::Bool=false)\n\nComputes effective mass for a given correlator corr at a given plateau plat. Correlator can be passed as an Corr struct or Vector{uwreal}.\n\nThe flags pl and data allow to show the plots and return data as an extra result.\n\ndata = read_mesons(path, \"G5\", \"G5\")\ncorr_pp = corr_obs.(data)\nm = meff(corr_pp[1], [50, 60], pl=false)\n\n\n\n\n\n","category":"function"},{"location":"obs.html#juobs.dec_const_pcvc","page":"Observables","title":"juobs.dec_const_pcvc","text":"dec_const_pcvc(corr::Vector{uwreal}, plat::Vector{Int64}, m::uwreal, mu::Vector{Float64}, y0::Int64 ; pl::Bool=true, data::Bool=false)meff(corr::Corr, plat::Vector{Int64}; pl::Bool=true, data::Bool=false)\n\ndec_const_pcvc(corr::Corr, plat::Vector{Int64}, m::uwreal; pl::Bool=true, data::Bool=false)\n\nComputes decay constant using the PCVC relation for twisted mass fermions. The decay constant is computed in the plateau plat. Correlator can be passed as an Corr struct or Vector{uwreal}. If it is passed as a uwreal vector, vector of twisted masses mu and source position y0 must be specified.\n\nThe flags pl and data allow to show the plots and return data as an extra result.\n\ndata = read_mesons(path, \"G5\", \"G5\")\ncorr_pp = corr_obs.(data)\nm = meff(corr_pp[1], [50, 60], pl=false)\nf = dec_const_pcvc(corr_pp[1], [50, 60], m, pl=false)\n\n\n\n\n\n","category":"function"},{"location":"obs.html#juobs.comp_t0","page":"Observables","title":"juobs.comp_t0","text":"comp_t0(Y::YData, plat::Vector{Int64}; L::Int64, pl::Bool=false, rw::Union{Matrix{Float64}, Nothing}=nothing, npol::Int64=2)\n\ncomp_t0(Y::Vector{YData}, plat::Vector{Int64}; L::Int64, pl::Bool=false, rw::Union{Vector{Matrix{Float64}}, Nothing}=nothing, npol::Int64=2)\n\nComputes t0 using the energy density of the action Ysl(Yang-Mills action). t0 is computed in the plateau plat. A polynomial interpolation in t is performed to find t0, where npol is the degree of the polynomial (linear fit by default)\n\nThe flag pl allows to show the plot.\n\n#Single replica\nY = read_ms(path)\nrw = read_ms(path_rw)\n\nt0 = comp_t0(Y, [38, 58], L=32)\nt0_r = comp_t0(Y, [38, 58], L=32, rw=rw)\n\n#Two replicas\nY1 = read_ms(path1)\nY2 = read_ms(path2)\nrw1 = read_ms(path_rw1)\nrw2 = read_ms(path_rw2)\n\nt0 = comp_t0([Y1, Y2], [38, 58], L=32, pl=true)\nt0_r = comp_t0(Y, [38, 58], L=32, rw=[rw1, rw2], pl=true)\n\n\n\n\n\n\n","category":"function"},{"location":"index.html#DOCUMENTATION","page":"Home","title":"DOCUMENTATION","text":"","category":"section"},{"location":"index.html#Contents","page":"Home","title":"Contents","text":"","category":"section"},{"location":"index.html","page":"Home","title":"Home","text":"Pages = [\"reader.md\", \"tools.md\", \"obs.md\", \"linalg.md\"]\nDepth = 3","category":"page"},{"location":"tools.html#Tools","page":"Tools","title":"Tools","text":"","category":"section"},{"location":"tools.html","page":"Tools","title":"Tools","text":"corr_obs\nmd_sea\nlin_fit\nfit_routine","category":"page"},{"location":"tools.html#juobs.corr_obs","page":"Tools","title":"juobs.corr_obs","text":"corr_obs(cdata::CData; real::Bool=true, rw::Union{Array{Float64, 2}, Nothing}=nothing, L::Int64=1)\n\ncorr_obs(cdata::Array{CData, 1}; real::Bool=true, rw::Union{Array{Array{Float64, 2}, 1}, Nothing}=nothing, L::Int64=1)\n\nCreates a Corr struct with the given CData struct cdata (read_mesons) for a single replica. An array of CData can be passed as argument for multiple replicas.\n\nThe flag real select the real or imaginary part of the correlator. If rw is specified, the method applies reweighting. rw is passed as a matrix of Float64 (read_ms1) The correlator can be normalized with the volume factor if L is fixed.\n\n#Single replica\ndata = read_mesons(path, \"G5\", \"G5\")\nrw = read_ms1(path_rw)\ncorr_pp = corr_obs.(data)\ncorr_pp_r = corr_obs.(data, rw=rw)\n\n#Two replicas\ndata = read_mesons([path_r1, path_r2], \"G5\", \"G5\")\nrw1 = read_ms1(path_rw1)\nrw2 = read_ms1(path_rw2)\n\ncorr_pp = corr_obs.(data)\ncorr_pp_r = corr_obs.(data, rw=[rw1, rw2])\n\n\n\n\n\n","category":"function"},{"location":"tools.html#juobs.md_sea","page":"Tools","title":"juobs.md_sea","text":"md_sea(a::uwreal, md::Vector{Matrix{Float64}}, ws::ADerrors.wspace=ADerrors.wsg)\n\nComputes the derivative of an observable A with respect to the sea quark masses.\n\nd A dm(sea) = sum_i (dA dO_i) * (dO_i dm(sea)) \n\nd O dm(sea) = O dSdm - O dSdm = - (O - O) (dSdm - dSdm) \n\nwhere O_i are primary observables \n\nmd is a vector that contains the derivative of the action S with respect to the sea quark masses for each replica. md[irep][irw, icfg]\n\nmd_sea returns a tuple of uwreal observables (dA/dml, dA/dms)|sea, where ml and ms are the light and strange quark masses.\n\n#Single replica\ndata = read_mesons(path, \"G5\", \"G5\")\nmd = read_md(path_md)\ncorr_pp = corr_obs.(data)\nm = meff(corr_pp[1], plat)\nm_mdl, m_mds = md_sea(m, [md], ADerrors.wsg)\nm_shifted = m + 2 * dml * m_mdl + dms * m_mds\n\n#Two replicas\ndata = read_mesons([path_r1, path_r2], \"G5\", \"G5\")\nmd1 = read_md(path_md1)\nmd2 = read_md(path_md2)\n\ncorr_pp = corr_obs.(data)\nm = meff(corr_pp[1], plat)\nm_mdl, m_mds = md_sea(m, [md1, md2], ADerrors.wsg)\nm_shifted = m + 2 * dml * m_mdl + dms * m_mds\n\n\n\n\n\n","category":"function"},{"location":"tools.html#juobs.lin_fit","page":"Tools","title":"juobs.lin_fit","text":"lin_fit(x::Vector{<:Real}, y::Vector{uwreal})\n\nComputes a linear fit of uwreal data points y. This method return uwreal fit parameters and chisqexpected.\n\nfitp, csqexp = lin_fit(phi2, m2)\nm2_phys = fitp[1] + fitp[2] * phi2_phys\n\n\n\n\n\n","category":"function"},{"location":"tools.html#juobs.fit_routine","page":"Tools","title":"juobs.fit_routine","text":"fit_routine(model::Function, xdata::Array{<:Real}, ydata::Array{uwreal}, param::Int64=3; wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}}, Nothing}=nothing)\n\nfit_routine(model::Function, xdata::Array{uwreal}, ydata::Array{uwreal}, param::Int64=3; wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}}, Nothing}=nothing, covar::Bool=false)\n\nGiven a model function with a number param of parameters and an array of uwreal, this function fit ydata with the given model and print fit information The method return an array upar with the best fit parameters with their errors. The flag wpm is an optional array of Float64 of lenght 4. The first three paramenters specify the criteria to determine the summation windows:\n\nvp[1]: The autocorrelation function is summed up to t = round(vp1).\nvp[2]: The sumation window is determined using U. Wolff poposal with S_tau = wpm2\nvp[3]: The autocorrelation function Gamma(t) is summed up a point where its error deltaGamma(t) is a factor vp[3] times larger than the signal.\n\nAn additional fourth parameter vp[4], tells ADerrors to add a tail to the error with tau_exp = wpm4. Negative values of wpm[1:4] are ignored and only one component of wpm[1:3] needs to be positive. If the flag covaris set to true, fit_routine takes into account covariances between x and y for each data point.\n\n@. model(x,p) = p[1] + p[2] * exp(-(p[3]-p[1])*x)\n@. model2(x,p) = p[1] + p[2] * x[:, 1] + (p[3] + p[4] * x[:, 1]) * x[:, 2]\nfit_routine(model, xdata, ydata, param=3)\nfit_routine(model, xdata, ydata, param=3, covar=true)\n\n\n\n\n\n","category":"function"}]
[{"location":"reader.html#Reader","page":"Reader","title":"Reader","text":"","category":"section"},{"location":"reader.html","page":"Reader","title":"Reader","text":"read_mesons\nread_ms\nread_ms1\nread_md\ntruncate_data!","category":"page"},{"location":"reader.html#juobs.read_mesons","page":"Reader","title":"juobs.read_mesons","text":"read_mesons(path::String, g1::Union{String, Nothing}=nothing, g2::Union{String, Nothing}=nothing; id::Union{Int64, Nothing}=nothing)\n\nread_mesons(path::Vector{String}, g1::Union{String, Nothing}=nothing, g2::Union{String, Nothing}=nothing; id::Union{Int64, Nothing}=nothing)\n\nThis function read a mesons dat file at a given path and returns a vector of CData structures for different masses and Dirac structures. Dirac structures g1 and/or g2 can be passed as string arguments in order to filter correaltors. ADerrors id can be specified as argument. If is not specified, the id is fixed according to the ensemble name (example: \"H400\"-> id = 400)\n\nExamples:\n\nread_mesons(path)\nread_mesons(path, \"G5\")\nread_mesons(path, nothing, \"G5\")\nread_mesons(path, \"G5\", \"G5\")\nread_mesons(path, \"G5\", \"G5\", id=1)\nread_mesons([path1, path2], \"G5\", \"G5\")\n\n\n\n\n\n","category":"function"},{"location":"reader.html#juobs.read_ms","page":"Reader","title":"juobs.read_ms","text":"read_ms(path::String; id::Union{Int64, Nothing}=nothing, dtr::Int64=1)\n\nReads openQCD ms dat files at a given path. This method return YData: \n\nt(t): flow time values\nYsl(icfg, x0, t): the time-slice sums of the densities of the Yang-Mills action \nvtr: vector that contains trajectory number\nid: ensmble id\n\nExamples:\n\nY = read_ms(path)\n\n\n\n\n\n","category":"function"},{"location":"reader.html#juobs.read_ms1","page":"Reader","title":"juobs.read_ms1","text":"read_ms1(path::String; v::String=\"1.2\")\n\nReads openQCD ms1 dat files at a given path. This method returns a matrix W[irw, icfg] that contains the reweighting factors, where irw is the rwf index and icfg the configuration number. The function is compatible with the output files of openQCD v=1.2, 1.4 and 1.6. Version can be specified as argument.\n\nExamples:\n\nread_ms1(path)\nread_ms1(path, v=\"1.4\")\nread_ms1(path, v=\"1.6\")\n\n\n\n\n\n","category":"function"},{"location":"reader.html#juobs.read_md","page":"Reader","title":"juobs.read_md","text":"read_md(path::String)\n\nReads openQCD pbp.dat files at a given path. This method returns a matrix md[irw, icfg] that contains the derivatives dSdm, where mdirw=1 = dSdm_l and mdirw=2 = dSdm_s\n\nSeff = -tr(log(D+m))\n\ndSeff dm = -tr((D+m)^-1)\n\nExamples:\n\nmd = read_md(path)\n\n\n\n\n\n","category":"function"},{"location":"reader.html#juobs.truncate_data!","page":"Reader","title":"juobs.truncate_data!","text":"truncate_data!(data::YData, nc::Int64)\n\ntruncate_data!(data::Vector{YData}, nc::Vector{Int64})\n\ntruncate_data!(data::Vector{CData}, nc::Int64)\n\ntruncate_data!(data::Vector{Vector{CData}}, nc::Vector{Int64})\n\nTruncates the output of read_mesons and read_ms taking the first nc configurations.\n\nExamples:\n\n#Single replica\ndat = read_mesons(path, \"G5\", \"G5\")\nY = read_ms(path)\ntruncate_data!(dat, nc)\ntruncate_data!(Y, nc)\n\n#Two replicas\ndat = read_mesons([path1, path2], \"G5\", \"G5\")\nY = read_ms.([path1_ms, path2_ms])\ntruncate_data!(dat, [nc1, nc2])\ntruncate_data!(Y, [nc1, nc2])\n\n\n\n\n\n","category":"function"},{"location":"linalg.html#Linear-Algebra","page":"Linear Algebra","title":"Linear Algebra","text":"","category":"section"},{"location":"linalg.html","page":"Linear Algebra","title":"Linear Algebra","text":"uweigvals\nuweigvecs\nuweigen\nget_matrix\nenergies\ngetall_eigvals\ngetall_eigvecs","category":"page"},{"location":"linalg.html#juobs.uweigvals","page":"Linear Algebra","title":"juobs.uweigvals","text":"uweigvals(a::Matrix{uwreal}; iter = 30)\n\nuweigvals(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)\n\nThis function computes the eigenvalues of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvalues instead. It takes as input:\n\na::Matrix{uwreal} : a matrix of uwreal\nb::Matrix{uwreal} : a matrix of uwreal, optional\niter=30: optional flag to set the iterations of the qr algorithm used to solve the eigenvalue problem\n\nIt returns:\n\nres = Vector{uwreal}: a vector where each elements is an eigenvalue \n\na = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries\nb = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries\n\nres = uweigvals(a) ##eigenvalues\nres1 = uweigvals(a,b) ## generalised eigenvalues\n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.uweigvecs","page":"Linear Algebra","title":"juobs.uweigvecs","text":"uweigvecs(a::Matrix{uwreal}; iter = 30)\n\nuweigvecs(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)\n\nThis function computes the eigenvectors of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvectors instead. It takes as input:\n\na::Matrix{uwreal} : a matrix of uwreal\nb::Matrix{uwreal} : a matrix of uwreal, optional\niter=30 : the number of iterations of the qr algorithm used to extract the eigenvalues \n\nIt returns:\n\nres = Matrix{uwreal}: a matrix where each column is an eigenvector \n\nExamples:\n\na = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries\nb = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries\n\nres = uweigvecs(a) ##eigenvectors in column \nres1 = uweigvecs(a,b) ## generalised eigenvectors in column \n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.uweigen","page":"Linear Algebra","title":"juobs.uweigen","text":"uweigen(a::Matrix{uwreal}; iter = 30)\n\nuweigen(a::Matrix{uwreal}, b::Matrix{uwreal}; iter = 30)\n\nThis function computes the eigenvalues and the eigenvectors of a matrix of uwreal objects. If a second matrix b is given as input, it returns the generalised eigenvalues and eigenvectors instead. It takes as input:\n\na::Matrix{uwreal} : a matrix of uwreal\nb::Matrix{uwreal} : a matrix of uwreal, optional\niter=30 : the number of iterations of the qr algorithm used to extract the eigenvalues \n\nIt returns:\n\nevals = Vector{uwreal}: a vector where each elements is an eigenvalue \nevecs = Matrix{uwreal}: a matrix where the i-th column is the eigenvector of the i-th eigenvalue\n\nExamples:\n\na = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries\nb = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries\n\neval, evec = uweigen(a) \neval1, evec1 = uweigvecs(a,b) \n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.get_matrix","page":"Linear Algebra","title":"juobs.get_matrix","text":"get_matrix(diag::Vector{Array}, upper::Vector{Array} )\n\nThis function allows the user to build an array of matrices, where each matrix is a symmetric matrix of correlators at a given timeslice. \n\nIt takes as input:\n\ndiag::Vector{Array}: vector of correlators. Each correlator will constitute a diagonal element of the matrices A[i] where i runs over the timeslices, i.e. A[i][1,1] = diag[1], .... A[i][n,n] = diag[n] Given n=length(diag), the matrices will have dimension n*n \nupper::Vector{Array}: vector of correlators liying on the upper diagonal position. A[i][1,2] = upper[1], .. , A[i][1,n] = upper[n-1], A[i][2,3] = upper[n], .. , A[i][n-1,n] = upper[n(n-1)/2] Given n, length(upper)=n(n-1)/2\n\nThe method returns an array of symmetric matrices of dimension n for each timeslice \n\nExamples:\n\n## load data \npp_data = read_mesons(path, \"G5\", \"G5\")\npa_data = read_mesons(path, \"G5\", \"G0G5\")\naa_data = read_mesons(path, \"G0G5\", \"G0G5\")\n\n## create Corr struct\ncorr_pp = corr_obs.(pp_data)\ncorr_pa = corr_obs.(pa_data)\ncorr_aa = corr_obs.(aa_data) # array of correlators for different \\mu_q combinations\n\n## set up matrices\ncorr_diag = [corr_pp[1], corr_aa[1]] \ncorr_upper = [corr_pa[1]]\n\nmatrices = [corr_diag, corr_upper]\n\nJulia> matrices[i]\n pp[i] ap[i]\n pa[i] aa[i]\n\n## where i runs over the timeslices\n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.energies","page":"Linear Algebra","title":"juobs.energies","text":"energies(evals::Vector{Array}; wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}}, Nothing}=nothing)\n\nThis method computes the energy level from the eigenvalues according to:\n\nE_i(t) = log(λ(t) λ(t+1))\n\nwhere i=1,..,n with n=length(evals[1]) and t=1,..,T total time slices. It returns a vector array en where each entry en[i][t] contains the i-th states energy at time t \n\nExamples:\n\n## load data\npp_data = read_mesons(path, \"G5\", \"G5\")\npa_data = read_mesons(path, \"G5\", \"G0G5\")\naa_data = read_mesons(path, \"G0G5\", \"G0G5\")\n\n## create Corr struct\ncorr_pp = corr_obs.(pp_data)\ncorr_pa = corr_obs.(pa_data)\ncorr_aa = corr_obs.(aa_data) # array of correlators for different \\mu_q combinations\n\n## set up matrices \ncorr_diag = [corr_pp[1], corr_aa[1]] \ncorr_upper = [corr_pa[1]]\n\nmatrices = [corr_diag, corr_upper]\n\n## solve the GEVP\nevals = getall_eigvals(matrices, 5) #where t_0=5\nen = energies(evals)\n\nJulia> en[i] # i-th state energy at each timeslice\n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.getall_eigvals","page":"Linear Algebra","title":"juobs.getall_eigvals","text":"getall_eigvals(a::Vector{Matrix}, t0; iter=30 )\n\nThis function solves a GEVP problem, returning the eigenvalues, for a list of matrices, taking as generalised matrix the one at index t0, i.e:\n\nC(t_i)v_i = λ_i C(t_0) v_i, with i=1:lenght(a)\n\nIt takes as input:\n\na::Vector{Matrix} : a vector of matrices\nt0::Int64 : idex value at which the fixed matrix is taken\niter=30 : the number of iterations of the qr algorithm used to extract the eigenvalues \n\nIt returns:\n\nres = Vector{Vector{uwreal}}\n\nwhere res[i] are the generalised eigenvalues of the i-th matrix of the input array. \n\nExamples:\n\n## load data\npp_data = read_mesons(path, \"G5\", \"G5\")\npa_data = read_mesons(path, \"G5\", \"G0G5\")\naa_data = read_mesons(path, \"G0G5\", \"G0G5\")\n\n## create Corr struct\ncorr_pp = corr_obs.(pp_data)\ncorr_pa = corr_obs.(pa_data)\ncorr_aa = corr_obs.(aa_data) # array of correlators for different \\mu_q combinations\n\n## set up matrices \ncorr_diag = [corr_pp[1], corr_aa[1]] \ncorr_upper = [corr_pa[1]]\n\nmatrices = [corr_diag, corr_upper]\n\n## solve the GEVP\nevals = getall_eigvals(matrices, 5) #where t_0=5\n\n\nJulia>\n\n\n\n\n\n","category":"function"},{"location":"linalg.html#juobs.getall_eigvecs","page":"Linear Algebra","title":"juobs.getall_eigvecs","text":"getall_eigvecs(a::Vector{Matrix}, delta_t; iter=30 )\n\nThis function solves a GEVP problem, returning the eigenvectors, for a list of matrices.\n\nC(t_i)v_i = λ_i C(t_i-delta_t) v_i, with i=1:lenght(a)\n\nHere delta_t is the time shift within the two matrices of the problem, and is kept fixed. It takes as input:\n\na::Vector{Matrix} : a vector of matrices\ndelta_t::Int64 : the fixed time shift t-t_0\niter=30 : the number of iterations of the qr algorithm used to extract the eigenvalues \n\nIt returns:\n\nres = Vector{Matrix{uwreal}}\n\nwhere each res[i] is a matrix with the eigenvectors as columns Examples:\n\nmat_array = get_matrix(diag, upper_diag)\nevecs = getall_eigvecs(mat_array, 5)\n\n\n\n\n\n","category":"function"},{"location":"obs.html#Observables","page":"Observables","title":"Observables","text":"","category":"section"},{"location":"obs.html","page":"Observables","title":"Observables","text":"meff\ndec_const_pcvc\ncomp_t0","category":"page"},{"location":"obs.html#juobs.meff","page":"Observables","title":"juobs.meff","text":"meff(corr::Vector{uwreal}, plat::Vector{Int64}; pl::Bool=true, data::Bool=false ) \n\nmeff(corr::Corr, plat::Vector{Int64}; pl::Bool=true, data::Bool=false)\n\nComputes effective mass for a given correlator corr at a given plateau plat. Correlator can be passed as an Corr struct or Vector{uwreal}.\n\nThe flags pl and data allow to show the plots and return data as an extra result.\n\ndata = read_mesons(path, \"G5\", \"G5\")\ncorr_pp = corr_obs.(data)\nm = meff(corr_pp[1], [50, 60], pl=false)\n\n\n\n\n\n","category":"function"},{"location":"obs.html#juobs.dec_const_pcvc","page":"Observables","title":"juobs.dec_const_pcvc","text":"dec_const_pcvc(corr::Vector{uwreal}, plat::Vector{Int64}, m::uwreal, mu::Vector{Float64}, y0::Int64 ; pl::Bool=true, data::Bool=false)meff(corr::Corr, plat::Vector{Int64}; pl::Bool=true, data::Bool=false)\n\ndec_const_pcvc(corr::Corr, plat::Vector{Int64}, m::uwreal; pl::Bool=true, data::Bool=false)\n\nComputes decay constant using the PCVC relation for twisted mass fermions. The decay constant is computed in the plateau plat. Correlator can be passed as an Corr struct or Vector{uwreal}. If it is passed as a uwreal vector, vector of twisted masses mu and source position y0 must be specified.\n\nThe flags pl and data allow to show the plots and return data as an extra result.\n\ndata = read_mesons(path, \"G5\", \"G5\")\ncorr_pp = corr_obs.(data)\nm = meff(corr_pp[1], [50, 60], pl=false)\nf = dec_const_pcvc(corr_pp[1], [50, 60], m, pl=false)\n\n\n\n\n\n","category":"function"},{"location":"obs.html#juobs.comp_t0","page":"Observables","title":"juobs.comp_t0","text":"comp_t0(Y::YData, plat::Vector{Int64}; L::Int64, pl::Bool=false, rw::Union{Matrix{Float64}, Nothing}=nothing, npol::Int64=2)\n\ncomp_t0(Y::Vector{YData}, plat::Vector{Int64}; L::Int64, pl::Bool=false, rw::Union{Vector{Matrix{Float64}}, Nothing}=nothing, npol::Int64=2)\n\nComputes t0 using the energy density of the action Ysl(Yang-Mills action). t0 is computed in the plateau plat. A polynomial interpolation in t is performed to find t0, where npol is the degree of the polynomial (linear fit by default)\n\nThe flag pl allows to show the plot.\n\n#Single replica\nY = read_ms(path)\nrw = read_ms(path_rw)\n\nt0 = comp_t0(Y, [38, 58], L=32)\nt0_r = comp_t0(Y, [38, 58], L=32, rw=rw)\n\n#Two replicas\nY1 = read_ms(path1)\nY2 = read_ms(path2)\nrw1 = read_ms(path_rw1)\nrw2 = read_ms(path_rw2)\n\nt0 = comp_t0([Y1, Y2], [38, 58], L=32, pl=true)\nt0_r = comp_t0(Y, [38, 58], L=32, rw=[rw1, rw2], pl=true)\n\n\n\n\n\n\n","category":"function"},{"location":"index.html#DOCUMENTATION","page":"Home","title":"DOCUMENTATION","text":"","category":"section"},{"location":"index.html#Contents","page":"Home","title":"Contents","text":"","category":"section"},{"location":"index.html","page":"Home","title":"Home","text":"Pages = [\"reader.md\", \"tools.md\", \"obs.md\", \"linalg.md\"]\nDepth = 3","category":"page"},{"location":"tools.html#Tools","page":"Tools","title":"Tools","text":"","category":"section"},{"location":"tools.html","page":"Tools","title":"Tools","text":"corr_obs\nmd_sea\nlin_fit\nfit_routine","category":"page"},{"location":"tools.html#juobs.corr_obs","page":"Tools","title":"juobs.corr_obs","text":"corr_obs(cdata::CData; real::Bool=true, rw::Union{Array{Float64, 2}, Nothing}=nothing, L::Int64=1)\n\ncorr_obs(cdata::Array{CData, 1}; real::Bool=true, rw::Union{Array{Array{Float64, 2}, 1}, Nothing}=nothing, L::Int64=1)\n\nCreates a Corr struct with the given CData struct cdata (read_mesons) for a single replica. An array of CData can be passed as argument for multiple replicas.\n\nThe flag real select the real or imaginary part of the correlator. If rw is specified, the method applies reweighting. rw is passed as a matrix of Float64 (read_ms1) The correlator can be normalized with the volume factor if L is fixed.\n\n#Single replica\ndata = read_mesons(path, \"G5\", \"G5\")\nrw = read_ms1(path_rw)\ncorr_pp = corr_obs.(data)\ncorr_pp_r = corr_obs.(data, rw=rw)\n\n#Two replicas\ndata = read_mesons([path_r1, path_r2], \"G5\", \"G5\")\nrw1 = read_ms1(path_rw1)\nrw2 = read_ms1(path_rw2)\n\ncorr_pp = corr_obs.(data)\ncorr_pp_r = corr_obs.(data, rw=[rw1, rw2])\n\n\n\n\n\n","category":"function"},{"location":"tools.html#juobs.md_sea","page":"Tools","title":"juobs.md_sea","text":"md_sea(a::uwreal, md::Vector{Matrix{Float64}}, ws::ADerrors.wspace=ADerrors.wsg)\n\nComputes the derivative of an observable A with respect to the sea quark masses.\n\nd A dm(sea) = sum_i (dA dO_i) * (dO_i dm(sea)) \n\nd O dm(sea) = O dSdm - O dSdm = - (O - O) (dSdm - dSdm) \n\nwhere O_i are primary observables \n\nmd is a vector that contains the derivative of the action S with respect to the sea quark masses for each replica. md[irep][irw, icfg]\n\nmd_sea returns a tuple of uwreal observables (dA/dml, dA/dms)|sea, where ml and ms are the light and strange quark masses.\n\n#Single replica\ndata = read_mesons(path, \"G5\", \"G5\")\nmd = read_md(path_md)\ncorr_pp = corr_obs.(data)\nm = meff(corr_pp[1], plat)\nm_mdl, m_mds = md_sea(m, [md], ADerrors.wsg)\nm_shifted = m + 2 * dml * m_mdl + dms * m_mds\n\n#Two replicas\ndata = read_mesons([path_r1, path_r2], \"G5\", \"G5\")\nmd1 = read_md(path_md1)\nmd2 = read_md(path_md2)\n\ncorr_pp = corr_obs.(data)\nm = meff(corr_pp[1], plat)\nm_mdl, m_mds = md_sea(m, [md1, md2], ADerrors.wsg)\nm_shifted = m + 2 * dml * m_mdl + dms * m_mds\n\n\n\n\n\n","category":"function"},{"location":"tools.html#juobs.lin_fit","page":"Tools","title":"juobs.lin_fit","text":"lin_fit(x::Vector{<:Real}, y::Vector{uwreal})\n\nComputes a linear fit of uwreal data points y. This method return uwreal fit parameters and chisqexpected.\n\nfitp, csqexp = lin_fit(phi2, m2)\nm2_phys = fitp[1] + fitp[2] * phi2_phys\n\n\n\n\n\n","category":"function"},{"location":"tools.html#juobs.fit_routine","page":"Tools","title":"juobs.fit_routine","text":"fit_routine(model::Function, xdata::Array{<:Real}, ydata::Array{uwreal}, param::Int64=3; wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}}, Nothing}=nothing)\n\nfit_routine(model::Function, xdata::Array{uwreal}, ydata::Array{uwreal}, param::Int64=3; wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}}, Nothing}=nothing, covar::Bool=false)\n\nGiven a model function with a number param of parameters and an array of uwreal, this function fit ydata with the given model and print fit information The method return an array upar with the best fit parameters with their errors. The flag wpm is an optional array of Float64 of lenght 4. The first three paramenters specify the criteria to determine the summation windows:\n\nvp[1]: The autocorrelation function is summed up to t = round(vp1).\nvp[2]: The sumation window is determined using U. Wolff poposal with S_tau = wpm2\nvp[3]: The autocorrelation function Gamma(t) is summed up a point where its error deltaGamma(t) is a factor vp[3] times larger than the signal.\n\nAn additional fourth parameter vp[4], tells ADerrors to add a tail to the error with tau_exp = wpm4. Negative values of wpm[1:4] are ignored and only one component of wpm[1:3] needs to be positive. If the flag covaris set to true, fit_routine takes into account covariances between x and y for each data point.\n\n@. model(x,p) = p[1] + p[2] * exp(-(p[3]-p[1])*x)\n@. model2(x,p) = p[1] + p[2] * x[:, 1] + (p[3] + p[4] * x[:, 1]) * x[:, 2]\nfit_routine(model, xdata, ydata, param=3)\nfit_routine(model, xdata, ydata, param=3, covar=true)\n\n\n\n\n\n","category":"function"}]
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Tools · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"data-theme-primary-dark/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><li><aclass="tocitem"href="reader.html">Reader</a></li><liclass="is-active"><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="tools.html">Tools</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="tools.html">Tools</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="Tools"><aclass="docs-heading-anchor"href="#Tools">Tools</a><aid="Tools-1"></a><aclass="docs-heading-anchor-permalink"href="#Tools"title="Permalink"></a></h1><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.corr_obs"href="#juobs.corr_obs"><code>juobs.corr_obs</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">corr_obs(cdata::CData; real::Bool=true, rw::Union{Array{Float64, 2}, Nothing}=nothing, L::Int64=1)
<htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width, initial-scale=1.0"/><title>Tools · juobs Documentation</title><linkhref="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/fontawesome.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/solid.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.0/css/brands.min.css"rel="stylesheet"type="text/css"/><linkhref="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css"rel="stylesheet"type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-dark.css"data-theme-name="documenter-dark"/><linkclass="docs-theme-link"rel="stylesheet"type="text/css"href="assets/themes/documenter-light.css"data-theme-name="documenter-light"data-theme-primary/><script src="assets/themeswap.js"></script></head><body><divid="documenter"><navclass="docs-sidebar"><divclass="docs-package-name"><spanclass="docs-autofit">juobs Documentation</span></div><formclass="docs-search"action="search.html"><inputclass="docs-search-query"id="documenter-search-query"name="q"type="text"placeholder="Search docs"/></form><ulclass="docs-menu"><li><aclass="tocitem"href="index.html">Home</a></li><li><aclass="tocitem"href="reader.html">Reader</a></li><liclass="is-active"><aclass="tocitem"href="tools.html">Tools</a></li><li><aclass="tocitem"href="obs.html">Observables</a></li><li><aclass="tocitem"href="linalg.html">Linear Algebra</a></li></ul><divclass="docs-version-selector field has-addons"><divclass="control"><spanclass="docs-label button is-static is-size-7">Version</span></div><divclass="docs-selector control is-expanded"><divclass="select is-fullwidth is-size-7"><selectid="documenter-version-selector"></select></div></div></div></nav><divclass="docs-main"><headerclass="docs-navbar"><navclass="breadcrumb"><ulclass="is-hidden-mobile"><liclass="is-active"><ahref="tools.html">Tools</a></li></ul><ulclass="is-hidden-tablet"><liclass="is-active"><ahref="tools.html">Tools</a></li></ul></nav><divclass="docs-right"><aclass="docs-edit-link"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs"title="Edit on GitLab"><spanclass="docs-icon fab"></span><spanclass="docs-label is-hidden-touch">Edit on GitLab</span></a><aclass="docs-settings-button fas fa-cog"id="documenter-settings-button"href="#"title="Settings"></a><aclass="docs-sidebar-button fa fa-bars is-hidden-desktop"id="documenter-sidebar-button"href="#"></a></div></header><articleclass="content"id="documenter-page"><h1id="Tools"><aclass="docs-heading-anchor"href="#Tools">Tools</a><aid="Tools-1"></a><aclass="docs-heading-anchor-permalink"href="#Tools"title="Permalink"></a></h1><articleclass="docstring"><header><aclass="docstring-binding"id="juobs.corr_obs"href="#juobs.corr_obs"><code>juobs.corr_obs</code></a> — <spanclass="docstring-category">Function</span></header><section><div><pre><codeclass="language-julia">corr_obs(cdata::CData; real::Bool=true, rw::Union{Array{Float64, 2}, Nothing}=nothing, L::Int64=1)
corr_obs(cdata::Array{CData, 1}; real::Bool=true, rw::Union{Array{Array{Float64, 2}, 1}, Nothing}=nothing, L::Int64=1)</code></pre><p>Creates a <code>Corr</code> struct with the given <code>CData</code> struct <code>cdata</code> (<code>read_mesons</code>) for a single replica. An array of <code>CData</code> can be passed as argument for multiple replicas.</p><p>The flag <code>real</code> select the real or imaginary part of the correlator. If <code>rw</code> is specified, the method applies reweighting. <code>rw</code> is passed as a matrix of Float64 (<code>read_ms1</code>) The correlator can be normalized with the volume factor if <code>L</code> is fixed.</p><pre><codeclass="language-">#Single replica
corr_obs(cdata::Array{CData, 1}; real::Bool=true, rw::Union{Array{Array{Float64, 2}, 1}, Nothing}=nothing, L::Int64=1)</code></pre><p>Creates a <code>Corr</code> struct with the given <code>CData</code> struct <code>cdata</code> (<code>read_mesons</code>) for a single replica. An array of <code>CData</code> can be passed as argument for multiple replicas.</p><p>The flag <code>real</code> select the real or imaginary part of the correlator. If <code>rw</code> is specified, the method applies reweighting. <code>rw</code> is passed as a matrix of Float64 (<code>read_ms1</code>) The correlator can be normalized with the volume factor if <code>L</code> is fixed.</p><pre><codeclass="language-">#Single replica
data = read_mesons(path, "G5", "G5")
data = read_mesons(path, "G5", "G5")
fit_routine(model::Function, xdata::Array{uwreal}, ydata::Array{uwreal}, param::Int64=3; wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}}, Nothing}=nothing, covar::Bool=false)</code></pre><p>Given a model function with a number param of parameters and an array of <code>uwreal</code>, this function fit ydata with the given <code>model</code> and print fit information The method return an array <code>upar</code> with the best fit parameters with their errors. The flag <code>wpm</code> is an optional array of Float64 of lenght 4. The first three paramenters specify the criteria to determine the summation windows:</p><ul><li><p><code>vp[1]</code>: The autocorrelation function is summed up to <span>$t = round(vp[1])$</span>.</p></li><li><p><code>vp[2]</code>: The sumation window is determined using U. Wolff poposal with <span>$S_\tau = wpm[2]$</span></p></li><li><p><code>vp[3]</code>: The autocorrelation function <span>$\Gamma(t)$</span> is summed up a point where its error <span>$\delta\Gamma(t)$</span> is a factor <code>vp[3]</code> times larger than the signal.</p></li></ul><p>An additional fourth parameter <code>vp[4]</code>, tells ADerrors to add a tail to the error with <span>$\tau_{exp} = wpm[4]$</span>. Negative values of <code>wpm[1:4]</code> are ignored and only one component of <code>wpm[1:3]</code> needs to be positive. If the flag <code>covar</code>is set to true, <code>fit_routine</code> takes into account covariances between x and y for each data point.</p><pre><codeclass="language-">@. model(x,p) = p[1] + p[2] * exp(-(p[3]-p[1])*x)
fit_routine(model::Function, xdata::Array{uwreal}, ydata::Array{uwreal}, param::Int64=3; wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}}, Nothing}=nothing, covar::Bool=false)</code></pre><p>Given a model function with a number param of parameters and an array of <code>uwreal</code>, this function fit ydata with the given <code>model</code> and print fit information The method return an array <code>upar</code> with the best fit parameters with their errors. The flag <code>wpm</code> is an optional array of Float64 of lenght 4. The first three paramenters specify the criteria to determine the summation windows:</p><ul><li><p><code>vp[1]</code>: The autocorrelation function is summed up to <span>$t = round(vp[1])$</span>.</p></li><li><p><code>vp[2]</code>: The sumation window is determined using U. Wolff poposal with <span>$S_\tau = wpm[2]$</span></p></li><li><p><code>vp[3]</code>: The autocorrelation function <span>$\Gamma(t)$</span> is summed up a point where its error <span>$\delta\Gamma(t)$</span> is a factor <code>vp[3]</code> times larger than the signal.</p></li></ul><p>An additional fourth parameter <code>vp[4]</code>, tells ADerrors to add a tail to the error with <span>$\tau_{exp} = wpm[4]$</span>. Negative values of <code>wpm[1:4]</code> are ignored and only one component of <code>wpm[1:3]</code> needs to be positive. If the flag <code>covar</code>is set to true, <code>fit_routine</code> takes into account covariances between x and y for each data point.</p><pre><codeclass="language-">@. model(x,p) = p[1] + p[2] * exp(-(p[3]-p[1])*x)
fit_routine(model, xdata, ydata, param=3, covar=true)</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article></article><navclass="docs-footer"><aclass="docs-footer-prevpage"href="reader.html">« Reader</a><aclass="docs-footer-nextpage"href="obs.html">Observables »</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Wednesday 24 February 2021 11:46">Wednesday 24 February 2021</span>. Using Julia version 1.5.0.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
fit_routine(model, xdata, ydata, param=3, covar=true)</code></pre></div><aclass="docs-sourcelink"target="_blank"href="https://gitlab.ift.uam-csic.es/jugarrio/juobs">source</a></section></article></article><navclass="docs-footer"><aclass="docs-footer-prevpage"href="reader.html">« Reader</a><aclass="docs-footer-nextpage"href="obs.html">Observables »</a><divclass="flexbox-break"></div><pclass="footer-message">Powered by <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <ahref="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><divclass="modal"id="documenter-settings"><divclass="modal-background"></div><divclass="modal-card"><headerclass="modal-card-head"><pclass="modal-card-title">Settings</p><buttonclass="delete"></button></header><sectionclass="modal-card-body"><p><labelclass="label">Theme</label><divclass="select"><selectid="documenter-themepicker"><optionvalue="documenter-light">documenter-light</option><optionvalue="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <ahref="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <spanclass="colophon-date"title="Friday 26 February 2021 09:53">Friday 26 February 2021</span>. Using Julia version 1.4.2.</p></section><footerclass="modal-card-foot"></footer></div></div></div></body></html>
This method returns an array of dim `T` where each element is a symmetrix matrix of dimension n of `uwreal` correlators
This function allows the user to build an array of matrices, where each matrix is a symmetric matrix of correlators at a given timeslice.
at fixed time i=1..T. It takes as input:
`corr_diag`: vector of dimension n of correlators liying on the diagonal
It takes as input:
`corr_upper`: vector of correlators liying on the upper diagonal.
Each correlator is an vector of uwreal variables of dimension `T`.
Example:
```@example
for i in 1:n
a[i,i] = Vector{uwreal} # vector of uwreal variables of dimension T. They will constitute the diagonal elements of the matrices
for i in 1:n-1
- `diag::Vector{Array}`: vector of correlators. Each correlator will constitute a diagonal element of the matrices A[i] where i runs over the timeslices, i.e.
for j in i+1:n
`A[i][1,1] = diag[1], .... A[i][n,n] = diag[n]`
a[i,j] = Vector{uwreal} # vector of uwreal variables of dimension T. They will constitute the upper diagonal elements of the matrices. A matrix
`Given n=length(diag)`, the matrices will have dimension n*n
of dimension n*n has n(n-1)/2 upper diagonal elements.
Assume n=4
- `upper::Vector{Array}`: vector of correlators liying on the upper diagonal position.
This method computes the energy level from the eigenvalues according to:
``E_i(t) = \log(λ(t) / λ(t+1))``
where `i=1,..,n` with `n=length(evals[1])` and `t=1,..,T` total time slices.
It returns a vector array en where each entry en[i][t] contains the i-th states energy at time t
Given a vector where each entry `evals[t]` is a `uwreal` array of eigenvalues, this method computes the effective energies of the first N states, where ```N=dim(evals[t])```.
Examples:
The index `t` here runs from 1:T=lenght(evals), while the index `i` stands for the number of energy levels computed: i = length(evals[t])
```@example
It returns a vector array `eff_en` where each entry `eff_en[t]` contains the first N states energies as uwreal objects
## load data
pp_data = read_mesons(path, "G5", "G5")
pa_data = read_mesons(path, "G5", "G0G5")
aa_data = read_mesons(path, "G0G5", "G0G5")
## create Corr struct
corr_pp = corr_obs.(pp_data)
corr_pa = corr_obs.(pa_data)
corr_aa = corr_obs.(aa_data) # array of correlators for different \mu_q combinations
## set up matrices
corr_diag = [corr_pp[1], corr_aa[1]]
corr_upper = [corr_pa[1]]
matrices = [corr_diag, corr_upper]
## solve the GEVP
evals = getall_eigvals(matrices, 5) #where t_0=5
en = energies(evals)
Julia> en[i] # i-th state energy at each timeslice
```
"""
"""
function energies(evals::Union{Vector{Vector{uwreal}},Array{Array{uwreal}}};wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}},Nothing}=nothing)
function energies(evals::Union{Vector{Vector{uwreal}},Array{Array{uwreal}}};wpm::Union{Dict{Int64,Vector{Float64}},Dict{String,Vector{Float64}},Nothing}=nothing)
time=length(evals)
time=length(evals)
...
@@ -126,8 +156,27 @@ where `res[i]` are the generalised eigenvalues of the i-th matrix of the input a
...
@@ -126,8 +156,27 @@ where `res[i]` are the generalised eigenvalues of the i-th matrix of the input a
Examples:
Examples:
```@example
```@example
mat_array = get_matrix(diag, upper_diag)
## load data
evals = getall_eigvals(mat_array, 5)
pp_data = read_mesons(path, "G5", "G5")
pa_data = read_mesons(path, "G5", "G0G5")
aa_data = read_mesons(path, "G0G5", "G0G5")
## create Corr struct
corr_pp = corr_obs.(pp_data)
corr_pa = corr_obs.(pa_data)
corr_aa = corr_obs.(aa_data) # array of correlators for different \mu_q combinations
## set up matrices
corr_diag = [corr_pp[1], corr_aa[1]]
corr_upper = [corr_pa[1]]
matrices = [corr_diag, corr_upper]
## solve the GEVP
evals = getall_eigvals(matrices, 5) #where t_0=5
Julia>
```
```
"""
"""
function getall_eigvals(a::Vector{Matrix},t0::Int64;iter=30)
function getall_eigvals(a::Vector{Matrix},t0::Int64;iter=30)
...
@@ -150,9 +199,19 @@ It takes as input:
...
@@ -150,9 +199,19 @@ It takes as input:
- `b::Matrix{uwreal}` : a matrix of uwreal, optional
- `b::Matrix{uwreal}` : a matrix of uwreal, optional
- `iter=30`: optional flag to set the iterations of the qr algorithm used to solve the eigenvalue problem
It returns:
It returns:
- `res = Vector{uwreal}`: a vector where each elements is an eigenvalue
- `res = Vector{uwreal}`: a vector where each elements is an eigenvalue
```@example
a = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
b = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
res = uweigvals(a) ##eigenvalues
res1 = uweigvals(a,b) ## generalised eigenvalues
```
"""
"""
function uweigvals(a::Matrix{uwreal};iter=30)
function uweigvals(a::Matrix{uwreal};iter=30)
n=size(a,1)
n=size(a,1)
...
@@ -176,7 +235,7 @@ end
...
@@ -176,7 +235,7 @@ end
This function solves a GEVP problem, returning the eigenvectors, for a list of matrices.
This function solves a GEVP problem, returning the eigenvectors, for a list of matrices.
``C(t_i)v_i = λ_i C(t_i-\delta_t) v_i``, with i=1:lenght(a)
``C(t_i)v_i = λ_i C(t_i-\delta_t) v_i``, with i=1:lenght(a)
Here `delta_t` is the time shift within the two matrices of the problem, and is kept fixed.
Here `delta_t` is the time shift within the two matrices of the problem, and is kept fixed.
It takes as input:
It takes as input:
...
@@ -189,7 +248,7 @@ It takes as input:
...
@@ -189,7 +248,7 @@ It takes as input:
It returns:
It returns:
- `res` = Vector{Matrix{uwreal}}
- `res = Vector{Matrix{uwreal}}`
where each `res[i]` is a matrix with the eigenvectors as columns
where each `res[i]` is a matrix with the eigenvectors as columns
Examples:
Examples:
...
@@ -203,7 +262,6 @@ function getall_eigvecs(a::Vector{Matrix}, delta_t; iter=30)
...
@@ -203,7 +262,6 @@ function getall_eigvecs(a::Vector{Matrix}, delta_t; iter=30)
res=Vector{Matrix{uwreal}}(undef,n)
res=Vector{Matrix{uwreal}}(undef,n)
[res[i]=uweigvecs(a[i+delta_t],a[i])fori=1:n]
[res[i]=uweigvecs(a[i+delta_t],a[i])fori=1:n]
returnres
returnres
end
end
@docraw"""
@docraw"""
...
@@ -219,9 +277,19 @@ It takes as input:
...
@@ -219,9 +277,19 @@ It takes as input:
- `b::Matrix{uwreal}` : a matrix of uwreal, optional
- `b::Matrix{uwreal}` : a matrix of uwreal, optional
- `iter=30` : the number of iterations of the qr algorithm used to extract the eigenvalues
It returns:
It returns:
- `res = Matrix{uwreal}`: a matrix where each column is an eigenvector
- `res = Matrix{uwreal}`: a matrix where each column is an eigenvector
Examples:
```@example
a = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
b = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
res = uweigvecs(a) ##eigenvectors in column
res1 = uweigvecs(a,b) ## generalised eigenvectors in column
```
"""
"""
function uweigvecs(a::Matrix{uwreal};iter=30)
function uweigvecs(a::Matrix{uwreal};iter=30)
n=size(a,1)
n=size(a,1)
...
@@ -258,9 +326,22 @@ It takes as input:
...
@@ -258,9 +326,22 @@ It takes as input:
- `b::Matrix{uwreal}` : a matrix of uwreal, optional
- `b::Matrix{uwreal}` : a matrix of uwreal, optional
- `iter=30` : the number of iterations of the qr algorithm used to extract the eigenvalues
It returns:
It returns:
- `evals = Vector{uwreal}`: a vector where each elements is an eigenvalue
- `evals = Vector{uwreal}`: a vector where each elements is an eigenvalue
- `evecs = Matrix{uwreal}`: a matrix where the i-th column is the eigenvector of the i-th eigenvalue
- `evecs = Matrix{uwreal}`: a matrix where the i-th column is the eigenvector of the i-th eigenvalue
Examples:
```@example
a = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries
b = Matrix{uwreal}(nothing, n,n) ## n*n matrix of uwreal with nothing entries