The Flutter Shutter Code Optimizer
Defines | Functions
flutter_optimizer_gaussian.cpp File Reference

Routines for flutter shutter code optimization, gaussian model. The functions in this file implement equation (16). More...

#include <math.h>
#include "flutter_optimizer_gaussian.h"
Include dependency graph for flutter_optimizer_gaussian.cpp:

Go to the source code of this file.

Defines

#define eps   0.001
#define ABS(x)   (((x) > 0) ? (x) : (-(x)))
#define M_PI   3.14159265358979323846

Functions

void gaussian_optimisator (double *code, double sigma, int code_length, double deltat)
 Computes the a_k coefficient of the code; gaussian motion model.
double gaussian_integrand (double sigma, double deltat, double xi, int k)
 Function to integrate in order to compute the a_k coefficient of the code; gaussian motion model. This is the integrand in equation (16).
double gaussian_w (double sigma, double xi)
 Computes the W() function; gaussian motion model. This is equation (12).
double gaussian_w_integrand (double velocity, double sigma, double xi)
 Function to integrate in velocity to get the W function; gaussian motion model. This is the integrand in equation (12).

Detailed Description

Routines for flutter shutter code optimization, gaussian model. The functions in this file implement equation (16).

Author:
Yohann Tendero <tendero@math.ucla.edu>

Definition in file flutter_optimizer_gaussian.cpp.


Define Documentation

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

absolute velocityalue definition.

Definition at line 39 of file flutter_optimizer_gaussian.cpp.

#define eps   0.001

epsilon definition.

Definition at line 33 of file flutter_optimizer_gaussian.cpp.

#define M_PI   3.14159265358979323846

M_PI is a POSIX definition for Pi

Definition at line 47 of file flutter_optimizer_gaussian.cpp.


Function Documentation

gaussian_integrand ( double  s,
double  deltat,
double  xi,
int  k 
)

Function to integrate in order to compute the a_k coefficient of the code; gaussian motion model. This is the integrand in equation (16).

Parameters:
doubles : motion model parameter (sdt-develocity here);
doubledeltat : the temporal sampling of the flutter shutter function;
doublexi : frequency;
int: k the k-th coefficient of the code;
Returns:
double.

Definition at line 144 of file flutter_optimizer_gaussian.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

gaussian_optimisator ( double *  code,
double  s,
int  code_length,
double  deltat 
)

Computes the a_k coefficient of the code; gaussian motion model.

Functions for the gaussian case :

Parameters:
double*code : array of doubles where code[k] contains the This function implements equation (17).
doublesigma : motion model parameter (sdt-develocity here);
intcode_length : length of the code L;
doubledeltat : double deltat : the temporal sampling of the flutter shutter function;
Returns:
void.

This function calls "gaussian_integrand" with the approriate parameters : k, deltat, velocity_{max}, etc.

Main loop for the computation of a_k (code coefficient)

Initalization for integral evaluation

init so the first iteration of the main loop is always done.

Main loop for the integral evaluation

Definition at line 68 of file flutter_optimizer_gaussian.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

gaussian_w ( double  sigma,
double  xi 
)

Computes the W() function; gaussian motion model. This is equation (12).

Parameters:
doublesigma : motion model parameter (sdt-develocity here);
doublexi : frequency;
Returns:
double W().

init so the first iteration of the main loop is always done.

Definition at line 182 of file flutter_optimizer_gaussian.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

gaussian_w_integrand ( double  velocity,
double  sigma,
double  xi 
)

Function to integrate in velocity to get the W function; gaussian motion model. This is the integrand in equation (12).

Parameters:
doublevelocity : velocity;
doubles : motion model parameter (sdt-develocity here);
doublexi : frequency;
Returns:
double {exp(-velocity*velocity/(2*s*s)) {1]{[-M_PI*velocity,M_PI*velocity]}(velocity) }{|velocity s|}.

Notice that the normalization is

not required since the code is defined up to a constant multiplication. See also the integrand of (14) and remark 1, page 8.

Definition at line 240 of file flutter_optimizer_gaussian.cpp.

Here is the caller graph for this function:

 All Files Functions Defines