AmplifierOptimizer generates simple cascaded amplifiers according to a user-defined loss function using a genetic algorithm.
The amplifier consistes of two BJT amplifiers, cascaded. The first is a common emitter BJT amplifier with voltage divider biasing and an emitter resistor with bipass capacitor.
The second amplifier, isolated from the first by a coupling capacitor, is identical to the first but with a common collector, no collector resistor, and no bipass capacitor on the emitter resistor.
Your loss function and some hardware parameters, as well as some algorithm parameters (population, generations, etc.) can be set in config.hpp.
Build with Cmake and run with ./src/AmplifierOptimizer.
Heads up -- this thing is NOT efficient. If you need to make a cascaded amplifier, this works. If you need to make 1,000 of them, you might want to look elsewhere.