LILAC
|
This class calculates the score of a solution with n pulses, tailored towards the quality of a laser pulse. More...
#include <n_pulse_score.h>
Public Member Functions | |
virtual std::string | type () const |
virtual double | score (comp *invals) |
virtual std::vector< std::string > | dependencies () const |
Returns the dependencies of n_pulse_score. | |
virtual void | postprocess (input &inval) |
~n_pulse_score () |
Private Attributes | |
size_t | n_pulse |
double *restr | help |
size_t | nts |
comp *restr | kurtosis_help |
Additional Inherited Members | |
![]() | |
static std::shared_ptr< item > | create (std::string name, engineimp *rval) |
![]() | |
engineimp * | holder |
![]() | |
void | print_upstream () |
virtual void | _do_mem_update (size_t dim_old) |
void | add_as_parent (item_dim *p) |
void | add_as_parent (std::shared_ptr< item_dim > p) |
void | update_dim (size_t dim_new) |
![]() | |
mempool | memp |
std::set< item_dim * > | children |
item_dim * | parent |
size_t | dimension |
This class calculates the score of a solution with n pulses, tailored towards the quality of a laser pulse.
This class calculates the quality of a laser pulse formed by n distinct pulses. First, it calculates the magnitude of the pulse which results from the base pulses, and then finds the quality of that resulting pulse. This is done by finding the energy divided by the kurtosis. of the Fourier transform. This metric balances high energy with a tight pulse.
Definition at line 27 of file n_pulse_score.h.
n_pulse_score::~n_pulse_score | ( | ) |
Definition at line 89 of file n_pulse_score.cpp.
|
virtual |
Returns the dependencies of n_pulse_score.
This class has the same dependencies os the objective class, along with:
- integer num_pulses: The number of pulses in the solution
Implements objective.
Definition at line 73 of file n_pulse_score.cpp.
|
virtual |
Implements objective.
Definition at line 77 of file n_pulse_score.cpp.
|
virtual |
This is the objective function for objects that have a cnls-like form n coupled waves where the best solution is for each one to be a pulse. It takes the energy of each pulse, and divides by the kurtosis of the waveform of the laser pulse. This optimizes for energetic yet stable pulses
Implements objective.
Definition at line 44 of file n_pulse_score.cpp.
|
virtual |
Implements item.
Definition at line 91 of file n_pulse_score.cpp.
|
private |
Definition at line 29 of file n_pulse_score.h.
|
private |
Definition at line 31 of file n_pulse_score.h.
|
private |
Definition at line 28 of file n_pulse_score.h.
|
private |
Definition at line 30 of file n_pulse_score.h.