1- # FunctionProperties .jl: Compiler-Based Proofs of Function Properties
1+ # SciMLStructures .jl: Compiler-Based Proofs of Function Properties
22
3- FunctionProperties.jl is a package which contains utilities for testing the
4- properties of Julia functions. For example, do you need to know if ` f ` has
5- internal branches (if statements) in order to know if a given AD optimization
6- or symbolic pass is valid? This package's functions allows you to perform
7- such analyses on functions from a user's code by doing a compiler-based
8- code inspection.
3+ SciMLStructures.jl defines a generic interface for interacting with solvers, estimation tooling, and more within
4+ the SciML ecosystem and the greater Julia universe. SciMLStructures.jl defines a structured enforcable interface
5+ which allows for solvers to be able to handle custom user types in an efficient and generalized way.
96
107## Installation
118
12- To install FunctionProperties .jl, use the Julia package manager:
9+ To install SciMLStructures .jl, use the Julia package manager:
1310
1411``` julia
1512using Pkg
16- Pkg. add (" FunctionProperties " )
13+ Pkg. add (" SciMLStructures " )
1714```
1815
19- ## Example
20-
21- ``` julia
22- @test hasbranching (1 , 2 ) do x, y
23- (x < 0 ? - x : x) + exp (y)
24- end # true
25-
26- @test hasbranching (1 , 2 ) do x, y
27- ifelse (x < 0 , - x, x) + exp (y)
28- end # false
29- ```
30-
31- ## This package uses Cassette internally?
32-
33- Yes, because this is how it's currently known how to be done. If you have an alternative
34- implementation which uses the undocumented compiler plugins interface, we would happily
35- accept the PR!
36-
3716## Contributing
3817
3918 - Please refer to the
@@ -42,7 +21,7 @@ accept the PR!
4221
4322 - See the [ SciML Style Guide] ( https://github.com/SciML/SciMLStyle ) for common coding practices and other style decisions.
4423 - There are a few community forums:
45-
24+
4625 + The #diffeq-bridged and #sciml-bridged channels in the
4726 [ Julia Slack] ( https://julialang.org/slack/ )
4827 + The #diffeq-bridged and #sciml-bridged channels in the
@@ -91,32 +70,19 @@ Pkg.status(; mode = PKGMODE_MANIFEST) # hide
9170</details>
9271```
9372
94- ``` @raw html
95- You can also download the
96- <a href="
97- ```
98-
9973``` @eval
10074using TOML
75+ using Markdown
10176version = TOML.parse(read("../../Project.toml", String))["version"]
10277name = TOML.parse(read("../../Project.toml", String))["name"]
103- link = "https://github.com/SciML/" * name * ".jl/tree/gh-pages/v" * version *
104- "/assets/Manifest.toml"
105- ```
106-
107- ``` @raw html
108- ">manifest</a> file and the
109- <a href="
110- ```
111-
112- ``` @eval
113- using TOML
114- version = TOML.parse(read("../../Project.toml", String))["version"]
115- name = TOML.parse(read("../../Project.toml", String))["name"]
116- link = "https://github.com/SciML/" * name * ".jl/tree/gh-pages/v" * version *
117- "/assets/Project.toml"
118- ```
119-
120- ``` @raw html
121- ">project</a> file.
78+ link_manifest = "https://github.com/SciML/" * name * ".jl/tree/gh-pages/v" * version *
79+ "/assets/Manifest.toml"
80+ link_project = "https://github.com/SciML/" * name * ".jl/tree/gh-pages/v" * version *
81+ "/assets/Project.toml"
82+ Markdown.parse("""You can also download the
83+ [manifest]($link_manifest)
84+ file and the
85+ [project]($link_project)
86+ file.
87+ """)
12288```
0 commit comments