gaioguys / GAIO.jl

A Julia package for set oriented computations.
MIT License
9 stars 4 forks source link

Beauty upgrades (plotting, non-mutating functions, print statements) #81

Closed April-Hannah-Lena closed 1 year ago

April-Hannah-Lena commented 1 year ago

The Plots.jl package has a faster time-to-first-plot but cannot handle large amounts of boxes, and cannot plot 3D scatter plots using boxes as markers. Nonetheless, Plots.jl suits itself better for quick and dirty 2D plots. You can still plot objects from any dimension, it will just be projected to 2D, the same way in Make we project to 3D.

Non-breaking changes:

Breaking changes:

April-Hannah-Lena commented 1 year ago

The next steps:

Longer term:

gaioguy commented 1 year ago

The Plots.jl package has a faster time-to-first-plot but cannot handle large amounts of boxes, and cannot plot 3D scatter plots using boxes as markers. Nonetheless, Plots.jl suits itself better for quick and dirty 2D plots. You can still plot objects from any dimension, it will just be projected to 2D, the same way in Make we project to 3D.

Non-breaking changes:

  • You can now use Plots.jl for 2D plotting
  • The display for BoxPartitions has also been shortened to remove type paramters.

Breaking changes:

  • unstable_set! has been changed to unstable_set and is no longer a mutating function. This fits with the other algorithms and makes the function much less confusing.

Ok, great, works nicely here.

gaioguy commented 1 year ago

The Plots.jl package has a faster time-to-first-plot but cannot handle large amounts of boxes, and cannot plot 3D scatter plots using boxes as markers. Nonetheless, Plots.jl suits itself better for quick and dirty 2D plots. You can still plot objects from any dimension, it will just be projected to 2D, the same way in Make we project to 3D. Non-breaking changes:

  • You can now use Plots.jl for 2D plotting
  • The display for BoxPartitions has also been shortened to remove type paramters.

Breaking changes:

  • unstable_set! has been changed to unstable_set and is no longer a mutating function. This fits with the other algorithms and makes the function much less confusing.

Ok, great, works nicely here.

The next steps:

  • remove linear indices from BoxPartition entirely
  • change BoxFun to be a density, ie pointwise evaluation instead of evaluation over boxes (potentially add BoxMeasure?)
  • add an example of the TransferOperator acting on BoxFuns. Is there an example of a system with "oscillating" sets, ie sets with eigenvalue -1 for the TransferOperator? I know the Lorenz system would work, but we already used that so it might be nice to have a new system
  • separate BoxMaps into their own types, so that they are not all SampledBoxMap

Longer term:

  • create an almost_invariant_sets algorithm based on SEBA
  • interval arithmetic BoxMap type

Can we rather put the issues in this list into new issues?

April-Hannah-Lena commented 1 year ago

Can we rather put the issues in this list into new issues?

yes 👍