Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 19:43
    thibaut-d starred JuliaReach/LazySets.jl
  • 15:25

    schillic on gh-pages

    build based on 65f540a (compare)

  • 15:17

    github-actions[bot] on v1.53.2

    (compare)

  • 15:16
    JuliaTagBot commented #2401
  • 15:11

    schillic on gh-pages

    build based on 18a1a8c (compare)

  • 15:11

    schillic on gh-pages

    build based on 8f2872b (compare)

  • 15:05
    schillic closed #2886
  • 15:05
    schillic commented #2886
  • 15:04
    JuliaRegistrator commented #1332
  • 15:04
    mforets commented #1332
  • 15:03

    mforets on master

    Update Project.toml (compare)

  • 14:54
    mforets closed #2880
  • 14:53

    mforets on master

    Update README.md (compare)

  • 14:51

    mforets on new_version

    (compare)

  • 14:51

    mforets on master

    CompatHelper: bump compat for I… (compare)

  • 14:51
    mforets closed #2890
  • 13:39
    hessianguo starred JuliaReach/LazySets.jl
  • 11:30
    schillic review_requested #2890
  • 11:30
    schillic labeled #2886
  • 11:30
    schillic unlabeled #2886
Marcelo Forets
@mforets
in fact ellipsoid_level_set receives the center and axes and creates the ellipsoid, so it is the other way round:
function ellipsoid_level_set(image_shape, center=nothing, semi_axis=nothing)

    if isnothing(center)
        center = [i/2 for i in image_shape]
    end

    if isnothing(semi_axis)
        semi_axis = [i/2 for i in image_shape]
    end

    length(center) == length(image_shape) || throw(ArgumentError("`center` and `image_shape` must have the same length."))

    length(semi_axis) == length(image_shape) || throw(ArgumentError("`semi_axis` and `image_shape` must have the same length."))

    rx, ry = semi_axis
    return Ellipsoid(center, Diagonal([rx^2, ry^2]))
end
Dale-Black
@Dale-Black
Thank you! I’ll be working on utilizing LazySets for all of the various ways to initialize a level set now!
Marcelo Forets
@mforets
:thumbsup: if you get those "snake" plots let us know!
Dale-Black
@Dale-Black
Is there a way to convert a LazySets type like Ellipsoid to an array? Say, a binary array or something similar?
Marcelo Forets
@mforets
what would the array represent?
if a region is inside the ellipsoid or not?

that can be done with the membership function:

E = Ellipsoid([1.0, 1.0], [2.0 0.0; 0.0 0.5])
B = box_approximation(E)
Bs = split(B, [30, 30])

res = [center(Bi) ∈ E for Bi in Bs]
M = reshape(res, (30, 30))

produces

plot(E)
plot!(Bs)
Marcelo Forets
@mforets
Screenshot from 2021-07-01 00-37-46.png
and the M matrix is
30×30 Matrix{Bool}:
 0  0  0  0  0  0  0  0  0  0  0  1  11  0  0  0  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  1  1  1  1  1     1  1  1  1  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  1  1  1  1  1  1     1  1  1  1  1  0  0  0  0  0  0  0
 0  0  0  0  0  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  0  0  0  0  0
 0  0  0  0  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  0  0  0  0
 0  0  0  1  1  1  1  1  1  1  1  1  11  1  1  1  1  1  1  1  1  0  0  0
 0  0  0  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  0  0  0
 0  0  1  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  1  0  0
 0  1  1  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  1  1  0
 0  1  1  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  1  1  0
 0  1  1  1  1  1  1  1  1  1  1  1  11  1  1  1  1  1  1  1  1  1  1  0
 1  1  1  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  1  1  1
 1  1  1  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  1  1  1
 ⋮              ⋮              ⋮        ⋱        ⋮              ⋮           
 1  1  1  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  1  1  1
 0  1  1  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  1  1  0
 0  1  1  1  1  1  1  1  1  1  1  1  11  1  1  1  1  1  1  1  1  1  1  0
 0  1  1  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  1  1  0
 0  0  1  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  1  0  0
 0  0  0  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  0  0  0
 0  0  0  1  1  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  1  0  0  0
 0  0  0  0  1  1  1  1  1  1  1  1  11  1  1  1  1  1  1  1  0  0  0  0
 0  0  0  0  0  1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  0  0  0  0  0
 0  0  0  0  0  0  0  1  1  1  1  1  1     1  1  1  1  1  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  1  1  1  1  1     1  1  1  1  0  0  0  0  0  0  0  0
 0  0  0  0  0  0  0  0  0  0  0  1  1     1  0  0  0  0  0  0  0  0  0  0  0
and
plot(E)
plot!(Bs[res])
Screenshot from 2021-07-01 00-39-58.png
Dale-Black
@Dale-Black
Yes that's exactly what I am looking for. Thanks again
Marcelo Forets
@mforets
:thumbsup:
Christian Schilling
@schillic
:O
Marcelo Forets
@mforets
in the #javis.jl stream on zulip i got feedback from the Javis developers and made a quick animation
Javis is a pure julia package to make animations
it has many features that i didn';t try yet, such as sets following a path
Marcelo Forets
@mforets

today i tried running the Lazysets docs and tests in Julia v1.6 .. and it takes no more than 2 minutes :tada:

in the past it used to take much longer i think

$ time julia --color=yes docs/make.jl  && julia --color=yes test/runtests.jl

Test Summary:     | Pass  Total
LazySets.plotting |    2      2
 21.167309 seconds (31.84 M allocations: 1.854 GiB, 2.67% gc time, 19.44% compilation time)
[ Info: SetupBuildDirectory: setting up build directory.
[ Info: Doctest: running doctests.
[ Info: Skipped ExpandTemplates step (doctest only).
[ Info: Skipped CrossReferences step (doctest only).
[ Info: Skipped CheckDocument step (doctest only).
[ Info: Skipped Populate step (doctest only).
[ Info: Skipped RenderDocument step (doctest only).
Test Summary:     | Pass  Total
LazySets.doctests |    1      1
 50.646803 seconds (79.67 M allocations: 5.673 GiB, 2.96% gc time, 4.86% compilation time)
so its 20 sec for tests and 50 sec for doctests and actually building the docs
just rebased to master the branch JuliaReach/LazySets.jl#2753
Christian Schilling
@schillic
the time you show here is just the doctests. the building happens in the first command and does not print the time (you should have gotten the result of time for everything at the very end)
also, you are only showing the time for the plot tests and doctests. there are a lot more of them
what is true is that most of the time is spent in precompilation. running the tests a second time is fast
Marcelo Forets
@mforets
:thumbsup:
Christian Schilling
@schillic
building the docs takes 5:30 and running the tests takes 11:00 on a github server
Christian Schilling
@schillic
Christian Schilling
@schillic
the time for using LazySets increased by 2 seconds compared to v1.6.1 :(
Marcelo Forets
@mforets
ohh
2 seconds is a lot. you tried v1.7 the other day. it also has that additional latency? (i guess so? )
there is supposed to be a workshop / talk about how to use tools to reduce latency
Christian Schilling
@schillic
in v1.7.0-beta3.0 it's 1 second faster compared to v1.6.2 :)
Marcelo Forets
@mforets
the workshop It's all Set: A hands-on introduction to JuliaReach
has been announced
and also the minisymposium Set Propagation Methods in Julia: Techniques and Applications
https://pretalx.com/juliacon2021/talk/DRMPLU/
Christian Schilling
@schillic
@mforets: about the recent segmentation fault when building the docs: it's not just us: JuliaPolyhedra/Polyhedra.jl#265
Marcelo Forets
@mforets
i feel like adding the content of the notebooks to the packages docs
i also like the guided introduction to NNA
can we also trim the youtube video? i mean, the last 15 mins with the NNA presentation
so we can link that directly from the NNA docs
Christian Schilling
@schillic
:+1:
Marcelo Forets
@mforets
FYI there is a #set-propagation discord channel for JuliaCon
Marcelo Forets
@mforets
during the w.e. i plan to continue working on the RA docs revamp
i think we should update the names of the section in a better way
it might be like this:
  • Linear methods (which explains reach-sets, flowpipes, etc in the context of ivps with set initial conditions of the form x' = Ax )
  • Handling inputs sets (not sure about the section name. this is about linear systems with non-deterministic inputs).
  • Taylor models methods
  • Hybrid systems
  • Clocked systems
  • Exploiting structure (which goes at depth into different use cases of LGG09, BFFPSV18)
    • ... the list continue
the motivation to separate "Linear methods" wrt systems with inputs is to introduce the set propagation concepts incrementally
Christian Schilling
@schillic
"nondeterministic linear systems"?
or "with uncertainties"