Skip to content

Changelog

All notable changes to PyDOE are documented here.


Latest

Added

  • Latin square (latin_square), Graeco-Latin square (graeco_latin_square), and hyper-Graeco-Latin square (hyper_graeco_latin_square) designs — remove the effect of two, three, or more nuisance factors using mutually orthogonal Latin squares — @saudzahirr
  • Hammersley point set (hammersley_sequence) — finite, fixed-size low-discrepancy point set with one equispaced coordinate and the remaining coordinates from the Halton sequence — @saudzahirr
  • Iman-Conover method (iman_conover) — induces a target rank correlation structure among sampled variables while preserving their marginal distributions — @saudzahirr
  • Mixture axial (screening) design (mixture_axial_design) — places one point at the simplex centroid and one axial point per component for screening blending effects — @saudzahirr
  • Extreme-vertices design (extreme_vertices_design) — enumerates the vertices of a constrained mixture region defined by per-component lower/upper bounds — @saudzahirr
  • Mixture-process variable design (mixture_process_design) — crosses a mixture design with an independent process-variable design — @saudzahirr
  • Blocking of full factorial designs (block_full_factorial) — splits a \(2^k\) factorial into \(2^p\) blocks by confounding chosen interactions with block effects — @saudzahirr
  • Orthogonally-blocked central composite design (block_ccdesign) — splits a CCD into a factorial block and an axial block with alpha chosen for orthogonal blocking — @saudzahirr
  • Hartley's small composite design (small_composite_design) — augments a resolution-III fractional factorial with star points, requiring fewer runs than a standard CCD — @saudzahirr
  • Definitive screening design (definitive_screening_design) — three-level Jones-Nachtsheim design requiring only \(2k+1\) runs, built from a Paley conference matrix and its fold-over — @saudzahirr
  • Supersaturated design (supersaturated_design) — random-search construction of \(k > n\) two-level designs minimizing \(E(s^2)\) for screening under effect sparsity — @saudzahirr
  • Orthogonal array-based Latin hypercube design (oa_lhd) — Tang's (1993) construction turning a symmetric orthogonal array into a Latin hypercube with improved two-dimensional uniformity — @saudzahirr
  • Sliced Latin hypercube design (sliced_lhs) — partitions an \(N=mt\)-point Latin hypercube into \(t\) slices of \(m\) points, each a Latin hypercube in its own right — @saudzahirr

v1.1.0 2026-06-09

Added

  • Simplex-lattice design (simplex_lattice_design) — mixture experiment design placing lattice points on the q-component simplex at resolution 1/m; supports fitting Scheffé polynomial models of degree m@saudzahirr
  • Simplex-centroid design (simplex_centroid_design) — mixture experiment design with the centroids of all \(2^q - 1\) non-empty subsets; supports estimation of all Scheffé interaction blending coefficients — @saudzahirr
  • John's 3/4 fractional factorial design (john_three_quarter_design) — semifoldover design using exactly 3/4 of the runs of the next full \(2^k\) design; de-aliases all two-factor interactions involving the chosen factor — @saudzahirr

Fixed

  • Eliminate 604 test warnings by correctly catching scipy.linalg.LinAlgWarning in regularized_inv; suppress scipy Sobol advisory in the Saltelli path — @saudzahirr

Documentation

  • Fix contributing docs to reference zensical instead of mkdocs serve@saudzahirr
  • Add Mixture Designs reference page — @saudzahirr

v1.0.2 2026-05-17

Added

Fixed


v1.0.1 2026-05-05

Patch release following the 1.0.0 stable release. — @saudzahirr


v1.0.0 2026-05-05

🎉 First stable release. No breaking changes from 0.9.9.


v0.9.9 2026-04-07

Documentation


v0.9.8 2026-03-31

Fixed

  • Fix unexpected number of runs generated for fractional factorial designs (#89) — @Noor-Mustafa123

Documentation


v0.9.7 2026-02-21

Added

  • Compatibility shim for legacy pyDOE import paths (#70) — @laraibg786

v0.9.6 2026-02-16

Changed

  • Restructure codebase into modular package layout (#63) — @laraibg786
  • Rename modules to snake_case to comply with PEP 8 (#62) — @saudzahirr

Fixed

  • Use np.isclose for logical float comparison in pbdesign (#65) — @saudzahirr

v0.9.5 2026-02-11

Changed


v0.9.4 2026-02-10

🚀 First public PyPI release.

Added

Fixed


v0.9.3 2026-01-29

Added

  • Type annotations throughout the codebase — @saudzahirr
  • Ruff as linter and formatter with Codecov integration — @saudzahirr

Documentation


v0.9.2 2026-01-07

Added

  • Migrate documentation site from Sphinx to MkDocs — @saudzahirr
  • Integrate uv as package manager — @laraibg786
  • Dynamic versioning without a _version file — @laraibg786

Fixed

  • Fix lhsmu TypeError when using NumPy Generator API — @saudzahirr
  • Fix negative determinant bug in d_efficiency@saudzahirr
  • Improve RAM usage in _lhsclassic@saudzahirr

v0.9.1 2025-11-27

Fixed

  • Fix singular information matrix handling — @saudzahirr

v0.9.0 2025-11-05

Added

  • Add doe_sparse_grid using Smolyak's sparse grid construction — @saudzahirr

v0.8.1 2025-10-27

Changed

  • Replace legacy NumPy RandomState with Generator API throughout — @saudzahirr

v0.8.0 2025-10-24

Added

  • Add morris_sampling for Morris one-at-a-time sensitivity screening — @saudzahirr
  • Add saltelli_sampling for variance-based Sobol' sensitivity analysis — @saudzahirr
  • Add random_uniform and random_k_means space-filling designs — @saudzahirr
  • Deprecate random_state parameter in lhs in favour of seed@saudzahirr

v0.7.0 2025-09-09

Added

  • Add halton_sequence, sobol_sequence, korobov_sequence, rank1_lattice, and sukharev_grid@saudzahirr
  • Add cranley_patterson_shift for randomising quasi-random sequences — @saudzahirr

v0.6.2 2025-09-02

Added

  • Add optimal_design with D, A, E, G, I, V, C, S, T optimality criteria — @saudzahirr
  • Add Fedorov, modified Fedorov, DETMAX, and Dykstra algorithms — @saudzahirr

v0.6.1 2025-07-08

Added

  • Add doehlert_shell_design and doehlert_simplex_design@saudzahirr

v0.6.0 2025-07-03

Added

  • Add taguchi_design with orthogonal array lookup, SNR computation, and TaguchiObjective enum — @saudzahirr

v0.5.5 2025-05-16

Fixed

  • Update gsd to accept level count of 1 — @saudzahirr

v0.5.0 2023-10-25

Infrastructure

  • Migrate build system to pyproject.toml with Hatchling — @saudzahirr
  • Add full test suite and CI automation — @saudzahirr

Fixed

  • Replace Black with Ruff; fix fracfact_opt; add doc-tests — @saudzahirr
  • Refactor fracfact with test updates and minor bug fixes — @saudzahirr

v0.4.0 2021-03-03

Added


v0.3.9 2017-04-25

Fixed

  • Fix integer division for Python 3 compatibility — @tisimst

v0.3.8 2015-07-13

Fixed

  • Fix incorrect indexing variable in _pdist@tisimst

v0.3.7 2014-12-09

Changed

  • Clarify BSD 3-clause license — @tisimst

v0.3.6 2014-09-22

Changed

  • Add code credits to original authors — @tisimst

v0.3.5 2014-02-18

Added

  • Add var_regression_matrix to public API — @tisimst

v0.3.4 2014-02-18

Fixed

  • Fix Python 3 import and compatibility issues — @tisimst

v0.3.3 2014-02-12

Fixed

  • Remove package import for better Python 3 compatibility — @tisimst

v0.3.2 2014-02-09

Fixed

  • Fix indexing problem; improve Python 3 compatibility — @tisimst

v0.3.1 2014-02-09

Fixed


v0.3.0 2013-11-08

Changed

  • Simplify design function inputs to accept number of factors directly — @tisimst
  • Improve consistency across all design functions — @tisimst

v0.2.2 2013-10-23

Added

  • Add criterion keyword argument to lhs for more flexible sampling — @tisimst

v0.2.1 2013-09-13

Fixed

  • Fix syntax errors and update documentation links — @tisimst

v0.2.0 2013-09-13

Added

  • Add response surface designs (bbdesign, ccdesign) — @tisimst
  • Add Latin hypercube sampling (lhs) — @tisimst

0.1.alpha 2013-09-05

🌱 Initial release with fullfact, ff2n, fracfact, pbdesign, and gsd. — @tisimst