diff --git a/doc/build/html/.buildinfo b/doc/build/html/.buildinfo index 40c1adbe..d54aa5d2 100644 --- a/doc/build/html/.buildinfo +++ b/doc/build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: c71da3fc82755d99e630c2ce3740746b +config: cff1e5dc319d7ac07f594719d3407034 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/doc/build/html/.doctrees/boxplots.doctree b/doc/build/html/.doctrees/boxplots.doctree index 91e13883..88a0992c 100644 Binary files a/doc/build/html/.doctrees/boxplots.doctree and b/doc/build/html/.doctrees/boxplots.doctree differ diff --git a/doc/build/html/.doctrees/curve_functions.doctree b/doc/build/html/.doctrees/curve_functions.doctree index c6dcc6d6..43dc9af2 100644 Binary files a/doc/build/html/.doctrees/curve_functions.doctree and b/doc/build/html/.doctrees/curve_functions.doctree differ diff --git a/doc/build/html/.doctrees/curve_statistics.doctree b/doc/build/html/.doctrees/curve_statistics.doctree index 3c0ba2fe..a3e7b021 100644 Binary files a/doc/build/html/.doctrees/curve_statistics.doctree and b/doc/build/html/.doctrees/curve_statistics.doctree differ diff --git a/doc/build/html/.doctrees/environment.pickle b/doc/build/html/.doctrees/environment.pickle index 439907b7..705a4d3d 100644 Binary files a/doc/build/html/.doctrees/environment.pickle and b/doc/build/html/.doctrees/environment.pickle differ diff --git a/doc/build/html/.doctrees/fPCA.doctree b/doc/build/html/.doctrees/fPCA.doctree index 45974bd3..692646f7 100644 Binary files a/doc/build/html/.doctrees/fPCA.doctree and b/doc/build/html/.doctrees/fPCA.doctree differ diff --git a/doc/build/html/.doctrees/fPLS.doctree b/doc/build/html/.doctrees/fPLS.doctree index f989dfb5..32cc9c6b 100644 Binary files a/doc/build/html/.doctrees/fPLS.doctree and b/doc/build/html/.doctrees/fPLS.doctree differ diff --git a/doc/build/html/.doctrees/geodesic.doctree b/doc/build/html/.doctrees/geodesic.doctree index e7020ade..95ca3bc5 100644 Binary files a/doc/build/html/.doctrees/geodesic.doctree and b/doc/build/html/.doctrees/geodesic.doctree differ diff --git a/doc/build/html/.doctrees/index.doctree b/doc/build/html/.doctrees/index.doctree index f2d49a60..62a887ab 100644 Binary files a/doc/build/html/.doctrees/index.doctree and b/doc/build/html/.doctrees/index.doctree differ diff --git a/doc/build/html/.doctrees/pcr_regression.doctree b/doc/build/html/.doctrees/pcr_regression.doctree index 50db1fd8..d6e15505 100644 Binary files a/doc/build/html/.doctrees/pcr_regression.doctree and b/doc/build/html/.doctrees/pcr_regression.doctree differ diff --git a/doc/build/html/.doctrees/regression.doctree b/doc/build/html/.doctrees/regression.doctree index 3a3c1489..ab68af42 100644 Binary files a/doc/build/html/.doctrees/regression.doctree and b/doc/build/html/.doctrees/regression.doctree differ diff --git a/doc/build/html/.doctrees/time_warping.doctree b/doc/build/html/.doctrees/time_warping.doctree index f6847b37..5532398f 100644 Binary files a/doc/build/html/.doctrees/time_warping.doctree and b/doc/build/html/.doctrees/time_warping.doctree differ diff --git a/doc/build/html/.doctrees/tolerance.doctree b/doc/build/html/.doctrees/tolerance.doctree index ebc06a11..513dddd9 100644 Binary files a/doc/build/html/.doctrees/tolerance.doctree and b/doc/build/html/.doctrees/tolerance.doctree differ diff --git a/doc/build/html/.doctrees/umap_metric.doctree b/doc/build/html/.doctrees/umap_metric.doctree index 845e1130..bd3d5abf 100644 Binary files a/doc/build/html/.doctrees/umap_metric.doctree and b/doc/build/html/.doctrees/umap_metric.doctree differ diff --git a/doc/build/html/.doctrees/utility_functions.doctree b/doc/build/html/.doctrees/utility_functions.doctree index 0cab9e28..49f0f40f 100644 Binary files a/doc/build/html/.doctrees/utility_functions.doctree and b/doc/build/html/.doctrees/utility_functions.doctree differ diff --git a/doc/build/html/_static/basic.css b/doc/build/html/_static/basic.css index 08896771..eeb0519a 100644 --- a/doc/build/html/_static/basic.css +++ b/doc/build/html/_static/basic.css @@ -236,6 +236,16 @@ div.body p, div.body dd, div.body li, div.body blockquote { a.headerlink { visibility: hidden; } +a.brackets:before, +span.brackets > a:before{ + content: "["; +} + +a.brackets:after, +span.brackets > a:after { + content: "]"; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, @@ -324,17 +334,11 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } -nav.contents, -aside.topic, - div.admonition, div.topic, blockquote { clear: left; } /* -- topics ---------------------------------------------------------------- */ -nav.contents, -aside.topic, - div.topic { border: 1px solid #ccc; padding: 7px; @@ -373,9 +377,6 @@ div.body p.centered { div.sidebar > :last-child, aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, - div.topic > :last-child, div.admonition > :last-child { margin-bottom: 0; @@ -383,9 +384,6 @@ div.admonition > :last-child { div.sidebar::after, aside.sidebar::after, -nav.contents::after, -aside.topic::after, - div.topic::after, div.admonition::after, blockquote::after { @@ -610,8 +608,6 @@ ol.simple p, ul.simple p { margin-bottom: 0; } - -/* Docutils 0.17 and older (footnotes & citations) */ dl.footnote > dt, dl.citation > dt { float: left; @@ -629,33 +625,6 @@ dl.citation > dd:after { clear: both; } -/* Docutils 0.18+ (footnotes & citations) */ -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -/* Footnotes & citations ends */ - dl.field-list { display: grid; grid-template-columns: fit-content(30%) auto; @@ -667,11 +636,11 @@ dl.field-list > dt { padding-left: 0.5em; padding-right: 5px; } - dl.field-list > dt:after { content: ":"; } + dl.field-list > dd { padding-left: 0.5em; margin-top: 0em; diff --git a/doc/build/html/_static/doctools.js b/doc/build/html/_static/doctools.js index c3db08d1..527b876c 100644 --- a/doc/build/html/_static/doctools.js +++ b/doc/build/html/_static/doctools.js @@ -10,6 +10,13 @@ */ "use strict"; +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + const _ready = (callback) => { if (document.readyState !== "loading") { callback(); @@ -18,73 +25,11 @@ const _ready = (callback) => { } }; -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - parent.insertBefore( - span, - parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - /** * Small JavaScript module for the documentation. */ const Documentation = { init: () => { - Documentation.highlightSearchWords(); Documentation.initDomainIndexTable(); Documentation.initOnKeyListeners(); }, @@ -126,51 +71,6 @@ const Documentation = { Documentation.LOCALE = catalog.locale; }, - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords: () => { - const highlight = - new URLSearchParams(window.location.search).get("highlight") || ""; - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - const url = new URL(window.location); - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - }, - /** * helper function to focus on search bar */ @@ -210,15 +110,11 @@ const Documentation = { ) return; - const blacklistedElements = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", - ]); document.addEventListener("keydown", (event) => { - if (blacklistedElements.has(document.activeElement.tagName)) return; // bail for input elements - if (event.altKey || event.ctrlKey || event.metaKey) return; // bail with special keys + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; if (!event.shiftKey) { switch (event.key) { @@ -240,10 +136,6 @@ const Documentation = { event.preventDefault(); } break; - case "Escape": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.hideSearchWords(); - event.preventDefault(); } } diff --git a/doc/build/html/_static/documentation_options.js b/doc/build/html/_static/documentation_options.js index f88556cd..fba58fdc 100644 --- a/doc/build/html/_static/documentation_options.js +++ b/doc/build/html/_static/documentation_options.js @@ -1,6 +1,6 @@ var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '2.4.0', + VERSION: '2.4.1', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', @@ -10,5 +10,5 @@ var DOCUMENTATION_OPTIONS = { SOURCELINK_SUFFIX: '.txt', NAVIGATION_WITH_KEYS: false, SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: false, + ENABLE_SEARCH_SHORTCUTS: true, }; \ No newline at end of file diff --git a/doc/build/html/_static/searchtools.js b/doc/build/html/_static/searchtools.js index ac4d5861..e89e34d4 100644 --- a/doc/build/html/_static/searchtools.js +++ b/doc/build/html/_static/searchtools.js @@ -57,14 +57,14 @@ const _removeChildren = (element) => { const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -const _displayItem = (item, highlightTerms, searchTerms) => { +const _displayItem = (item, searchTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - const [docName, title, anchor, descr] = item; + const [docName, title, anchor, descr, score, _filename] = item; let listItem = document.createElement("li"); let requestUrl; @@ -82,13 +82,12 @@ const _displayItem = (item, highlightTerms, searchTerms) => { requestUrl = docUrlRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } - const params = new URLSearchParams(); - params.set("highlight", [...highlightTerms].join(" ")); let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + "?" + params.toString() + anchor; + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; linkEl.innerHTML = title; if (descr) - listItem.appendChild(document.createElement("span")).innerText = + listItem.appendChild(document.createElement("span")).innerHTML = " (" + descr + ")"; else if (showSearchSummary) fetch(requestUrl) @@ -96,7 +95,7 @@ const _displayItem = (item, highlightTerms, searchTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms, highlightTerms) + Search.makeSearchSummary(data, searchTerms) ); }); Search.output.appendChild(listItem); @@ -116,15 +115,14 @@ const _finishSearch = (resultCount) => { const _displayNextItem = ( results, resultCount, - highlightTerms, searchTerms ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { - _displayItem(results.pop(), highlightTerms, searchTerms); + _displayItem(results.pop(), searchTerms); setTimeout( - () => _displayNextItem(results, resultCount, highlightTerms, searchTerms), + () => _displayNextItem(results, resultCount, searchTerms), 5 ); } @@ -155,10 +153,8 @@ const Search = { _pulse_status: -1, htmlToText: (htmlString) => { - const htmlElement = document - .createRange() - .createContextualFragment(htmlString); - _removeChildren(htmlElement.querySelectorAll(".headerlink")); + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); const docContent = htmlElement.querySelector('[role="main"]'); if (docContent !== undefined) return docContent.textContent; console.warn( @@ -239,6 +235,12 @@ const Search = { * execute search (requires search index to be loaded) */ query: (query) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -266,6 +268,10 @@ const Search = { } }); + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + // console.debug("SEARCH: searching for:"); // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); @@ -274,6 +280,40 @@ const Search = { let results = []; _removeChildren(document.getElementById("search-progress")); + const queryLower = query.toLowerCase(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + let score = Math.round(100 * queryLower.length / title.length) + results.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id] of foundEntries) { + let score = Math.round(100 * queryLower.length / entry.length) + results.push([ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + ]); + } + } + } + // lookup as object objectTerms.forEach((term) => results.push(...Search.performObjectSearch(term, objectTerms)) @@ -320,7 +360,7 @@ const Search = { // console.info("search results:", Search.lastresults); // print the results - _displayNextItem(results, results.length, highlightTerms, searchTerms); + _displayNextItem(results, results.length, searchTerms); }, /** @@ -401,8 +441,8 @@ const Search = { // prepare search const terms = Search._index.terms; const titleTerms = Search._index.titleterms; - const docNames = Search._index.docnames; const filenames = Search._index.filenames; + const docNames = Search._index.docnames; const titles = Search._index.titles; const scoreMap = new Map(); @@ -499,16 +539,15 @@ const Search = { /** * helper function to return a node containing the * search summary for a given text. keywords is a list - * of stemmed words, highlightWords is the list of normal, unstemmed - * words. the first one is used to find the occurrence, the - * latter for highlighting it. + * of stemmed words. */ - makeSearchSummary: (htmlText, keywords, highlightWords) => { - const text = Search.htmlToText(htmlText).toLowerCase(); + makeSearchSummary: (htmlText, keywords) => { + const text = Search.htmlToText(htmlText); if (text === "") return null; + const textLower = text.toLowerCase(); const actualStartPosition = [...keywords] - .map((k) => text.indexOf(k.toLowerCase())) + .map((k) => textLower.indexOf(k.toLowerCase())) .filter((i) => i > -1) .slice(-1)[0]; const startWithContext = Math.max(actualStartPosition - 120, 0); @@ -516,13 +555,9 @@ const Search = { const top = startWithContext === 0 ? "" : "..."; const tail = startWithContext + 240 < text.length ? "..." : ""; - let summary = document.createElement("div"); + let summary = document.createElement("p"); summary.classList.add("context"); - summary.innerText = top + text.substr(startWithContext, 240).trim() + tail; - - highlightWords.forEach((highlightWord) => - _highlightText(summary, highlightWord, "highlighted") - ); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; return summary; }, diff --git a/doc/build/html/boxplots.html b/doc/build/html/boxplots.html index 8cb40d9e..44d48055 100644 --- a/doc/build/html/boxplots.html +++ b/doc/build/html/boxplots.html @@ -1,94 +1,51 @@ - - - - + - - - - - - Elastic Functional Boxplots — fdasrsf 2.4.0 documentation - - - - - - - + + + Elastic Functional Boxplots — fdasrsf 2.4.1 documentation + + + - - - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/curve_functions.html b/doc/build/html/curve_functions.html index f1b8374e..30d40697 100644 --- a/doc/build/html/curve_functions.html +++ b/doc/build/html/curve_functions.html @@ -1,94 +1,51 @@ - - - - + - - - - - - Curve Functions — fdasrsf 2.4.0 documentation - - - - + + + Curve Functions — fdasrsf 2.4.1 documentation + + + - - - - - - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/curve_statistics.html b/doc/build/html/curve_statistics.html index 1ff0bb1d..bd13102e 100644 --- a/doc/build/html/curve_statistics.html +++ b/doc/build/html/curve_statistics.html @@ -1,96 +1,51 @@ - - - - + - - - - - - Curve Registration — fdasrsf 2.4.0 documentation - - - - - - - + + + Curve Registration — fdasrsf 2.4.1 documentation + + + - - - - + - - - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/fPCA.html b/doc/build/html/fPCA.html index 6c666e2f..d4b0be8a 100644 --- a/doc/build/html/fPCA.html +++ b/doc/build/html/fPCA.html @@ -1,94 +1,51 @@ - - - - + - - - - - - Functional Principal Component Analysis — fdasrsf 2.4.0 documentation - - - - - - - - - + + + Functional Principal Component Analysis — fdasrsf 2.4.1 documentation + + + - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/fPLS.html b/doc/build/html/fPLS.html index 39b4f93c..542020a7 100644 --- a/doc/build/html/fPLS.html +++ b/doc/build/html/fPLS.html @@ -1,94 +1,51 @@ - - - - + - - - - - - Functional Principal Least Squares — fdasrsf 2.4.0 documentation - - - - + + + Functional Principal Least Squares — fdasrsf 2.4.1 documentation + + + - - - - - - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/genindex.html b/doc/build/html/genindex.html index f2844785..ac4b502d 100644 --- a/doc/build/html/genindex.html +++ b/doc/build/html/genindex.html @@ -1,91 +1,49 @@ - - - - + - - - - - Index — fdasrsf 2.4.0 documentation - - - + + + Index — fdasrsf 2.4.1 documentation + + + - - - - - - - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/geodesic.html b/doc/build/html/geodesic.html index 3fffc6f6..3f8ad835 100644 --- a/doc/build/html/geodesic.html +++ b/doc/build/html/geodesic.html @@ -1,96 +1,51 @@ - - - - + - - - - - - SRVF Geodesic Computation — fdasrsf 2.4.0 documentation - - - + + + SRVF Geodesic Computation — fdasrsf 2.4.1 documentation + + + - - - - - - - - + - - - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/index.html b/doc/build/html/index.html index 2c01852a..f8f23e42 100644 --- a/doc/build/html/index.html +++ b/doc/build/html/index.html @@ -1,93 +1,50 @@ - - - - + - - - - - - Welcome to fdasrsf’s documentation! — fdasrsf 2.4.0 documentation - - - - + + + Welcome to fdasrsf’s documentation! — fdasrsf 2.4.1 documentation + + + - - - - - - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/objects.inv b/doc/build/html/objects.inv index 701e7ffb..a1305089 100644 Binary files a/doc/build/html/objects.inv and b/doc/build/html/objects.inv differ diff --git a/doc/build/html/pcr_regression.html b/doc/build/html/pcr_regression.html index d19738da..0ee8113c 100644 --- a/doc/build/html/pcr_regression.html +++ b/doc/build/html/pcr_regression.html @@ -1,94 +1,51 @@ - - - - + - - - - - - Elastic Principal Component Regression — fdasrsf 2.4.0 documentation - - - - - - - - - + + + Elastic Principal Component Regression — fdasrsf 2.4.1 documentation + + + - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/regression.html b/doc/build/html/regression.html index d55657f2..79c67544 100644 --- a/doc/build/html/regression.html +++ b/doc/build/html/regression.html @@ -1,94 +1,51 @@ - - - - + - - - - - - Elastic Regression — fdasrsf 2.4.0 documentation - - - + + + Elastic Regression — fdasrsf 2.4.1 documentation + + + - - - - - - - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/search.html b/doc/build/html/search.html index 6f963a34..79ee3d80 100644 --- a/doc/build/html/search.html +++ b/doc/build/html/search.html @@ -1,92 +1,52 @@ - - - - + - - - - - Search — fdasrsf 2.4.0 documentation - - - - - - - - - - + + + Search — fdasrsf 2.4.1 documentation + + - + + + - - - - - - - - - - - + + + - - - +
- -
- - -
- - - - - - - - - - - + diff --git a/doc/build/html/searchindex.js b/doc/build/html/searchindex.js index d0394ce9..71cf2b9f 100644 --- a/doc/build/html/searchindex.js +++ b/doc/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["boxplots", "curve_example", "curve_functions", "curve_statistics", "elastic_glm_regression", "fPCA", "fPLS", "fpca_example", "geodesic", "image", "index", "kmeans", "pcr_regression", "regression", "time_warping", "time_warping_example", "tolerance", "umap_metric", "user_guide", "utility_functions"], "filenames": ["boxplots.rst", "curve_example.ipynb", "curve_functions.rst", "curve_statistics.rst", "elastic_glm_regression.rst", "fPCA.rst", "fPLS.rst", "fpca_example.ipynb", "geodesic.rst", "image.rst", "index.rst", "kmeans.rst", "pcr_regression.rst", "regression.rst", "time_warping.rst", "time_warping_example.ipynb", "tolerance.rst", "umap_metric.rst", "user_guide.rst", "utility_functions.rst"], "titles": ["Elastic Functional Boxplots", "Elastic Curve Alignment", "Curve Functions", "Curve Registration", "Elastic GLM Regression", "Functional Principal Component Analysis", "Functional Principal Least Squares", "Elastic Functional Principal Component Analysis", "SRVF Geodesic Computation", "Elastic Image Warping", "Welcome to fdasrsf\u2019s documentation!", "Elastic Functional Clustering", "Elastic Principal Component Regression", "Elastic Regression", "Functional Alignment", "Elastic Functional Alignment", "Elastic Functional Tolerance Bounds", "UMAP EFDA Metrics", "User Guide", "Utility Functions"], "terms": {"moduleauthor": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 19], "j": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19], "derek": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 19], "tucker": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19], "jdtuck": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 19], "sandia": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 19], "gov": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 19], "class": [0, 3, 4, 5, 12, 13, 14], "ampbox": [0, 16], "fdawarp": [0, 5, 7, 12, 14, 15, 16], "sourc": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 19], "thi": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 19], "provid": [0, 3, 4, 5, 12, 13, 14], "amplitud": [0, 7, 10, 14, 16, 17, 19], "data": [0, 1, 4, 5, 7, 10, 11, 12, 13, 14, 15, 16, 19], "us": [0, 2, 3, 4, 5, 6, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19], "srvf": [0, 1, 2, 3, 4, 5, 9, 10, 12, 13, 14], "framework": [0, 3, 4, 5, 9, 10, 11, 12, 13, 14, 15], "usag": [0, 3, 4, 5, 12, 13, 14], "obj": [0, 1, 3, 4, 5, 7, 12, 13, 14, 15], "warp_data": [0, 5, 12], "paramet": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 17, 19], "align": [0, 2, 3, 5, 7, 10, 11, 12, 13, 16, 17, 18, 19], "q1": [0, 2, 8, 17, 19], "first": [0, 2, 7, 8, 14, 19], "quartil": 0, "q3": 0, "second": [0, 2, 19], "q1a": 0, "quantil": 0, "base": [0, 10, 14], "alpha": [0, 4, 6, 8, 12, 13, 14, 16], "q3a": 0, "minn": 0, "minimum": [0, 2, 14, 19], "extrem": 0, "maxx": 0, "maximum": [0, 2, 4, 11, 13, 14, 19], "outlier_index": 0, "index": [0, 10, 11, 19], "outlier": [0, 19], "f_median": 0, "median": [0, 14, 19], "q_median": 0, "plt": [0, 14], "surfac": 0, "plot": [0, 1, 3, 5, 7, 8, 11, 14, 15], "mesh": 0, "author": [0, 3, 4, 5, 12, 13, 14], "d": [0, 2, 3, 4, 5, 10, 12, 13, 14], "jdt": [0, 3, 4, 5, 12, 13, 14], "AT": [0, 3, 4, 5, 12, 13, 14], "date": [0, 3, 4, 5, 12, 13, 14], "15": [0, 5, 14], "mar": [0, 4, 5, 12, 14], "2018": [0, 4, 5, 12, 14], "construct_boxplot": 0, "0": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 19], "05": [0, 16], "k_a": 0, "1": [0, 1, 2, 3, 4, 5, 7, 10, 12, 13, 14, 15, 17, 19], "construct": [0, 1, 7, 15], "squar": [0, 4, 10, 11, 12, 13, 14, 19], "root": [0, 10, 11, 14, 19], "slope": [0, 10, 11, 14, 19], "srsf": [0, 2, 4, 5, 7, 11, 12, 13, 14, 15, 16, 19], "valu": [0, 3, 4, 5, 6, 13, 14, 19], "e": [0, 2, 3, 6, 8, 10, 14], "g": [0, 5, 6, 10, 14, 19], "i": [0, 1, 2, 6, 10], "95": 0, "scalar": [0, 2, 8, 12, 13, 14, 17, 19], "cutoff": [0, 19], "box": [0, 4, 11, 12, 14, 19], "phbox": [0, 16], "phase": [0, 2, 4, 7, 10, 12, 13, 14, 16, 19], "median_x": 0, "warp": [0, 1, 2, 3, 4, 5, 7, 10, 11, 12, 13, 14, 15, 16, 19], "psi_median": 0, "otherwis": [1, 14, 15], "known": [1, 15], "time": [1, 2, 4, 6, 7, 10, 11, 12, 13, 14, 15, 16, 19], "literatur": [1, 15], "center": [1, 2, 3, 8, 11, 14, 15], "function": [1, 3, 4, 8, 9, 10, 12, 13, 17, 18], "analysi": [1, 10, 14, 15, 18], "here": [1, 15], "our": [1, 7, 15], "goal": [1, 15], "separ": [1, 10, 15], "out": [1, 4, 13, 14, 15], "horizont": [1, 5, 10, 15, 18], "vertic": [1, 5, 10, 15, 18], "variabl": [1, 4, 7, 10, 12, 13, 14, 15, 16], "open": [1, 2, 3, 8, 17], "close": [1, 2, 3, 8, 14, 17], "import": [1, 7, 14, 15], "fdasrsf": [1, 7, 15], "fs": [1, 7, 14, 15], "numpi": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 19], "np": [1, 3, 4, 7, 11, 12, 13, 14, 15, 16], "load": [1, 7, 15], "exampl": [1, 7, 14, 15], "2": [1, 2, 3, 4, 7, 8, 10, 14, 15, 19], "bin": [1, 7, 14, 15], "mpeg7": 1, "npz": [1, 7, 15], "allow_pickl": 1, "true": [1, 2, 3, 4, 7, 8, 11, 14, 15, 16, 19], "xdata": 1, "n": [1, 2, 3, 4, 6, 9, 11, 12, 13, 14, 16, 17, 19], "m": [1, 2, 3, 4, 6, 8, 10, 11, 12, 13, 14, 16, 17, 19], "k": [1, 3, 8, 10, 11, 14, 16, 19], "beta": [1, 2, 3, 8, 13, 14], "zero": [1, 2, 3, 4, 14, 19], "rang": 1, "we": [1, 7, 15], "fdacurv": [1, 3], "object": [1, 4, 5, 7, 12, 13, 15, 16], "3": [1, 3, 4, 5, 7, 14, 15], "comput": [1, 2, 3, 5, 6, 7, 10, 14, 15, 16], "karcher": [1, 3, 5, 7, 14, 15, 19], "mean": [1, 2, 3, 5, 7, 10, 14, 15, 19], "4": [1, 3, 7, 8, 10, 14, 15], "karcher_mean": [1, 3], "20": [1, 4, 9, 13, 14], "space": [1, 2, 7, 8, 10, 14, 15], "updat": [1, 7, 8, 15], "step": [1, 7, 8, 13, 14, 15], "5": [1, 3, 7, 8, 12, 14, 15, 16, 19], "6": [1, 3, 7, 8, 14], "7": [1, 3, 7, 10, 14, 19], "can": [1, 2, 7, 14], "srvf_align": [1, 3], "rotat": [1, 2, 3, 8], "fals": [1, 2, 3, 4, 5, 8, 11, 12, 13, 14, 19], "result": [1, 3, 5, 14, 16], "covari": [1, 3, 8], "karcher_cov": [1, 3], "shape_pca": [1, 3], "princip": [1, 3, 10, 14, 16, 18], "direct": [1, 3, 5, 7, 8, 14], "8": [1, 7, 10], "plot_pca": 1, "manipul": [2, 19], "curve_funct": 2, "basis_normal_a": 2, "q": [2, 3, 8, 13, 19], "find": [2, 8, 19], "normal": [2, 3, 8, 14, 16], "basi": [2, 3, 4, 8, 9, 13, 14, 19], "ndarrai": [2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 16, 19], "t": [2, 3, 8, 10, 11, 13, 14, 16, 17, 19], "defin": [2, 3, 4, 12, 14, 16], "point": [2, 3, 4, 5, 8, 11, 12, 13, 14, 16, 19], "dimension": [2, 3], "rtype": [2, 14, 16], "list": [2, 8, 11, 14], "return": [2, 3, 4, 5, 6, 8, 9, 11, 13, 14, 16, 17, 19], "delg": 2, "calc_j": 2, "calcul": [2, 3, 5, 8, 12, 13, 14, 17, 19], "jacobian": 2, "matrix": [2, 3, 4, 8, 9, 11, 12, 13, 14, 16, 19], "from": [2, 3, 4, 8, 14, 16, 17, 19], "shape": [2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19], "sampl": [2, 3, 4, 6, 8, 11, 12, 13, 14, 16, 19], "type": [2, 5, 6, 8, 9, 11, 13, 14, 16, 17, 19], "calculate_vari": 2, "varianc": [2, 3, 14, 19], "calculatecentroid": 2, "centroid": 2, "parameter": [2, 14], "coordin": 2, "curve_to_q": 2, "mode": [2, 3, 11], "o": [2, 3, 8, 10], "convert": [2, 19], "c": [2, 3, 5, 8, 10, 12, 19], "default": [2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 16, 19], "lenb": 2, "length": [2, 3, 4, 8, 12, 14, 19], "lenq": 2, "curve_zero_cross": 2, "y": [2, 4, 10, 12, 13, 19], "bt": [2, 19], "y_max": [2, 19], "y_min": [2, 19], "gmax": [2, 19], "gmin": [2, 19], "cross": [2, 19], "optim": [2, 3, 10, 11, 13, 14, 19], "gamma": [2, 13, 14, 19], "gam": [2, 3, 9, 11, 14, 19], "s": [2, 3, 13, 14, 16, 19], "elast": [2, 5, 10, 14, 17, 18, 19], "regress": [2, 10, 19], "model": [2, 4, 10, 12, 13, 14, 19], "respons": [2, 4, 12, 13, 19], "predicitv": [2, 19], "repsons": [2, 19], "max": [2, 19], "min": [2, 19], "fucntion": [2, 19], "arrai": [2, 3, 4, 5, 12, 13, 14, 19], "o_hat": 2, "elastic_distance_curv": 2, "beta1": [2, 8, 17], "beta2": [2, 8, 17], "scale": [2, 3, 5, 8, 12, 14], "method": [2, 3, 10, 11, 12, 14, 19], "dp": [2, 3, 11, 14, 19], "two": [2, 3, 8, 14, 17, 19], "distanc": [2, 8, 14, 17, 19], "between": [2, 7, 8, 14, 17, 19], "param": [2, 3, 11, 12, 19], "includ": [2, 8], "appli": [2, 3, 4, 10, 12, 19], "option": [2, 3, 4, 12, 13, 14, 19], "ar": [2, 3, 8, 14, 19], "rbfg": [2, 3, 11, 14, 19], "tupl": [2, 3, 4, 13, 14, 16, 19], "dist": [2, 8, 17], "dx": [2, 19], "elastic_shoot": 2, "v": [2, 3], "shoot": [2, 3, 5, 19], "vector": [2, 3, 4, 5, 6, 8, 11, 12, 13, 14, 16, 17, 19], "q2n": [2, 14], "elastic_shooting_vector": 2, "q2": [2, 8, 14, 17, 19], "find_basis_norm": 2, "contain": [2, 4, 5, 12, 13, 14, 16], "find_best_rot": 2, "allow_reflect": 2, "only_xi": 2, "best": 2, "procust": 2, "rigid": 2, "bool": [2, 5, 14], "indic": [2, 19], "reflect": 2, "allow": 2, "determin": 2, "should": [2, 3, 14], "onli": [2, 8, 14, 19], "dimens": [2, 3, 4, 14, 16, 19], "q2new": 2, "r": [2, 3, 7, 10, 14, 15, 16, 17, 19], "find_rotation_and_seed_coord": 2, "candid": 2, "orient": 2, "regist": 2, "seed": [2, 11], "w": [2, 10, 19], "beta2new": 2, "q2best": 2, "rbest": 2, "gamibest": 2, "find_rotation_and_seed_q": 2, "srv": 2, "find_rotation_and_seed_uniqu": 2, "tau": [2, 5], "gram_schmidt": 2, "perform": [2, 4, 8, 10, 11, 12, 13, 14], "gram": 2, "schmidt": 2, "orthogonl": 2, "basis_o": 2, "group_action_by_gamma": 2, "reparamer": 2, "f": [2, 3, 4, 5, 6, 7, 11, 12, 13, 14, 15, 16, 19], "qn": [2, 3, 11, 13, 14], "reparaterm": 2, "group_action_by_gamma_coord": 2, "fn": [2, 11, 13, 14], "innerprod_q2": 2, "inner": [2, 19], "product": [2, 19], "val": [2, 19], "inverse_exp": 2, "invers": [2, 14, 19], "exponenti": [2, 14], "obtain": 2, "inverse_exp_coord": 2, "optimum_reparam_curv": 2, "lam": [2, 4, 11, 13, 14, 19], "size": [2, 3, 4, 11, 12, 13, 14, 16, 17, 19], "nxn": [2, 9], "nxm": [2, 19], "describ": [2, 3, 4, 6, 11, 12, 13, 14, 16, 19], "control": [2, 11, 14, 19], "amount": [2, 6, 19], "parallel_transl": 2, "parallel": [2, 3, 4, 5, 7, 8, 11, 12, 13, 14, 15, 16, 19], "translat": [2, 8], "along": [2, 5, 8, 14], "manifold": [2, 8, 10], "wbar": 2, "pre_proc_curv": 2, "100": [2, 8, 14], "prepcoess": 2, "set": [2, 3, 7, 17, 19], "number": [2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 16, 19], "betanew": 2, "project": [2, 8], "qnew": 2, "A": [2, 3, 10], "current": [2, 4, 12, 13], "project_curv": 2, "qproj": 2, "project_tang": 2, "tangent": [2, 14], "wproj": 2, "psi": [2, 5, 14, 19], "x": [2, 10, 11, 13, 14, 16, 19], "format": 2, "output": [2, 3, 4, 14], "psi1": 2, "psi2": 2, "psi3": 2, "end": [2, 8], "psi4": 2, "q_to_curv": 2, "resamplecurv": 2, "none": [2, 4, 5, 6, 8, 9, 11, 12, 13, 14, 19], "resampl": [2, 3, 19], "have": [2, 7], "new": [2, 3, 4, 12, 13, 14], "xn": [2, 19], "scale_curv": 2, "beta_sc": 2, "factor": [2, 16], "shift_f": 2, "shift": [2, 14], "statist": [3, 10, 14, 16], "curve_stat": 3, "200": [3, 14], "betan": 3, "beta_mean": 3, "q_mean": 3, "pca": [3, 4, 7, 10, 12, 13, 16, 18], "singular": [3, 6], "u": [3, 5, 8, 14], "coef": [3, 5, 14], "coeffici": [3, 4, 5, 12, 13, 14], "qun": [3, 11, 14], "cost": [3, 11, 14], "random": [3, 4, 8, 10, 14, 16, 19], "gamr": 3, "cent": 3, "len": 3, "len_q": 3, "mean_scal": 3, "mean_scale_q": 3, "energi": [3, 8, 9], "26": [3, 10], "aug": 3, "2020": [3, 10], "core": [3, 5, 13, 14, 19], "run": [3, 4, 5, 12, 13, 14, 19], "all": [3, 5, 13, 14, 19], "sample_shap": 3, "numsamp": 3, "10": [3, 10, 13, 14], "variat": [3, 10, 16], "specifi": [3, 4, 12, 14], "awai": [3, 14], "creat": [3, 4, 8, 14, 19], "sequenc": [3, 8], "randn": 3, "d0": [3, 4, 14], "d1": [3, 4, 14], "dn": [3, 4, 14], "standard": [3, 5, 8, 14], "distribut": [3, 4, 14, 16], "conveni": [3, 4, 14], "user": [3, 4, 10, 14], "port": [3, 4, 14], "code": [3, 4, 11, 12, 14], "matlab": [3, 4, 14], "wrap": [3, 4, 14], "standard_norm": 3, "That": [3, 4, 14], "take": [3, 4, 14, 19], "which": [3, 4, 10, 11, 14, 19], "consist": [3, 4, 14], "other": [3, 4, 14, 17, 19], "like": [3, 4, 14], "ones": [3, 4, 14], "default_rng": [3, 14], "instanc": [3, 14], "instead": [3, 14], "pleas": [3, 14], "see": [3, 14], "quick": [3, 14], "start": [3, 14], "If": [3, 4, 14], "posit": 3, "int_lik": 3, "argument": [3, 4, 14], "gener": [3, 10, 14, 19], "an": [3, 4, 9, 10, 14], "fill": 3, "float": [3, 4, 14], "univari": 3, "gaussian": [3, 10, 14], "singl": [3, 4, 14], "randomli": 3, "int": [3, 4, 5, 14], "The": [3, 4, 10, 14], "must": [3, 4, 14], "non": [3, 4, 14], "neg": [3, 4, 13, 14], "given": [3, 4, 14], "python": [3, 4, 10, 14], "z": [3, 14], "were": 3, "suppli": 3, "similar": [3, 11, 13, 14], "its": [3, 14], "also": [3, 7], "accept": [3, 10, 14], "mu": [3, 5, 14, 19], "sigma": [3, 14, 19], "For": [3, 14], "1923875335537315": 3, "four": [3, 14], "25": [3, 4, 12, 14, 19], "49401501": [3, 14], "00950034": [3, 14], "81814867": [3, 14], "29718677": [3, 14], "39924804": [3, 14], "68456316": [3, 14], "99394529": [3, 14], "84057254": [3, 14], "invari": [4, 12, 13], "gml": 4, "elastic_glm_regress": 4, "account": [4, 12, 13], "intercept": [4, 12], "b": [4, 9, 10, 12, 13, 16, 19], "lambda": [4, 14], "regular": [4, 13], "sse": [4, 12, 13, 14], "sum": [4, 12, 13], "error": [4, 12, 13, 14], "18": [4, 5, 12], "calc_model": [4, 12, 13], "link": [4, 11], "linear": [4, 13], "df": [4, 13, 16], "max_itr": [4, 13, 14], "smooth_data": [4, 11, 12, 14, 19], "sparam": [4, 12, 13, 19], "identifi": [4, 12, 13], "string": [4, 12, 14], "quadrat": 4, "cubic": 4, "element": [4, 13], "degre": [4, 13, 16], "freedom": [4, 13, 16], "spline": [4, 13, 19], "iter": [4, 11, 13, 14], "smooth": [4, 6, 11, 12, 13, 14, 19], "filter": [4, 11, 12, 13, 14, 19], "predict": [4, 12, 13], "newdata": [4, 12, 13], "avail": [4, 12, 13], "store": [4, 12, 13], "dict": [4, 12, 13, 14], "need": [4, 8, 12, 13, 19], "kei": [4, 12, 13], "below": [4, 12, 13, 14], "train": [4, 12, 13, 19], "truth": [4, 12, 13], "rand": [4, 8, 14], "random_sampl": [4, 14], "popul": [4, 14], "uniform": [4, 14], "over": [4, 14], "14022471": [4, 14], "96360618": [4, 14], "37601032": [4, 14], "25528411": [4, 14], "49313049": [4, 14], "94909878": [4, 14], "fpca": [5, 10, 12, 14, 16, 18], "fdahpca": [5, 7], "gam_pca": 5, "psi_pca": 5, "latent": [5, 14], "eigenvector": [5, 14, 19], "vec": [5, 19], "calc_fpca": [5, 7], "std": [5, 14], "extract": [5, 14], "deviat": [5, 14], "gedoes": 5, "q_pca": [5, 14], "f_pca": [5, 14], "fdajpca": [5, 7], "joint": [5, 10, 14, 18], "id": 5, "mqn": [5, 14], "mu_psi": 5, "mu_g": 5, "geodes": [5, 10, 19], "midpoint": [5, 19], "fdavpca": [5, 7], "partial": [6, 10], "svd": 6, "fpl": [6, 14], "pls_svd": 6, "qf": 6, "qg": 6, "compon": [6, 10, 14, 16, 18], "wqf": [6, 14], "weight": [6, 14], "wqg": [6, 14], "after": 7, "jointli": 7, "again": 7, "simu_data": [7, 14, 15], "arr_1": [7, 15], "arr_0": [7, 15], "srsf_align": [7, 14, 15, 19], "initi": [7, 8, 9, 14, 15, 19], "21": [7, 10, 15], "vpca": 7, "hpca": 7, "feel": 7, "correl": 7, "jpca": 7, "curv": [8, 10, 14, 17, 18], "back_parallel_transport": 8, "u1": 8, "backward": 8, "path": 8, "utild": 8, "calc_alphadot": 8, "deriv": [8, 14, 19], "alphadot": 8, "calculate_energi": 8, "calculate_grad": 8, "gradient": [8, 13, 14, 19], "grade": 8, "normgrad": 8, "norm": [8, 14], "cov_integr": 8, "find_basis_normal_path": 8, "orthonorm": 8, "each": [8, 11, 14, 19], "geod_dist_path_strt": 8, "geodisc": 8, "straighten": 8, "geod_spher": 8, "origin": [8, 11, 13, 14], "psiq": 8, "init_path_geod": 8, "cal": 8, "alreadi": 8, "init_path_rand": 8, "beta_mid": 8, "betamid": 8, "mid": [8, 19], "path_straighten": 8, "init": 8, "either": 8, "affin": 8, "algorithm": [8, 10, 14], "follow": 8, "outlin": 8, "section": 8, "manuscript": 8, "geod": 8, "pathsqnc": 8, "plot_geod": 8, "update_path": 8, "delta": [8, 13, 14], "parament": 8, "reparam_imag": 9, "It": [9, 14], "im": 9, "stepsiz": 9, "0001": [9, 14], "itermax": 9, "anoth": 9, "repres": 9, "gamnew": 9, "diffeomorph": [9, 19], "inew": 9, "h": [9, 14], "final": [9, 14], "packag": [10, 11], "veloc": 10, "pair": [10, 19], "wise": [10, 14], "group": [10, 14], "well": 10, "guid": 10, "boxplot": [10, 16], "least": [10, 14], "glm": 10, "toler": [10, 13], "bound": 10, "head": [], "kmean": 11, "rst": [], "curve_statist": [], "utility_funct": 19, "umap_metr": 17, "2014": 10, "ph": [10, 16], "thesi": 10, "florida": 10, "state": 10, "univers": 10, "robinson": 10, "2012": 10, "match": 10, "huang": 10, "riemannian": 10, "applic": 10, "srivastava": 10, "wu": 10, "kurtek": 10, "klassen": 10, "marron": 10, "2011": 10, "registr": [10, 14], "fisher": 10, "rao": 10, "metric": 10, "arxiv": 10, "1103": 10, "3817v2": 10, "math": 10, "st": 10, "2013": 10, "61": 10, "50": [10, 11], "66": 10, "proteom": 10, "extend": 10, "electron": 10, "journal": 10, "vol": 10, "pp": [10, 14], "1724": 10, "1733": 10, "signal": [10, 14], "under": 10, "composit": 10, "nois": 10, "With": 10, "sonar": 10, "ieee": 10, "ocean": 10, "engin": 10, "29": [10, 13], "318": 10, "330": 10, "apr": 10, "joshi": 10, "jermyn": 10, "euclidean": 10, "pattern": 10, "machin": 10, "intellig": 10, "transact": 10, "33": 10, "1415": 10, "1428": 10, "estim": 10, "nonlinear": 10, "In": [10, 14, 17, 19], "proceed": 10, "neural": 10, "inform": [10, 12], "process": [10, 13, 16], "system": 10, "nip": 10, "wen": 10, "kyle": 10, "gallivan": 10, "anuj": 10, "pierr": 10, "antoin": 10, "absil": 10, "short": 10, "version": 10, "21st": 10, "intern": 10, "symposium": 10, "mathemat": 10, "theori": 10, "network": 10, "mtn": 10, "cheng": 10, "dryden": 10, "l": [10, 14, 19], "2016": 10, "bayesian": [10, 14], "11": 10, "447": 10, "475": 10, "xie": 10, "bharath": 10, "sun": 10, "geometr": 10, "approach": 10, "visual": 10, "american": 10, "associ": 10, "112": 10, "2017": 10, "979": 10, "993": 10, "lu": 10, "herbei": 10, "prior": 10, "graphic": 10, "894": 10, "904": 10, "lee": 10, "jung": 10, "combin": [10, 12], "1603": 10, "01775": 10, "stat": [10, 14], "me": 10, "lewi": 10, "mine": 10, "12": 10, "101": 10, "115": 10, "2019": 10, "king": 10, "1080": 10, "02664763": 10, "1645818": 10, "harri": 10, "li": 10, "shand": [10, 14], "depth": [10, 19], "detect": 10, "anomali": 10, "technometr": 10, "00401706": 10, "1811156": 10, "ahn": 10, "predictor": 10, "1016": 10, "csda": 10, "107017": 10, "chowdhari": [10, 14], "multimod": [10, 14], "noisi": [10, 14], "hamiltonian": [10, 14], "mont": [10, 14], "carlo": [10, 14], "2021": [10, 13, 14], "zhang": 10, "chkrebtii": 10, "cluster": 10, "posterior": [10, 14], "explor": [10, 14], "infer": 10, "acut": 10, "respiratori": 10, "infect": 10, "dynam": [10, 14], "12397": 10, "christensen": 10, "pairwis": 10, "multipl": 10, "imag": 10, "european": 10, "confer": 10, "vision": 10, "eccv": 10, "septemb": 10, "modul": 10, "search": 10, "page": 10, "kmeans_align": 11, "showplot": [11, 14], "omethod": [11, 14], "dp2": [11, 14, 19], "maxitr": [11, 14], "thresh": 11, "01": [11, 13, 14], "show": [11, 14], "enabl": [11, 16], "joblib": 11, "doparallel": 11, "whether": 11, "threshold": [11, 19], "dictionari": 11, "structur": [11, 13, 14], "q0": [11, 14], "label": [11, 12], "templat": 11, "templates_q": 11, "pcr": 12, "pcr_regress": 12, "elastic_lpcr_regress": 12, "logist": [12, 13], "depend": 12, "loss": [12, 13], "pc": 12, "probabl": [12, 14], "classif": 12, "ylabel": 12, "pca_method": 12, "specif": 12, "vert": 12, "horiz": 12, "elastic_mlpcr_regress": 12, "multinomi": [12, 13], "elastic_pcr_regress": 12, "balanc": 12, "elastic_logist": 13, "oct": 13, "elastic_mlogist": 13, "elastic_regress": 13, "logistic_warp": 13, "logit_gradi": 13, "grad": 13, "logit_hessian": 13, "hessian": 13, "logit_loss": 13, "log": [13, 14], "phi": 13, "mlogit_gradi": 13, "mlogit_loss": 13, "likelihood": [13, 14], "nll": 13, "mlogit_warp_grad": 13, "8000": 13, "tol": [13, 16], "1e": 13, "008": 13, "displai": [13, 14, 15], "stop": 13, "gam_old": 13, "exp": [13, 14], "regression_warp": 13, "gamma_new": 13, "program": 14, "time_warp": [14, 16, 19], "align_fpca": 14, "num_comp": 14, "smoothdata": 14, "collect": [14, 19], "while": 14, "matplotlib": 14, "orig_var": 14, "amp_var": 14, "phase_var": 14, "align_fpl": 14, "comp": 14, "gn": 14, "qfn": 14, "qgn": 14, "qf0": 14, "qg0": 14, "wf": 14, "wg": 14, "fmean": 14, "gami": [14, 19], "rsamp": 14, "ft": 14, "qs": 14, "mcmc": 14, "gauss_model": 14, "sort_sampl": 14, "integ": 14, "sort": 14, "joint_gauss_model": 14, "multiple_align_funct": 14, "grid_dim": [14, 19], "doubl": [14, 16], "grid": [14, 19], "verbos": 14, "print": 14, "statu": 14, "tabl": 14, "fun": 14, "open_fil": 14, "h5": 14, "transpos": 14, "loc": 14, "draw": 14, "densiti": 14, "de": 14, "moivr": 14, "year": 14, "later": 14, "both": 14, "gauss": 14, "laplac": 14, "independ": 14, "often": 14, "call": 14, "bell": 14, "becaus": 14, "characterist": 14, "occur": 14, "natur": 14, "commonli": 14, "influenc": 14, "larg": 14, "tini": 14, "disturb": 14, "own": 14, "uniqu": 14, "array_lik": 14, "centr": 14, "spread": 14, "width": 14, "drawn": 14, "broadcast": 14, "scipi": 14, "cumul": [14, 19], "etc": 14, "p": [14, 16], "frac": 14, "sqrt": [14, 19], "pi": 14, "where": [14, 17, 19], "ha": 14, "peak": 14, "increas": 14, "reach": 14, "607": 14, "impli": 14, "more": 14, "ly": 14, "rather": 14, "than": 14, "those": 14, "far": 14, "wikipedia": 14, "http": [14, 17], "en": 14, "org": 14, "wiki": 14, "normal_distribut": 14, "peebl": 14, "jr": 14, "central": 14, "limit": 14, "theorem": 14, "principl": 14, "4th": 14, "ed": 14, "2001": 14, "51": 14, "125": 14, "1000": 14, "verifi": 14, "ab": 14, "mai": 14, "vari": 14, "ddof": 14, "histogram": 14, "pyplot": 14, "count": 14, "ignor": 14, "hist": 14, "30": 14, "linewidth": 14, "color": 14, "pairwise_align_bay": 14, "f1i": 14, "f2i": 14, "mcmcopt": 14, "f2": [14, 19], "f1": [14, 19], "map": 14, "hyperspher": 14, "subsequ": 14, "mixtur": 14, "pcn": 14, "local": 14, "global": 14, "propos": 14, "input": 14, "zpcn": 14, "larger": 14, "correspond": [14, 19], "prob": 14, "give": 14, "mcmopt": 14, "tmp": 14, "005": 14, "burnin": 14, "alpha0": 14, "beta0": 14, "propvar": 14, "initcoef": 14, "repeat": 14, "npoint": 14, "extrainfo": 14, "f2_warp": 14, "g_coef": 14, "sigma1": 14, "betas_ind": 14, "logl": 14, "gamma_mat": 14, "gamma_stat": 14, "xdist": 14, "ydist": 14, "pairwise_align_bayes_infhmc": 14, "y1i": 14, "y2i": 14, "hierarch": 14, "assum": 14, "mearsur": 14, "infti": 14, "hmc": 14, "nchain": 14, "vpriorvar": 14, "f1propvar": 14, "f2propvar": 14, "l1propvar": 14, "l2propvar": 14, "thin": 14, "sampfreq": 14, "nbasi": 14, "fourier": 14, "legendr": 14, "v_coef": 14, "theta_accept": 14, "f2_accept": 14, "pairwise_align_funct": 14, "f2n": 14, "next": 15, "demonstr": 15, "boottb": 16, "99": 16, "500": 16, "bootstrap": 16, "confid": 16, "level": 16, "coverag": 16, "amp": [16, 19], "out_m": 16, "mvtol_region": 16, "multivari": 16, "krishnamoorthi": 16, "mondal": 16, "2006": 16, "improv": 16, "commun": 16, "simul": 16, "35": 16, "461": 16, "478": 16, "pcatb": 16, "jointfpca": 16, "rwishart": 16, "wishart": 16, "github": 17, "com": 17, "lmcinn": 17, "efda_dist": 17, "word": [17, 19], "up": 17, "sne": 17, "scikit": 17, "learn": 17, "efda_distance_curv": 17, "content": 18, "sqrtmean": 19, "gam_mu": 19, "dim": 19, "sqrtmeaninvers": 19, "sqrtmedian": 19, "gam_median": 19, "psi_meidan": 19, "cumtrapzmid": 19, "trapezoid": 19, "numer": 19, "integr": 19, "taken": 19, "midpointt": 19, "midpiont": 19, "locat": 19, "fa": 19, "diffop": 19, "binsiz": 19, "order": 19, "differenti": 19, "oper": 19, "elastic_depth": 19, "mxn": 19, "elastic_dist": 19, "dy": 19, "f_k_fold": 19, "nob": 19, "fold": 19, "valid": 19, "observ": 19, "test": 19, "f_to_srsf": 19, "geigen": 19, "amat": 19, "bmat": 19, "cmat": 19, "eigenvalu": 19, "problem": 19, "form": 19, "tr": 19, "am": 19, "bl": 19, "cm": 19, "lmat": 19, "left": 19, "mmat": 19, "right": 19, "gradient_splin": 19, "f0": 19, "g2": 19, "innerprod_q": 19, "innerproduct": 19, "descrb": 19, "invertgamma": 19, "optimum_reparam": 19, "penalti": 19, "rough": 19, "l2gam": 19, "l2psi": 19, "implement": 19, "To": 19, "optimum_reparam_pair": 19, "outlier_detect": 19, "mq": 19, "sr": 19, "q_outlier": 19, "randomgamma": 19, "num": 19, "rgam": 19, "resamplefunct": 19, "mu_gam": 19, "ident": 19, "srsf_to_f": 19, "update_progress": 19, "progress": 19, "bar": 19, "fraction": 19, "warp_f_gamma": 19, "f_temp": 19, "warp_q_gamma": 19, "q_temp": 19, "zero_cross": 19, "util": 10, "umap": 10, "efda": 10}, "objects": {"": [[0, 0, 0, "-", "boxplots"], [2, 0, 0, "-", "curve_functions"], [3, 0, 0, "-", "curve_stats"], [4, 0, 0, "-", "elastic_glm_regression"], [5, 0, 0, "-", "fPCA"], [6, 0, 0, "-", "fPLS"], [8, 0, 0, "-", "geodesic"], [9, 0, 0, "-", "image"], [11, 0, 0, "-", "kmeans"], [12, 0, 0, "-", "pcr_regression"], [13, 0, 0, "-", "regression"], [14, 0, 0, "-", "time_warping"], [16, 0, 0, "-", "tolerance"], [17, 0, 0, "-", "umap_metric"], [19, 0, 0, "-", "utility_functions"]], "boxplots": [[0, 1, 1, "", "ampbox"], [0, 1, 1, "", "phbox"]], "boxplots.ampbox": [[0, 2, 1, "", "construct_boxplot"], [0, 2, 1, "", "plot"]], "boxplots.phbox": [[0, 2, 1, "", "construct_boxplot"], [0, 2, 1, "", "plot"]], "curve_functions": [[2, 3, 1, "", "Basis_Normal_A"], [2, 3, 1, "", "calc_j"], [2, 3, 1, "", "calculate_variance"], [2, 3, 1, "", "calculatecentroid"], [2, 3, 1, "", "curve_to_q"], [2, 3, 1, "", "curve_zero_crossing"], [2, 3, 1, "", "elastic_distance_curve"], [2, 3, 1, "", "elastic_shooting"], [2, 3, 1, "", "elastic_shooting_vector"], [2, 3, 1, "", "find_basis_normal"], [2, 3, 1, "", "find_best_rotation"], [2, 3, 1, "", "find_rotation_and_seed_coord"], [2, 3, 1, "", "find_rotation_and_seed_q"], [2, 3, 1, "", "find_rotation_and_seed_unique"], [2, 3, 1, "", "gram_schmidt"], [2, 3, 1, "", "group_action_by_gamma"], [2, 3, 1, "", "group_action_by_gamma_coord"], [2, 3, 1, "", "innerprod_q2"], [2, 3, 1, "", "inverse_exp"], [2, 3, 1, "", "inverse_exp_coord"], [2, 3, 1, "", "optimum_reparam_curve"], [2, 3, 1, "", "parallel_translate"], [2, 3, 1, "", "pre_proc_curve"], [2, 3, 1, "", "project_curve"], [2, 3, 1, "", "project_tangent"], [2, 3, 1, "", "psi"], [2, 3, 1, "", "q_to_curve"], [2, 3, 1, "", "resamplecurve"], [2, 3, 1, "", "scale_curve"], [2, 3, 1, "", "shift_f"]], "curve_stats": [[3, 1, 1, "", "fdacurve"], [3, 3, 1, "", "randn"]], "curve_stats.fdacurve": [[3, 2, 1, "", "karcher_cov"], [3, 2, 1, "", "karcher_mean"], [3, 2, 1, "", "plot"], [3, 2, 1, "", "sample_shapes"], [3, 2, 1, "", "shape_pca"], [3, 2, 1, "", "srvf_align"]], "elastic_glm_regression": [[4, 1, 1, "", "elastic_glm_regression"], [4, 3, 1, "", "rand"]], "elastic_glm_regression.elastic_glm_regression": [[4, 2, 1, "", "calc_model"], [4, 2, 1, "", "predict"]], "fPCA": [[5, 1, 1, "", "fdahpca"], [5, 1, 1, "", "fdajpca"], [5, 1, 1, "", "fdavpca"]], "fPCA.fdahpca": [[5, 2, 1, "", "calc_fpca"], [5, 2, 1, "", "plot"]], "fPCA.fdajpca": [[5, 2, 1, "", "calc_fpca"], [5, 2, 1, "", "plot"]], "fPCA.fdavpca": [[5, 2, 1, "", "calc_fpca"], [5, 2, 1, "", "plot"]], "fPLS": [[6, 3, 1, "", "pls_svd"]], "geodesic": [[8, 3, 1, "", "back_parallel_transport"], [8, 3, 1, "", "calc_alphadot"], [8, 3, 1, "", "calculate_energy"], [8, 3, 1, "", "calculate_gradE"], [8, 3, 1, "", "cov_integral"], [8, 3, 1, "", "find_basis_normal_path"], [8, 3, 1, "", "geod_dist_path_strt"], [8, 3, 1, "", "geod_sphere"], [8, 3, 1, "", "init_path_geod"], [8, 3, 1, "", "init_path_rand"], [8, 3, 1, "", "path_straightening"], [8, 3, 1, "", "plot_geod"], [8, 3, 1, "", "update_path"]], "image": [[9, 3, 1, "", "reparam_image"]], "kmeans": [[11, 3, 1, "", "kmeans_align"]], "pcr_regression": [[12, 1, 1, "", "elastic_lpcr_regression"], [12, 1, 1, "", "elastic_mlpcr_regression"], [12, 1, 1, "", "elastic_pcr_regression"]], "pcr_regression.elastic_lpcr_regression": [[12, 2, 1, "", "calc_model"], [12, 2, 1, "", "predict"]], "pcr_regression.elastic_mlpcr_regression": [[12, 2, 1, "", "calc_model"], [12, 2, 1, "", "predict"]], "pcr_regression.elastic_pcr_regression": [[12, 2, 1, "", "calc_model"], [12, 2, 1, "", "predict"]], "regression": [[13, 1, 1, "", "elastic_logistic"], [13, 1, 1, "", "elastic_mlogistic"], [13, 1, 1, "", "elastic_regression"], [13, 3, 1, "", "logistic_warp"], [13, 3, 1, "", "logit_gradient"], [13, 3, 1, "", "logit_hessian"], [13, 3, 1, "", "logit_loss"], [13, 3, 1, "", "mlogit_gradient"], [13, 3, 1, "", "mlogit_loss"], [13, 3, 1, "", "mlogit_warp_grad"], [13, 3, 1, "", "phi"], [13, 3, 1, "", "regression_warp"]], "regression.elastic_logistic": [[13, 2, 1, "", "calc_model"], [13, 2, 1, "", "predict"]], "regression.elastic_mlogistic": [[13, 2, 1, "", "calc_model"], [13, 2, 1, "", "predict"]], "regression.elastic_regression": [[13, 2, 1, "", "calc_model"], [13, 2, 1, "", "predict"]], "time_warping": [[14, 3, 1, "", "align_fPCA"], [14, 3, 1, "", "align_fPLS"], [14, 1, 1, "", "fdawarp"], [14, 3, 1, "", "normal"], [14, 3, 1, "", "pairwise_align_bayes"], [14, 3, 1, "", "pairwise_align_bayes_infHMC"], [14, 3, 1, "", "pairwise_align_functions"], [14, 3, 1, "", "rand"]], "time_warping.fdawarp": [[14, 2, 1, "", "gauss_model"], [14, 2, 1, "", "joint_gauss_model"], [14, 2, 1, "", "multiple_align_functions"], [14, 2, 1, "", "plot"], [14, 2, 1, "", "srsf_align"]], "tolerance": [[16, 3, 1, "", "bootTB"], [16, 3, 1, "", "mvtol_region"], [16, 3, 1, "", "pcaTB"], [16, 3, 1, "", "rwishart"]], "umap_metric": [[17, 3, 1, "", "efda_distance"], [17, 3, 1, "", "efda_distance_curve"]], "utility_functions": [[19, 3, 1, "", "SqrtMean"], [19, 3, 1, "", "SqrtMeanInverse"], [19, 3, 1, "", "SqrtMedian"], [19, 3, 1, "", "cumtrapzmid"], [19, 3, 1, "", "diffop"], [19, 3, 1, "", "elastic_depth"], [19, 3, 1, "", "elastic_distance"], [19, 3, 1, "", "f_K_fold"], [19, 3, 1, "", "f_to_srsf"], [19, 3, 1, "", "geigen"], [19, 3, 1, "", "gradient_spline"], [19, 3, 1, "", "innerprod_q"], [19, 3, 1, "", "invertGamma"], [19, 3, 1, "", "optimum_reparam"], [19, 3, 1, "", "optimum_reparam_pair"], [19, 3, 1, "", "outlier_detection"], [19, 3, 1, "", "randomGamma"], [19, 3, 1, "", "resamplefunction"], [19, 3, 1, "", "rgam"], [19, 3, 1, "", "smooth_data"], [19, 3, 1, "", "srsf_to_f"], [19, 3, 1, "", "update_progress"], [19, 3, 1, "", "warp_f_gamma"], [19, 3, 1, "", "warp_q_gamma"], [19, 3, 1, "", "zero_crossing"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"]}, "titleterms": {"elast": [0, 1, 4, 7, 9, 11, 12, 13, 15, 16], "function": [0, 2, 5, 6, 7, 11, 14, 15, 16, 19], "boxplot": 0, "curv": [1, 2, 3], "align": [1, 14, 15], "shape": 1, "pca": 1, "registr": 3, "glm": 4, "regress": [4, 12, 13], "princip": [5, 6, 7, 12], "compon": [5, 7, 12], "analysi": [5, 7], "least": 6, "squar": 6, "vertic": 7, "fpca": 7, "horizont": 7, "joint": 7, "srvf": 8, "geodes": 8, "comput": 8, "imag": 9, "warp": 9, "welcom": 10, "fdasrsf": 10, "s": 10, "document": 10, "refer": 10, "indic": 10, "tabl": 10, "cluster": 11, "toler": 16, "bound": 16, "umap": 17, "efda": 17, "metric": 17, "user": 18, "guid": 18, "util": 19}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["boxplots", "curve_example", "curve_functions", "curve_statistics", "elastic_glm_regression", "fPCA", "fPLS", "fpca_example", "geodesic", "image", "index", "kmeans", "pcr_regression", "regression", "time_warping", "time_warping_example", "tolerance", "umap_metric", "user_guide", "utility_functions"], "filenames": ["boxplots.rst", "curve_example.ipynb", "curve_functions.rst", "curve_statistics.rst", "elastic_glm_regression.rst", "fPCA.rst", "fPLS.rst", "fpca_example.ipynb", "geodesic.rst", "image.rst", "index.rst", "kmeans.rst", "pcr_regression.rst", "regression.rst", "time_warping.rst", "time_warping_example.ipynb", "tolerance.rst", "umap_metric.rst", "user_guide.rst", "utility_functions.rst"], "titles": ["Elastic Functional Boxplots", "Elastic Curve Alignment", "Curve Functions", "Curve Registration", "Elastic GLM Regression", "Functional Principal Component Analysis", "Functional Principal Least Squares", "Elastic Functional Principal Component Analysis", "SRVF Geodesic Computation", "Elastic Image Warping", "Welcome to fdasrsf\u2019s documentation!", "Elastic Functional Clustering", "Elastic Principal Component Regression", "Elastic Regression", "Functional Alignment", "Elastic Functional Alignment", "Elastic Functional Tolerance Bounds", "UMAP EFDA Metrics", "User Guide", "Utility Functions"], "terms": {"otherwis": [1, 15], "known": [1, 15], "time": [1, 7, 10, 15], "warp": [1, 7, 10, 15], "literatur": [1, 15], "i": [1, 7, 10, 15], "center": [1, 15], "function": [1, 10, 18], "data": [1, 7, 10, 15], "analysi": [1, 10, 15, 18], "here": [1, 15], "our": [1, 7, 15], "goal": [1, 15], "separ": [1, 10, 15], "out": [1, 15], "horizont": [1, 10, 15, 18], "vertic": [1, 10, 15, 18], "variabl": [1, 7, 10, 15], "open": 1, "close": 1, "1": [1, 7, 10, 15], "import": [1, 7, 15], "fdasrsf": [1, 7, 15], "f": [1, 7, 15], "numpi": [1, 7, 15], "np": [1, 7, 15], "load": [1, 7, 15], "exampl": [1, 7, 15], "2": [1, 7, 10, 15], "bin": [1, 7, 15], "mpeg7": 1, "npz": [1, 7, 15], "allow_pickl": 1, "true": [1, 7, 15], "xdata": 1, "0": 1, "n": 1, "m": [1, 10], "k": [1, 10], "beta": 1, "zero": 1, "rang": 1, "we": [1, 7, 15], "construct": [1, 7, 15], "fdacurv": 1, "object": [1, 7, 15], "3": [1, 7, 15], "obj": [1, 7, 15], "comput": [1, 7, 10, 15], "karcher": [1, 7, 15], "mean": [1, 7, 10, 15], "4": [1, 7, 10, 15], "karcher_mean": 1, "20": 1, "srvf": [1, 10], "space": [1, 7, 10, 15], "updat": [1, 7, 15], "step": [1, 7, 15], "5": [1, 7, 15], "6": [1, 7], "7": [1, 7, 10], "can": [1, 7], "srvf_align": 1, "rotat": 1, "fals": 1, "plot": [1, 7, 15], "result": 1, "covari": 1, "karcher_cov": 1, "shape_pca": 1, "princip": [1, 10, 18], "direct": [1, 7], "8": [1, 7, 10], "plot_pca": 1, "after": 7, "have": 7, "align": [7, 10, 18], "jointli": 7, "again": 7, "simu_data": [7, 15], "arr_1": [7, 15], "arr_0": [7, 15], "fdawarp": [7, 15], "srsf_align": [7, 15], "parallel": [7, 15], "initi": [7, 15], "21": [7, 10, 15], "srsf": [7, 15], "r": [7, 10, 15], "first": 7, "pca": [7, 10, 18], "number": 7, "default": 7, "vpca": 7, "fdavpca": 7, "calc_fpca": 7, "set": 7, "hpca": 7, "fdahpca": 7, "also": 7, "phase": [7, 10], "amplitud": [7, 10], "feel": 7, "correl": 7, "between": 7, "jpca": 7, "fdajpca": 7, "A": 10, "python": 10, "packag": 10, "us": [10, 15], "squar": 10, "root": 10, "slope": 10, "framework": [10, 15], "curv": [10, 18], "veloc": 10, "which": 10, "perform": 10, "pair": 10, "wise": 10, "group": 10, "well": 10, "model": 10, "compon": [10, 18], "regress": 10, "user": 10, "guid": 10, "elast": [10, 18], "fpca": [10, 18], "joint": [10, 18], "shape": [10, 18], "boxplot": 10, "least": 10, "glm": 10, "toler": 10, "bound": 10, "cluster": 10, "imag": 10, "registr": 10, "geodes": 10, "util": 10, "umap": 10, "efda": 10, "metric": 10, "tucker": 10, "j": 10, "d": 10, "2014": 10, "method": 10, "ph": 10, "thesi": 10, "florida": 10, "state": 10, "univers": 10, "robinson": 10, "t": 10, "2012": 10, "partial": 10, "match": 10, "huang": 10, "w": 10, "optim": 10, "algorithm": 10, "riemannian": 10, "manifold": 10, "applic": 10, "srivastava": 10, "wu": 10, "kurtek": 10, "klassen": 10, "e": 10, "marron": 10, "2011": 10, "fisher": 10, "rao": 10, "arxiv": 10, "1103": 10, "3817v2": 10, "math": 10, "st": 10, "2013": 10, "gener": 10, "statist": 10, "61": 10, "50": 10, "66": 10, "proteom": 10, "extend": 10, "electron": 10, "journal": 10, "vol": 10, "pp": 10, "1724": 10, "1733": 10, "signal": 10, "under": 10, "composit": 10, "nois": 10, "With": 10, "sonar": 10, "ieee": 10, "ocean": 10, "engin": 10, "29": 10, "318": 10, "330": 10, "apr": 10, "joshi": 10, "jermyn": 10, "euclidean": 10, "pattern": 10, "machin": 10, "intellig": 10, "transact": 10, "33": 10, "1415": 10, "1428": 10, "estim": 10, "random": 10, "nonlinear": 10, "In": 10, "proceed": 10, "neural": 10, "inform": 10, "process": 10, "system": 10, "nip": 10, "wen": 10, "kyle": 10, "gallivan": 10, "anuj": 10, "pierr": 10, "antoin": 10, "absil": 10, "short": 10, "version": 10, "The": 10, "21st": 10, "intern": 10, "symposium": 10, "mathemat": 10, "theori": 10, "network": 10, "mtn": 10, "cheng": 10, "dryden": 10, "l": 10, "x": 10, "2016": 10, "bayesian": 10, "11": 10, "447": 10, "475": 10, "xie": 10, "bharath": 10, "y": 10, "sun": 10, "geometr": 10, "approach": 10, "visual": 10, "american": 10, "associ": 10, "112": 10, "2017": 10, "979": 10, "993": 10, "lu": 10, "herbei": 10, "gaussian": 10, "prior": 10, "graphic": 10, "26": 10, "894": 10, "904": 10, "lee": 10, "jung": 10, "combin": 10, "variat": 10, "1603": 10, "01775": 10, "stat": 10, "me": 10, "lewi": 10, "mine": 10, "12": 10, "101": 10, "115": 10, "2019": 10, "c": 10, "king": 10, "appli": 10, "10": 10, "1080": 10, "02664763": 10, "1645818": 10, "harri": 10, "b": 10, "li": 10, "shand": 10, "depth": 10, "detect": 10, "anomali": 10, "technometr": 10, "00401706": 10, "2020": 10, "1811156": 10, "ahn": 10, "predictor": 10, "1016": 10, "csda": 10, "107017": 10, "chowdhari": 10, "multimod": 10, "noisi": 10, "hamiltonian": 10, "mont": 10, "carlo": 10, "accept": 10, "2021": 10, "zhang": 10, "o": 10, "chkrebtii": 10, "posterior": 10, "explor": 10, "an": 10, "infer": 10, "acut": 10, "respiratori": 10, "infect": 10, "dynam": 10, "12397": 10, "g": 10, "christensen": 10, "base": 10, "pairwis": 10, "multipl": 10, "european": 10, "confer": 10, "vision": 10, "eccv": 10, "septemb": 10, "index": 10, "modul": 10, "search": 10, "page": 10, "next": 15, "displai": 15, "demonstr": 15, "content": 18}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"elast": [0, 1, 4, 7, 9, 11, 12, 13, 15, 16], "function": [0, 2, 5, 6, 7, 11, 14, 15, 16, 19], "boxplot": 0, "curv": [1, 2, 3], "align": [1, 14, 15], "shape": 1, "pca": 1, "registr": 3, "glm": 4, "regress": [4, 12, 13], "princip": [5, 6, 7, 12], "compon": [5, 7, 12], "analysi": [5, 7], "least": 6, "squar": 6, "vertic": 7, "fpca": 7, "horizont": 7, "joint": 7, "srvf": 8, "geodes": 8, "comput": 8, "imag": 9, "warp": 9, "welcom": 10, "fdasrsf": 10, "": 10, "document": 10, "refer": 10, "indic": 10, "tabl": 10, "cluster": 11, "toler": 16, "bound": 16, "umap": 17, "efda": 17, "metric": 17, "user": 18, "guid": 18, "util": 19}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "nbsphinx": 4, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinx": 57}, "alltitles": {"Elastic Functional Boxplots": [[0, "elastic-functional-boxplots"]], "Elastic Curve Alignment": [[1, "Elastic-Curve-Alignment"]], "Shape PCA": [[1, "Shape-PCA"]], "Curve Functions": [[2, "curve-functions"]], "Curve Registration": [[3, "curve-registration"]], "Elastic GLM Regression": [[4, "elastic-glm-regression"]], "Functional Principal Component Analysis": [[5, "functional-principal-component-analysis"]], "Functional Principal Least Squares": [[6, "functional-principal-least-squares"]], "Elastic Functional Principal Component Analysis": [[7, "Elastic-Functional-Principal-Component-Analysis"]], "Vertical fPCA": [[7, "Vertical-fPCA"]], "Horizontal fPCA": [[7, "Horizontal-fPCA"]], "Joint fPCA": [[7, "Joint-fPCA"]], "SRVF Geodesic Computation": [[8, "srvf-geodesic-computation"]], "Elastic Image Warping": [[9, "elastic-image-warping"]], "Welcome to fdasrsf\u2019s documentation!": [[10, "welcome-to-fdasrsf-s-documentation"]], "References": [[10, "references"]], "Indices and tables": [[10, "indices-and-tables"]], "Elastic Functional Clustering": [[11, "elastic-functional-clustering"]], "Elastic Principal Component Regression": [[12, "elastic-principal-component-regression"]], "Elastic Regression": [[13, "elastic-regression"]], "Functional Alignment": [[14, "functional-alignment"]], "Elastic Functional Alignment": [[15, "Elastic-Functional-Alignment"]], "Elastic Functional Tolerance Bounds": [[16, "elastic-functional-tolerance-bounds"]], "UMAP EFDA Metrics": [[17, "umap-efda-metrics"]], "User Guide": [[18, "user-guide"]], "Utility Functions": [[19, "utility-functions"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/doc/build/html/time_warping.html b/doc/build/html/time_warping.html index 9a78dd23..b6e48c89 100644 --- a/doc/build/html/time_warping.html +++ b/doc/build/html/time_warping.html @@ -1,96 +1,51 @@ - - - - + - - - - - - Functional Alignment — fdasrsf 2.4.0 documentation - - - + + + Functional Alignment — fdasrsf 2.4.1 documentation + + + - - - - - - - - + - - - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/tolerance.html b/doc/build/html/tolerance.html index 26993516..dc8408c3 100644 --- a/doc/build/html/tolerance.html +++ b/doc/build/html/tolerance.html @@ -1,94 +1,51 @@ - - - - + - - - - - - Elastic Functional Tolerance Bounds — fdasrsf 2.4.0 documentation - - - - - - - + + + Elastic Functional Tolerance Bounds — fdasrsf 2.4.1 documentation + + + - - - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/umap_metric.html b/doc/build/html/umap_metric.html index 426e6731..ba14f511 100644 --- a/doc/build/html/umap_metric.html +++ b/doc/build/html/umap_metric.html @@ -1,93 +1,50 @@ - - - - + - - - - - - UMAP EFDA Metrics — fdasrsf 2.4.0 documentation - - - - - - - - - + + + UMAP EFDA Metrics — fdasrsf 2.4.1 documentation + + + - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/html/utility_functions.html b/doc/build/html/utility_functions.html index e36117f6..db65850d 100644 --- a/doc/build/html/utility_functions.html +++ b/doc/build/html/utility_functions.html @@ -1,94 +1,51 @@ - - - - + - - - - - - Utility Functions — fdasrsf 2.4.0 documentation - - - - + + + Utility Functions — fdasrsf 2.4.1 documentation + + + - - - - - - - + - - - - - - - - - - + - - - +
- -
- - -
- - - - - - - - - + \ No newline at end of file diff --git a/doc/build/latex/.doctrees/boxplots.doctree b/doc/build/latex/.doctrees/boxplots.doctree index 91e13883..88a0992c 100644 Binary files a/doc/build/latex/.doctrees/boxplots.doctree and b/doc/build/latex/.doctrees/boxplots.doctree differ diff --git a/doc/build/latex/.doctrees/curve_functions.doctree b/doc/build/latex/.doctrees/curve_functions.doctree index c6dcc6d6..43dc9af2 100644 Binary files a/doc/build/latex/.doctrees/curve_functions.doctree and b/doc/build/latex/.doctrees/curve_functions.doctree differ diff --git a/doc/build/latex/.doctrees/curve_statistics.doctree b/doc/build/latex/.doctrees/curve_statistics.doctree index 3c0ba2fe..a3e7b021 100644 Binary files a/doc/build/latex/.doctrees/curve_statistics.doctree and b/doc/build/latex/.doctrees/curve_statistics.doctree differ diff --git a/doc/build/latex/.doctrees/environment.pickle b/doc/build/latex/.doctrees/environment.pickle index 9fff98be..4d9ab1c8 100644 Binary files a/doc/build/latex/.doctrees/environment.pickle and b/doc/build/latex/.doctrees/environment.pickle differ diff --git a/doc/build/latex/.doctrees/fPCA.doctree b/doc/build/latex/.doctrees/fPCA.doctree index 45974bd3..692646f7 100644 Binary files a/doc/build/latex/.doctrees/fPCA.doctree and b/doc/build/latex/.doctrees/fPCA.doctree differ diff --git a/doc/build/latex/.doctrees/fPLS.doctree b/doc/build/latex/.doctrees/fPLS.doctree index f989dfb5..32cc9c6b 100644 Binary files a/doc/build/latex/.doctrees/fPLS.doctree and b/doc/build/latex/.doctrees/fPLS.doctree differ diff --git a/doc/build/latex/.doctrees/geodesic.doctree b/doc/build/latex/.doctrees/geodesic.doctree index e7020ade..95ca3bc5 100644 Binary files a/doc/build/latex/.doctrees/geodesic.doctree and b/doc/build/latex/.doctrees/geodesic.doctree differ diff --git a/doc/build/latex/.doctrees/index.doctree b/doc/build/latex/.doctrees/index.doctree index f2d49a60..62a887ab 100644 Binary files a/doc/build/latex/.doctrees/index.doctree and b/doc/build/latex/.doctrees/index.doctree differ diff --git a/doc/build/latex/.doctrees/pcr_regression.doctree b/doc/build/latex/.doctrees/pcr_regression.doctree index 50db1fd8..d6e15505 100644 Binary files a/doc/build/latex/.doctrees/pcr_regression.doctree and b/doc/build/latex/.doctrees/pcr_regression.doctree differ diff --git a/doc/build/latex/.doctrees/regression.doctree b/doc/build/latex/.doctrees/regression.doctree index 3a3c1489..ab68af42 100644 Binary files a/doc/build/latex/.doctrees/regression.doctree and b/doc/build/latex/.doctrees/regression.doctree differ diff --git a/doc/build/latex/.doctrees/time_warping.doctree b/doc/build/latex/.doctrees/time_warping.doctree index f6847b37..5532398f 100644 Binary files a/doc/build/latex/.doctrees/time_warping.doctree and b/doc/build/latex/.doctrees/time_warping.doctree differ diff --git a/doc/build/latex/.doctrees/tolerance.doctree b/doc/build/latex/.doctrees/tolerance.doctree index ebc06a11..513dddd9 100644 Binary files a/doc/build/latex/.doctrees/tolerance.doctree and b/doc/build/latex/.doctrees/tolerance.doctree differ diff --git a/doc/build/latex/.doctrees/umap_metric.doctree b/doc/build/latex/.doctrees/umap_metric.doctree index 845e1130..bd3d5abf 100644 Binary files a/doc/build/latex/.doctrees/umap_metric.doctree and b/doc/build/latex/.doctrees/umap_metric.doctree differ diff --git a/doc/build/latex/.doctrees/utility_functions.doctree b/doc/build/latex/.doctrees/utility_functions.doctree index 0cab9e28..49f0f40f 100644 Binary files a/doc/build/latex/.doctrees/utility_functions.doctree and b/doc/build/latex/.doctrees/utility_functions.doctree differ diff --git a/doc/build/latex/LatinRules.xdy b/doc/build/latex/LatinRules.xdy index 99f14a2e..b20fbbb8 100644 --- a/doc/build/latex/LatinRules.xdy +++ b/doc/build/latex/LatinRules.xdy @@ -1,9 +1,13 @@ -;; style file for xindy +;; Common Lisp style file for xindy ;; filename: LatinRules.xdy ;; +;; Please note that this data file deliberately uses strings +;; with single non-ascii bytes. This is intentional and +;; follows the usage observed in similar xindy support files. +;; ;; It is based upon xindy's files lang/general/utf8.xdy and ;; lang/general/utf8-lang.xdy which implement -;; "a general sorting order for Western European languages" +;; "a general sorting order for Western European languages". ;; ;; The aim for Sphinx is to be able to index in a Cyrillic document ;; also terms using the Latin alphabets, inclusive of letters @@ -14,7 +18,7 @@ ;; ;; So here we use only 0o266 or higher bytes. ;; (Ŋ, ŋ, IJ, and ij are absent from -;; lang/general/utf8.xdy and not included here) +;; lang/general/utf8.xdy and not included here.) ;; Contributed by the Sphinx team, 2018. (define-letter-group "A" :prefixes ("")) diff --git a/doc/build/latex/fdasrsf.pdf b/doc/build/latex/fdasrsf.pdf index 38648884..bfa97083 100644 Binary files a/doc/build/latex/fdasrsf.pdf and b/doc/build/latex/fdasrsf.pdf differ diff --git a/doc/build/latex/sphinx.sty b/doc/build/latex/sphinx.sty index 1f7eb1bd..0ac55cc4 100644 --- a/doc/build/latex/sphinx.sty +++ b/doc/build/latex/sphinx.sty @@ -6,7 +6,7 @@ % \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{sphinx}[2021/01/27 v4.0.0 LaTeX package (Sphinx markup)] +\ProvidesPackage{sphinx}[2022/08/15 v5.3.0 LaTeX package (Sphinx markup)] % provides \ltx@ifundefined % (many packages load ltxcmds: graphicx does for pdftex and lualatex but @@ -17,6 +17,7 @@ %% for deprecation warnings \newcommand\sphinxdeprecationwarning[4]{% #1 the deprecated macro or name, % #2 = when deprecated, #3 = when removed, #4 = additional info + {% limit scope of \spx@tempa, \AtEndDocument works even if nested. \edef\spx@tempa{\detokenize{#1}}% \ltx@ifundefined{sphinx_depr_\spx@tempa}{% \global\expandafter\let\csname sphinx_depr_\spx@tempa\endcsname\spx@tempa @@ -28,27 +29,117 @@ \@spaces- and removed at Sphinx #3.^^J #4^^J****}}% }{% warning already emitted (at end of latex log), don't repeat - }} + }% + }% end of scope limiting group for \spx@tempa +} +%% important build warnings use an undefined reference to induce latexmk +%% into complaining (once per warning) at very end of console output +\newcommand\sphinxbuildwarning[1]{% + \ifcsname sphinx_emitted_#1\endcsname + \else + \global\expandafter\let\csname sphinx_emitted_#1\endcsname\@empty + \AtEndDocument{\hbox{% should the printing of text be made conditional on + % some boolean? + \bfseries\color{red}% + \@nameuse{sphinx_buildwarning_#1}% + % place an undefined reference deliberately + \let\nfss@text\@gobble % no ?? + \ref{!!\@nameuse{sphinx_buildwarning_#1}}% + }}% + \fi +} +\@namedef{sphinx_buildwarning_coloursyntax}{% + The colours whose definition used xcolor syntax were set to white + as xcolor was not found; check the latex log warnings for details} +\@namedef{sphinx_buildwarning_colorblend}{% + Command \string\sphinxcolorblend\space seen but ignored in tables + as xcolor was not found; check the latex log warnings for details} +\@namedef{sphinx_buildwarning_nopict2e}{% + Some radii options for box corners used; they were ignored as pict2e + was not found} +\@namedef{sphinx_buildwarning_badtitlesec}{% + Your system has titlesec version 2.10.1 which causes disappearance + of section numbers; check the latex log warning for details} +\@namedef{sphinx_buildwarning_booktabs}{% + Some tables with booktabs class (check latex log) but booktabs + package not loaded; add its loading to the latex preamble}% +\@namedef{sphinx_buildwarning_badfootnotes}{% + Footnote rendering may have had problems, due to extra package or + document class; check latex log for instructions}% %% OPTION HANDLING % -% We first handle options then load packages, but we need \definecolor from -% xcolor/color. +% We generally first handle options then load packages, but we need +% \definecolor from xcolor/color to handle the options. -% FIXME: we should \RequirePackage{xcolor} always now -% The xcolor package draws better fcolorboxes around verbatim code +% MEMO: xcolor \fcolorbox coloured boxes render better in some PDF viewers +% than with color package \fcolorbox. Since 1.6.3, Sphinx uses only its own +% custom variant of \fcolorbox when handling verbatim code. Currently (last +% checked at 5.0.0) \fcolorbox is used for admonitions (sphinxheavybox) +% and appears also in Pygmentize output mark-up. \IfFileExists{xcolor.sty}{ \RequirePackage{xcolor} }{ \RequirePackage{color} } +% the \colorlet of xcolor (if at all loaded) is overkill for our internal use +\newcommand{\sphinxcolorlet}[2] + {\expandafter\let\csname\@backslashchar color@#1\expandafter\endcsname + \csname\@backslashchar color@#2\endcsname } + +% (5.3.0) allow colour options to use both the \definecolor and the \colorlet +% syntaxes, for example VerbatimColor={gray}{0.9} or VerbatimColor=red!10 +% In the latter case we need the real \colorlet from xcolor package. +\def\spx@defineorletcolor#1{% + \def\spx@definedcolor{{#1}}% + \futurelet\spx@token\spx@defineorlet} +\def\spx@defineorlet{% + \ifx\spx@token\bgroup + \expandafter\spx@definecolor\else\expandafter\spx@colorlet\fi} +\def\spx@colorlet#1\relax{\expandafter\colorlet\spx@definedcolor{#1}} +\def\spx@definecolor{\expandafter\definecolor\spx@definedcolor} +% +\@ifpackageloaded{xcolor}% + {}% + {% xcolor not loaded because it was not found in the LaTeX installation +\def\spx@colorlet#1\relax{% + \sphinxbuildwarning{coloursyntax}% + \PackageWarning{sphinx}{% +Sorry, the #1 syntax requires package xcolor,\MessageBreak +which was not found on your TeX/LaTeX installation.\MessageBreak +\@spaces\expandafter\@firstofone\spx@definedcolor\MessageBreak +will be set to white}% + \expandafter\definecolor\spx@definedcolor{rgb}{1,1,1}% + }% end of redefinition of \spx@colorlet + }% end of xcolor not found branch + + % Handle options via "kvoptions" (later loaded by hyperref anyhow) \RequirePackage{kvoptions} \SetupKeyvalOptions{prefix=spx@opt@} % use \spx@opt@ prefix +% Optional usage of booktabs package for tables +\DeclareBoolOption[false]{booktabs} +\DeclareBoolOption[false]{borderless} +\DeclareBoolOption[true]{booktabscolorgaps} +\DeclareVoidOption{booktabsnogaps}{% + \ifx\@nodocument\relax + % in body + \expandafter\@firstofone + \else + % in preamble, wait for at begin document + \expandafter\AtBeginDocument + \fi + {\ifdefined\abovetopsep % silently do nothing if booktabs not loaded + \abovetopsep\z@\belowrulesep\z@\aboverulesep\z@\belowbottomsep\z@ + \fi + }% +} +% Coloured table rows +\DeclareBoolOption[false]{colorrows} % Sphinx legacy text layout: 1in margins on all four sides \ifx\@jsc@uplatextrue\@undefined \DeclareStringOption[1in]{hmargin} @@ -69,29 +160,19 @@ \AtBeginDocument{\define@key{sphinx}{bookmarksdepth}{\hypersetup{bookmarksdepth=#1}}} % \DeclareBoolOption[false]{usespart}% not used % dimensions, we declare the \dimen registers here. -\newdimen\sphinxverbatimsep +\newdimen\sphinxverbatimsep % <-- TO BE REMOVED NOT USED ANYMORE AT 5.1.0 \newdimen\sphinxverbatimborder -\newdimen\sphinxshadowsep -\newdimen\sphinxshadowsize -\newdimen\sphinxshadowrule +% % \DeclareStringOption is not convenient for the handling of these dimensions % because we want to assign the values to the corresponding registers. Even if % we added the code to the key handler it would be too late for the initial % set-up and we would need to do initial assignments explicitly. We end up % using \define@key directly. % verbatim -\sphinxverbatimsep=\fboxsep +\sphinxverbatimsep=\fboxsep % <-- TO BE REMOVED NOT USED ANYMORE AT 5.1.0 \define@key{sphinx}{verbatimsep}{\sphinxverbatimsep\dimexpr #1\relax} \sphinxverbatimborder=\fboxrule \define@key{sphinx}{verbatimborder}{\sphinxverbatimborder\dimexpr #1\relax} -% topic boxes -\sphinxshadowsep =5pt - \define@key{sphinx}{shadowsep}{\sphinxshadowsep\dimexpr #1\relax} -\sphinxshadowsize=4pt - \define@key{sphinx}{shadowsize}{\sphinxshadowsize\dimexpr #1\relax} -\sphinxshadowrule=\fboxrule - \define@key{sphinx}{shadowrule}{\sphinxshadowrule\dimexpr #1\relax} -% verbatim \DeclareBoolOption[true]{verbatimwithframe} \DeclareBoolOption[true]{verbatimwrapslines} \DeclareBoolOption[false]{verbatimforcewraps} @@ -109,6 +190,17 @@ \DeclareStringOption % must use braces to hide the brackets [{\makebox[2\fontcharwd\font`\x][r]{\textcolor{red}{\tiny$\m@th\hookrightarrow$}}}]% {verbatimcontinued} +% topic boxes +% alternative names and definitions in 5.1.0 section below +\newdimen\sphinxshadowsep % <-- TO BE REMOVED NOT USED ANYMORE AT 5.1.0 +\newdimen\sphinxshadowsize % <-- TO BE REMOVED NOT USED ANYMORE AT 5.1.0 +\newdimen\sphinxshadowrule +\sphinxshadowsep=5pt + \define@key{sphinx}{shadowsep}{\sphinxshadowsep\dimexpr #1\relax}% +\sphinxshadowsize=4pt + \define@key{sphinx}{shadowsize}{\sphinxshadowsize\dimexpr #1\relax} +\sphinxshadowrule=\fboxrule % catches current value (probably 0.4pt) + \define@key{sphinx}{shadowrule}{\sphinxshadowrule\dimexpr #1\relax} % notices/admonitions % the dimensions for notices/admonitions are kept as macros and assigned to % \spx@notice@border at time of use, hence \DeclareStringOption is ok for this @@ -134,20 +226,42 @@ % same problems as for dimensions: we want the key handler to use \definecolor. % first, some colours with no prefix, for backwards compatibility \newcommand*{\sphinxDeclareColorOption}[2]{% + % set the initial default; only \definecolor syntax for defaults! \definecolor{#1}#2% - \define@key{sphinx}{#1}{\definecolor{#1}##1}% + % set the key handler to accept both \definecolor and \colorlet syntax + \define@key{sphinx}{#1}{\spx@defineorletcolor{#1}##1\relax}% }% \sphinxDeclareColorOption{TitleColor}{{rgb}{0.126,0.263,0.361}} \sphinxDeclareColorOption{InnerLinkColor}{{rgb}{0.208,0.374,0.486}} \sphinxDeclareColorOption{OuterLinkColor}{{rgb}{0.216,0.439,0.388}} \sphinxDeclareColorOption{VerbatimColor}{{rgb}{1,1,1}} \sphinxDeclareColorOption{VerbatimBorderColor}{{rgb}{0,0,0}} -% now the colours defined with "sphinx" prefix in their names +% all other colours will be named with a "sphinx" prefix \newcommand*{\sphinxDeclareSphinxColorOption}[2]{% - % set the initial default + % set the initial default; only \definecolor syntax for defaults! \definecolor{sphinx#1}#2% - % set the key handler. The "value" ##1 must be acceptable by \definecolor. - \define@key{sphinx}{#1}{\definecolor{sphinx#1}##1}% + % set the key handler to accept both \definecolor and \colorlet syntax + \define@key{sphinx}{#1}{\spx@defineorletcolor{sphinx#1}##1\relax}% +}% +% table row colors +\sphinxDeclareSphinxColorOption{TableRowColorHeader}{{gray}{0.86}} +\sphinxDeclareSphinxColorOption{TableRowColorOdd}{{gray}{0.92}} +\sphinxDeclareSphinxColorOption{TableRowColorEven}{{gray}{0.98}} +% if not set, the "Merge" colour will keep in sync with the "Row" colour +\def\sphinxTableMergeColorHeader{sphinxTableRowColorHeader} +\define@key{sphinx}{TableMergeColorHeader}{% + \spx@defineorletcolor{sphinxTableMergeColorHeader}#1\relax + \def\sphinxTableMergeColorHeader{sphinxTableMergeColorHeader}% +}% +\def\sphinxTableMergeColorOdd{sphinxTableRowColorOdd} +\define@key{sphinx}{TableMergeColorOdd}{% + \spx@defineorletcolor{sphinxTableMergeColorOdd}#1\relax + \def\sphinxTableMergeColorOdd{sphinxTableMergeColorOdd}% +}% +\def\sphinxTableMergeColorEven{sphinxTableRowColorEven} +\define@key{sphinx}{TableMergeColorEven}{% + \spx@defineorletcolor{sphinxTableMergeColorEven}#1\relax + \def\sphinxTableMergeColorEven{sphinxTableMergeColorEven}% }% % Default color chosen to be as in minted.sty LaTeX package! \sphinxDeclareSphinxColorOption{VerbatimHighlightColor}{{rgb}{0.878,1,1}} @@ -167,6 +281,419 @@ \sphinxDeclareSphinxColorOption{attentionBgColor}{{rgb}{1,1,1}} \sphinxDeclareSphinxColorOption{dangerBgColor}{{rgb}{1,1,1}} \sphinxDeclareSphinxColorOption{errorBgColor}{{rgb}{1,1,1}} +%%%%%%%% +% +% Additions at 5.1.0 +% +% In future, an alternative user interface will perhaps be provided via +% CSS-like input in a configuration variable latex_css, and Sphinx +% will then parse it into the \sphinxsetup options described it. +% +% In the meantime we adopt already some CSS-like names. However, +% attention to not use these options as genuine CSS properties, only +% very limited syntax is supported. +% +\def\spxstring@none{none} +\def\spxstring@clone{clone} +% Future: should below all the macros holding dimensions be defined via some +% \edef and \dimexpr rather? +% +% Deliberately the code avoids creating (except by \let) new \dimen variables +% besides the legacy ones already defined. +% +% code-blocks +\let\spxdimen@pre@border\sphinxverbatimborder +\define@key{sphinx}{pre_border-top-width}{\def\spx@pre@border@top{#1}} +\define@key{sphinx}{pre_border-right-width}{\def\spx@pre@border@right{#1}} +\define@key{sphinx}{pre_border-bottom-width}{\def\spx@pre@border@bottom{#1}} +\define@key{sphinx}{pre_border-left-width}{\def\spx@pre@border@left{#1}} +% currently accepts only one dimension specification +\define@key{sphinx}{pre_border-width}{% + \spxdimen@pre@border\dimexpr #1\relax + \def\spx@pre@border@top {\spxdimen@pre@border}% + \let\spx@pre@border@right \spx@pre@border@top + \let\spx@pre@border@bottom\spx@pre@border@top + \let\spx@pre@border@left \spx@pre@border@top +} +\def\spx@pre@border@top {\spxdimen@pre@border}% +\let\spx@pre@border@right \spx@pre@border@top +\let\spx@pre@border@bottom\spx@pre@border@top +\let\spx@pre@border@left \spx@pre@border@top +\expandafter\let\expandafter\KV@sphinx@verbatimborder + \csname KV@sphinx@pre_border-width\endcsname +\newif\ifspx@pre@border@open % defaults to false (at least for 5.x series) +\define@key{sphinx}{pre_box-decoration-break}% + {\begingroup\edef\spx@tempa{#1}\expandafter\endgroup + \ifx\spx@tempa\spxstring@clone + \spx@pre@border@openfalse + \else\spx@pre@border@opentrue\fi} +% +% MEMO: \sphinxverbatimsep not used anywhere anymore in the code, to be removed +\define@key{sphinx}{pre_padding-top}{\def\spx@pre@padding@top{#1}} +\define@key{sphinx}{pre_padding-right}{\def\spx@pre@padding@right{#1}} +\define@key{sphinx}{pre_padding-bottom}{\def\spx@pre@padding@bottom{#1}} +\define@key{sphinx}{pre_padding-left}{\def\spx@pre@padding@left{#1}} +\define@key{sphinx}{pre_padding}{% + \def\spx@pre@padding@top {#1}% use some pre \dimexpr expansion? + \let\spx@pre@padding@right \spx@pre@padding@top + \let\spx@pre@padding@bottom\spx@pre@padding@top + \let\spx@pre@padding@left \spx@pre@padding@top +} +\edef\spx@pre@padding@top {\number\fboxsep sp}% \sphinxverbatimsep to be removed +\let\spx@pre@padding@right \spx@pre@padding@top +\let\spx@pre@padding@bottom\spx@pre@padding@top +\let\spx@pre@padding@left \spx@pre@padding@top +\expandafter\let\expandafter\KV@sphinx@verbatimsep + \csname KV@sphinx@pre_padding\endcsname +% +% We do not define a new \dimen (in 5.x pre-5.1.0 dev branch there +% was a \sphinxverbatimradius when rounded boxes were first introduced, +% but we removed it). +\define@key{sphinx}{pre_border-top-left-radius}{\def\spx@pre@radius@topleft{#1}} +\define@key{sphinx}{pre_border-top-right-radius}{\edef\spx@pre@radius@topright{#1}} +\define@key{sphinx}{pre_border-bottom-right-radius}{\def\spx@pre@radius@bottomright{#1}} +\define@key{sphinx}{pre_border-bottom-left-radius}{\def\spx@pre@radius@bottomleft{#1}} +\define@key{sphinx}{pre_border-radius}{% + \def\spx@pre@radius@topleft {#1}% + \let\spx@pre@radius@topright \spx@pre@radius@topleft + \let\spx@pre@radius@bottomright\spx@pre@radius@topleft + \let\spx@pre@radius@bottomleft \spx@pre@radius@topleft +} +% MEMO: keep in mind in using these macros in code elsewhere that they can +% thus be dimen registers or simply dimensional specs such as 3pt +\let\spx@pre@radius@topleft \z@ +\let\spx@pre@radius@topright \z@ +\let\spx@pre@radius@bottomright\z@ +\let\spx@pre@radius@bottomleft \z@ +\AtBeginDocument{\if1\ifdim\spx@pre@radius@topleft>\z@0\fi + \ifdim\spx@pre@radius@topright>\z@0\fi + \ifdim\spx@pre@radius@bottomright>\z@0\fi + \ifdim\spx@pre@radius@bottomleft>\z@0\fi + 1\else\spx@RequirePackage@PictIIe\fi} +% +\newif\ifspx@pre@withshadow +\newif\ifspx@pre@insetshadow +% Attention only "none" or " [optional inset]", no color +\define@key{sphinx}{pre_box-shadow}{\spx@pre@box@shadow@setter #1 {} {} \@nnil}% +% TODO add parsing to fetch color... but this requires a TeX layer to convert +% color spec in CSS format to color/xcolor format +\def\spx@pre@box@shadow@setter #1 #2 #3 #4\@nnil{% + \begingroup\edef\spx@tempa{#1}\expandafter\endgroup + \ifx\spx@tempa\spxstring@none + \spx@pre@withshadowfalse + \else + \spx@pre@withshadowtrue + \edef\spx@pre@shadow@xoffset{\number\dimexpr#1\relax sp}% + \edef\spx@pre@shadow@yoffset{\number\dimexpr#2+\z@\relax sp}% + \if\relax\detokenize{#3}\relax + \spx@pre@insetshadowfalse + \else + \spx@pre@insetshadowtrue + \fi + \fi +}% +\spx@pre@box@shadow@setter none {} {} \@nnil +% +\newif\ifspx@pre@withbordercolor +\define@key{sphinx}{pre_border-TeXcolor}{% + \spx@pre@withbordercolortrue + \spx@defineorletcolor{VerbatimBorderColor}#1\relax +} +\expandafter\let\expandafter\KV@sphinx@VerbatimBorderColor + \csname KV@sphinx@pre_border-TeXcolor\endcsname +\newif\ifspx@pre@withbackgroundcolor +\define@key{sphinx}{pre_background-TeXcolor}{% + \spx@pre@withbackgroundcolortrue + \spx@defineorletcolor{VerbatimColor}#1\relax +} +\expandafter\let\expandafter\KV@sphinx@VerbatimColor + \csname KV@sphinx@pre_background-TeXcolor\endcsname +\newif\ifspx@pre@withshadowcolor +\define@key{sphinx}{pre_box-shadow-TeXcolor}{% + \spx@pre@withshadowcolortrue + \spx@defineorletcolor{sphinxVerbatimShadowColor}#1\relax +} +\definecolor{sphinxVerbatimShadowColor}{rgb}{0,0,0} +% topics +\let\spxdimen@topic@border\sphinxshadowrule +\define@key{sphinx}{div.topic_border-top-width}{\def\spx@topic@border@top{#1}} +\define@key{sphinx}{div.topic_border-right-width}{\def\spx@topic@border@right{#1}} +\define@key{sphinx}{div.topic_border-bottom-width}{\def\spx@topic@border@bottom{#1}} +\define@key{sphinx}{div.topic_border-left-width}{\def\spx@topic@border@left{#1}} +% attention currently accepts only one dimension specification +\define@key{sphinx}{div.topic_border-width}{% + \spxdimen@topic@border\dimexpr #1\relax + \def\spx@topic@border@top {\spxdimen@topic@border}% + \let\spx@topic@border@right \spx@topic@border@top + \let\spx@topic@border@bottom\spx@topic@border@top + \let\spx@topic@border@left \spx@topic@border@top +} +\let\spx@topic@border@top \spxdimen@topic@border +\let\spx@topic@border@right \spx@topic@border@top +\let\spx@topic@border@bottom\spx@topic@border@top +\let\spx@topic@border@left \spx@topic@border@top +\expandafter\let\expandafter\KV@sphinx@shadowrule + \csname KV@sphinx@topic_border-width\endcsname +\newif\ifspx@topic@border@open % defaults to false (legacy) +\define@key{sphinx}{div.topic_box-decoration-break}% + {\begingroup\edef\spx@tempa{#1}\expandafter\endgroup + \ifx\spx@tempa\spxstring@clone + \spx@topic@border@openfalse + \else\spx@topic@border@opentrue\fi}% +% +% MEMO: \sphinxshadowsep not used anywhere anymore in code base and to be removed +\define@key{sphinx}{topic_padding-top}{\def\spx@topic@padding@top{#1}} +\define@key{sphinx}{topic_padding-right}{\def\spx@topic@padding@right{#1}} +\define@key{sphinx}{topic_padding-bottom}{\def\spx@topic@padding@bottom{#1}} +\define@key{sphinx}{topic_padding-left}{\def\spx@topic@padding@left{#1}} +\define@key{sphinx}{topic_padding}{% + \def\spx@topic@padding@top {#1}% + \let\spx@topic@padding@right \spx@topic@padding@top + \let\spx@topic@padding@bottom\spx@topic@padding@top + \let\spx@topic@padding@left \spx@topic@padding@top +} +\def\spx@topic@padding@top {5pt}% no usage anymore of \sphinxshadowsep dimen register +\let\spx@topic@padding@right \spx@topic@padding@top +\let\spx@topic@padding@bottom\spx@topic@padding@top +\let\spx@topic@padding@left \spx@topic@padding@top +\expandafter\let\expandafter\KV@sphinx@shadowsep + \csname KV@sphinx@topic_padding\endcsname +% +\define@key{sphinx}{div.topic_border-top-left-radius}{\def\spx@topic@radius@topleft{#1}} +\define@key{sphinx}{div.topic_border-top-right-radius}{\def\spx@topic@radius@topright{#1}} +\define@key{sphinx}{div.topic_border-bottom-right-radius}{\def\spx@topic@radius@bottomright{#1}} +\define@key{sphinx}{div.topic_border-bottom-left-radius}{\def\spx@topic@radius@bottomleft{#1}} +\define@key{sphinx}{div.topic_border-radius}{% + \def\spx@topic@radius@topleft {#1}% + \let\spx@topic@radius@topright \spx@topic@radius@topleft + \let\spx@topic@radius@bottomright\spx@topic@radius@topleft + \let\spx@topic@radius@bottomleft \spx@topic@radius@topleft +} +\let\spx@topic@radius@topleft \z@ +\let\spx@topic@radius@topright \z@ +\let\spx@topic@radius@bottomright\z@ +\let\spx@topic@radius@bottomleft \z@ +\AtBeginDocument{\if1\ifdim\spx@topic@radius@topleft>\z@0\fi + \ifdim\spx@topic@radius@topright>\z@0\fi + \ifdim\spx@topic@radius@bottomright>\z@0\fi + \ifdim\spx@topic@radius@bottomleft>\z@0\fi + 1\else\spx@RequirePackage@PictIIe\fi} +% +\newif\ifspx@topic@withshadow +\newif\ifspx@topic@insetshadow +% Attention only "none" or " [optional inset]", no color +\define@key{sphinx}{div.topic_box-shadow}{\spx@topic@box@shadow@setter #1 {} {} \@nnil}% +\def\spx@topic@box@shadow@setter #1 #2 #3 #4\@nnil{% + \begingroup\edef\spx@tempa{#1}\expandafter\endgroup + \ifx\spx@tempa\spxstring@none + \spx@topic@withshadowfalse + \else + \spx@topic@withshadowtrue + \edef\spx@topic@shadow@xoffset{\number\dimexpr#1\relax sp}% + \edef\spx@topic@shadow@yoffset{\number\dimexpr#2+\z@\relax sp}% + \if\relax\detokenize{#3}\relax + \spx@topic@insetshadowfalse + \else + \spx@topic@insetshadowtrue + \fi + \fi +}% +\spx@topic@box@shadow@setter 4pt 4pt {} \@nnil +% Suport for legacy shadowsize, the \sphinxshadowsize \dimen register +% is not used anymore and should not even be allocated in future +\define@key{sphinx}{shadowsize}{% + \edef\spx@topic@shadow@xoffset{\number\dimexpr#1\relax sp}% + \let\spx@topic@shadow@yoffset\spx@topic@shadow@xoffset + \ifdim\spx@topic@shadow@xoffset=\z@ + \spx@topic@box@withshadowtrue + \else + \spx@topic@box@withshadowfalse + \spx@topic@box@shadow@insetfalse + \fi +}% +\definecolor{sphinxTopicBorderColor}{rgb}{0,0,0} +\definecolor{sphinxTopicBackgroundColor}{rgb}{1,1,1} +\definecolor{sphinxTopicShadowColor}{rgb}{0,0,0} +\newif\ifspx@topic@withbordercolor +\define@key{sphinx}{div.topic_border-TeXcolor}{% + \spx@topic@withbordercolortrue + \spx@defineorletcolor{sphinxTopicBorderColor}#1\relax +} +\newif\ifspx@topic@withbackgroundcolor +\define@key{sphinx}{div.topic_background-TeXcolor}{% + \spx@topic@withbackgroundcolortrue + \spx@defineorletcolor{sphinxTopicBackgroundColor}#1\relax +} +\newif\ifspx@topic@withshadowcolor +\define@key{sphinx}{div.topic_box-shadow-TeXcolor}{% + \spx@topic@withshadowcolortrue + \spx@defineorletcolor{sphinxTopicShadowColor}#1\relax +} +% warning, caution, attention, danger, error +\def\spx@tempa#1{% + \expandafter\spx@tempb +% MEMO: the diverging naming of first one is conditioned at this time by the fact +% that sphinxnotice environment must work both for these admonitions and the +% note, tip etc... ones + \csname spx@opt@#1border\expandafter\endcsname + \csname spx@#1@border@top\expandafter\endcsname + \csname spx@#1@border@right\expandafter\endcsname + \csname spx@#1@border@bottom\expandafter\endcsname + \csname spx@#1@border@left\expandafter\endcsname + \csname ifspx@#1@border@open\expandafter\endcsname + \csname spx@#1@border@opentrue\expandafter\endcsname + \csname spx@#1@border@openfalse\endcsname + {#1}% +}% +\def\spx@tempb #1#2#3#4#5#6#7#8#9{% + \define@key{sphinx}{div.#9_border-top-width}{\def#2{##1}}% + \define@key{sphinx}{div.#9_border-right-width}{\def#3{##1}}% + \define@key{sphinx}{div.#9_border-bottom-width}{\def#4{##1}}% + \define@key{sphinx}{div.#9_border-left-width}{\def#5{##1}}% + \define@key{sphinx}{div.#9_border-width}{\def#1{##1}\def#2{#1}\let#3#2\let#4#2\let#5#2}% + \def#1{1pt}\let#2#1\let#3#2\let#4#2\let#5#2% + \newif#6% + \define@key{sphinx}{div.#9_box-decoration-break}% + {\begingroup\edef\spx@tempa{##1}\expandafter\endgroup + \ifx\spx@tempa\spxstring@clone#8\else#7\fi}% + \expandafter\let\csname KV@sphinx@#9border\expandafter\endcsname + \csname KV@sphinx@div.#9_border-width\endcsname +} +\spx@tempa{warning} +\spx@tempa{caution} +\spx@tempa{attention} +\spx@tempa{danger} +\spx@tempa{error} + +\def\spx@tempa#1{% + \expandafter\spx@tempb + \csname spx@#1@padding\expandafter\endcsname + \csname spx@#1@padding@top\expandafter\endcsname + \csname spx@#1@padding@right\expandafter\endcsname + \csname spx@#1@padding@bottom\expandafter\endcsname + \csname spx@#1@padding@left\expandafter\endcsname +% MEMO: this is to keep same behaviour as prior to 5.1.0 for which +% no key to set padding adjusted and border+padding was kept constant + \csname spx@opt@#1border\endcsname + {#1}% +}% +\def\spx@tempb #1#2#3#4#5#6#7{% + \define@key{sphinx}{div.#7_padding-top}{\def#2{##1}}% + \define@key{sphinx}{div.#7_padding-right}{\def#3{##1}}% + \define@key{sphinx}{div.#7_padding-bottom}{\def#4{##1}}% + \define@key{sphinx}{div.#7_padding-left}{\def#5{##1}}% + \define@key{sphinx}{div.#7_padding}{\def#1{##1}\def#2{#1}\let#3#2\let#4#2\let#5#2}% +% MEMO: prior to 5.1.0 padding was not separately customizable +% This keeps exactly the strange behaviour as prior to 5.1.0 +% which used to be hard-coded in the sphinxheavybox environment + \def#1{\dimexpr.6\baselineskip-#6\relax}% + \let#2#1\let#3#2\let#4#2\let#5#2% +} +\spx@tempa{warning} +\spx@tempa{caution} +\spx@tempa{attention} +\spx@tempa{danger} +\spx@tempa{error} + +\def\spx@tempa#1{% + \expandafter\spx@tempb + \csname spx@#1@radius@topleft\expandafter\endcsname + \csname spx@#1@radius@topright\expandafter\endcsname + \csname spx@#1@radius@bottomright\expandafter\endcsname + \csname spx@#1@radius@bottomleft\endcsname + {#1}% +}% +\def\spx@tempb #1#2#3#4#5{% + \define@key{sphinx}{div.#5_border-top-left-radius}{\def#1{##1}}% + \define@key{sphinx}{div.#5_border-top-right-radius}{\def#2{##1}}% + \define@key{sphinx}{div.#5_border-bottom-right-radius}{\def#3{##1}}% + \define@key{sphinx}{div.#5_border-bottom-left-radius}{\def#4{##1}}% + \define@key{sphinx}{div.#5_border-radius}{\def#1{##1}\let#2#1\let#3#1\let#4#1}% + \let#1\z@\let#2#1\let#3#2\let#4#2% + \AtBeginDocument{\if1\ifdim#1>\z@0\fi + \ifdim#2>\z@0\fi + \ifdim#3>\z@0\fi + \ifdim#4>\z@0\fi + 1\else\spx@RequirePackage@PictIIe\fi}% +} +\spx@tempa{warning} +\spx@tempa{caution} +\spx@tempa{attention} +\spx@tempa{danger} +\spx@tempa{error} + +\def\spx@tempa#1{% + \expandafter\spx@tempb + \csname ifspx@#1@withshadow\expandafter\endcsname + \csname ifspx@#1@insetshadow\expandafter\endcsname + \csname ifspx@#1@withshadowcolor\expandafter\endcsname + \csname ifspx@#1@withbordercolor\expandafter\endcsname + \csname ifspx@#1@withbackgroundcolor\endcsname +}% +\def\spx@tempb#1#2#3#4#5{\newif#1\newif#2\newif#3\newif#4\newif#5}% +\spx@tempa{warning} +\spx@tempa{caution} +\spx@tempa{attention} +\spx@tempa{danger} +\spx@tempa{error} + +\def\spx@tempa#1{% + \expandafter\spx@tempb + \csname spx@#1@withshadowtrue\expandafter\endcsname + \csname spx@#1@withshadowfalse\expandafter\endcsname + \csname spx@#1@insetshadowtrue\expandafter\endcsname + \csname spx@#1@insetshadowfalse\expandafter\endcsname + \csname spx@#1@box@shadow@setter\expandafter\endcsname + \csname spx@#1@box@shadow@xoffset\expandafter\endcsname + \csname spx@#1@box@shadow@yoffset\endcsname + {#1}% +}% +\def\spx@tempb#1#2#3#4#5#6#7#8{% + \define@key{sphinx}{div.#8_box-shadow}{#5##1 {} {} \@nnil}% + \def#5##1 ##2 ##3 ##4\@nnil{% + \begingroup\edef\spx@tempa{##1}\expandafter\endgroup + \ifx\spx@tempa\spxstring@none + #2% + \else #1\edef#6{\number\dimexpr##1\relax sp}% + \edef#7{\number\dimexpr##2+\z@\relax sp}% + \if\relax\detokenize{##3}\relax#4\else#3\fi + \fi + }#5none {} {} \@nnil +} +\spx@tempa{warning} +\spx@tempa{caution} +\spx@tempa{attention} +\spx@tempa{danger} +\spx@tempa{error} + +\def\spx@tempa#1{% + \expandafter\spx@tempb + \csname spx@#1@withbordercolortrue\expandafter\endcsname + \csname spx@#1@withbackgroundcolortrue\expandafter\endcsname + \csname spx@#1@withshadowcolortrue\endcsname + {#1}% +} +\def\spx@tempb#1#2#3#4{% + \definecolor{sphinx#4BorderColor}{rgb}{0,0,0}% + \definecolor{sphinx#4BgColor}{rgb}{1,1,1}% + \definecolor{sphinx#4ShadowColor}{rgb}{0,0,0}% + \define@key{sphinx}{div.#4_border-TeXcolor}% + {#1\spx@defineorletcolor{sphinx#4BorderColor}##1\relax}% + \define@key{sphinx}{div.#4_background-TeXcolor}% + {#2\spx@defineorletcolor{sphinx#4BgColor}##1\relax}% + \define@key{sphinx}{div.#4_box-shadow-TeXcolor}% + {#3\spx@defineorletcolor{sphinx#4ShadowColor}##1\relax}% + \expandafter\let\csname KV@sphinx@#4BorderColor\expandafter\endcsname + \csname KV@sphinx@div.#4_border-TeXcolor\endcsname + \expandafter\let\csname KV@sphinx@#4BgColor\expandafter\endcsname + \csname KV@sphinx@div.#4_background-TeXcolor\endcsname +} +\spx@tempa{warning} +\spx@tempa{caution} +\spx@tempa{attention} +\spx@tempa{danger} +\spx@tempa{error} + \DeclareDefaultOption{\@unknownoptionerror} \ProcessKeyvalOptions* @@ -175,6 +702,9 @@ \DisableKeyvalOption{sphinx}{numfigreset} \DisableKeyvalOption{sphinx}{nonumfigreset} \DisableKeyvalOption{sphinx}{mathnumfig} +\DisableKeyvalOption{sphinx}{booktabs} +\DisableKeyvalOption{sphinx}{borderless} +\DisableKeyvalOption{sphinx}{rowcolors} % FIXME: this is unrelated to an option, move this elsewhere % To allow hyphenation of first word in narrow contexts; no option, % customization to be done via 'preamble' key @@ -265,6 +795,25 @@ %% FRAMED ENVIRONMENTS % +\RequirePackage{sphinxpackageboxes} +% This macro is possibly executed at begin document if the check +% whether radii setting options have been used turns out positive +\def\spx@RequirePackage@PictIIe{% +\IfFileExists{pict2e.sty} + {\RequirePackage{pict2e}} + {\PackageWarningNoLine{sphinx}{% + The package pict2e is required for rounded boxes.\MessageBreak + It does not seem to be available on your system.\MessageBreak + Options for setting radii have thus been ignored}% + \sphinxbuildwarning{nopict2e}% + \def\spx@boxes@fcolorbox@rounded{\spx@boxes@fcolorbox}% + }% +}% +% This at begin document will be executed after \spx@RequirePackage@PictIIe +\AtBeginDocument{% + \@ifpackageloaded{pict2e}{\let\spx@ifpackageloaded@pictiie\@firstoftwo}% + {\let\spx@ifpackageloaded@pictiie\@secondoftwo}% +}% \input{sphinxlatexadmonitions.sty} \input{sphinxlatexliterals.sty} \input{sphinxlatexshadowbox.sty} diff --git a/doc/build/latex/sphinxhighlight.sty b/doc/build/latex/sphinxhighlight.sty index 83b523cb..57eaee2f 100644 --- a/doc/build/latex/sphinxhighlight.sty +++ b/doc/build/latex/sphinxhighlight.sty @@ -1,5 +1,5 @@ \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesPackage{sphinxhighlight}[2016/05/29 stylesheet for highlighting with pygments] +\ProvidesPackage{sphinxhighlight}[2022/06/30 stylesheet for highlighting with pygments] % Its contents depend on pygments_style configuration variable. @@ -103,4 +103,27 @@ \def\PYGZrb{]} \makeatother -\renewcommand\PYGZsq{\textquotesingle} +% Sphinx redefinitions +% Originally to obtain a straight single quote via package textcomp, then +% to fix problems for the 5.0.0 inline code highlighting (captions!). +% The \text is from amstext, a dependency of sphinx.sty. It is here only +% to avoid build errors if for some reason expansion is in math mode. +\def\PYGZbs{\text\textbackslash} +\def\PYGZus{\_} +\def\PYGZob{\{} +\def\PYGZcb{\}} +\def\PYGZca{\text\textasciicircum} +\def\PYGZam{\&} +\def\PYGZlt{\text\textless} +\def\PYGZgt{\text\textgreater} +\def\PYGZsh{\#} +\def\PYGZpc{\%} +\def\PYGZdl{\$} +\def\PYGZhy{\sphinxhyphen}% defined in sphinxlatexstyletext.sty +\def\PYGZsq{\text\textquotesingle} +\def\PYGZdq{"} +\def\PYGZti{\text\textasciitilde} +\makeatletter +% use \protected to allow syntax highlighting in captions +\protected\def\PYG#1#2{\PYG@reset\PYG@toks#1+\relax+{\PYG@do{#2}}} +\makeatother diff --git a/doc/build/man/.doctrees/boxplots.doctree b/doc/build/man/.doctrees/boxplots.doctree index e70986cd..80ef6887 100644 Binary files a/doc/build/man/.doctrees/boxplots.doctree and b/doc/build/man/.doctrees/boxplots.doctree differ diff --git a/doc/build/man/.doctrees/curve_functions.doctree b/doc/build/man/.doctrees/curve_functions.doctree index 2992e214..016ad699 100644 Binary files a/doc/build/man/.doctrees/curve_functions.doctree and b/doc/build/man/.doctrees/curve_functions.doctree differ diff --git a/doc/build/man/.doctrees/curve_statistics.doctree b/doc/build/man/.doctrees/curve_statistics.doctree index 386c0e9e..4469483a 100644 Binary files a/doc/build/man/.doctrees/curve_statistics.doctree and b/doc/build/man/.doctrees/curve_statistics.doctree differ diff --git a/doc/build/man/.doctrees/fPCA.doctree b/doc/build/man/.doctrees/fPCA.doctree index d78f47e9..f27f73ea 100644 Binary files a/doc/build/man/.doctrees/fPCA.doctree and b/doc/build/man/.doctrees/fPCA.doctree differ diff --git a/doc/build/man/.doctrees/fPLS.doctree b/doc/build/man/.doctrees/fPLS.doctree index 343f261a..a4f4b555 100644 Binary files a/doc/build/man/.doctrees/fPLS.doctree and b/doc/build/man/.doctrees/fPLS.doctree differ diff --git a/doc/build/man/.doctrees/geodesic.doctree b/doc/build/man/.doctrees/geodesic.doctree index 576db989..ddba6cfa 100644 Binary files a/doc/build/man/.doctrees/geodesic.doctree and b/doc/build/man/.doctrees/geodesic.doctree differ diff --git a/doc/build/man/.doctrees/index.doctree b/doc/build/man/.doctrees/index.doctree index 6d78a146..afd5bbe6 100644 Binary files a/doc/build/man/.doctrees/index.doctree and b/doc/build/man/.doctrees/index.doctree differ diff --git a/doc/build/man/.doctrees/pcr_regression.doctree b/doc/build/man/.doctrees/pcr_regression.doctree index 36a31612..e9e6c9a6 100644 Binary files a/doc/build/man/.doctrees/pcr_regression.doctree and b/doc/build/man/.doctrees/pcr_regression.doctree differ diff --git a/doc/build/man/.doctrees/regression.doctree b/doc/build/man/.doctrees/regression.doctree index fa17f989..9a5aac31 100644 Binary files a/doc/build/man/.doctrees/regression.doctree and b/doc/build/man/.doctrees/regression.doctree differ diff --git a/doc/build/man/.doctrees/time_warping.doctree b/doc/build/man/.doctrees/time_warping.doctree index 2110b782..5b3d124f 100644 Binary files a/doc/build/man/.doctrees/time_warping.doctree and b/doc/build/man/.doctrees/time_warping.doctree differ diff --git a/doc/build/man/.doctrees/tolerance.doctree b/doc/build/man/.doctrees/tolerance.doctree index a539a612..1c8bff60 100644 Binary files a/doc/build/man/.doctrees/tolerance.doctree and b/doc/build/man/.doctrees/tolerance.doctree differ diff --git a/doc/build/man/.doctrees/umap_metric.doctree b/doc/build/man/.doctrees/umap_metric.doctree index 1d59ba89..11ce56b2 100644 Binary files a/doc/build/man/.doctrees/umap_metric.doctree and b/doc/build/man/.doctrees/umap_metric.doctree differ diff --git a/doc/build/man/.doctrees/utility_functions.doctree b/doc/build/man/.doctrees/utility_functions.doctree index f3224563..c4e2b2e3 100644 Binary files a/doc/build/man/.doctrees/utility_functions.doctree and b/doc/build/man/.doctrees/utility_functions.doctree differ