Author JuliaSmoothOptimizers
10 Stars
Updated Last
1 Year Ago
Started In
May 2020

ExpressionTreeForge: A manipulator of expression trees

Documentation Linux/macOS/Windows/FreeBSD Coverage DOI
docs-stable docs-dev build-gh build-cirrus codecov doi

How to cite

If you use ExpressionTreeForge.jl in your work, please cite using the format given in CITATION.bib.


ExpressionTreeForge.jl is a manipulator of expression trees. It supports several expression tree implementations and defines methods to analyze and manipulate them, including:

  • partial separability detection;
  • evaluation of the expression, and its first and second derivatives;
  • bound propagation;
  • convexity detection.


Julia ≥ 1.6.

How to install

pkg> add ExpressionTreeForge
pkg> test ExpressionTreeForge

How to use

See the tutorial.


This module is used together with PartitionedStructures.jl by PartiallySeparableNLPModels.jl and PartiallySeparableSolvers.jl to define a trust-region method exploiting partial separability through partitioned quasi-Newton approximations.

Bug reports and discussions

If you think you found a bug, feel free to open an issue. Focused suggestions and requests can also be opened as issues. Before opening a pull request, start an issue or a discussion on the topic, please.

If you want to ask a question not suited for a bug report, feel free to start a discussion here. This forum is for general discussion about this repository and the JuliaSmoothOptimizers, so questions about any of our packages are welcome.