Skip to content

omega-icl/mcpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

256 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MC++ Toolkit for Construction, Manipulation and Evaluation of Factorable Functions

MC++ provides a collection of classes to support the construction and manipulation of factorable functions and their evaluation using a range of arithmetics. It is primarily written in C++ to promote execution speed, while the module pyMC includes Python binders through pybind11.

Expression trees in MC++ can comprise any finite combination of unary and binary operations from a default library. MC++ also features a mechanism to extend expression trees with external operations, currently including affine and polynomial subexpressions as well as multi-layer perceptrons (MLP). Through the library CRONOS, MC++ can also be extended with systems of algebraic and differential equations. Expression trees generated with MC++ can be used by the library CANON for local and global numerical optimization; and the library MAGNUS for the development and analysis of mathematical models.

The present version 4.0 of MC++ has capability for:

  • Construction and differentiation of expression trees (both forward and reverse accumulation modes)
  • Recursive decomposition of factorable expressions into linear/polynomial subexpressions and transcendental operations
  • Elimination of variables in factorable expressions
  • Decomposition of sparse polynomial expressions into quadratic forms
  • Detection of reduction constraints in sparse polynomial expressions

The main bounding components in version 4.0 of MC++ include:

  • Interval arithmetic
  • Eigenvalue arithmetic
  • Ellipsoidal arithmetic
  • McCormick relaxations
  • Taylor and Chebyshev models
  • Polyhedral relaxations
  • Superposition relaxations

A range of python notebooks are provided in src/pymc to illustrate these capabilities.


Setting up MC++

Refer to INSTALL.md for instructions.

Contacts


References

About

Library for construction, manipulation and evaluation of factorable functions

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors