Change Log Report

Total number of changed sets: 1

Changes between 2025-05-23 and 2025-06-23

Total commits: 15
Total number of files changed: 82

Timestamp Author Details
2025-06-21 17:53:11 Bruno Mahé <bruno@bmahe.net> core/src/test/java/net/bmahe/genetics4j/core/PopulationIteratorTest.java v 6775fce2e1f3a9d44b5834efff2ae76d4aeddb0c

Add tests for PopulationIterator
2025-06-21 17:44:08 Bruno Mahé <bruno@bmahe.net> core/src/main/java/net/bmahe/genetics4j/core/EASystem.java v 4a2213621f6e4c0d958aa1ffbfac9ae55084f68f
core/src/main/java/net/bmahe/genetics4j/core/spec/EAConfiguration.java v 4a2213621f6e4c0d958aa1ffbfac9ae55084f68f

Improve javadoc for EASystem
2025-06-21 17:40:26 Bruno Mahé <bruno@bmahe.net> core/src/test/java/net/bmahe/genetics4j/core/EASystemTest.java v 0aa70954750494ce8ff73860ee0920dd3a3e6315

Improve testing for EASystem
2025-06-18 22:37:40 Bruno Mahé <bruno@bmahe.net> .gitlab-ci.yml v 426fc74d9e426673ac87665c41cf07fcb5d93396

Gitlab CI/CD: cache core/target for debugging
2025-06-18 22:37:03 Bruno Mahé <bruno@bmahe.net> pom.xml v f559f3dae57028c57401503d482746b201408470

Update pitest version
2025-06-18 00:47:17 Bruno Mahé <bruno@bmahe.net> .gitlab-ci.yml v 897687518142af802666e5e3b0fe1072b498de6d

Skip compilation when building a site as it is done in previous stages
2025-06-17 21:30:08 Bruno Mahé <bruno@bmahe.net> .gitlab-ci.yml v 75ee9d7c3cfc896b840c51d62f4d0426d2dd12ad

Add more logging to ci/cd
2025-06-15 03:17:56 Bruno Mahé <bruno@bmahe.net> CLAUDE.md v 793737efff634fcf5b851ebee041e28297501623

Add Claude instructions
2025-06-15 03:09:49 Bruno Mahé <bruno@bmahe.net> neat/src/main/java/net/bmahe/genetics4j/neat/Activations.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/Connection.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/ConnectionPair.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/FeedForwardNetwork.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/InnovationManager.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/NeatEAExecutionContexts.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/NeatUtils.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/Species.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/SpeciesIdGenerator.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/chromosomes/NeatChromosome.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/chromosomes/factory/NeatConnectedChromosomeFactory.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/combination/NeatChromosomeCombinator.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/combination/NeatCombinationHandler.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/combination/parentcompare/ChosenOtherChromosome.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/combination/parentcompare/ParentComparisonHandler.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/mutation/AddConnectionPolicyHandler.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/mutation/AddNodePolicyHandler.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/mutation/NeatConnectionWeightPolicyHandler.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/mutation/chromosome/NeatChromosomeAddConnection.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/selection/NeatSelectionPolicyHandler.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/selection/NeatSelectorImpl.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/spec/NeatChromosomeSpec.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/spec/combination/NeatCombination.java v e80112354211b18d7b448a1877dba11d9c7eeb02
neat/src/main/java/net/bmahe/genetics4j/neat/spec/selection/NeatSelection.java v e80112354211b18d7b448a1877dba11d9c7eeb02

Add comprehensive javadoc documentation for NEAT module

Adds extensive javadoc documentation for the entire NEAT (NeuroEvolution of
Augmenting Topologies) module, covering all major classes and interfaces with
detailed descriptions, usage examples, and algorithm explanations.

Key documented components:
- Core infrastructure: NeatUtils, InnovationManager, SpeciesIdGenerator
- Network components: Connection, FeedForwardNetwork, Activations
- Genetic representation: NeatChromosome, NeatChromosomeSpec
- Species management: Species, NeatSelection, NeatSelectionPolicyHandler
- Genetic operators: NeatCombination, NeatChromosomeCombinator
- Mutation handlers: AddConnectionPolicyHandler, AddNodePolicyHandler
- Factory classes: NeatEAExecutionContexts, NeatConnectedChromosomeFactory
- Selection implementation: NeatSelectorImpl with species-based selection
- Comparison strategies: ParentComparisonHandler, ChosenOtherChromosome

Documentation features:
- Comprehensive class and method descriptions
- Real-world usage examples with code snippets
- NEAT algorithm integration explanations
- Performance considerations and optimization details
- Cross-references between related components
- Parameter guidance and configuration examples

This significantly improves code clarity and developer experience for the
complex NEAT neural network evolution algorithm implementation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-15 02:39:32 Bruno Mahé <bruno@bmahe.net> gpu/src/main/java/net/bmahe/genetics4j/gpu/GPUEASystemFactory.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/GPUFitnessEvaluator.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/opencl/DeviceUtils.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/opencl/KernelInfoUtils.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/opencl/OpenCLExecutionContext.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/opencl/PlatformUtils.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/opencl/model/Device.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/opencl/model/KernelInfo.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/opencl/model/Platform.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/DeviceFilters.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/GPUEAConfiguration.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/GPUEAExecutionContext.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/PlatformFilters.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/Program.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/fitness/MultiStageFitness.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/fitness/OpenCLFitness.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/fitness/ResultExtractor.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/fitness/SingleKernelFitness.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/fitness/cldata/CLData.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d
gpu/src/main/java/net/bmahe/genetics4j/gpu/spec/fitness/cldata/DataLoader.java v 0522129ee7fd9e7bb14ae65e2b190477f5de771d

Add comprehensive javadoc documentation for GPU module

Enhance GPU module with extensive javadoc documentation covering:

Core GPU acceleration framework:
- GPUEASystemFactory: Factory for GPU-accelerated EA systems
- GPUFitnessEvaluator: OpenCL lifecycle management and execution
- GPUEAConfiguration/GPUEAExecutionContext: GPU-specific configuration

OpenCL integration layer:
- Platform/Device/KernelInfo: OpenCL resource model classes
- PlatformUtils/DeviceUtils/KernelInfoUtils: OpenCL API utilities
- OpenCLExecutionContext: Execution environment management

Fitness evaluation framework:
- OpenCLFitness: Abstract base for OpenCL fitness evaluation
- SingleKernelFitness: Single kernel execution framework
- MultiStageFitness: Multi-stage kernel pipeline support

Data management and filtering:
- CLData/DataLoader: GPU memory management abstractions
- ResultExtractor: Type-safe result extraction from GPU memory
- DeviceFilters/PlatformFilters: Predicate-based device selection
- Program: OpenCL kernel compilation specification

All classes include comprehensive documentation with:
- Architectural overviews and usage patterns
- Method-level documentation with parameter details
- Performance considerations and optimization strategies
- Error handling guidance and memory management
- Extensive code examples and workflow descriptions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 21:12:59 Bruno Mahé <bruno@bmahe.net> core/src/main/java/net/bmahe/genetics4j/core/EASystemFactory.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/Fitness.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/FitnessBulkAsync.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/PopulationIterator.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/chromosomes/TreeChromosome.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/chromosomes/TreeNode.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/evaluation/FitnessEvaluator.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/spec/replacement/ReplacementStrategy.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/spec/selection/SelectionPolicy.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/termination/Terminations.java v c537eb019898eb9c4eb25fd3aa83444053f9379d
core/src/main/java/net/bmahe/genetics4j/core/util/GenotypeGenerator.java v c537eb019898eb9c4eb25fd3aa83444053f9379d

Complete comprehensive javadoc documentation for core module components

This commit adds extensive javadoc documentation for the remaining core
module classes and interfaces, focusing on high-priority undocumented
components and improving minimal existing documentation.

Major additions include:

- PopulationIterator: Complete documentation with usage patterns and
thread safety considerations for population traversal
- TreeNode: Comprehensive genetic programming tree structure documentation
with examples and performance considerations
- EASystemFactory: Extensive factory method documentation with configuration
guides and usage patterns for different evaluation strategies
- Terminations: Complete utility class documentation with logical
combination examples and termination criteria patterns
- FitnessBulkAsync: Detailed asynchronous batch evaluation interface
documentation with implementation examples and use cases
- GenotypeGenerator: Population initialization documentation with
automatic and custom generation patterns

Enhanced existing documentation:
- FitnessEvaluator: Added comprehensive evaluation strategy documentation
- SelectionPolicy: Detailed selection strategy interface documentation
- ReplacementStrategy: Complete replacement strategy documentation
- Minor cross-reference fixes and HTML compliance improvements

All core module classes now have professional-quality documentation
following consistent patterns with practical examples, performance
considerations, and clear usage guidance.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 20:50:52 Bruno Mahé <bruno@bmahe.net> core/src/main/java/net/bmahe/genetics4j/core/EASystem.java v 249660b0ba6711fdb947f09acaa03389e31a004e
core/src/main/java/net/bmahe/genetics4j/core/chromosomes/DoubleChromosome.java v 249660b0ba6711fdb947f09acaa03389e31a004e
core/src/main/java/net/bmahe/genetics4j/core/chromosomes/FloatChromosome.java v 249660b0ba6711fdb947f09acaa03389e31a004e
core/src/main/java/net/bmahe/genetics4j/core/chromosomes/factory/ChromosomeFactory.java v 249660b0ba6711fdb947f09acaa03389e31a004e
core/src/main/java/net/bmahe/genetics4j/core/evolutionlisteners/EvolutionListener.java v 249660b0ba6711fdb947f09acaa03389e31a004e

Complete core module javadoc documentation with system orchestration and factories

- Enhance EASystem class with comprehensive evolutionary process documentation
- Document floating-point chromosome types: DoubleChromosome, FloatChromosome
- Add detailed ChromosomeFactory interface documentation with factory pattern explanation
- Document EvolutionListener interface for monitoring and callback mechanisms
- Include performance considerations, thread safety, and usage examples
- Provide implementation guidelines and best practices for custom extensions

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 20:46:10 Bruno Mahé <bruno@bmahe.net> core/src/main/java/net/bmahe/genetics4j/core/chromosomes/IntChromosome.java v 48135f158d3c6b4378d36d340f52486781177853
core/src/main/java/net/bmahe/genetics4j/core/chromosomes/TreeChromosome.java v 48135f158d3c6b4378d36d340f52486781177853
core/src/main/java/net/bmahe/genetics4j/core/mutation/Mutator.java v 48135f158d3c6b4378d36d340f52486781177853
core/src/main/java/net/bmahe/genetics4j/core/selection/Selector.java v 48135f158d3c6b4378d36d340f52486781177853
core/src/main/java/net/bmahe/genetics4j/core/spec/chromosome/ChromosomeSpec.java v 48135f158d3c6b4378d36d340f52486781177853
core/src/main/java/net/bmahe/genetics4j/core/spec/chromosome/IntChromosomeSpec.java v 48135f158d3c6b4378d36d340f52486781177853
core/src/main/java/net/bmahe/genetics4j/core/spec/mutation/MutationPolicy.java v 48135f158d3c6b4378d36d340f52486781177853
core/src/main/java/net/bmahe/genetics4j/core/termination/Termination.java v 48135f158d3c6b4378d36d340f52486781177853

Enhance core module javadoc documentation for key interfaces and classes

- Document core evolutionary algorithm interfaces: Mutator, Selector, Termination
- Add comprehensive javadocs for chromosome types: IntChromosome, TreeChromosome
- Document specification interfaces: ChromosomeSpec, IntChromosomeSpec, MutationPolicy
- Include detailed usage examples, design patterns, and cross-references
- Explain strategy pattern implementation and configuration approaches
- Add thread safety, performance, and constraint handling documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 20:37:04 Bruno Mahé <bruno@bmahe.net> core/src/main/java/net/bmahe/genetics4j/core/Fitness.java v 10f3758fba90b577606e0208e26e1bdb26beb803
core/src/main/java/net/bmahe/genetics4j/core/Genotype.java v 10f3758fba90b577606e0208e26e1bdb26beb803
core/src/main/java/net/bmahe/genetics4j/core/Individual.java v 10f3758fba90b577606e0208e26e1bdb26beb803
core/src/main/java/net/bmahe/genetics4j/core/Population.java v 10f3758fba90b577606e0208e26e1bdb26beb803
core/src/main/java/net/bmahe/genetics4j/core/chromosomes/BitChromosome.java v 10f3758fba90b577606e0208e26e1bdb26beb803
core/src/main/java/net/bmahe/genetics4j/core/chromosomes/Chromosome.java v 10f3758fba90b577606e0208e26e1bdb26beb803
gp/src/main/java/net/bmahe/genetics4j/gp/Operation.java v 10f3758fba90b577606e0208e26e1bdb26beb803
gp/src/main/java/net/bmahe/genetics4j/gp/OperationFactory.java v 10f3758fba90b577606e0208e26e1bdb26beb803
moo/src/main/java/net/bmahe/genetics4j/moo/FitnessVector.java v 10f3758fba90b577606e0208e26e1bdb26beb803

Add comprehensive javadoc documentation for core API classes

- Document core classes: Individual, Genotype, Population, Chromosome, BitChromosome, Fitness
- Add javadocs for GP module: Operation, OperationFactory
- Document MOO module: FitnessVector with Pareto dominance explanation
- Include detailed parameter descriptions, return values, and usage examples
- Add cross-references between related classes
- Explain design patterns, thread safety, and performance considerations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 16:05:00 Bruno Mahé <bruno@bmahe.net> core/src/main/java/net/bmahe/genetics4j/core/combination/ordercrossover/IntChromosomeOrderCrossover.java v 63502c7c2f016b6fe856e7eb898c50b30fcfbfb7

Migrate Validate::notNull to Objects::requireNonNull for IntChromosomeOrderCrossover