Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ Manifest.toml
*.scss
test/*.png
test/*.bson
*style.jl
*style.jl
tutorial.md
examples.md
6 changes: 3 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
name = "RecurrenceMicrostatesAnalysis"
uuid = "cb83a08b-85c6-4e94-91aa-4e946c7d4f0c"
repo = "https://github.com/DynamicsUFPR/RecurrenceMicrostatesAnalysis.jl"
version = "0.4.0"
repo = "https://github.com/DynamicsUFPR/RecurrenceMicrostatesAnalysis.jl"

[deps]
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
Atomix = "a9b6321e-bd34-4604-b9c9-b65b8de01458"
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
ComplexityMeasures = "ab4b797d-85ee-42ba-b621-05d793b346a2"
Expand All @@ -15,9 +14,9 @@ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
StateSpaceSets = "40b095a5-5852-4c12-98c7-d43bf788e795"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"

[compat]
Adapt = "4.4.0"
Atomix = "1.1.2"
Combinatorics = "1.1.0"
ComplexityMeasures = "3.8.5"
Expand All @@ -28,6 +27,7 @@ Random = "1.10.9"
Reexport = "1.2.2"
StateSpaceSets = "2.5.3"
StaticArrays = "1.9.15"
Statistics = "1.11.1"
julia = "1.8"

[extras]
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# RecurrenceMicrostatesAnalysis.jl

[![CI](https://github.com/DynamicsUFPR/RecurrenceMicrostatesAnalysis.jl/workflows/CI/badge.svg)](https://github.com/DynamicsUFPR/RecurrenceMicrostatesAnalysis.jl/actions)
[![codecov](https://codecov.io/gh/DynamicsUFPR/RecurrenceMicrostatesAnalysis.jl/graph/badge.svg?token=NR3S4JOE4R)](https://codecov.io/gh/DynamicsUFPR/RecurrenceMicrostatesAnalysis.jl)
[![CI](https://github.com/JuliaDynamics/RecurrenceMicrostatesAnalysis.jl/workflows/CI/badge.svg)](https://github.com/JuliaDynamics/RecurrenceMicrostatesAnalysis.jl/actions)
[![codecov](https://codecov.io/gh/JuliaDynamics/RecurrenceMicrostatesAnalysis.jl/graph/badge.svg?token=NR3S4JOE4R)](https://codecov.io/gh/JuliaDynamics/RecurrenceMicrostatesAnalysis.jl)
[![Package Downloads](https://img.shields.io/badge/dynamic/json?url=http%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Ftotal_downloads%2FRecurrenceMicrostatesAnalysis&query=total_requests&label=Downloads)](http://juliapkgstats.com/pkg/RecurrenceMicrostatesAnalysis)
[![Publication](https://img.shields.io/badge/publication-Chaos-blue.svg)](https://doi.org/10.1063/5.0293708)

Expand All @@ -24,5 +24,5 @@ import Pkg
Pkg.add("RecurrenceMicrostatesAnalysis")
```

The package documentation is available [online](https://dynamicsufpr.github.io/RecurrenceMicrostatesAnalysis.jl/), or you can build it
The package documentation is available [online](https://juliadynamics.github.io/RecurrenceMicrostatesAnalysis.jl/stable/), or you can build it
locally by running `julia docs/make.jl`.
6 changes: 6 additions & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,16 @@ Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244"
DocumenterTools = "35a29f4d-8980-5a13-9543-d66fff28ecb8"
DynamicalSystems = "61744808-ddfa-5f27-97ff-6e42cc95d634"
DynamicalSystemsBase = "6e36e845-645a-534a-86f2-f5d4aa5a06b4"
FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c"
GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527"
Images = "916415d5-f1e6-5110-898d-aaa5f9f070e0"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306"
PredefinedDynamicalSystems = "31e2f376-db9e-427a-b76e-a14f56347a14"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
RecurrenceAnalysis = "639c3291-70d9-5ea2-8c5b-839eba1ee399"
RecurrenceMicrostatesAnalysis = "cb83a08b-85c6-4e94-91aa-4e946c7d4f0c"
StateSpaceSets = "40b095a5-5852-4c12-98c7-d43bf788e795"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
Expand Down
57 changes: 26 additions & 31 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -5,45 +5,40 @@ using DocumenterCitations
using RecurrenceMicrostatesAnalysis
using StateSpaceSets

# Convert tutorial file to markdown
import Literate
Literate.markdown("src/tutorial.jl", "src"; credit = false)
Literate.markdown("src/examples.jl", "src"; credit = false)

pages = [
"Welcome" => "index.md",
"Tutorial" => [
"Distributions" => "tutorial/distributions.md",
"Quantifiers" => "tutorial/quantifiers.md",
"Recurrence Functions" => "tutorial/recurrences.md",
"Shapes and Sampling" => "tutorial/shapes_and_sampling.md",
"GPU" => "tutorial/gpu.md",
"Utils" => "tutorial/utils.md",
],
"Examples" => [
"Machine Learning" => "examples/ml.md",
],
"Developers" => "dev.md",
"Tutorial" => "tutorial.md",
"API" => "api.md",
"GPU" => "gpu.md",
"Examples" => "examples.md",
"Developers docs" => "dev.md",
"References" => "refs.md",
]

# Apply JuliaDynamics theme, choosing a specific branch (easier debugging)
github_user = "JuliaDynamics"
branch = "master"
download_path = "https://raw.githubusercontent.com/$github_user/doctheme/$branch/"

import Downloads
Downloads.download(
"$download_path/build_docs_with_style.jl",
joinpath(@__DIR__, "build_docs_with_style.jl")
)
include("build_docs_with_style.jl")

using DocumenterCitations

bib = CitationBibliography(
joinpath(@__DIR__, "refs.bib");
style=:authoryear
)

makedocs(
sitename = "RecurrenceMicrostatesAnalysis.jl",
format = Documenter.HTML(
prettyurls = true,
collapselevel = 3,
),
modules = [RecurrenceMicrostatesAnalysis, StateSpaceSets, ComplexityMeasures],
pages = pages,
doctest = false,
checkdocs = :exported,
warnonly = [:doctest, :missing_docs],
plugins = [bib]
build_docs_with_style(pages, RecurrenceMicrostatesAnalysis, ComplexityMeasures, StateSpaceSets;
expandfirst = ["index.md"], bib,
)

deploydocs(
repo = "github.com/DynamicsUFPR/RecurrenceMicrostatesAnalysis.jl.git",
target = "build",
push_preview = true,
versions = ["stable" => "v^", "v#.#", "dev" => "dev"]
)
11 changes: 10 additions & 1 deletion docs/refs.bib
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,15 @@ @article{Ferreira2025RMALib
month = {11},
title = {RecurrenceMicrostatesAnalysis.jl: A Julia library for analyzing dynamical systems with recurrence microstates},
volume = {35},
url = {https://pubs.aip.org/cha/article/35/11/113123/3372778/RecurrenceMicrostatesAnalysis-jl-A-Julia-library},
year = {2025}
}

@article{Silveira2025ML,
author = {Silveira, J. V. M and Costa, H. C and Spezzatto, G. S and Prado, T. L and Lopes, S. R},
journal = {Braz. J. Phys.},
number = {56},
title = {Classifying Complex Dynamical and Stochastic Systems via Physics-Based Recurrence Features},
volume = {37},
year = {2025},
doi = {10.1007/s13538-025-01969-6}
}
77 changes: 77 additions & 0 deletions docs/src/api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# API

## Recurrence Microstates
```@docs
RecurrenceMicrostates
```

### Recurrence expressions
```@docs
RecurrenceExpression
recurrence
ThresholdRecurrence
CorridorRecurrence
```

### Microstate shapes
```@docs
MicrostateShape
RectMicrostate
DiagonalMicrostate
TriangleMicrostate
```

### Sampling modes
```@docs
SamplingMode
SRandom
Full
```

### Sampling space
!!! todo "Future implementation"
We pretend to expand the [`RecurrenceMicrostates`](@ref) structure to also consider
a setted space from the recurrence plot as source of information to construct
the RMA distribution.

```@docs
SamplingSpace
```

## Recurrence Quantification Analysis
```@docs
RecurrenceRate
RecurrenceDeterminism
RecurrenceLaminarity
Disorder
WindowedDisorder

rma
```

## Optimization
```@docs
Parameter
optimize
Threshold
```

## Operations
```@docs
Operation
operate
PermuteRows
PermuteColumns
Transpose
```

## Utils

### GPU Metrics
**Distances.jl** is not compatible with GPU execution; therefore, distance evaluations must be reimplemented
for GPU usage. This is done using a [`GPUMetric`](@ref).

```@docs
GPUMetric
GPUEuclidean
```
Binary file added docs/src/assets/example.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading