File MIES_Utilities_Checks.ipf¶
Utility functions that check for certain properties and return either 1 (TRUE) or 0 (FALSE)
Functions
-
variable IsFinite(variable var)
Returns 1 if var is a finite/normal number, 0 otherwise.
UTF_NOINSTRUMENTATION
-
variable IsNaN(variable var)
Returns 1 if var is a NaN, 0 otherwise.
UTF_NOINSTRUMENTATION
-
variable IsInf(variable var)¶
Returns 1 if var is +/- inf, 0 otherwise.
UTF_NOINSTRUMENTATION
-
variable IsNull(string *str)¶
Returns 1 if str is null, 0 otherwise.
UTF_NOINSTRUMENTATION
- Parameters:
str – must not be a SVAR
-
variable IsEmpty(string str)¶
Returns one if str is empty, zero otherwise.
UTF_NOINSTRUMENTATION
- Parameters:
str – any non-null string variable or text wave element
-
variable WindowExists(string win)¶
Checks if the given name exists as window.
UTF_NOINSTRUMENTATION
-
variable ValueCanBeWritten(WaveOrNull wv, variable value)¶
Check that the given value can be stored in the wave.
Does currently ignore floating point precision and ranges for integer waves
-
variable IsInteger(variable var)
Returns one if var is an integer and zero otherwise UTF_NOINSTRUMENTATION.
-
variable IsEven(variable var)¶
UTF_NOINSTRUMENTATION.
-
variable IsOdd(variable var)¶
UTF_NOINSTRUMENTATION.
-
variable FuncRefIsAssigned(string funcInfo)¶
Check wether the function reference points to the prototype function or to an assigned function.
Due to Igor Pro limitations you need to pass the function info from
FuncRefInfo
and not the function reference itself.UTF_NOINSTRUMENTATION
- Returns:
1 if pointing to prototype function, 0 otherwise
-
variable CheckIfClose(variable var1, variable var2, variable tol = defaultValue, variable strong_or_weak = defaultValue)¶
Compare two variables and determines if they are close.
Based on the implementation of “Floating-point comparison algorithms” in the C++ Boost unit testing framework.
Literature:
The art of computer programming (Vol II). Donald. E. Knuth. 0-201-89684-2. Addison-Wesley Professional; 3 edition, page 234 equation (34) and (35).
UTF_NOINSTRUMENTATION
- Parameters:
var1 – first variable
var2 – second variable
tol – [optional, defaults to 1e-8] tolerance
strong_or_weak – [optional, defaults to strong] type of condition, can be zero for weak or 1 for strong
-
variable CheckIfSmall(variable var, variable tol = defaultValue)¶
Test if a variable is small using the inequality \( | var | < | tol | \).
- Parameters:
var – variable
tol – [optional, defaults to 1e-8] tolerance
-
variable IsTextWave(wave wv)
Return 1 if the wave is a text wave, zero otherwise UTF_NOINSTRUMENTATION.
-
variable IsNumericWave(wave wv)
Return 1 if the wave is a numeric wave, zero otherwise UTF_NOINSTRUMENTATION.
-
variable IsWaveRefWave(wave wv)¶
Return 1 if the wave is a wave reference wave, zero otherwise UTF_NOINSTRUMENTATION.
-
variable IsFloatingPointWave(wave wv)¶
Return 1 if the wave is a floating point wave UTF_NOINSTRUMENTATION.
-
variable IsDoubleFloatingPointWave(wave wv)¶
Return 1 if the wave is a double (64bit) precision floating point wave.
UTF_NOINSTRUMENTATION
-
variable IsSingleFloatingPointWave(wave wv)¶
Return 1 if the wave is a single (32bit) precision floating point wave.
UTF_NOINSTRUMENTATION
-
variable IsGlobalWave(wave wv)¶
Return 1 if the wave is a global wave (not a null wave and not a free wave)
-
variable IsComplexWave(wave wv)¶
Return 1 if the wave is a complex wave.
-
variable IsFreeWave(wave wv)¶
Return true if wv is a free wave, false otherwise.
UTF_NOINSTRUMENTATION
-
variable HasOneValidEntry(wave wv)¶
Return true if not all wave entries are NaN, false otherwise.
UTF_NOINSTRUMENTATION
-
variable HasOneFiniteEntry(wave wv)¶
Return true if wave has one finite entry (not Inf, -Inf or NaN)
-
variable HasOneNonFiniteEntry(wave wv)¶
Return true if wave has one infinite entry (Inf, -Inf or NaN)
-
variable StringEndsWith(string str, string suffix)¶
Checks if a string ends with a specific suffix. The check is case-insensitive.
- Parameters:
str – [in] string to check for suffix
suffix – [in] to check for
- Returns:
1 if str ends with suffix, 0 otherwise. If str and/or suffix are empty or null 0 is returned.
-
variable EqualValuesOrBothNaN(variable left, variable right)¶
Check wether
val1
andval2
are equal or both NaN.UTF_NOINSTRUMENTATION
-
variable IsConstant(wave wv, variable val, variable ignoreNaN = defaultValue)¶
Checks wether
wv
is constant and has the valueval
UTF_NOINSTRUMENTATION
- Parameters:
wv – wave to check
val – value to check
ignoreNaN – [optional, defaults to true] ignore NaN in wv
-
variable IsValidRegexp(string regexp)¶
Return true if the passed regular expression is well-formed.
-
static variable AreIntervalsIntersectingImpl(variable index, wave intervals)¶
-
variable AreIntervalsIntersecting(wave intervalsParam)¶
Return the truth if any of the given intervals ]A, B[ intersect.
- Parameters:
intervalsParam – Nx2 wave with the intervals
-
variable HasWildcardSyntax(string str)¶
Return true if
str
is in wildcard syntax, false if not.
-
variable MatchAgainstWildCardPatterns(WaveText patterns, string matchThis)¶
Attempts matching against a number of wildcard patterns.
- Parameters:
patterns – text wave with wildcard patterns to match against
matchThis – string that is matched
- Returns:
Returns 1 if matchThis was successfully matches, 0 otherwise
-
variable ListHasOnlyOneUniqueEntry(string list, string sep = defaultValue)¶
Check if all elements of the string list are the same.
Returns true for lists with less than one element