Recent Releases of MatrixBandwidth

MatrixBandwidth - v0.1.4

Added

  • Update the module docstring and README.md to include a paragraph on the motivation and goals of this package (#131).
  • Implemented the Saxe–Gurari–Sudborough algorithm (both the minimization solver and the recognition decider) (#123, #126).
  • Added bi_criteria_node_finder (an improvement upon pseudo_peripheral_node_finder) as a new node finder for the heuristic solvers (#112).
  • Finished unit tests for all root-level utility functions (#108, #109).
  • Added References sections to docstrings for immediate readability in the REPL and in the source code without needing to open the Documenter-generated website (#105).

Changed

  • Replaced all deprecated DataStructures.enqueue! and DataStructures.dequeue! calls with Base.push! and Base.popfirst!, respectively (#129).
  • Fleshed out and fixed a few typos in the documentation for the Del Corso–Manzini algorithms (#126).
  • Renamed the _requires_symmetry internal function (used for input validation) to _requires_structural_symmetry (#123).
  • Fleshed out documentation (particularly inline comments) for the Gibbs–Poole–Stockmeyer source code (#116).
  • Improved unit tests for the heuristic solvers with more edge cases and scenarios (including the use of custom node finders) (#112).
  • Changed the DEFAULT_NODE_FINDER constant for the heuristic solvers from pseudo_peripheral_node_finder to bi_criteria_node_finder (#112).
  • Moved the _connected_components function from MatrixBandwidth.Minimization.Heuristic to the root MatrixBandwidth module (specifically src/utils.jl) for universal access (#109).

Fixed

  • Tightened the bandwidth_lower_bound function for disconnected graphs by taking the maximum of the bounds computed for each connected component (#124).
  • Fixed some test names in the Del Corso–Manzini recognition algorithm test suite ("Bandwidth < k" was meant to be "Bandwidth > k", and "Bandwidth ≥ k" was meant to be "Bandwidth ≤ k") (#123).

- Julia
Published by Luis-Varona 6 months ago

MatrixBandwidth - v0.1.3

Changed

  • Bumped compat for DataStructures.jl from 0.18.15 to 0.18.15 - 0.19 (#100).

(This is a very minor patch only released to bump the DataStructures.jl compat in a timely manner for users.)

- Julia
Published by Luis-Varona 7 months ago

MatrixBandwidth - v0.1.2

Added

  • Started using PrecompileTools.jl to compile all solvers/deciders during package startup, reducing delay on first usage (formerly reached up to ~3 seconds for some algorithms) (#93).
  • Created the MatrixBandwidth.ALGORITHMS constant to index all available algorithms by submodule (#93).
  • Added "Supertype Hierarchy" sections to the docstrings of all subtypes (both concrete and abstract) (#90).
  • Added a section in README.md and the MatrixBandwidth module docstring covering practical applications of matrix bandwidth reduction in engineering and scientific computing (#86).

Changed

  • Removed some unnecessary entries in CHANGELOG.md documenting super minor changes to documentation and code style (#93).
  • Changed some user-facing parameters typed as Int to the more generic Integer (#90).

- Julia
Published by Luis-Varona 7 months ago

MatrixBandwidth - v0.1.1

Added

  • Mentioned the core package exports (including the new profile function) in the MatrixBandwidth module docstring and README.md (#78).
  • Added the profile function to compute the original profile of a matrix prior to any reordering (#78).
  • Added the homepage field to Project.toml to reference the GitHub Pages documentation (#76).
  • Created CHANGELOG.md to document changes to this project (#72).
  • Clarified certain if-else checks in the bandwidth method and in a helper function for the Del Corso–Manzini Recognition deciders by explaining via inline comments that we cannot reduce over an empty collection (#71).

Changed

  • Referenced the new profile function in the CuthillMcKee, ReverseCuthillMcKee, and GibbsPooleStockmeyer docstrings when matrix profile is mentioned (#78).
  • Reformatted some entries in docs/src/refs.bib (some author names did not exactly match the papers) (#78).
  • Changed "MatrixBandwidth.jl offers several algorithms…" to "MatrixBandwidth.jl offers fast algorithms…" in README.md. Similarly changed "Luis-Varona/MatrixBandwidth.jl: Algorithms…" to "Luis-Varona/MatrixBandwidth.jl: Fast algorithms…" in CITATION.bib (#74).
  • Added PR numbers to changelog entries for better traceability (#73).
  • Eliminated unnecessary reallocation of a boolean matrix in the bandwidth method by directly using findall(!iszero, A) instead of calling _offdiag_nonzero_support(A) (#71).
  • Switched from a generator comprehension in the bandwidth method to Iterators.map (more idiomatic) (#71).
  • Changed the GitHub Pages references in README.md and the MatrixBandwidth module docstring from the development docs to the default site URL (which redirects to the stable documentation) (#71).
  • Changed the BibTeX key in CITATION.bib from Var2025 to Var25 (#71).
  • Updated the target date for completion of core API development from mid-August 2025 to September 2025 in README.md (#71).

Fixed

  • Changed some blocks enclosed in double backticks to be enclosed in single backticks instead (meant to be rendered as code blocks, not mathematical expressions) (#78).
  • Fixed the rendering of the dcm_ps_optimal_depth docstring (#78).
  • Fixed the copyright preface in docs/make.jl (#75).
  • Updated the compatibility requirements in test/Project.toml to allow only a finite number of breaking releases of Aqua and JET (#74).

- Julia
Published by Luis-Varona 7 months ago

MatrixBandwidth - v0.1.0

This is the first stable release of MatrixBandwidth.jl, offering unified interfaces for both bandwidth minimization and bandwidth recognition via the minimize_bandwidth and has_bandwidth_k_ordering functions, respectively. Although a few algorithms remain under development, the API is already stable with the bulk of the library already functional and tested. TODO items are clear in the source code as well as documented in the README and the official Documenter-generated website.

- Julia
Published by Luis-Varona 7 months ago