Introduction

What is GraphCalc?

GraphCalc is a Python library for computation in graph theory, hypergraph theory, combinatorics, discrete mathematics, and quantum information.

The library began as a graph-focused package for computing graph invariants and working with structured graph families. It has since expanded into a broader mathematical toolkit that supports multiple discrete domains while retaining a common design philosophy: mathematically transparent objects, reusable generators, invariant computation, property testing, and dataset-oriented experimentation.

Scope

GraphCalc is designed for users who want to work programmatically with mathematical structures arising in discrete mathematics and quantum information. Typical use cases include:

  • constructing graphs, hypergraphs, and related combinatorial objects

  • computing numerical invariants and structural properties

  • generating examples and datasets for experimentation

  • studying families of finite-dimensional quantum states, channels, and measurements

  • integrating solver-based routines into mathematical workflows

Package overview

The main public areas of the library are:

graphcalc.graphs

Tools for graphs, including core graph utilities, generators, invariant computation, polytope-related modules, and visualization helpers.

graphcalc.hypergraphs

Tools for hypergraph construction, basic operations, and hypergraph invariants.

graphcalc.quantum

Tools for finite-dimensional quantum states, channels, measurements, local channel actions, and dataset generation.

graphcalc.solvers

Solver-backed routines and optimization-oriented helpers used across the library.

graphcalc.utils

General-purpose supporting utilities shared across workflows.

Design philosophy

GraphCalc emphasizes:

  • clear mathematical APIs

  • reusable computational building blocks

  • support for experimentation and conjecture-driven workflows

  • compatibility with standard Python scientific tooling

  • a balance between conceptual clarity and practical computation

Typical workflows

A typical GraphCalc workflow may involve one or more of the following:

  • generating a graph or hypergraph from a structured family

  • computing invariants or testing properties

  • exporting collections of computed data for later analysis

  • constructing and studying quantum states, channels, or measurements

  • using solver-backed routines to evaluate combinatorial quantities

Where to go next

For installation instructions, see Installation.

For a practical overview of common workflows, see Quickstart.

For a package-level reference to the public API, see API Reference.