FunctionProperties.jl

A SciML symbolic-numeric compiler tool for investigating functions in order to perform optimizations
Author SciML
Popularity
9 Stars
Updated Last
8 Months Ago
Started In
October 2023

FunctionProperties

Join the chat at https://julialang.zulipchat.com #sciml-bridged Global Docs

codecov Build Status

ColPrac: Contributor's Guide on Collaborative Practices for Community Packages SciML Code Style

FunctionProperties.jl is a package which contains utilities for testing the properties of Julia functions. For example, do you need to know if f has internal branches (if statements) in order to know if a given AD optimization or symbolic pass is valid? This package's functions allows you to perform such analyses on functions from a user's code by doing a compiler-based code inspection.

Example

@test hasbranching(1, 2) do x, y
    (x < 0 ? -x : x) + exp(y)
end # true

@test hasbranching(1, 2) do x, y
    ifelse(x < 0, -x, x) + exp(y)
end # false