Changes for version 1.8 - 2023-08-16

  • Implement the PDL::Opt::ParticleSwarm optimization algorithm to optimize PDL's. The function and log callback calling convention is intentionally similar PDL::Opt::Simplex. Code written to optimize using Simplex can be trivially converted to optimize with Particle Swarm.
  • Implement PDL::Opt::ParticleSwarm::Simple as a subclass of PDL::Opt::Simplex::Simple. Again, the calling convention for log and function callbacks is very similar, only the optimization-specific options differ.
  • PDL::Opt::Simplex::Simple: do a better job clamping min/max values during optimization so the Simplex algorithm doesn't try to work out of bounds.
  • PDL::Opt::Simplex::Simple: fixed a major perturb_scale bug
  • Lots of POD updates, now we achieve 100% POD coverage
  • Added many more tests
  • Auto-sort MANIFEST as suggested by @mohawk2
  • Fixup t/{pod-coverage.t,pod.t,manifest.t} to pass RELEASE_TESTING=1

Modules

Particle Swarm Optimization (object oriented)
An easy to use particle swarm optimizer
A simplex optimizer for the rest of us (who may not know PDL).