📄 analysis.h
字号:
PIVOT_MATRIX = 2 // Pivot as a Matrix
} AnalysisLibPivot;
/* Options for QREx */
typedef enum {
FULL_SIZE = 0, // Full Size
ECONOMY_SIZE = 1 // Economical Size
} AnalysisLibSizeOption;
/* Eigenvalue ordering used by Schur */
typedef enum {
NO_ORDERING = 0, // No ordering
REAL_ASCENDING = 1, // Real Part Ascending
REAL_DESCENDING = 2, // Real Part Descending
MAG_ASCENDING = 3, // Magnitude Ascending
MAG_DESCENDING = 4 // Magnitude Descending
} AnalysisLibEigenvalueOrdering;
/* Matrix balance */
typedef enum {
NONE = 0, // Neither Permuted nor Scaled
PERMUTED = 1, // Permuted
SCALED = 2, // Scaled
PERMUTED_SCALED = 3 // Permuted and Scaled
} AnalysisLibMatrixBalance;
/* Special matrix type */
typedef enum {
IDENTITY = 0, // Identity Matrix
DIAGONAL = 1, // Diagonal Matrix
TOEPLITZ = 2, // Toeplitz Matrix
VANDERMONDE = 3, // Vandermonde Matrix
COMPANION = 4 // Companion Matrix
} AnalysisLibSpecialMatrixType;
/* Matrix type used by SolveEqs */
typedef enum {
GENERAL_MATRIX = 0, // General Matrix
SYMPOS_MATRIX = 1, // Symmetric and Positive Definite Matrix
LOTRI_MATRIX = 2, // Lower Triangular Matrix
UPTRI_MATRIX = 3 // Upper Triangular Matrix
} AnalysisLibMatrixType;
/* Matrix type for CxEigenValueVector */
typedef enum {
COMPLEX_GENERAL_MATRIX = 0, // General Matrix
COMPLEX_HERMITIAN_MATRIX = 1 // Hermitian Matrix
} AnalysisLibComplexMatrixType;
/* Matrix norm type */
typedef enum {
NORM_TYPE_2 = 0, // 2-Norm
NORM_TYPE_1 = 1, // 1-Norm
NORM_TYPE_FROBENIUS = 2, // Frobenius-Norm
NORM_TYPE_INFINITE = 3 // Infinite-Norm
} AnalysisLibNormType;
/* Fit method type used by Curve Fitting functions */
typedef enum {
LEAST_SQUARE = 0, // Least square
LEAST_ABSOLUTE_RESIDUAL = 1, // Least absolute residual
BISQUARE = 2 // Bisquare
} AnalysisLibFitMethod;
/* Interval type used by Curve Fitting functions */
typedef enum {
CONFIDENCE_INTVL = 0, // Confidence Interval
PREDICTION_INTVL = 1 // Prediction Interval
} AnalysisLibIntervalType;
/* Range type used by RemoveOutlier functions */
typedef enum {
RANGE_OF_Y = 0, // Range of Y
RANGE_OF_X = 1, // Range of X
RANGE_OF_X_AND_Y = 2 // Range of X and Y
} AnalysisLibRangeType;
/* Interpolation type used by ArbitraryWave */
typedef enum {
LINEAR_INTERPOLATION = 1, // Linear
NO_INTERPOLATION = 0 // None
} AnalysisLibInterpolation;
/* Sort ordering */
typedef enum {
SORT_DESCENDING = 1, // descending
SORT_ASCENDING = 0 // ascending
} AnalysisLibSortOrdering;
/* Powers of two */
typedef enum {
POWER_2_1, // 2
POWER_2_2, // 4
POWER_2_3, // 8
POWER_2_4, // 16
POWER_2_5, // 32
POWER_2_6, // 64
POWER_2_7, // 128
POWER_2_8, // 256
POWER_2_9, // 512
POWER_2_10, // 1024
POWER_2_11, // 2048
POWER_2_12, // 4096
POWER_2_13, // 8192
POWER_2_14, // 16384
POWER_2_15, // 32768
POWER_2_16, // 65536
POWER_2_17, // 131072
POWER_2_18, // 262144
POWER_2_19, // 524288
POWER_2_20, // 1048576
POWER_2_21, // 2097152
POWER_2_22, // 4194304
POWER_2_23, // 8388608
POWER_2_24, // 16777216
POWER_2_25, // 33554432
POWER_2_26, // 67108864
POWER_2_27, // 134217728
POWER_2_28 // 268435456
} AnalysisLibPowerOfTwo;
/* Enable or disable an option */
typedef enum {
ENABLE_OPTION = 1, // On
DISABLE_OPTION = 0 // Off
} AnalysisLibEnableDisable;
/* True or false */
typedef enum {
ANALYSIS_TRUE = 1, // TRUE
ANALYSIS_FALSE = 0 // FALSE
} AnalysisLibTrueFalse;
/* Polarity */
typedef enum {
DETECT_PEAKS = 0, // Peaks
DETECT_VALLEYS = 1 // Valleys
} AnalysisLibPeakDetection;
/* Spectrum type */
typedef enum {
SPECTRUM_POWER = 0, // power
SPECTRUM_AMPLITUDE = 1, // amplitude
SPECTRUM_GAIN = 2 // gain
} AnalysisLibSpectrumType;
/* Spectrum type */
typedef enum {
SCALING_MODE_LINEAR = 0, // linear
SCALING_MODE_DECIBELS = 1, // dB
SCALING_MODE_DBM = 2 // dBm
} AnalysisLibScalingMode;
/* Display unit */
typedef enum {
DISPLAY_UNIT_VRMS = 0, // rms
DISPLAY_UNIT_VPK = 1, // pk
DISPLAY_UNIT_VRMS2 = 2, // rms^2
DISPLAY_UNIT_VPK2 = 3, // pk^2
DISPLAY_UNIT_VRMSHZ = 4, // rms/rtHz
DISPLAY_UNIT_VPKHZ = 5, // pk/rtHz
DISPLAY_UNIT_VRMS2HZ = 6, // rms^2/rtHz
DISPLAY_UNIT_VPK2HZ = 7 // pk^2/rtHz
} AnalysisLibDisplayUnit;
/* Algorithm used to solve the multiple linear regression model */
typedef enum {
ALGORITHM_SVD = 0, // SVD
ALGORITHM_GIVENS = 1, // Givens
ALGORITHM_GIVENS2 = 2, // Givens2
ALGORITHM_HOUSEHOLD = 3, // Householder
ALGORITHM_LU_DECOMP = 4, // LU decomposition
ALGORITHM_CHOLESKY = 5 // Cholesky
} AnalysisLibGenLSFitAlgorithm;
/* Algorithm used in QR factorization */
typedef enum {
ALGORITHM_QR_HOUSEHOLDER = 0, // Householder
ALGORITHM_QR_GIVENS = 1, // Givens
ALGORITHM_QR_FAST_GIVENS = 2 // Fast Givens
} AnalysisLibQRAlgorithm;
/* Integration method */
typedef enum {
TRAPEZOIDAL_RULE = 0, // Trapezoidal Rule
SIMPSONS_RULE = 1, // Simpson's Rule
SIMPSONS_38_RULE = 2, // Simpson's 3/8 Rule
BODE_RULE = 3 // Bode Rule
} AnalysisLibIntegrationMethod;
/* Algorithm used in Polynomial Fit Ex */
typedef enum {
ALGORITHM_POLYFIT_SVD = 0, // SVD
ALGORITHM_POLYFIT_QR = 1, // QR
ALGORITHM_POLYFIT_LU = 2, // LU
ALGORITHM_POLYFIT_CHOLESKY = 3 // Cholesky
} AnalysisLibPolyFitExAlgorithm;
/* Algorithm used in Chirp Z transform and complex Chirp Z transform */
typedef enum {
ALGORITHM_CHIRP_DIRECT = 0, // Direct
ALGORITHM_CHIRP_FREQ_DOMAIN = 1 // Frequency Domain
} AnalysisLibChirpAlgorithm;
/*- Typedefs -----------------------------------------------------------------*/
/* Window constants used by measurement functions */
typedef struct {
double enbw;
double coherentgain;
} WindowConst;
/* Model function used by NonLinearFit() */
typedef double CVICALLBACK ModelFun(double x, double *coef, int ncoef);
/* Filter information used by IIR filter functions */
typedef struct {
int type; /* filter type (LOWPASS, etc.) */
int order; /* filter order */
int reset;
int na;
double *a; /* a coefficients */
int nb;
double *b; /* b coefficients */
int ns;
double *s; /* internal state */
} *IIRFilterPtr;
/* Define datatype NIComplexNumber */
#if !defined(_NIComplexNumber)
typedef struct NIComplexNumber_struct {
double real;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -