Bordered Arrays
Here are some informations on a composite type which is used all over the package to hold a couple (array, array) or (array, scalar) while implementing the methods described in Requested methods for Custom State.
BifurcationKit.BorderedArray — Type
mutable struct BorderedArray{𝒯1, 𝒯2}This defines an "array" (although not <: AbstractArray) to hold two arrays or an array and a scalar. As such, it is a convenient alternative to cat, vcat and friends. It proves useful for the GPU where the operation x[end] can be slow.
This is useful when one wants to add constraints (phase, ...) to a functional for example. It is used throughout the package for the Pseudo Arc Length Continuation (PALC), for the continuation of Fold / Hopf points, for periodic orbits...
It is for example used to define periodic orbits as (orbit, period). We chose not to make it a subtype of AbstractArray as we wish to apply the current package to general "arrays", see Requested methods for Custom State.