Skip to content

Commit 79d3d04

Browse files
Clean up rudiments from the template
1 parent 1c375df commit 79d3d04

2 files changed

Lines changed: 27 additions & 368 deletions

File tree

papers/vadym_pasko/main.md

Lines changed: 3 additions & 241 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ B_{i,k}(t) =
8383
\frac{t_{i+k+1} - t}{t_{i+k+1} - t_{i+1}} B_{i+1,k-1}(t)
8484
```
8585

86-
In {ref}`cox-de-boor` possible divisions by zero are resolved by the convention that ‘anything divided by zero is zero’.
86+
In {ref}`cox-de-boor` possible divisions by zero are resolved by the convention that ‘anything divided by zero is zero’ [@lyche-morken].
8787

8888
This formulation separates geometry (control points) from basis functions, allowing flexible manipulation and efficient computation of spline curves.
8989

@@ -102,9 +102,7 @@ Parametric splines are widely used in computer graphics, computer-aided desig (C
102102
These properties make parametric splines ideal for applications in: 3D modeling and animation, font and character design, surface generation (via tensor product surfaces), and industrial design (automotive, aerospace, etc.).
103103

104104

105-
An intuitive visual explanation of splines, different forms of their representation and unique properties is given in the video by Freya Holmér:
106-
107-
[📺 The Continuity of Splines](https://www.youtube.com/watch?v=jvPPXbo87ds)
105+
An intuitive visual explanation of splines, different forms of their representation and unique properties is given in the video by Freya Holmér [@holmer-continuity-of-splines].
108106

109107
Despite their geometric advantages, parametric splines are rarely used in statistical data fitting and regression analysis. The primary limitation is the parameterization problem: for observed data points $(x_i, y_i)$, there is no natural way to assign parameter values $t_i$ that correspond meaningfully to the underlying data relationship. Additionally, parametric splines do not provide the direct functional relationship $y = f(x)$ that is typically required for prediction and statistical inference in data analysis contexts. This is why spline functions are often a more popular choice.
110108

@@ -238,7 +236,7 @@ A mathematical representation of B-splines as a linear combination of basis func
238236

239237
From a mathematical standpoint, manual editing of curves breaks the strict formulation of the optimization problem solved by the automatic fitting algorithms. From the user’s perspective, manual fitting can produce better results - smoother curves with smaller residuals (better accuracy).
240238

241-
In SciPy, the spline fitting process is encapsulated in automatic, hardcoded optimization routines such as `UnivariateSpline` or `LSQUnivariateSpline`, described in the previos section. While this programmatic design serves well for deterministic batch processing or scriptable pipelines, it limits the native adjustability of spline shapes limiting ability to modify the control polygon and knot vector with visual feedback. Of course, there is always an option to adjust these values in code manually, but as described in [(Pasko 2015)](http://vadym-pasko.com/blog/2015/03/06/spline-approx-scipy.html), such an approach can be inefficient and time-consuming. Another option - write custom scripts for optimizing fitting process selecting different strategie, but this adds a level of complexity to the curve fitting process, not afordable for all users and all cases.
239+
In SciPy, the spline fitting process is encapsulated in automatic, hardcoded optimization routines such as `UnivariateSpline` or `LSQUnivariateSpline`, described in the previos section. While this programmatic design serves well for deterministic batch processing or scriptable pipelines, it limits the native adjustability of spline shapes limiting ability to modify the control polygon and knot vector with visual feedback. Of course, there is always an option to adjust these values in code manually, but as described in [@pasko-blog-post-2015], such an approach can be inefficient and time-consuming. Another option - write custom scripts for optimizing fitting process selecting different strategie, but this adds a level of complexity to the curve fitting process, not afordable for all users and all cases.
242240

243241
Another significant limitation lies in the lack of model portability and reproducibility. Spline objects created in SciPy are tightly coupled with the Python runtime and the local environment. There is, however, an option to export splines as a set of its defining objects: order (int), knot vector (1D array), and coefficients (1D array) or control points (2D array), but recreation of them as objects in code will require users a knowledge of the process and basic understanding of B-spline structure. Another option - serialization of spline objects, may also not be convenient for all cases.
244242

@@ -728,239 +726,3 @@ Despite this limitation, SplineCloud introduces the novel capability of building
728726

729727
## Summary and Future Directions (TODO)
730728

731-
732-
## Bibliographies, citations and block quotes (WIP)
733-
734-
Bibliography files and DOIs are automatically included and picked up by `mystmd`.
735-
These can be added using pandoc-style citations `[@doi:10.1109/MCSE.2007.55]`
736-
which fetches the citation information automatically and creates: [@doi:10.1109/MCSE.2007.55].
737-
Additionally, you can use any key in the BibTeX file using `[@citation-key]`,
738-
as in [@hume48] (which literally is `[@hume48]` in accordance with
739-
the `hume48` cite-key in the associated `mybib.bib` file).
740-
Read more about [citations in the MyST documentation](https://mystmd.org/guide/citations).
741-
742-
If you wish to have a block quote, you can just indent the text, as in:
743-
744-
> When it is asked, What is the nature of all our reasonings concerning matter of fact? the proper answer seems to be, that they are founded on the relation of cause and effect. When again it is asked, What is the foundation of all our reasonings and conclusions concerning that relation? it may be replied in one word, experience. But if we still carry on our sifting humor, and ask, What is the foundation of all conclusions from experience? this implies a new question, which may be of more difficult solution and explication.
745-
>
746-
> -- @hume48
747-
748-
Other typography information can be found in the [MyST documentation](https://mystmd.org/guide/typography).
749-
750-
751-
Tom Lyche and Knut Mørken, Spline Methods (University of Oslo, 2008)
752-
753-
### DOIs in bibliographies
754-
755-
In order to include a DOI in your bibliography, add the DOI to your bibliography
756-
entry as a string. For example:
757-
758-
```{code-block} bibtex
759-
:emphasize-lines: 7
760-
:linenos:
761-
@book{hume48,
762-
author = "David Hume",
763-
year = {1748},
764-
title = "An enquiry concerning human understanding",
765-
address = "Indianapolis, IN",
766-
publisher = "Hackett",
767-
doi = "10.1017/CBO9780511808432",
768-
}
769-
```
770-
771-
### Citing software and websites
772-
773-
Any paper relying on open-source software would surely want to include citations.
774-
Often you can find a citation in BibTeX format via a web search.
775-
Authors of software packages may even publish guidelines on how to cite their work.
776-
777-
For convenience, citations to common packages such as
778-
Jupyter [@jupyter],
779-
Matplotlib [@matplotlib],
780-
NumPy [@numpy],
781-
pandas [@pandas1; @pandas2],
782-
scikit-learn [@sklearn1; @sklearn2], and
783-
SciPy [@scipy]
784-
are included in this paper's `.bib` file.
785-
786-
In this paper we not only terraform a desert using the package terradesert [@terradesert], we also catch a sandworm with it.
787-
To cite a website, the following BibTeX format plus any additional tags necessary for specifying the referenced content is recommended.
788-
If you are citing a team, ensure that the author name is wrapped in additional braces `{Team Name}`, so it is not treated as an author's first and last names.
789-
790-
```{code-block} bibtex
791-
:emphasize-lines: 2
792-
:linenos:
793-
@misc{terradesert,
794-
author = {{TerraDesert Team}},
795-
title = {Code for terraforming a desert},
796-
year = {2000},
797-
url = {https://terradesert.com/code/},
798-
note = {Accessed 1 Jan. 2000}
799-
}
800-
```
801-
802-
## Source code examples
803-
804-
No paper would be complete without some source code.
805-
Code highlighting is completed if the name is given:
806-
807-
```python
808-
def sum(a, b):
809-
"""Sum two numbers."""
810-
811-
return a + b
812-
```
813-
814-
Use the `{code-block}` directive if you are getting fancy with line numbers or emphasis. For example, line-numbers in `C` looks like:
815-
816-
```{code-block} c
817-
:linenos: true
818-
819-
int main() {
820-
for (int i = 0; i < 10; i++) {
821-
/* do something */
822-
}
823-
return 0;
824-
}
825-
```
826-
827-
Or a snippet from the above code, starting at the correct line number, and emphasizing a line:
828-
829-
```{code-block} c
830-
:linenos: true
831-
:lineno-start: 2
832-
:emphasize-lines: 3
833-
for (int i = 0; i < 10; i++) {
834-
/* do something */
835-
}
836-
```
837-
838-
You can read more about code formatting in the [MyST documentation](https://mystmd.org/guide/code).
839-
840-
## Figures, Equations and Tables
841-
842-
It is well known that Spice grows on the planet Dune [@Atr03].
843-
Test some maths, for example $e^{\pi i} + 3 \delta$.
844-
Or maybe an equation on a separate line:
845-
846-
```{math}
847-
g(x) = \int_0^\infty f(x) dx
848-
```
849-
850-
or on multiple, aligned lines:
851-
852-
```{math}
853-
\begin{aligned}
854-
g(x) &= \int_0^\infty f(x) dx \\
855-
&= \ldots
856-
\end{aligned}
857-
```
858-
859-
The area of a circle and volume of a sphere are given as
860-
861-
```{math}
862-
:label: circarea
863-
864-
A(r) = \pi r^2.
865-
```
866-
867-
```{math}
868-
:label: spherevol
869-
870-
V(r) = \frac{4}{3} \pi r^3
871-
```
872-
873-
We can then refer back to Equation {ref}`circarea` or
874-
{ref}`spherevol` later.
875-
The `{ref}` role is another way to cross-reference in your document, which may be familiar to users of Sphinx.
876-
See complete documentation on [cross-references](https://mystmd.org/guide/cross-references).
877-
878-
Mauris purus enim, volutpat non dapibus et, gravida sit amet sapien. In at
879-
consectetur lacus. Praesent orci nulla, blandit eu egestas nec, facilisis vel
880-
lacus. Fusce non ante vitae justo faucibus facilisis. Nam venenatis lacinia
881-
turpis. Donec eu ultrices mauris. Ut pulvinar viverra rhoncus. Vivamus
882-
adipiscing faucibus ligula, in porta orci vehicula in. Suspendisse quis augue
883-
arcu, sit amet accumsan diam. Vestibulum lacinia luctus dui. Aliquam odio arcu,
884-
faucibus non laoreet ac, condimentum eu quam. Quisque et nunc non diam
885-
consequat iaculis ut quis leo. Integer suscipit accumsan ligula. Sed nec eros a
886-
orci aliquam dictum sed ac felis. Suspendisse sit amet dui ut ligula iaculis
887-
sollicitudin vel id velit. Pellentesque hendrerit sapien ac ante facilisis
888-
lacinia. Nunc sit amet sem sem. In tellus metus, elementum vitae tincidunt ac,
889-
volutpat sit amet mauris. Maecenas[^footnote-1] diam turpis, placerat[^footnote-2] at adipiscing ac,
890-
pulvinar id metus.
891-
892-
[^footnote-1]: On the one hand, a footnote.
893-
[^footnote-2]: On the other hand, another footnote.
894-
895-
:::{figure} figure1.png
896-
:label: fig:stream
897-
This is the caption, sandworm vorticity based on storm location in a pleasing stream plot. Based on example in [matplotlib](https://matplotlib.org/stable/plot_types/arrays/streamplot.html).
898-
:::
899-
900-
:::{figure} figure2.png
901-
:label: fig:em
902-
This is the caption, electromagnetic signature of the sandworm based on remote sensing techniques. Based on example in [matplotlib](https://matplotlib.org/stable/plot_types/stats/hist2d.html).
903-
:::
904-
905-
As you can see in @fig:stream and @fig:em, this is how you reference auto-numbered figures.
906-
To refer to a sub figure use the syntax `@label [a]` in text or `[@label a]` for a parenhetical citation (i.e. @fig:stream [a] vs [@fig:stream a]).
907-
For even more control, you can simply link to figures using `[Figure %s](#label)`, the `%s` will get filled in with the number, for example [Figure %s](#fig:stream).
908-
See complete documentation on [cross-references](https://mystmd.org/guide/cross-references).
909-
910-
```{list-table} This is the caption for the materials table.
911-
:label: tbl:materials
912-
:header-rows: 1
913-
* - Material
914-
- Units
915-
* - Stone
916-
- 3
917-
* - Water
918-
- 12
919-
* - Cement
920-
- {math}`\alpha`
921-
```
922-
923-
We show the different quantities of materials required in
924-
@tbl:materials.
925-
926-
Unfortunately, markdown can be difficult for defining tables, so if your table is more complex you can try embedding HTML:
927-
928-
:::{table} Area Comparisons (written in html)
929-
:label: tbl:areas-html
930-
931-
<table>
932-
<tr><th rowspan="2">Projection</th><th colspan="3" align="center">Area in square miles</th></tr>
933-
<tr><th align="right">Large Horizontal Area</th><th align="right">Large Vertical Area</th><th align="right">Smaller Square Area<th></tr>
934-
<tr><td>Albers Equal Area </td><td align="right"> 7,498.7 </td><td align="right"> 10,847.3 </td><td align="right">35.8</td></tr>
935-
<tr><td>Web Mercator </td><td align="right"> 13,410.0 </td><td align="right"> 18,271.4 </td><td align="right">63.0</td></tr>
936-
<tr><td>Difference </td><td align="right"> 5,911.3 </td><td align="right"> 7,424.1 </td><td align="right">27.2</td></tr>
937-
<tr><td>Percent Difference </td><td align="right"> 44% </td><td align="right"> 41% </td><td align="right">43%</td></tr>
938-
</table>
939-
:::
940-
941-
or if you prefer LaTeX you can try `tabular` or `longtable` environments:
942-
943-
```{raw} latex
944-
\begin{table*}
945-
\begin{longtable*}{|l|r|r|r|}
946-
\hline
947-
\multirow{2}{*}{\bf Projection} & \multicolumn{3}{c|}{\bf Area in square miles} \\
948-
\cline{2-4}
949-
& \textbf{Large Horizontal Area} & \textbf{Large Vertical Area} & \textbf{Smaller Square Area} \\
950-
\hline
951-
Albers Equal Area & 7,498.7 & 10,847.3 & 35.8 \\
952-
Web Mercator & 13,410.0 & 18,271.4 & 63.0 \\
953-
Difference & 5,911.3 & 7,424.1 & 27.2 \\
954-
Percent Difference & 44\% & 41\% & 43\% \\
955-
\hline
956-
\end{longtable*}
957-
958-
\caption{Area Comparisons (written in LaTeX) \label{tbl:areas-tex}}
959-
\end{table*}
960-
```
961-
962-
Perhaps we want to end off with a quote by Lao Tse[^footnote-3]:
963-
964-
> Muddy water, let stand, becomes clear.
965-
966-
[^footnote-3]: $\mathrm{e^{-i\pi}}$

0 commit comments

Comments
 (0)