The Flutter Shutter Code Optimizer
Defines | Functions
code_comparison.cpp File Reference
#include <math.h>
#include "code_comparison.h"
Include dependency graph for code_comparison.cpp:

Go to the source code of this file.

Defines

#define ABS(x)   (((x) > 0) ? (x) : (-(x)))
#define M_PI   3.14159265358979323846
#define SQRT_TWOPI   2.506628274631000
#define N_RESOLUTION   1000;

Functions

double MSE_snapshot_of_velocity (double velocity, double tilde_deltat)
 This function computes the MSE of a snapshot for a given velocity. This is equation (20) up to a 1 factor.
double MSE_snapshot_of_velocity_integrand (double velocity, double tilde_deltat, double xi)
 This function computes the integrand of equation (20).
double MSE_flutter_of_velocity (double *code, int code_length, double velocity, double deltat)
 This function computes the MSE of flutter shutter for a given velocity. This is equation (21) up to a 1 factor.
double MSE_flutter_of_velocity_integrand (double *code, int code_length, double velocity, double deltat, double xi)
 This function computes the integrand of equation (21).
double abs_hat_alpha (double *code, int code_length, double xi, double deltat)
 Given a code compute the modulus of the Fourier transform of the Flutter-Shutter function, see equation (2).
double gain_in_terms_of_RMSE_at_velocity_v (double *code, int code_length, double tilde_deltat, double velocity, double deltat)
 This function implements equation (22).
double probability_density (double velocity, int flag_motion_model, double motion_model_parameter)
 Given a velocity velocity, the motion model and its parameters the function computes the probability. Used onfy for velocityisualization with the R(velocity) function, to display the probability density of the motion mode.
void average_gain_in_terms_of_RMSE (double *code, int code_length, double tilde_deltat_star, int flag_motion_model, double motion_model_parameter, double deltat, int num_plot_points, double *gain_of_v_equation_22, double *average_gain_equation_23)
 This function implements equation (23)
void std_dev_gain_in_terms_of_RMSE (int flag_motion_model, double motion_model_parameter, int num_plot_points, double *gain_of_v_equation_22, double *average_gain_equation_23, double *std_dev_gain_equation_24)
 This function implements equation (24).

Define Documentation

#define ABS (   x)    (((x) > 0) ? (x) : (-(x)))

absolute velocityalue definition.

Definition at line 36 of file code_comparison.cpp.

#define M_PI   3.14159265358979323846

M_PI is a POSIX definition for Pi

Definition at line 45 of file code_comparison.cpp.

#define N_RESOLUTION   1000;

RIEMANN SUM PRECISION

Definition at line 58 of file code_comparison.cpp.

#define SQRT_TWOPI   2.506628274631000

{2} definition.

Definition at line 52 of file code_comparison.cpp.


Function Documentation

abs_hat_alpha ( double *  code,
int  code_length,
double  xi,
double  deltat 
)

Given a code compute the modulus of the Fourier transform of the Flutter-Shutter function, see equation (2).

Parameters:
double*code : array of doubles where code[k] contains the ;
intcode_length : length of the code;
doublexi : frequency;
doubledeltat : the temporal sampling of the flutter shutter function;
Returns:
| ()| see equation (2).

Gives back the modulus of the Fourier transform, see equation (2)

Definition at line 225 of file code_comparison.cpp.

Here is the caller graph for this function:

average_gain_in_terms_of_RMSE ( double *  code,
int  code_length,
double  tilde_deltat_star,
int  flag_motion_model,
double  motion_model_parameter,
double  deltat,
int  num_plot_points,
double *  gain_of_v_equation_22,
double *  average_gain_equation_23 
)

This function implements equation (23)

Parameters:
double*code : array of doubles where code[k] contains the
intcode_length : length of the code L;
doubletilde_deltat_star : the optimal exposure time for the snapshot
intflag_motion_model : motion model selection -0 for truncated Gaussian of std-develocity s; -1 For uniform of range s;
doublemotion_model_parameter : motion model parameter;
doubledeltat : the temporal sampling of the flutter shutter function;
intnum_plot_point : the lengt of output array for plot;
double*gain_of_v_equation_22 : will contain G(v), see equation (22);
double*_average_gain_equation_23 : will contain equation (23);
Returns:
void.
Parameters:
double*code : array of doubles where code[k] contains the
intcode_length : length of the code L;
doubletilde_deltat_star : the optimal exposure time for the snapshot
intflag_motion_model : motion model selection -0 for truncated Gaussian of std-develocity s; -1 For uniform of range s;
doublemotion_model_parameter : motion model parameter;
doubledeltat : the of the numerical flutter shutter;
intnum_plot_point : the lengt of output array for plot;
double*gain_of_v_equation_22 : will contain G(v), see equation (22);
double*_average_gain_equation_23 : will contain equation (23);
Returns:
void.

Initialization.

Computation of equation (23).

Definition at line 340 of file code_comparison.cpp.

Here is the caller graph for this function:

gain_in_terms_of_RMSE_at_velocity_v ( double *  code,
int  code_length,
double  tilde_deltat,
double  velocity,
double  deltat 
)

This function implements equation (22).

Parameters:
double*code : array of doubles where code[k] contains the
intcode_length : length of the code L;
doubletilde_deltat : the of the snapshot (best snapshot on average);
doublevelocity : velocity;
doubledeltat : the temporal sampling of the flutter shutter function;
Returns:
G(v), see equation (22).

Definition at line 270 of file code_comparison.cpp.

Here is the caller graph for this function:

double MSE_flutter_of_velocity ( double *  code,
int  code_length,
double  velocity,
double  deltat 
)

This function computes the MSE of flutter shutter for a given velocity. This is equation (21) up to a 1 factor.

double MSE_flutter_of_velocity(double* code, int code_length,double velocity, double tilde_deltat)

Parameters:
double*code : array of doubles where code[k] contains the
intcode_length : length of the code L;
doublevelocity : the velocity;
doubledeltat : the temporal sampling of the flutter shutter function;
Returns:
The MSE of the flutter at velcity velocity. See equation (21). The 1 multiplicative factor is irrelevant, see equation (22).

Initalization.

Definition at line 153 of file code_comparison.cpp.

Here is the caller graph for this function:

double MSE_flutter_of_velocity_integrand ( double *  code,
int  code_length,
double  velocity,
double  deltat,
double  xi 
)

This function computes the integrand of equation (21).

double MSE_flutter_of_velocity_integrand(double* code, int code_length, double velocity, double tilde_deltat, double xi)

Parameters:
double*code : array of doubles where code[k] contains the
intcode_length : length of the code L;
doublevelocity : the velocity;
doubledeltat : the temporal sampling of the flutter shutter function;
doulexi: the frequency;
Returns:
The integrand of equation (21).

Step1 compute | ( v)|

Step2 : compute ||||_{l2}^2

Definition at line 194 of file code_comparison.cpp.

Here is the caller graph for this function:

double MSE_snapshot_of_velocity ( double  velocity,
double  tilde_deltat 
)

This function computes the MSE of a snapshot for a given velocity. This is equation (20) up to a 1 factor.

double MSE_snapshot_of_velocity(double velocity,double tilde_deltat)

Parameters:
doublevelocity : the velocity;
doubletilde_deltat: the exposure time of the snapshot;
Returns:
The MSE of the snapshot at velcity velocity. See equation (20). The 1 multiplicative factor is irrelevant, see equation (22).

Initalization.

Definition at line 79 of file code_comparison.cpp.

Here is the caller graph for this function:

double MSE_snapshot_of_velocity_integrand ( double  velocity,
double  tilde_deltat,
double  xi 
)

This function computes the integrand of equation (20).

double MSE_snapshot_of_velocity_integrand(double velocity, double tilde_deltat, double xi)

Parameters:
doublevelocity : the velocity;
doubletilde_deltat: the exposure time of the snapshot;
doulexi: the frequency;
Returns:
The integrand of equation (20).

Definition at line 117 of file code_comparison.cpp.

Here is the caller graph for this function:

double probability_density ( double  velocity,
int  flag_motion_model,
double  motion_model_parameter 
)

Given a velocity velocity, the motion model and its parameters the function computes the probability. Used onfy for velocityisualization with the R(velocity) function, to display the probability density of the motion mode.

double probability_density(double velocity, int flag_motion_model, double motion_model_parameter)

Parameters:
doublevelocity : the velocity;
intflag_motion_model : motion model selection -0 for Gaussian motion model -1 For uniform motion model
doublemotion_model_parameter : motion model parameter;
Returns:
(velocity).

Definition at line 297 of file code_comparison.cpp.

Here is the caller graph for this function:

std_dev_gain_in_terms_of_RMSE ( int  flag_motion_model,
double  motion_model_parameter,
int  num_plot_points,
double *  gain_of_v_equation_22,
double *  average_gain_equation_23,
double *  std_dev_gain_equation_24 
)

This function implements equation (24).

Parameters:
double*code : array of doubles where code[k] contains the
intcode_length : length of the code L;
doubletilde_deltat_star : the optimal exposure time for the snapshot
intflag_motion_model : motion model selection -0 for truncated Gaussian of std-develocity s; -1 For uniform of range s;
doublemotion_model_parameter : motion model parameter;
doubledeltat : the of the numerical flutter shutter;
intnum_plot_point : the lengt of output array for plot;
double*gain_of_v_equation_22 : contains G(v), see equation (22);
double*_average_gain_equation_23 : contains equation (23);
double*std_dev_gain_equation_24 : will contains equation (24).
Returns:
void.

Initialization.

Computation of equation (24), knowing equations (22) and (23)

Definition at line 431 of file code_comparison.cpp.

Here is the caller graph for this function:

 All Files Functions Defines