JuliaReach / LazySets.jl

Scalable symbolic-numeric set computations in Julia
https://juliareach.github.io/LazySets.jl/
Other
226 stars 32 forks source link

Outsource `Interval` to its own module #3520

Closed schillic closed 3 weeks ago

schillic commented 1 month ago

Overview

This is a proposal for a restructuring of the Sets folder. Essentially, I propose to have a module for each set type T, and to add the operations regarding only T there. This PR starts with Interval.

Issues

While working on it, I realized a couple of issues, leading to these modules not being totally independent:

Summary of commits

Below I summarize the commits, with an indication of how significant the changes are. :one: = main change; :two: = splitting/merging of operations for the new module; :three: = minor.

The first commit just renames/moves Sets/Interval.jl to a subfolder Sets/Interval/IntervalModule.jl (separate commit to simplify the diff):

The next commit is the main change. It adds the module and all required imports:

The next three commits outsource all API functions from the big module file to its own files and also add the convert methods and binary Interval operations:

The last commit is necessary to accommodate for the previous commit (moving UnionSet earlier in the loading order):