Skip to main content

Python interface to MC++

Project description

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 and are described by direct acyclic graphs (DAGs). MC++ also features a mechanism to extend DAGs with external operations, currently including affine and polynomial subexpressions as well as multi-layer perceptrons (MLP) and nested DAGs. 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 5.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
  • Specification of nested expression trees to enable tailored bounding strategies

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

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

A range of python scripts and notebooks are provided in notebook subdirectory to illustrate these capabilities.


Setting up MC++

Refer to INSTALL.md for instructions.

Contacts


References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymcpp-5.0.0.tar.gz (6.0 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pymcpp-5.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (46.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pymcpp-5.0.0-cp313-cp313-macosx_14_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

pymcpp-5.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (46.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pymcpp-5.0.0-cp312-cp312-macosx_14_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

pymcpp-5.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pymcpp-5.0.0-cp311-cp311-macosx_14_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

pymcpp-5.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (47.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pymcpp-5.0.0-cp310-cp310-macosx_14_0_arm64.whl (15.2 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file pymcpp-5.0.0.tar.gz.

File metadata

  • Download URL: pymcpp-5.0.0.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for pymcpp-5.0.0.tar.gz
Algorithm Hash digest
SHA256 76e5d3f3d9294909c147c1f83a431043bd8f0a3601e489856398b23286e0b17c
MD5 ca9afe2b0622c37abc5026e16b59cdf1
BLAKE2b-256 5ee37f8c3817dad042055ecfaaed412cee34d91e4466b5e5076d3d333c8ff56e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymcpp-5.0.0.tar.gz:

Publisher: wheels.yml on omega-icl/mcpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymcpp-5.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymcpp-5.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 816e59afc827e40f1c18e5fe56bba60ae60ffafee0ef263e0957cde17ba83af3
MD5 6bd112adaaa3e8ac9defad5350121ab5
BLAKE2b-256 6995c7a50aa18b615f62142b69863d385717b9bbd84636be808ecef9455776e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymcpp-5.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on omega-icl/mcpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymcpp-5.0.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pymcpp-5.0.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a3e0c0aa62216eeb3ecc151116fbc0c40c954b0076a3a01e970d0599fbdb1163
MD5 8f2453903c2e7aadbe94cf78c8446f4d
BLAKE2b-256 3fd492a2ffb35cfec1071d803b44c67857a433afea9652991138c8b27f5b8423

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymcpp-5.0.0-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: wheels.yml on omega-icl/mcpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymcpp-5.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymcpp-5.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6694f821e622976855d7c5cecf449afff5d4d21563dea4134001b5c19995b3a3
MD5 1ce66d93fdc114bced7275c13c6e5115
BLAKE2b-256 e4e29c9877e2ec2dd91c17d1121f44a2535d9aff04bbfa3690edde4a212f9df3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymcpp-5.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on omega-icl/mcpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymcpp-5.0.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pymcpp-5.0.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 78484f8551290ff400195b8382ebe32ec88b783d9257d12eb366034332619ad5
MD5 511790a1c1fdaf548e941e13b1843865
BLAKE2b-256 a507611a30a9f7e3698824d8b39a490848b138cd7f0ad02507cd73878b414554

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymcpp-5.0.0-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: wheels.yml on omega-icl/mcpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymcpp-5.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymcpp-5.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5cb9089c1888f255b028dae5665e1c99848c75c9f006035f1b4be126bf9b23f3
MD5 1235f7864b6d0aee58cfa07065479af1
BLAKE2b-256 d0ec4f9e4cf2e9138168f660026a3092432ae59b282cfd4e1403e83da8c63302

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymcpp-5.0.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on omega-icl/mcpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymcpp-5.0.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pymcpp-5.0.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b8e43b4b2d1e78180f9550f4e62d4a5991eb7fe853227a3213aade75a2b6dfba
MD5 c50a0580c27e8e81314a30ebb7fb646c
BLAKE2b-256 83aa623ae11aa4f070f07b7dc1c99e6694d4781e4e1dde7b7ff677f4b7fa6224

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymcpp-5.0.0-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: wheels.yml on omega-icl/mcpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymcpp-5.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pymcpp-5.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2bc03356be0bfd1b89f1b4aa400a0d9fe80d0493de44414bf532d08b75943549
MD5 8b57408865659968aabf0b46a9440c99
BLAKE2b-256 e6ee9a6b74e0df98bec26a6ca0a44340dd47d9ecca117ac2a3d8e9212a7ac8b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymcpp-5.0.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on omega-icl/mcpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pymcpp-5.0.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pymcpp-5.0.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 21e98328b661f7535d83b34f116e9be2f8fd1463514c0b975e8ecaf2ba640a34
MD5 1312b12f0e455a473655ec97b1f69b21
BLAKE2b-256 b4d76506d8560bc8ca1125f86a526c90d78bec03b315769392fb03ad03e84edb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pymcpp-5.0.0-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: wheels.yml on omega-icl/mcpp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page