Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0] - 2025-09-23

Added

  • Initial release of the BiSC algorithm implementation

  • Core Permutation class with pattern containment checking

  • MeshPattern class for generalized patterns with shading

  • Complete BiSC algorithm implementation with MINE and GEN phases

  • Command-line tools: bisc-examples and bisc-demo

  • Examples for known permutation classes:

    • Stack-sortable permutations

    • Smooth permutations

    • Baxter permutations

  • Comprehensive test suite with unit and integration tests

  • Full API documentation with Sphinx

  • PyPI package publication

  • MIT License

Features

  • Pattern Discovery: Automatically discover forbidden patterns that characterize permutation classes

  • Mesh Patterns: Support for generalized mesh patterns with shading constraints

  • Pure Python: No external dependencies required

  • Extensible: Easy to add new permutation classes and examples

  • Well-Tested: Comprehensive test coverage

  • Documented: Complete API documentation and examples

Algorithm Components

  • MINE Phase: Systematically record all mesh patterns appearing in input permutations

  • GEN Phase: Generate forbidden patterns from allowed patterns using complement logic

  • Pattern Utilities: Helper functions for pattern manipulation and analysis

  • Mesh Utilities: Tools for working with mesh patterns and shading

Known Issues

  • None reported

Performance

  • Efficient implementation suitable for permutations up to moderate length

  • Memory usage scales with the number of input permutations and pattern length

  • Algorithmic complexity depends on the size of the permutation class

Compatibility

  • Python 3.7+

  • Cross-platform (Windows, macOS, Linux)

  • No external dependencies

Future Plans

  • Performance optimizations for larger permutation sets

  • Additional permutation class examples

  • Interactive visualization tools

  • Jupyter notebook examples

  • Integration with other combinatorics tools

[Unreleased]

Changes that are in development but not yet released will be documented here.