#include "ocsTools.hh"#include "ocsConst.hh"#include <math.h>#include "nrutil.h"#include <stdio.h>#include <stddef.h>#include <stdlib.h>Defines | |
| #define | IM1 2147483563 |
| #define | IM2 2147483399 |
| #define | AM (1.0/IM1) |
| #define | IMM1 (IM1-1) |
| #define | IA1 40014 |
| #define | IA2 40692 |
| #define | IQ1 53668 |
| #define | IQ2 52774 |
| #define | IR1 12211 |
| #define | IR2 3791 |
| #define | NTAB 32 |
| #define | NDIV (1+IMM1/NTAB) |
| #define | EPS 1.2e-7 |
| #define | RNMX (1.0-EPS) |
| #define | IA 16807 |
| #define | IM 2147483647 |
| #define | AM (1.0/IM) |
| #define | IQ 127773 |
| #define | IR 2836 |
| #define | NTAB 32 |
| #define | NDIV (1+(IM-1)/NTAB) |
| #define | EPS 1.2e-7 |
| #define | RNMX (1.0-EPS) |
| #define | NRANSI |
| #define | ITMAX 200 |
| #define | NRANSI |
| #define | TOL 2.0e-4 |
| #define | NRANSI |
| #define | NRANSI |
| #define | GOLD 1.618034 |
| #define | GLIMIT 100.0 |
| #define | TINY 1.0e-20 |
| #define | SHFT(a, b, c, d) (a)=(b);(b)=(c);(c)=(d); |
| #define | NRANSI |
| #define | ITMAX 100 |
| #define | CGOLD 0.3819660 |
| #define | ZEPS 1.0e-10 |
| #define | SHFT(a, b, c, d) (a)=(b);(b)=(c);(c)=(d); |
| #define | NRANSI |
| #define | ITMAX 200 |
| #define | EPS 1.0e-10 |
| #define | FREEALLD free_dvector(xi,1,n);free_dvector(h,1,n);free_dvector(g,1,n); |
| #define | NRANSI |
| #define | TOL 2.0e-4 |
| #define | NRANSI |
| #define | NRANSI |
| #define | GOLD 1.618034 |
| #define | GLIMIT 100.0 |
| #define | TINY 1.0e-20 |
| #define | SHFT(a, b, c, d) (a)=(b);(b)=(c);(c)=(d); |
| #define | NRANSI |
| #define | ITMAX 100 |
| #define | CGOLD 0.3819660 |
| #define | ZEPS 1.0e-10 |
| #define | SHFT(a, b, c, d) (a)=(b);(b)=(c);(c)=(d); |
| #define | NRANSI |
| #define | ITMAX 200 |
| #define | EPS 1.0e-10 |
| #define | FREEALL free_nrvector(xi,1,n);free_nrvector(h,1,n);free_nrvector(g,1,n); |
| #define | NR_END 1 |
| #define | FREE_ARG char* |
| #define | NRANSI |
| #define | SWAP(a, b) {temp=(a);(a)=(b);(b)=temp;} |
| #define | NRANSI |
| #define | SWAP(a, b) {temp=(a);(a)=(b);(b)=temp;} |
| #define | ITMAX 100 |
| #define | EPS 3.0e-7 |
| #define | FPMIN 1.0e-30 |
| #define | ITMAX 100 |
| #define | EPS 3.0e-7 |
| #define | NRANSI |
| #define | ITMAX 100 |
| #define | EPS 3.0e-8 |
Functions | |
| double | GetRadiusCircle (double *PointA, double *PointB, double *PointC) |
| double | GetDistance2Points (double *PointA, double *PointB, int FirstCoord) |
| int | Periodicity (int ii, int Periodicity) |
| void | TransRzRyV3toXhat (double *Vector, double *thetaZthetaY) |
| void | TransRzRyV3to_Xhat (double *Vector, double *thetaZthetaY) |
| void | TransRyV3to_YZ (double *Vector, double *thetaY) |
| void | TransRzRxV3toXhat (double *Vector, double *thetaZthetaY) |
| void | TransRzRxV3to_Xhat (double *Vector, double *thetaZthetaX) |
| void | TransRzRxV3to_Xhat (double *Vector, double *thetaZ, double *thetaX) |
| void | Multiply (double Left[][3], double Right[][3]) |
| void | Multiply (double Left[][3], double Right[3]) |
| void | Multiply (cplx Left[][2], cplx Right[][2]) |
| void | URotatesAboutZ (double angle, cplx UMatrix[][2]) |
| void | URotatesAboutY (double angle, cplx UMatrix[][2]) |
| void | URotatesAboutX (double angle, cplx UMatrix[][2]) |
| void | MRotatesAboutZ (double angle, double MMatrix[][3]) |
| void | MRotatesAboutX (double angle, double MMatrix[][3]) |
| void | MRotatesAboutY (double angle, double MMatrix[][3]) |
| void | MGeneralRotation (double angle, double *r_vec, double MMatrix[][3]) |
| void | CrossProduct (double *Left, double *Right, int FirstCoord) |
| void | CrossProduct (double *Left, double *Right, double *Product) |
| void | RotatesAboutZ (double angle, double *Vector) |
| void | RotatesAboutX (double angle, double *Vector) |
| void | RotatesAboutY (double angle, double *Vector) |
| double | ScalarProduct (double *VectorA, double *VectorB) |
| double | GetVectorLength (double *Vector, int Dimension) |
| void | RotatesAboutX (double angle, cplx *JonesVector) |
| void | RotatesAboutY (double angle, cplx *JonesVector) |
| void | RotatesAboutZ (double angle, cplx *JonesVector) |
| double | dB2Linear (double dBvalue) |
| double | dBm2Linear (double dBmPower) |
| double | Linear2dB (double LinearValue) |
| double | Linear2dBm (double LinearPower) |
| double | Linear2dB_Limited (double LinearValue, double MaxValue_dB) |
| double | GetDegreeOfPolarization (double *StokesVector) |
| double | GetPhase (const cplx Phasor) |
| void | Stokes2Jones (const double *Stokes, cplx *Jones) |
| void | Stokes2JonesKeepPower (const double *Stokes, cplx *Jones) |
| void | Jones2Stokes (const cplx *Jones, double *Stokes) |
| void | Jones2StokesKeepPower (const cplx *Jones, double *Stokes) |
| void | JonesPair2MixedStokes (const cplx *Jones1, const cplx *Jones2, cplx *MixedStokes) |
| double | Frequency2Wavelength (double Frequency) |
| double | Wavelength2Frequency (double Wavelength) |
| double | MaxOfArray (double *Array, int Length) |
| Returns the maximum element of the array Array. | |
| double | MinOfArray (double *Array, int Length) |
| Returns the minimum element of the array Array. | |
| void | MinAndArgMin (double *Vec, int Length, double &MinValue, int &ArgMin) |
| void | MaxAndArgMax (double *Vec, int Length, double &MaxValue, int &ArgMax) |
| double | Quadrature (double *Data, int NumPts, double LeftEndPt, double RightEndPt) |
| void | gaussian_pdf (int N, double stan_dev, double *vec) |
| cplx | bessel5 (double omega, double omega_0, double FWHM) |
| void | electrical_filter (cplx *my_power_time, cfftw *fft, double fwhm_norm) |
| void | optical_filter (cplx *my_field_time, cplx *my_field_freq, cfftw *fft, double fwhm_norm) |
| int | lock_or_unlock_mosix (int what) |
| int | cpujob_mosix (void) |
| int | slow_mosix (void) |
| double | peak_power (cplx *in, int N) |
| double | pulse_energy (cplx *in, int N, double width) |
| float | ranG (long *idum) |
| float | ran1 (long *idum) |
| float | Gaussian_pdf (long *idum) |
| void | powell (float p[], float xi[][4], int n, float ftol, int *iter, float *fret, float(*func)(float[])) |
| void | linmin (float p[], float xi[], int n, float *fret, float(*func)(float[])) |
| float | f1dim (float x) |
| void | mnbrak (float *ax, float *bx, float *cx, float *fa, float *fb, float *fc, float(*func)(float)) |
| float | brent (float ax, float bx, float cx, float(*f)(float), float tol, float *xmin) |
| void | frprmnd (double p[], int n, double ftol, int *iter, double *fret, double(*func)(double[]), void(*dfunc)(double[], double[])) |
| void | linmind (double p[], double xi[], int n, double *fret, double(*func)(double[])) |
| double | f1dim (double x) |
| void | mnbrakd (double *ax, double *bx, double *cx, double *fa, double *fb, double *fc, double(*func)(double)) |
| double | brentd (double ax, double bx, double cx, double(*f)(double), double tol, double *xmin) |
| void | frprmn (float p[], int n, float ftol, int *iter, float *fret, float(*func)(float[]), void(*dfunc)(float[], float[])) |
| void | nrerror (char error_text[]) |
| float * | nrvector (long nl, long nh) |
| int * | ivector (long nl, long nh) |
| unsigned char * | cvector (long nl, long nh) |
| unsigned long * | lvector (long nl, long nh) |
| double * | dvector (long nl, long nh) |
| float ** | matrix (long nrl, long nrh, long ncl, long nch) |
| double ** | dmatrix (long nrl, long nrh, long ncl, long nch) |
| cplx ** | cmatrix (long nrl, long nrh, long ncl, long nch) |
| int ** | imatrix (long nrl, long nrh, long ncl, long nch) |
| float ** | submatrix (float **a, long oldrl, long oldrh, long oldcl, long oldch, long newrl, long newcl) |
| float ** | convert_matrix (float *a, long nrl, long nrh, long ncl, long nch) |
| float *** | f3tensor (long nrl, long nrh, long ncl, long nch, long ndl, long ndh) |
| void | free_dvector (double *v, long nl, long nh) |
| void | free_nrvector (float *v, long nl, long nh) |
| void | free_ivector (int *v, long nl, long nh) |
| void | free_cvector (unsigned char *v, long nl, long nh) |
| void | free_lvector (unsigned long *v, long nl, long nh) |
| void | free_matrix (float **m, long nrl, long nrh, long ncl, long nch) |
| void | free_dmatrix (double **m, long nrl, long nrh, long ncl, long nch) |
| void | free_cmatrix (cplx **m, long nrl, long nrh, long ncl, long nch) |
| void | free_imatrix (int **m, long nrl, long nrh, long ncl, long nch) |
| void | free_submatrix (float **b, long nrl, long nrh, long ncl, long nch) |
| void | free_convert_matrix (float **b, long nrl, long nrh, long ncl, long nch) |
| void | free_f3tensor (float ***t, long nrl, long nrh, long ncl, long nch, long ndl, long ndh) |
| void | gaussj (double **a, int n, double **b, int m) |
| void | gaussj_complex (cplx **a, int n, cplx **b, int m) |
| float | erffc (float x) |
| float | gammp (float a, float x) |
| void | gcf (float *gammcf, float a, float x, float *gln) |
| void | gser (float *gamser, float a, float x, float *gln) |
| float | gammln (float xx) |
| float | gammq (float a, float x) |
| double | erfccExtendedRange (double x) |
| float | erfcc (float x) |
| float | zbrent (float(*func)(float), float x1, float x2, float tol) |
| void | spline (double *x, double *y, int n, double yp1, double ypn, double *y2) |
| double | splint (double *xa, double *ya, double *y2a, int n, double x) |
Variables | |
| ofstream * | LogFile |
| int | ncom |
| float * | pcom |
| float * | xicom |
| float(* | nrfunc )(float[]) |
| double * | pcomd |
| double * | xicomd |
| double(* | nrfuncd )(double[]) |
| #define AM (1.0/IM) |
| #define CGOLD 0.3819660 |
| #define CGOLD 0.3819660 |
| #define EPS 3.0e-7 |
| #define EPS 3.0e-7 |
| #define EPS 3.0e-8 |
| #define EPS 1.2e-7 |
| #define EPS 1.0e-10 |
| #define EPS 1.2e-7 |
| #define EPS 1.0e-10 |
| #define FPMIN 1.0e-30 |
Referenced by gcf().
| #define FREE_ARG char* |
| #define FREEALL free_nrvector(xi,1,n);free_nrvector(h,1,n);free_nrvector(g,1,n); |
Referenced by frprmn().
| #define FREEALLD free_dvector(xi,1,n);free_dvector(h,1,n);free_dvector(g,1,n); |
Referenced by frprmnd().
| #define GLIMIT 100.0 |
| #define GOLD 1.618034 |
| #define IA 16807 |
Referenced by ran1().
| #define IA1 40014 |
Referenced by ranG().
| #define IA2 40692 |
Referenced by ranG().
| #define IM 2147483647 |
| #define IM1 2147483563 |
| #define IM2 2147483399 |
| #define IMM1 (IM1-1) |
| #define IQ 127773 |
| #define IQ1 53668 |
| #define IQ2 52774 |
| #define IR 2836 |
Referenced by ran1().
| #define IR1 12211 |
Referenced by ranG().
| #define IR2 3791 |
Referenced by ranG().
| #define ITMAX 100 |
| #define ITMAX 100 |
| #define ITMAX 100 |
| #define ITMAX 100 |
| #define ITMAX 200 |
| #define ITMAX 200 |
| #define ITMAX 100 |
| #define ITMAX 200 |
| #define NDIV (1+(IM-1)/NTAB) |
| #define NDIV (1+IMM1/NTAB) |
| #define NR_END 1 |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NRANSI |
| #define NTAB 32 |
| #define RNMX (1.0-EPS) |
| #define SHFT | ( | a, | ||
| b, | ||||
| c, | ||||
| d | ||||
| ) | (a)=(b);(b)=(c);(c)=(d); |
| #define SHFT | ( | a, | ||
| b, | ||||
| c, | ||||
| d | ||||
| ) | (a)=(b);(b)=(c);(c)=(d); |
| #define SHFT | ( | a, | ||
| b, | ||||
| c, | ||||
| d | ||||
| ) | (a)=(b);(b)=(c);(c)=(d); |
| #define SHFT | ( | a, | ||
| b, | ||||
| c, | ||||
| d | ||||
| ) | (a)=(b);(b)=(c);(c)=(d); |
| #define SWAP | ( | a, | ||
| b | ||||
| ) | {temp=(a);(a)=(b);(b)=temp;} |
Referenced by gaussj(), and gaussj_complex().
| #define SWAP | ( | a, | ||
| b | ||||
| ) | {temp=(a);(a)=(b);(b)=temp;} |
| #define TINY 1.0e-20 |
| #define TINY 1.0e-20 |
| #define TOL 2.0e-4 |
| #define ZEPS 1.0e-10 |
| #define ZEPS 1.0e-10 |
| cplx bessel5 | ( | double | omega, | |
| double | omega_0, | |||
| double | FWHM | |||
| ) |
Referenced by electrical_filter().
| float brent | ( | float | ax, | |
| float | bx, | |||
| float | cx, | |||
| float(*)(float) | f, | |||
| float | tol, | |||
| float * | xmin | |||
| ) |
| double brentd | ( | double | ax, | |
| double | bx, | |||
| double | cx, | |||
| double(*)(double) | f, | |||
| double | tol, | |||
| double * | xmin | |||
| ) |
| cplx** cmatrix | ( | long | nrl, | |
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
References nrerror().
Referenced by ElecEqualizer::AllocateMemory().
| float** convert_matrix | ( | float * | a, | |
| long | nrl, | |||
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
References nrerror().
| int cpujob_mosix | ( | void | ) |
| void CrossProduct | ( | double * | Left, | |
| double * | Right, | |||
| double * | Product | |||
| ) |
| void CrossProduct | ( | double * | Left, | |
| double * | Right, | |||
| int | FirstCoord | |||
| ) |
| unsigned char* cvector | ( | long | nl, | |
| long | nh | |||
| ) |
References nrerror().
| double dB2Linear | ( | double | dBvalue | ) |
| double dBm2Linear | ( | double | dBmPower | ) |
| double** dmatrix | ( | long | nrl, | |
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
References nrerror().
Referenced by ElecEqualizer::AllocateMemory(), and GetRadiusCircle().
| double* dvector | ( | long | nl, | |
| long | nh | |||
| ) |
References bessel5(), cfftw::FFT(), cfftw::freq(), cfftw::give_N(), cfftw::IFFT(), and cfftw::work.
| float erfcc | ( | float | x | ) |
Referenced by erfccExtendedRange().
| double erfccExtendedRange | ( | double | x | ) |
References erfcc(), pi, sq(), and sqrt().
Referenced by ElecSignalStat::GetBER_GaussianStatisticsFromDecisionThreshold(), ElecSignalStat::GetQ_FactorGaussianStatisticsFromBER(), and ElecSignalStat::MinimizeSqQ_FactorVersusBER().
| double f1dim | ( | double | x | ) |
References dvector(), and free_dvector().
| float f1dim | ( | float | x | ) |
References free_nrvector(), and nrvector().
| float*** f3tensor | ( | long | nrl, | |
| long | nrh, | |||
| long | ncl, | |||
| long | nch, | |||
| long | ndl, | |||
| long | ndh | |||
| ) |
References nrerror().
| void free_cmatrix | ( | cplx ** | m, | |
| long | nrl, | |||
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
References FREE_ARG, and NR_END.
Referenced by ElecEqualizer::~ElecEqualizer().
| void free_convert_matrix | ( | float ** | b, | |
| long | nrl, | |||
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
| void free_dmatrix | ( | double ** | m, | |
| long | nrl, | |||
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
References FREE_ARG, and NR_END.
Referenced by ElecEqualizer::~ElecEqualizer().
| void free_dvector | ( | double * | v, | |
| long | nl, | |||
| long | nh | |||
| ) |
| void free_f3tensor | ( | float *** | t, | |
| long | nrl, | |||
| long | nrh, | |||
| long | ncl, | |||
| long | nch, | |||
| long | ndl, | |||
| long | ndh | |||
| ) |
| void free_imatrix | ( | int ** | m, | |
| long | nrl, | |||
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
| void free_ivector | ( | int * | v, | |
| long | nl, | |||
| long | nh | |||
| ) |
References FREE_ARG, and NR_END.
Referenced by gaussj(), and gaussj_complex().
| void free_matrix | ( | float ** | m, | |
| long | nrl, | |||
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
| void free_nrvector | ( | float * | v, | |
| long | nl, | |||
| long | nh | |||
| ) |
| void free_submatrix | ( | float ** | b, | |
| long | nrl, | |||
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
| double Frequency2Wavelength | ( | double | Frequency | ) |
References LightSpeed.
| void frprmn | ( | float | p[], | |
| int | n, | |||
| float | ftol, | |||
| int * | iter, | |||
| float * | fret, | |||
| float(*)(float[]) | func, | |||
| void(*)(float[], float[]) | dfunc | |||
| ) |
References EPS, FREEALL, linmin(), nrerror(), and nrvector().
| void frprmnd | ( | double | p[], | |
| int | n, | |||
| double | ftol, | |||
| int * | iter, | |||
| double * | fret, | |||
| double(*)(double[]) | func, | |||
| void(*)(double[], double[]) | dfunc | |||
| ) |
| float gammln | ( | float | xx | ) |
References log().
| void gaussj | ( | double ** | a, | |
| int | n, | |||
| double ** | b, | |||
| int | m | |||
| ) |
References free_ivector(), ivector(), nrerror(), and SWAP.
Referenced by ElecEqualizer::EqualizeBitIntensityWiener(), ElecEqualizer::EqualizeBitIntensityWienerReal(), and GetRadiusCircle().
References free_ivector(), ivector(), nrerror(), and SWAP.
Referenced by ElecEqualizer::EqualizeBitIntensityWienerCplx().
| void gcf | ( | float * | gammcf, | |
| float | a, | |||
| float | x, | |||
| float * | gln | |||
| ) |
| double GetDistance2Points | ( | double * | PointA, | |
| double * | PointB, | |||
| int | FirstCoord | |||
| ) |
Referenced by GetRadiusCircle().
| double GetRadiusCircle | ( | double * | PointA, | |
| double * | PointB, | |||
| double * | PointC | |||
| ) |
References CrossProduct(), dmatrix(), gaussj(), GetDistance2Points(), pi, sq(), and sqrt().
| void gser | ( | float * | gamser, | |
| float | a, | |||
| float | x, | |||
| float * | gln | |||
| ) |
| int** imatrix | ( | long | nrl, | |
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
References nrerror().
| int* ivector | ( | long | nl, | |
| long | nh | |||
| ) |
References nrerror().
Referenced by gaussj(), and gaussj_complex().
| void Jones2StokesKeepPower | ( | const cplx * | Jones, | |
| double * | Stokes | |||
| ) |
References Jones2Stokes(), and sq().
Converts a pair of Jones vectors v_1, v_2 into the mixed Stokes vector S_12 = ConjugateTranspose(v_1)*Sigma*v_2 where Sigma is the Pauli Spin 4-vector
Converts a pair of Jones vectors v_1, v_2 into the mixed Stokes vector S_12 = ConjugateTranspose(v_1)*Sigma*v_2 where Sigma is the Pauli Spin 4-vector.
Here the Jones vectors are complex 2x1 column vectors and S_12 is a complex 4-vector.
If v_1 = v_2, then the Mixed Stokes vector is just the standard Stokes vector of v_1, and is in particular real.
In general, the complex conjugate of S_12 is S_21.
If v_1 and v_2 form an orthonormal basis, then the zero-th entry of S_12 is zero
We do not normalize by the zero-th entry of S_12, as it may be 0!
Written by JZ, Dec 2005
References jc.
Referenced by GaussianReceiver::ComputeFirstOrderPMDParameters(), and GaussianReceiver::ReceiveSignalDGD_NoisePartiallyPolarized().
| double Linear2dB | ( | double | LinearValue | ) |
| double Linear2dB_Limited | ( | double | LinearValue, | |
| double | MaxValue_dB | |||
| ) |
| double Linear2dBm | ( | double | LinearPower | ) |
| void linmin | ( | float | p[], | |
| float | xi[], | |||
| int | n, | |||
| float * | fret, | |||
| float(*)(float[]) | func | |||
| ) |
References brent(), f1dim(), free_nrvector(), mnbrak(), nrfunc, nrvector(), and TOL.
| void linmind | ( | double | p[], | |
| double | xi[], | |||
| int | n, | |||
| double * | fret, | |||
| double(*)(double[]) | func | |||
| ) |
| int lock_or_unlock_mosix | ( | int | what | ) |
| unsigned long* lvector | ( | long | nl, | |
| long | nh | |||
| ) |
References nrerror().
| float** matrix | ( | long | nrl, | |
| long | nrh, | |||
| long | ncl, | |||
| long | nch | |||
| ) |
References nrerror().
| void MaxAndArgMax | ( | double * | Vec, | |
| int | Length, | |||
| double & | MaxValue, | |||
| int & | ArgMax | |||
| ) |
| double MaxOfArray | ( | double * | Array, | |
| int | Length | |||
| ) |
Returns the maximum element of the array Array.
Referenced by ChiSquareReceiver::ComputePDFAtTimeValue().
| void MGeneralRotation | ( | double | angle, | |
| double * | r_vec, | |||
| double | MMatrix[][3] | |||
| ) |
References Multiply(), sq(), and sqrt().
| void MinAndArgMin | ( | double * | Vec, | |
| int | Length, | |||
| double & | MinValue, | |||
| int & | ArgMin | |||
| ) |
| double MinOfArray | ( | double * | Array, | |
| int | Length | |||
| ) |
Returns the minimum element of the array Array.
Referenced by ChiSquareReceiver::ComputePDFAtTimeValue().
| void mnbrak | ( | float * | ax, | |
| float * | bx, | |||
| float * | cx, | |||
| float * | fa, | |||
| float * | fb, | |||
| float * | fc, | |||
| float(*)(float) | func | |||
| ) |
| void mnbrakd | ( | double * | ax, | |
| double * | bx, | |||
| double * | cx, | |||
| double * | fa, | |||
| double * | fb, | |||
| double * | fc, | |||
| double(*)(double) | func | |||
| ) |
| void MRotatesAboutX | ( | double | angle, | |
| double | MMatrix[][3] | |||
| ) |
| void MRotatesAboutY | ( | double | angle, | |
| double | MMatrix[][3] | |||
| ) |
| void MRotatesAboutZ | ( | double | angle, | |
| double | MMatrix[][3] | |||
| ) |
| void Multiply | ( | double | Left[][3], | |
| double | Right[][3] | |||
| ) |
| void Multiply | ( | double | Left[][3], | |
| double | Right[3] | |||
| ) |
| void nrerror | ( | char | error_text[] | ) |
| float* nrvector | ( | long | nl, | |
| long | nh | |||
| ) |
References cfftw::freq(), cfftw::give_N(), cfftw::IFFT(), and sq().
Referenced by OptFilter::FilterOptSignal_OLD(), OptSignal::GenerateSignalStringGaussianOrSech(), OptSignal::GenerateSignalStringGaussianOrSechWithPhaseShift(), OptSignal::GenerateSignalStringRZGaussianPattern(), OptSignal::GenerateSignalStringUsingInputSequence(), and OptSignal::InitializeFirstOrderPMDSignal().
| double peak_power | ( | cplx * | in, | |
| int | N | |||
| ) |
| int Periodicity | ( | int | ii, | |
| int | Periodicity | |||
| ) |
Referenced by OptSignal::ChangeAbsoluteCenterFreq(), Photodetector::ComputeWorkSumDelayedHalfBitPeriodThenSquare(), ElecEqualizer::EqualizeBitIntensityWiener(), ElecEqualizer::EqualizeBitIntensityWienerCplx(), ElecEqualizer::EqualizeBitIntensityWienerReal(), ElecSignalStat::GetClockTimeForMonteCarloEye(), ElecSignalStat::GetIntegralForSignalNoiseVariance(), ElecSignalStat::GetMeanCurrentIsolatedBit0(), ElecSignalStat::GetMeanCurrentIsolatedBit1(), ElecSignalStat::GetStdDevSignal_ASE_BitSlot(), ElecSignalStat::GetStdDevSignal_ASE_TimeIndex(), ElecSignalStat::GetTargetIndexTimeBestMinEyeOpening(), ElecSignalStat::GetTargetIndexTimeBestQ_Factor(), ElecSignalStat::UpdateEqualizedPerformanceStatistics(), ElecSignalStat::UpdateMoments(), ElecSignalStat::UpdatePerformanceStatistics(), ElecSignalStat::WriteFileEyeDiagram(), ElecEqualizer::WriteFileEyeDiagram(), and ElecSignalStat::WriteFileEyeDiagramFixedCLK().
| void powell | ( | float | p[], | |
| float | xi[][4], | |||
| int | n, | |||
| float | ftol, | |||
| int * | iter, | |||
| float * | fret, | |||
| float(*)(float[]) | func | |||
| ) |
References free_nrvector(), ITMAX, linmin(), nrerror(), nrvector(), and SQR.
| double pulse_energy | ( | cplx * | in, | |
| int | N, | |||
| double | width | |||
| ) |
| double Quadrature | ( | double * | Data, | |
| int | NumPts, | |||
| double | LeftEndPt, | |||
| double | RightEndPt | |||
| ) |
Computes $^RightEndPt f(x) dx, where function is given by Data[k] = f(LeftEndPt + k*Delta) with Delta = (RightEndPt - LeftEndPt)/(NumPts-1)
So Data[0] = f(LeftEndPt) and Data[NumPts-1] = RightEndPt The method uses Simpson's rule, which estimates the integral as
Integral = Delta/3( f(x_0) + 4[f(x_1) + f(x_3) +... f(x_{n-3}) + f(x_{n-1})] + 2[f(x_2) + f(x_4) +... f(x_{n-2})] + f(x_n) )
where n is even.
For us if NumPts is odd then n=NumPts-1, and if NumPts is even then n=NumPts-2, and we use Simpson on the subarray of the first NumPts-1 points, with the final part of the integral being done using trapezoid rule with 2 points.
If NumPts < 5 then Simpson's rule doesn't really apply and so we just use Trapezoid rule.
Integral=0.0;
for(int ii=0;ii < NumPts;ii++) Integral+=Data[ii];
Integral *= Delta;
Referenced by ElecSignalStat::ComputeAveragePDFs(), GaussianReceiver::ComputeAveragePDFs(), ChiSquareReceiver::ComputeGaussianPDFsAndBER(), Histogram2D::ComputeIntegralPDF(), OptSignal::ComputeMeanFreqSignal(), OptSignal::ComputeMeanPhasePulse(), OptSignal::ComputeMeanTimePulse(), Histogram2D::ComputeMeanX_PDF(), Histogram2D::ComputeMeanY_PDF(), ElecSignalStat::ComputeMinimumBERAndDecisionThreshold(), GaussianReceiver::ComputeMinimumBERAndDecisionThreshold(), ChiSquareReceiver::ComputeMinimumBERAndDecisionThreshold(), ChiSquareReceiver::ComputeMomentsInEachBit(), ChiSquareReceiver::ComputePDFAtTimeValue(), OptSignal::ComputeRMSPulseWidth(), Histogram2D::ComputeXMarginalPDF(), Histogram2D::ComputeYMarginalPDF(), and OptSignal::GetEnergyInTimeRange().
| float ranG | ( | long * | idum | ) |
| void RotatesAboutX | ( | double | angle, | |
| double * | Vector | |||
| ) |
| void RotatesAboutY | ( | double | angle, | |
| double * | Vector | |||
| ) |
| void RotatesAboutZ | ( | double | angle, | |
| cplx * | JonesVector | |||
| ) |
| void RotatesAboutZ | ( | double | angle, | |
| double * | Vector | |||
| ) |
| double ScalarProduct | ( | double * | VectorA, | |
| double * | VectorB | |||
| ) |
| int slow_mosix | ( | void | ) |
| void spline | ( | double * | x, | |
| double * | y, | |||
| int | n, | |||
| double | yp1, | |||
| double | ypn, | |||
| double * | y2 | |||
| ) |
Referenced by OptSignal::GenerateSignalStringUsingInputSequence().
| double splint | ( | double * | xa, | |
| double * | ya, | |||
| double * | y2a, | |||
| int | n, | |||
| double | x | |||
| ) |
References nrerror().
Referenced by OptSignal::GenerateSignalStringUsingInputSequence().
| void Stokes2JonesKeepPower | ( | const double * | Stokes, | |
| cplx * | Jones | |||
| ) |
References sq(), sqrt(), and Stokes2Jones().
| float** submatrix | ( | float ** | a, | |
| long | oldrl, | |||
| long | oldrh, | |||
| long | oldcl, | |||
| long | oldch, | |||
| long | newrl, | |||
| long | newcl | |||
| ) |
References nrerror().
| void TransRyV3to_YZ | ( | double * | Vector, | |
| double * | thetaY | |||
| ) |
References pi, RotatesAboutY(), sgn(), and sq().
| void TransRzRxV3to_Xhat | ( | double * | Vector, | |
| double * | thetaZthetaX | |||
| ) |
References pi, RotatesAboutX(), RotatesAboutZ(), and TransRzRxV3to_Xhat().
| void TransRzRxV3to_Xhat | ( | double * | Vector, | |
| double * | thetaZ, | |||
| double * | thetaX | |||
| ) |
References pi, RotatesAboutX(), RotatesAboutZ(), and sq().
| void TransRzRxV3toXhat | ( | double * | Vector, | |
| double * | thetaZthetaY | |||
| ) |
References pi, and TransRzRxV3to_Xhat().
| void TransRzRyV3to_Xhat | ( | double * | Vector, | |
| double * | thetaZthetaY | |||
| ) |
References pi, RotatesAboutY(), RotatesAboutZ(), and sq().
| void TransRzRyV3toXhat | ( | double * | Vector, | |
| double * | thetaZthetaY | |||
| ) |
References pi, and TransRzRyV3to_Xhat().
| void URotatesAboutZ | ( | double | angle, | |
| cplx | UMatrix[][2] | |||
| ) |
| double Wavelength2Frequency | ( | double | Wavelength | ) |
References LightSpeed.
| float zbrent | ( | float(*)(float) | func, | |
| float | x1, | |||
| float | x2, | |||
| float | tol | |||
| ) |
| ofstream* LogFile |
| int ncom |
| float * pcom |
| double * pcomd |
| float * xicom |
| double * xicomd |
1.7.1