Execution Time0.04s

Test: enmall (Passed)
Build: teem-SVN-Linux-3.10.0-123.el7.x86_64-x86_64 (ip-172-31-44-204.ec2.internal) on 2022-12-09 00:01:41
Repository revision: 6481


Show Command Line
Display graphs:

Test output
airEnum "endian":
(is not case sensitive)
Values (2 valid) given explicitly
--- (0) 0: "(unknown endian)"
--- (1) 1234: "little" == "little"
desc: Intel and compatible
--- (2) 4321: "big" == "big"
desc: Everyone besides Intel and compatible

airEnum "boolean":
(is not case sensitive)
Values (2 valid) given explicitly
--- (0) -1: "(unknown bool)"
--- (1) 0: "false" == "false"
desc: false
eqv: "0" "no" "n" "false" "f" "off" "nope"
--- (2) 1: "true" == "true"
desc: true
eqv: "1" "yes" "y" "true" "t" "on" "yea"

airEnum "format":
(is not case sensitive)
Values implicit; [1,6] valid
--- 0: "(unknown_format)"
--- 1: nrrd == nrrd
desc: native format for nearly raw raster data
eqv: "nrrd"
--- 2: pnm == pnm
desc: Portable aNy Map: includes PGM for grayscale and PPM for color
eqv: "pnm"
--- 3: png == png
desc: Portable Network Graphics: lossless compression of 8- and 16-bit data
eqv: "png"
--- 4: vtk == vtk
desc: Visualization ToolKit STRUCTURED_POINTS data
eqv: "vtk"
--- 5: text == text
desc: white-space-delimited plain text encoding of 2-D float array
eqv: "table" "text" "txt"
--- 6: eps == eps
desc: Encapsulated PostScript images
eqv: "eps"

airEnum "type":
(is not case sensitive)
Values implicit; [1,11] valid
--- 0: "(unknown_type)"
--- 1: signed char == signed char
desc: signed 1-byte integer
eqv: "signed char" "int8" "int8_t"
--- 2: unsigned char == unsigned char
desc: unsigned 1-byte integer
eqv: "uchar" "unsigned char" "uint8" "uint8_t"
--- 3: short == short
desc: signed 2-byte integer
eqv: "short" "short int" "signed short" "signed short int" "int16" "int16_t"
--- 4: unsigned short == unsigned short
desc: unsigned 2-byte integer
eqv: "ushort" "unsigned short" "unsigned short int" "uint16" "uint16_t"
--- 5: int == int
desc: signed 4-byte integer
eqv: "int" "signed int" "int32" "int32_t"
--- 6: unsigned int == unsigned int
desc: unsigned 4-byte integer
eqv: "uint" "unsigned int" "uint32" "uint32_t"
--- 7: long long int == long long int
desc: signed 8-byte integer
eqv: "longlong" "long long" "long long int" "signed long long" "signed long long int" "int64" "int64_t"
--- 8: unsigned long long int == unsigned long long int
desc: unsigned 8-byte integer
eqv: "ulonglong" "unsigned long long" "unsigned long long int" "uint64" "uint64_t"
--- 9: float == float
desc: 4-byte floating point
eqv: "float"
--- 10: double == double
desc: 8-byte floating point
eqv: "double"
--- 11: block == block
desc: size user-defined at run-time
eqv: "block"

airEnum "encoding":
(is not case sensitive)
Values implicit; [1,6] valid
--- 0: "(unknown_encoding)"
--- 1: raw == raw
desc: file is byte-for-byte same as memory representation
eqv: "raw"
--- 2: ascii == ascii
desc: values written out in ASCII
eqv: "txt" "text" "ascii"
--- 3: hex == hex
desc: case-insenstive hexadecimal encoding (2 chars / byte)
eqv: "hex"
--- 4: gz == gz
desc: gzip compression of binary encoding
eqv: "gz" "gzip"
--- 5: bz2 == bz2
desc: bzip2 compression of binary encoding
eqv: "bz2" "bzip2"
--- 6: zrl == zrl
desc: simple compression by encoding run-length of zeros
eqv: "zrl"

airEnum "centering":
(is not case sensitive)
Values implicit; [1,2] valid
--- 0: "(unknown_center)"
--- 1: node == node
desc: samples are at boundaries between elements along axis
--- 2: cell == cell
desc: samples are at centers of elements along axis

airEnum "kind":
(is not case sensitive)
Values implicit; [1,31] valid
--- 0: "(unknown_kind)"
--- 1: domain == domain
desc: a domain variable of the function which the nrrd samples
eqv: "domain"
--- 2: space == space
desc: a spatial domain, like the axes of a measured volume image
eqv: "space"
--- 3: time == time
desc: a temporal domain, as from time-varying measurements
eqv: "time"
--- 4: list == list
desc: some list of attributes; it makes no sense to resample along these
eqv: "list"
--- 5: point == point
desc: coordinates of a point
eqv: "point"
--- 6: vector == vector
desc: coefficients of a (contravariant) vector
eqv: "vector" "contravariant-vector"
--- 7: covariant-vector == covariant-vector
desc: coefficients of a covariant vector, such as a gradient
eqv: "covariant-vector"
--- 8: normal == normal
desc: coefficients of a normalized covariant vector
eqv: "normal"
--- 9: stub == stub
desc: a place-holder axis with a single sample
eqv: "stub"
--- 10: scalar == scalar
desc: axis used to indicate that the nrrd contains a scalar value
eqv: "scalar"
--- 11: complex == complex
desc: real and imaginary parts of a value
eqv: "complex"
--- 12: 2-vector == 2-vector
desc: a 2-component vector
eqv: "2-vector"
--- 13: 3-color == 3-color
desc: any 3-component color value
eqv: "3-color"
--- 14: RGB-color == RGB-color
desc: red-green-blue color
eqv: "RGB-color" "RGBcolor" "RGB"
--- 15: HSV-color == HSV-color
desc: hue-saturation-value single hexcone color
eqv: "HSV-color" "HSVcolor" "HSV"
--- 16: XYZ-color == XYZ-color
desc: perceptual primaries color
eqv: "XYZ-color"
--- 17: 4-color == 4-color
desc: any 4-component color value
eqv: "4-color"
--- 18: RGBA-color == RGBA-color
desc: red-green-blue-alpha color
eqv: "RGBA-color" "RGBAcolor" "RGBA"
--- 19: 3-vector == 3-vector
desc: a 3-element (contravariant) vector
eqv: "3-vector"
--- 20: 3-gradient == 3-gradient
desc: a 3-element gradient (covariant) vector
eqv: "3-gradient"
--- 21: 3-normal == 3-normal
desc: a 3-element (covariant) vector which is assumed normalized
eqv: "3-normal"
--- 22: 4-vector == 4-vector
desc: a 4-element (contravariant) vector
eqv: "4-vector"
--- 23: quaternion == quaternion
desc: quaternion: x y z w
eqv: "quaternion"
--- 24: 2D-symmetric-matrix == 2D-symmetric-matrix
desc: 3 elements of 2D symmetric matrix: Mxx Mxy Myy
eqv: "2D-symmetric-matrix" "2D-sym-matrix" "2D-symmetric-tensor" "2D-sym-tensor"
--- 25: 2D-masked-symmetric-matrix == 2D-masked-symmetric-matrix
desc: mask plus 3 elements of 2D symmetric matrix: mask Mxx Mxy Myy
eqv: "2D-masked-symmetric-matrix" "2D-masked-sym-matrix" "2D-masked-symmetric-tensor" "2D-masked-sym-tensor"
--- 26: 2D-matrix == 2D-matrix
desc: 4 elements of general 2D matrix: Mxx Mxy Myx Myy
eqv: "2D-matrix" "2D-tensor"
--- 27: 2D-masked-matrix == 2D-masked-matrix
desc: mask plus 4 elements of general 2D matrix: mask Mxx Mxy Myx Myy
eqv: "2D-masked-matrix" "2D-masked-tensor"
--- 28: 3D-symmetric-matrix == 3D-symmetric-matrix
desc: 6 elements of 3D symmetric matrix: Mxx Mxy Mxz Myy Myz Mzz
eqv: "3D-symmetric-matrix" "3D-sym-matrix" "3D-symmetric-tensor" "3D-sym-tensor"
--- 29: 3D-masked-symmetric-matrix == 3D-masked-symmetric-matrix
desc: mask plus 6 elements of 3D symmetric matrix: mask Mxx Mxy Mxz Myy Myz Mzz
eqv: "3D-masked-symmetric-matrix" "3D-masked-sym-matrix" "3D-masked-symmetric-tensor" "3D-masked-sym-tensor"
--- 30: 3D-matrix == 3D-matrix
desc: 9 elements of general 3D matrix: Mxx Mxy Mxz Myx Myy Myz Mzx Mzy Mzz
eqv: "3D-matrix" "3D-tensor"
--- 31: 3D-masked-matrix == 3D-masked-matrix
desc: mask plus 9 elements of general 3D matrix: mask Mxx Mxy Mxz Myx Myy Myz Mzx Mzy Mzz
eqv: "3D-masked-matrix" "3D-masked-tensor"

airEnum "nrrd_field":
(is not case sensitive)
Values implicit; [1,32] valid
--- 0: "Ernesto "Che" Guevara"
--- 1: # == #
desc: comment
eqv: "#"
--- 2: content == content
desc: short description of whole array and/or its provenance
eqv: "content"
--- 3: number == number
desc: total number of samples in array
eqv: "number"
--- 4: type == type
desc: type of sample value
eqv: "type"
--- 5: block size == block size
desc: number of bytes in one block (for block-type)
eqv: "block size" "blocksize"
--- 6: dimension == dimension
desc: number of axes in array
eqv: "dimension"
--- 7: space == space
desc: identifier for space in which array grid lies
eqv: "space"
--- 8: space dimension == space dimension
desc: dimension of space in which array grid lies
eqv: "space dimension" "spacedimension"
--- 9: sizes == sizes
desc: list of number of samples along each axis, aka "dimensions" of the array
eqv: "sizes"
--- 10: spacings == spacings
desc: list of sample spacings along each axis
eqv: "spacings"
--- 11: thicknesses == thicknesses
desc: list of sample thicknesses along each axis
eqv: "thicknesses"
--- 12: axis mins == axis mins
desc: list of minimum positions associated with each axis
eqv: "axis mins" "axismins"
--- 13: axis maxs == axis maxs
desc: list of maximum positions associated with each axis
eqv: "axis maxs" "axismaxs"
--- 14: space directions == space directions
desc: list of direction inter-sample vectors for each axis
eqv: "space directions" "spacedirections"
--- 15: centerings == centerings
desc: list of sample centerings for each axis
eqv: "centers" "centerings"
--- 16: kinds == kinds
desc: list of kinds for each axis
eqv: "kinds"
--- 17: labels == labels
desc: list of short descriptions for each axis
eqv: "labels"
--- 18: units == units
desc: list of units in which each axes' spacing and thickness is measured
eqv: "units"
--- 19: min == min
desc: supposed minimum array value
eqv: "min"
--- 20: max == max
desc: supposed maximum array value
eqv: "max"
--- 21: old min == old min
desc: minimum array value prior to quantization
eqv: "old min" "oldmin"
--- 22: old max == old max
desc: maximum array value prior to quantization
eqv: "old max" "oldmax"
--- 23: endian == endian
desc: endiannes of data as written in file
eqv: "endian"
--- 24: encoding == encoding
desc: encoding of data written in file
eqv: "encoding"
--- 25: line skip == line skip
desc: number of lines to skip prior to byte skip and reading data
eqv: "line skip" "lineskip"
--- 26: byte skip == byte skip
desc: number of bytes to skip after line skip and prior to reading data
eqv: "byte skip" "byteskip"
--- 27: key/value == key/value
desc: string-based key/value pairs
eqv: "key/value"
--- 28: sample units == sample units
desc: units of measurement of (scalar) values inside array itself
eqv: "sample units" "sampleunits"
--- 29: space units == space units
desc: list of units for measuring origin and direct vectors' coefficients
eqv: "space units" "spaceunits"
--- 30: space origin == space origin
desc: location in space of center of first (lowest memory address) sample
eqv: "space origin" "spaceorigin"
--- 31: measurement frame == measurement frame
desc: maps coords of (non-scalar) values to coords of surrounding space
eqv: "measurement frame" "measurementframe"
--- 32: data file == data file
desc: with detached headers, where is data to be found
eqv: "data file" "datafile"

airEnum "space":
(is not case sensitive)
Values implicit; [1,14] valid
--- 0: "(unknown_space)"
--- 1: right-up == right-up
desc: right-up (like Cartesian quadrant I)
eqv: "right-up" "right up"
--- 2: right-down == right-down
desc: right-down (like raster coordinates)
eqv: "right-down" "right down"
--- 3: right-anterior-superior == right-anterior-superior
desc: right-anterior-superior (used in NIFTI-1 and SPL's 3D Slicer)
eqv: "right-anterior-superior" "right anterior superior" "rightanteriorsuperior" "RAS"
--- 4: left-anterior-superior == left-anterior-superior
desc: left-anterior-superior (used in Analyze 7.5)
eqv: "left-anterior-superior" "left anterior superior" "leftanteriorsuperior" "LAS"
--- 5: left-posterior-superior == left-posterior-superior
desc: left-posterior-superior (used in DICOM 3)
eqv: "left-posterior-superior" "left posterior superior" "leftposteriorsuperior" "LPS"
--- 6: right-anterior-superior-time == right-anterior-superior-time
desc: right-anterior-superior-time
eqv: "right-anterior-superior-time" "right anterior superior time" "rightanteriorsuperiortime" "RAST"
--- 7: left-anterior-superior-time == left-anterior-superior-time
desc: left-anterior-superior-time
eqv: "left-anterior-superior-time" "left anterior superior time" "leftanteriorsuperiortime" "LAST"
--- 8: left-posterior-superior-time == left-posterior-superior-time
desc: left-posterior-superior-time
eqv: "left-posterior-superior-time" "left posterior superior time" "leftposteriorsuperiortime" "LPST"
--- 9: scanner-xyz == scanner-xyz
desc: scanner-xyz (used in ACR/NEMA 2.0)
eqv: "scanner-xyz"
--- 10: scanner-xyz-time == scanner-xyz-time
desc: scanner-xyz-time
eqv: "scanner-xyz-time" "scanner-xyzt"
--- 11: 3D-right-handed == 3D-right-handed
desc: 3D-right-handed
eqv: "3D-right-handed" "3D right handed" "3Drighthanded"
--- 12: 3D-left-handed == 3D-left-handed
desc: 3D-left-handed
eqv: "3D-left-handed" "3D left handed" "3Dlefthanded"
--- 13: 3D-right-handed-time == 3D-right-handed-time
desc: 3D-right-handed-time
eqv: "3D-right-handed-time" "3D right handed time" "3Drighthandedtime"
--- 14: 3D-left-handed-time == 3D-left-handed-time
desc: 3D-left-handed-time
eqv: "3D-left-handed-time" "3D left handed time" "3Dlefthandedtime"

airEnum "spacing status":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown_status)"
--- 1: none == none
desc: neither axis->spacing nor axis->spaceDirection set
--- 2: scalarNoSpace == scalarNoSpace
desc: axis->spacing set normally
--- 3: scalarWithSpace == scalarWithSpace
desc: axis->spacing set, with surround space (?)
--- 4: direction == direction
desc: axis->spaceDirection set normally

airEnum "orientation have":
(is not case sensitive)
Values implicit; [1,6] valid
--- 0: "(unknown_orientation_have)"
--- 1: nothing == nothing
desc: know nothing
eqv: "nothing"
--- 2: spacing == spacing
desc: know per-axis spacing
eqv: "spacing" "spc"
--- 3: min+spacing == min+spacing
desc: know per-axis min and spacing
eqv: "min+spacing" "min+spc" "minspacing" "minspc"
--- 4: min+max == min+max
desc: know per-axis min and max
eqv: "min+max" "minmax"
--- 5: directions == directions
desc: know space directions
eqv: "directions" "dirs"
--- 6: origin+directions == origin+directions
desc: know space origin and directions
eqv: "origin+directions" "origindirections" "oridirs" "full"

airEnum "boundary behavior":
(is not case sensitive)
Values implicit; [1,5] valid
--- 0: "(unknown_boundary)"
--- 1: pad == pad
desc: pad with some specified value
--- 2: bleed == bleed
desc: copy values from edge outward as needed
--- 3: wrap == wrap
desc: wrap around to other end of axis
--- 4: weight == weight
desc: re-weight (by normalization) samples within axis range
--- 5: mirror == mirror
desc: mirror folding

airEnum "measure":
(is not case sensitive)
Values implicit; [1,30] valid
--- 0: "(unknown_measure)"
--- 1: min == min
desc: minimum of values
eqv: "min"
--- 2: max == max
desc: maximum of values
eqv: "max"
--- 3: mean == mean
desc: mean of values
eqv: "mean"
--- 4: median == median
desc: median of values
eqv: "median"
--- 5: mode == mode
desc: mode of values
eqv: "mode"
--- 6: product == product
desc: product of values
eqv: "product" "prod"
--- 7: sum == sum
desc: sum of values
eqv: "sum"
--- 8: L1 == L1
desc: L1 norm of values
eqv: "L1"
--- 9: L2 == L2
desc: L2 norm of values
eqv: "L2"
--- 10: L4 == L4
desc: L4 norm of values
eqv: "L4"
--- 11: normalizedL2 == normalizedL2
desc: L2 norm of values divided by # of values
eqv: "normalizedL2" "normL2" "nL2"
--- 12: RMS == RMS
desc: Root of Mean of Squares
eqv: "rootmeansquare" "rms"
--- 13: Linf == Linf
desc: Linf norm of values
eqv: "Linf"
--- 14: variance == variance
desc: variance of values
eqv: "variance" "var"
--- 15: stdv == stdv
desc: standard deviation of values
eqv: "SD" "stdv"
--- 16: CoV == CoV
desc: coefficient of variation of values
eqv: "cov"
--- 17: skew == skew
desc: skew of values
eqv: "skew" "skewness"
--- 18: line-slope == line-slope
desc: slope of line of best fit
eqv: "slope" "line-slope"
--- 19: line-intercept == line-intercept
desc: y-intercept of line of best fit
eqv: "intc" "intercept" "line-intc" "line-intercept"
--- 20: line-error == line-error
desc: error of line fitting
eqv: "error" "line-error"
--- 21: histo-min == histo-min
desc: minimum of histogrammed values
eqv: "histo-min"
--- 22: histo-max == histo-max
desc: maximum of histogrammed values
eqv: "histo-max"
--- 23: histo-mean == histo-mean
desc: mean of histogrammed values
eqv: "histo-mean"
--- 24: histo-median == histo-median
desc: median of histogrammed values
eqv: "histo-median"
--- 25: histo-mode == histo-mode
desc: mode of histogrammed values
eqv: "histo-mode"
--- 26: histo-product == histo-product
desc: product of histogrammed values
eqv: "histo-product"
--- 27: histo-sum == histo-sum
desc: sum of histogrammed values
eqv: "histo-sum"
--- 28: histo-L2 == histo-L2
desc: L2 norm of histogrammed values
eqv: "histo-l2"
--- 29: histo-variance == histo-variance
desc: variance of histogrammed values
eqv: "histo-variance" "histo-var"
--- 30: histo-SD == histo-SD
desc: standard deviation of histogrammed values
eqv: "histo-sd"

airEnum "unary op":
(is not case sensitive)
Values implicit; [1,32] valid
--- 0: "(unknown_unary_op)"
--- 1: - == -
desc: negative; additive inverse
eqv: "-" "neg" "negative" "minus"
--- 2: r == r
desc: reciprocal; multiplicative inverse
eqv: "r" "recip"
--- 3: sin == sin
desc: sin
eqv: "sin"
--- 4: cos == cos
desc: cos
eqv: "cos"
--- 5: tan == tan
desc: tan
eqv: "tan"
--- 6: asin == asin
desc: arcsin
eqv: "asin" "arcsin"
--- 7: acos == acos
desc: arccos
eqv: "acos" "arccos"
--- 8: atan == atan
desc: arctan
eqv: "atan" "arctan"
--- 9: exp == exp
desc: e raised to something
eqv: "exp"
--- 10: log == log
desc: natural (base e) logarithm
eqv: "ln" "log"
--- 11: log2 == log2
desc: base 2 logarithm
eqv: "log2"
--- 12: log10 == log10
desc: base 10 logarithm
eqv: "log10"
--- 13: log1p == log1p
desc: accurate ln(1+x)
eqv: "ln1p" "log1p"
--- 14: expm1 == expm1
desc: accurate exp(x)-1
eqv: "expm1"
--- 15: sqrt == sqrt
desc: square root
eqv: "sqrt"
--- 16: cbrt == cbrt
desc: cube root
eqv: "cbrt"
--- 17: erf == erf
desc: error function (integral of gaussian)
eqv: "erf"
--- 18: nerf == nerf
desc: erf, mapped to range (0,1)
eqv: "nerf"
--- 19: ceil == ceil
desc: smallest integer greater than or equal
eqv: "ceil"
--- 20: floor == floor
desc: largest integer less than or equal
eqv: "floor"
--- 21: roundup == roundup
desc: round to closest integer (0.5 rounded to 1)
eqv: "roundup" "rup"
--- 22: rounddown == rounddown
desc: round to closest integer (0.5 rounded to 0)
eqv: "rounddown" "rdown" "rdn"
--- 23: abs == abs
desc: absolute value
eqv: "abs" "fabs"
--- 24: sgn == sgn
desc: sign of value (-1, 0, or 1)
eqv: "sgn" "sign"
--- 25: exists == exists
desc: value is not infinity or NaN
eqv: "exists"
--- 26: rand == rand
desc: uniformly distributed random value between 0 and 1
eqv: "rand"
--- 27: normrand == normrand
desc: normally distributed random value, mean 0, stdv 1
eqv: "normalrand" "normrand" "nrand"
--- 28: if == if
desc: if nonzero, 1, else 0
eqv: "if"
--- 29: zero == zero
desc: always zero
eqv: "zero" "0"
--- 30: one == one
desc: always one
eqv: "one" "1"
--- 31: tauofsig == tauofsig
desc: Lindeberg effective scale Tau as function of Sigma
eqv: "tauofsig" "tos"
--- 32: sigoftau == sigoftau
desc: Sigma as function of Lindeberg effective scale Tau
eqv: "sigoftau" "sot"

airEnum "binary op":
(is not case sensitive)
Values implicit; [1,26] valid
--- 0: "(unknown_binary_op)"
--- 1: + == +
desc: add
eqv: "+" "plus" "add"
--- 2: - == -
desc: subtract
eqv: "-" "minus" "subtract" "sub"
--- 3: x == x
desc: multiply
eqv: "x" "*" "times" "multiply" "product"
--- 4: / == /
desc: divide
eqv: "/" "divide" "quotient"
--- 5: ^ == ^
desc: power
eqv: "^" "pow" "power"
--- 6: spow == spow
desc: signed power
eqv: "spow" "sgnpow" "sgnpower"
--- 7: fpow == fpow
desc: one minus power of one minus
eqv: "fpow"
--- 8: % == %
desc: integer modulo
eqv: "%" "mod" "modulo"
--- 9: fmod == fmod
desc: fractional modulo
eqv: "fmod"
--- 10: atan2 == atan2
desc: two-argment arctangent based on atan2()
eqv: "atan2"
--- 11: min == min
desc: miniumum
eqv: "min" "minimum"
--- 12: max == max
desc: maximum
eqv: "max" "maximum"
--- 13: lt == lt
desc: less then
eqv: "lt" "<" "less" "lessthan"
--- 14: lte == lte
desc: less then or equal
eqv: "lte" "<=" "lessthanorequal"
--- 15: gt == gt
desc: greater than
eqv: "gt" ">" "greater" "greaterthan"
--- 16: gte == gte
desc: greater than or equal
eqv: "gte" ">=" "greaterthanorequal"
--- 17: comp == comp
desc: compare (resulting in -1, 0, or 1)
eqv: "comp" "compare"
--- 18: eq == eq
desc: equal
eqv: "eq" "=" "==" "equal"
--- 19: neq == neq
desc: not equal
eqv: "neq" "ne" "!=" "notequal"
--- 20: exists == exists
desc: if exists(a), then a, else b
eqv: "exists"
--- 21: if == if
desc: if a, then a, else b
eqv: "if"
--- 22: nrand == nrand
desc: a + b*gaussianNoise
eqv: "nrand"
--- 23: rrand == rrand
desc: sample of Rician with mu a and sigma b
eqv: "rrand"
--- 24: +c == +c
desc: add, but clamp to integer representation range
eqv: "+c" "addclamp"
--- 25: -c == -c
desc: subtract, but clamp to integer representation range
eqv: "-c" "subtractclamp"
--- 26: xc == xc
desc: multiply, but clamp to integer representation range
eqv: "xc" "multiplyclamp"

airEnum "ternary op":
(is not case sensitive)
Values implicit; [1,16] valid
--- 0: "(unknown_ternary_op)"
--- 1: add == add
desc: add three values
eqv: "+" "plus" "add"
--- 2: multiply == multiply
desc: multiply three values
eqv: "x" "*" "times" "multiply" "product"
--- 3: min == min
desc: minimum of three values
eqv: "min"
--- 4: min_sm == min_sm
desc: smooth minimum of 1st and 3rd value, starting at 2nd
eqv: "min_sm" "minsm"
--- 5: max == max
desc: maximum of three values
eqv: "max"
--- 6: max_sm == max_sm
desc: smooth maximum of 1st and 3rd value, starting at 2nd
eqv: "max_sm"
--- 7: lt_sm == lt_sm
desc: 1st less than 3rd, smoothed by 2nd
eqv: "lt_sm"
--- 8: gt_sm == gt_sm
desc: 1st greater than 3rd, smoothed by 2nd
eqv: "gt_sm"
--- 9: clamp == clamp
desc: clamp 2nd value to closed interval between 1st and 3rd
eqv: "clamp"
--- 10: ifelse == ifelse
desc: if 1st value is non-zero, then 2nd value, else 3rd value
eqv: "ifelse" "if"
--- 11: lerp == lerp
desc: linearly interpolate between 2nd value (1st = 0.0) and 3rd (1st = 1.0)
eqv: "lerp"
--- 12: exists == exists
desc: if 1st value exists, the 2nd value, else the 3rd
eqv: "exists"
--- 13: in_op == in_op
desc: 2nd value is inside OPEN interval range between 1st and 3rd
eqv: "in_op"
--- 14: in_cl == in_cl
desc: 2nd value is inside CLOSED interval range between 1st and 3rd
eqv: "in_cl"
--- 15: gauss == gauss
desc: evaluate (at 1st value) Gaussian with mean=2nd and stdv=3rd value
eqv: "gauss"
--- 16: rician == rician
desc: evaluate (at 1st value) Rician with mean=2nd and stdv=3rd value
eqv: "rician"

airEnum "fftw plan rigor":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown_rigor)"
--- 1: estimate == estimate
desc: no machine-specific measurements, just estimate a plan
eqv: "e" "est" "estimate"
--- 2: measure == measure
desc: do several machine-specific measurements to determine plan
eqv: "m" "meas" "measure"
--- 3: patient == patient
desc: performs more measurements to find "more optimal" plan
eqv: "p" "pat" "patient"
--- 4: exhaustive == exhaustive
desc: considers even wider range of algorithms to find most optimal plan
eqv: "x" "ex" "exhaustive"

airEnum "resample non-existent":
(is not case sensitive)
Values implicit; [1,3] valid
--- 0: "(unknown_resample_non_existent)"
--- 1: noop == noop
desc: no-op; include non-existent values in convolution sum
eqv: "noop"
--- 2: renormalize == renormalize
desc: use only existent values in kernel support and renormalize weights
eqv: "renorm" "renormalize"
--- 3: weight == weight
desc: use only existent values in kernel support and use weights as is
eqv: "wght" "weight"

airEnum "canonical meta-data version":
(is not case sensitive)
Values implicit; [1,1] valid
--- 0: "(unknown_meta_data_canonical_version)"
--- 1: alpha == alpha
desc: initial version, used for Diderot until at least 2016

airEnum "sRGB intent":
(is not case sensitive)
Values (5 valid) given explicitly
--- (0) -1: "(unknown_sRGB_intent)"
--- (1) 0: "perceptual" == "perceptual"
desc: perceptual: expand/compress/shift gamut to fit within output
eqv: "perceptual" "perc" "p"
--- (2) 1: "relative" == "relative"
desc: relative colorimetric: true colors, but shifted by media white point
eqv: "relative" "rel" "r"
--- (3) 2: "saturation" == "saturation"
desc: saturation: gamut remapping that preserves saturation
eqv: "saturation" "sat" "s"
--- (4) 3: "absolute" == "absolute"
desc: absolute colorimetric: true colors were possible, else clipped
eqv: "absolute" "abs" "a"
--- (5) 4: "none" == "none"
desc: none: do not store any intent in the sRGB chunk
eqv: "none" "no" "n"

airEnum "cubic root solutions":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown ell_cubic_root)"
--- 1: single == single
desc: one single root
--- 2: triple == triple
desc: one triple root
--- 3: single and double == single and double
desc: a single and a double root
--- 4: three distinct == three distinct
desc: three distinct roots

airEnum "stop":
(is not case sensitive)
Values implicit; [1,5] valid
--- 0: "(unknown_stop)"
--- 1: not == not
desc: there is no reason to stop
--- 2: iter == iter
desc: hit the maximum number of iterations
--- 3: nonexist == nonexist
desc: got non-existent values
--- 4: converged == converged
desc: simulation converged
--- 5: diverged == diverged
desc: simulation hit divergent instability

airEnum "class":
(is not case sensitive)
Values implicit; [1,3] valid
--- 0: "(unknown_class)"
--- 1: tensor == tensor
desc: tensor, specified by a tijk_type
eqv: "tensor"
--- 2: esh == esh
desc: even-order spherical harmonics, specified by order
eqv: "esh"
--- 3: efs == efs
desc: even-order fourier series, specified by order
eqv: "efs"

airEnum "gageErr":
(is not case sensitive)
Values implicit; [1,6] valid
--- 0: "(unknown gageErr)"
--- 1: none == none
--- 2: space bounds == space bounds
--- 3: stack bounds == stack bounds
--- 4: stack integral == stack integral
--- 5: stack search == stack search
--- 6: stack unused == stack unused

airEnum "kernel":
(is not case sensitive)
Values implicit; [1,7] valid
--- 0: "(unknown_kernel)"
--- 1: 00 == 00
desc: kernel for reconstructing values
eqv: "00" "k00"
--- 2: 10 == 10
desc: kernel for reconstruction values when doing 1st derivatives
eqv: "10" "k10"
--- 3: 11 == 11
desc: kernel for measuring 1st derivatives when doing 1st derivatives
eqv: "11" "k11"
--- 4: 20 == 20
desc: kernel for reconstruction values when doing 2nd derivatives
eqv: "20" "k20"
--- 5: 21 == 21
desc: kernel for measuring 1st derivatives when doing 2nd derivatives
eqv: "21" "k21"
--- 6: 22 == 22
desc: kernel for measuring 2nd derivatives when doing 2nd derivatives
eqv: "22" "k22"
--- 7: stack == stack
desc: kernel for reconstruction across a stack
eqv: "stack" "ss" "kss"

airEnum "pack part":
(is not case sensitive)
Values implicit; [1,11] valid
--- 0: "(unknown_pack_part)"
--- 1: scalar == scalar
desc: the base scalar F
eqv: "scalar" "scl"
--- 2: gradvec == gradvec
desc: gradient (vector) of F
eqv: "gradvec" "gvec"
--- 3: gradmag == gradmag
desc: magnitude of the gradient of F
eqv: "gradmag" "gmag"
--- 4: normal == normal
desc: normalized gradient (vector) of F
eqv: "normal" "norm"
--- 5: hessian == hessian
desc: Hessian of F
eqv: "hessian" "hess"
--- 6: hesseval0 == hesseval0
desc: 1st eigenvalue of Hessian of F
eqv: "hesseval0" "heval0"
--- 7: hesseval1 == hesseval1
desc: 2nd eigenvalue of Hessian of F
eqv: "hesseval1" "heval1"
--- 8: hesseval2 == hesseval2
desc: 3rd eigenvalue of Hessian of F
eqv: "hesseval2" "heval2"
--- 9: hessevec0 == hessevec0
desc: 1st eigenvector of Hessian of F
eqv: "hessevec0" "hevec0"
--- 10: hessevec1 == hessevec1
desc: 2nd eigenvector of Hessian of F
eqv: "hessevec1" "hevec1"
--- 11: hessevec2 == hessevec2
desc: 3rd eigenvector of Hessian of F
eqv: "hessevec2" "hevec2"

airEnum "gageScl":
(is not case sensitive)
Values (36 valid) given explicitly
--- (0) 0: "(unknown gageScl)"
--- (1) 1: "value" == "value"
desc: reconstructed scalar data value
eqv: "v" "val" "value"
--- (2) 2: "gradient vector" == "gradient vector"
desc: gradient vector, un-normalized
eqv: "gv" "gvec" "gradvec" "grad vec" "gradient vector"
--- (3) 3: "gradient magnitude" == "gradient magnitude"
desc: gradient magnitude (length of gradient vector)
eqv: "gm" "gmag" "gradmag" "grad mag" "gradient magnitude"
--- (4) 4: "normalized gradient" == "normalized gradient"
desc: normalized gradient vector
eqv: "gn" "n" "normal" "gnorm" "normg" "norm" "normgrad" "norm grad" "normalized gradient"
--- (5) 5: "normal projector" == "normal projector"
desc: projection into normal
eqv: "nproj" "normal projector"
--- (6) 6: "tangent projector" == "tangent projector"
desc: projection into tangent (perp space of normal)
eqv: "np" "nperp" "tangent projector"
--- (7) 7: "Hessian" == "Hessian"
desc: 3x3 Hessian matrix
eqv: "h" "hess" "hessian"
--- (8) 8: "HessianTen" == "HessianTen"
desc: 7-element Hessian tensor
eqv: "ht" "hessten" "hessianten"
--- (9) 9: "Laplacian" == "Laplacian"
desc: Laplacian
eqv: "l" "lapl" "laplacian"
--- (10) 10: "Frob(Hessian)" == "Frob(Hessian)"
desc: Frobenius norm of Hessian
eqv: "hf" "frob(hessian)"
--- (11) 11: "Hessian eigenvalues" == "Hessian eigenvalues"
desc: Hessian's eigenvalues
eqv: "heval" "hesseval" "hessian eval" "hessian eigenvalues"
--- (12) 12: "Hessian eigenvalue[0]" == "Hessian eigenvalue[0]"
desc: Hessian's 1st eigenvalue
eqv: "heval0" "hesseval0" "hessian eigenvalue[0]"
--- (13) 13: "Hessian eigenvalue[1]" == "Hessian eigenvalue[1]"
desc: Hessian's 2nd eigenvalue
eqv: "heval1" "hesseval1" "hessian eigenvalue[1]"
--- (14) 14: "Hessian eigenvalue[2]" == "Hessian eigenvalue[2]"
desc: Hessian's 3rd eigenvalue
eqv: "heval2" "hesseval2" "hessian eigenvalue[2]"
--- (15) 15: "Hessian eigenvectors" == "Hessian eigenvectors"
desc: Hessian's eigenvectors
eqv: "hevec" "hessevec" "hessian evec" "hessian eigenvectors"
--- (16) 16: "Hessian eigenvector[0]" == "Hessian eigenvector[0]"
desc: Hessian's 1st eigenvector
eqv: "hevec0" "hessevec0" "hessian eigenvector[0]"
--- (17) 17: "Hessian eigenvector[1]" == "Hessian eigenvector[1]"
desc: Hessian's 2nd eigenvector
eqv: "hevec1" "hessevec1" "hessian eigenvector[1]"
--- (18) 18: "Hessian eigenvector[2]" == "Hessian eigenvector[2]"
desc: Hessian's 3rd eigenvector
eqv: "hevec2" "hessevec2" "hessian eigenvector[2]"
--- (19) 19: "2nd DD along gradient" == "2nd DD along gradient"
desc: 2nd directional derivative along gradient
eqv: "2d" "2dd" "2nddd" "2nd" "2nd dd" "2nd dd along gradient"
--- (20) 20: "geometry tensor" == "geometry tensor"
desc: geometry tensor
eqv: "gt" "gten" "geoten" "geomten" "geometry tensor"
--- (21) 21: "geometry tensor tensor" == "geometry tensor tensor"
desc: 7-element geometry tensor
eqv: "gtenten" "geometry tensor tensor"
--- (22) 22: "kappa1" == "kappa1"
desc: 1st principal curvature (K1)
eqv: "k1" "kap1" "kappa1"
--- (23) 23: "kappa2" == "kappa2"
desc: 2nd principal curvature (K2)
eqv: "k2" "kap2" "kappa2"
--- (24) 24: "total curvature" == "total curvature"
desc: total curvature (L2 norm of K1, K2)
eqv: "total curv" "totalcurv" "total curvature" "tc" "cv" "curvedness"
--- (25) 25: "shape trace" == "shape trace"
desc: shape trace = (K1+K2)/(total curvature)
eqv: "st" "shape trace"
--- (26) 26: "shape index" == "shape index"
desc: Koenderink's shape index
eqv: "si" "shape index"
--- (27) 27: "mean curvature" == "mean curvature"
desc: mean curvature = (K1+K2)/2
eqv: "mc" "mcurv" "meancurv" "mean curvature"
--- (28) 28: "Gaussian curvature" == "Gaussian curvature"
desc: gaussian curvature = K1*K2
eqv: "gc" "gcurv" "gausscurv" "gaussian curvature"
--- (29) 29: "1st curvature direction" == "1st curvature direction"
desc: 1st principal curvature direction
eqv: "cdir1" "c dir1" "curvdir1" "curv dir1" "curvature direction 1" "1st curvature direction"
--- (30) 30: "2nd curvature direction" == "2nd curvature direction"
desc: 2nd principal curvature direction
eqv: "cdir2" "c dir2" "curvdir2" "curv dir2" "curvature direction 2" "2nd curvature direction"
--- (31) 31: "flowline curvature" == "flowline curvature"
desc: curvature of normal streamline
eqv: "fc" "flowlinecurv" "flowline curv" "flowline curvature"
--- (32) 32: "median" == "median"
desc: median of iv3 cache (not weighted by any filter (yet))
eqv: "med" "median"
--- (33) 33: "Hessian valleyness" == "Hessian valleyness"
desc: measure of valleyness of Hessian
eqv: "hvalley" "hessvalley" "hessian valleyness"
--- (34) 34: "Hessian ridgeness" == "Hessian ridgeness"
desc: measure of ridgeness of Hessian
eqv: "hridge" "hessridge" "hessian ridgeness"
--- (35) 35: "Hessian peakness" == "Hessian peakness"
desc: measure of peakness of Hessian
eqv: "hdpeak" "hessian peakness"
--- (36) 36: "Hessian mode" == "Hessian mode"
desc: mode of Hessian eigenvalues
eqv: "hmode" "hessmode" "hessian mode"

airEnum "gageVec":
(is not case sensitive)
Values (31 valid) given explicitly
--- (0) 0: "(unknown gageVec)"
--- (1) 1: "vector" == "vector"
desc: component-wise-interpolated vector
eqv: "v" "vector" "vec"
--- (2) 2: "vector0" == "vector0"
desc: vector[0]
eqv: "v0" "vector0" "vec0"
--- (3) 3: "vector1" == "vector1"
desc: vector[1]
eqv: "v1" "vector1" "vec1"
--- (4) 4: "vector2" == "vector2"
desc: vector[2]
eqv: "v2" "vector2" "vec2"
--- (5) 5: "length" == "length"
desc: length of vector
eqv: "l" "length" "len"
--- (6) 6: "normalized" == "normalized"
desc: normalized vector
eqv: "n" "normalized" "normalized vector"
--- (7) 7: "Jacobian" == "Jacobian"
desc: 3x3 Jacobian
eqv: "jacobian" "jac" "j"
--- (8) 8: "strain" == "strain"
desc: rate-of-strain tensor
eqv: "strain" "S"
--- (9) 9: "divergence" == "divergence"
desc: divergence
eqv: "divergence" "div" "d"
--- (10) 10: "curl" == "curl"
desc: curl
eqv: "curl" "c"
--- (11) 11: "curl norm" == "curl norm"
desc: curl magnitude
eqv: "curlnorm" "curl norm" "curl magnitude" "cm"
--- (12) 12: "helicity" == "helicity"
desc: helicity: dot(vector,curl)
eqv: "h" "hel" "hell" "helicity"
--- (13) 13: "normalized helicity" == "normalized helicity"
desc: normalized helicity
eqv: "nh" "nhel" "normhel" "normhell" "normalized helicity"
--- (14) 14: "SOmega" == "SOmega"
desc: S squared plus Omega squared for vortex characterization
eqv: "SOmega"
--- (15) 15: "lambda2" == "lambda2"
desc: lambda2 value of SOmega
eqv: "lbda2" "lambda2"
--- (16) 16: "imag" == "imag"
desc: imaginary part of complex-conjugate eigenvalues of Jacobian
eqv: "imag" "imagpart"
--- (17) 17: "vector hessian" == "vector hessian"
desc: 3x3x3 second-order vector derivative
eqv: "vh" "vhes" "vhessian" "vector hessian"
--- (18) 18: "div gradient" == "div gradient"
desc: gradient of divergence
eqv: "dg" "divgrad" "div gradient"
--- (19) 19: "curl gradient" == "curl gradient"
desc: 3x3 derivative of curl
eqv: "cg" "curlgrad" "curlg" "curljac" "curl gradient"
--- (20) 20: "curl norm gradient" == "curl norm gradient"
desc: gradient of curl norm
eqv: "cng" "curl norm gradient"
--- (21) 21: "normalized curl norm gradient" == "normalized curl norm gradient"
desc: normalized gradient of curl norm
eqv: "ncng" "norm curl norm gradient" "normalized curl norm gradient"
--- (22) 22: "helicity gradient" == "helicity gradient"
desc: gradient of helicity
eqv: "hg" "helg" "helgrad" "helicity gradient"
--- (23) 23: "directional helicity derivative" == "directional helicity derivative"
desc: directional derivative of helicity along flow
eqv: "dirhelderiv" "dhd" "ddh" "directional helicity derivative"
--- (24) 24: "projected helicity gradient" == "projected helicity gradient"
desc: projection of the helicity gradient onto plane orthogonal to flow
eqv: "phg" "projhel" "projhelgrad" "projected helicity gradient"
--- (25) 25: "gradient0" == "gradient0"
desc: gradient of 1st component of vector
eqv: "g0" "grad0" "gradient0"
--- (26) 26: "gradient1" == "gradient1"
desc: gradient of 2nd component of vector
eqv: "g1" "grad1" "gradient1"
--- (27) 27: "gradient2" == "gradient2"
desc: gradient of 3rd component of vector
eqv: "g2" "grad2" "gradient2"
--- (28) 28: "multigrad" == "multigrad"
desc: multi-gradient: sum of outer products of gradients
eqv: "mg" "multigrad"
--- (29) 29: "frob(multigrad)" == "frob(multigrad)"
desc: frob norm of multi-gradient
eqv: "mgfrob" "frob(multigrad)"
--- (30) 30: "multigrad eigenvalues" == "multigrad eigenvalues"
desc: eigenvalues of multi-gradient
eqv: "mgeval" "mg eval" "multigrad eigenvalues"
--- (31) 31: "multigrad eigenvectors" == "multigrad eigenvectors"
desc: eigenvectors of multi-gradient
eqv: "mgevec" "mg evec" "multigrad eigenvectors"

airEnum "sigma sampling strategy":
(is not case sensitive)
Values implicit; [1,3] valid
--- 0: "(unknown_sampling)"
--- 1: unisig == unisig
desc: uniform samples along sigma
eqv: "uniform-sigma" "unisigma" "unisig"
--- 2: unitau == unitau
desc: uniform samples along Lindeberg's tau
eqv: "uniform-tau" "unitau"
--- 3: optil2 == optil2
desc: optimal sampling (3D L2 image error and L2 error across scales)
eqv: "optimal-3d-l2l2" "optimal-l2l2" "optil2"

airEnum "colorspace":
(is not case sensitive)
Values implicit; [1,7] valid
--- 0: "(unknown)"
--- 1: HSV == HSV
desc: single hexcone
--- 2: HSL == HSL
desc: double hexcone
--- 3: RGB == RGB
desc: traditional device primaries
--- 4: XYZ == XYZ
desc: CIE 1931 XYZ space
--- 5: LAB == LAB
desc: CIE L*a*b*
--- 6: LUV == LUV
desc: CIE 1976 L*u*v*
--- 7: LCH == LCH
desc: polar coord(L*a*b*)

airEnum "measurement":
(is not case sensitive)
Values (5 valid) given explicitly
--- (0) 0: "(unknown measr)"
--- (1) 21: "min" == "min"
--- (2) 22: "max" == "max"
--- (3) 23: "mean" == "mean"
--- (4) 24: "median" == "median"
--- (5) 25: "mode" == "mode"

airEnum "limn space":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown space)"
--- 1: world == world
--- 2: view == view
--- 3: screen == screen
--- 4: device == device

airEnum "limn polydata info":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown info)"
--- 1: rgba == rgba
--- 2: norm == norm
--- 3: tex2 == tex2
--- 4: tang == tang

airEnum "limnCameraPathTrack":
(is not case sensitive)
Values implicit; [1,3] valid
--- 0: "(unknown limnCameraPathTrack)"
--- 1: from == from
desc: track through eye points, quaternions for camera orientation
eqv: "from" "fr"
--- 2: at == at
desc: track through look-at points, quaternions for camera orientation
eqv: "at" "look-at" "lookat"
--- 3: both == both
desc: track eye point, look-at point, and up vector with separate splines
eqv: "both"

airEnum "limnPrimitive":
(is not case sensitive)
Values implicit; [1,7] valid
--- 0: "(unknown limnPrimitive)"
--- 1: noop == noop
desc: no-op
eqv: "noop"
--- 2: triangles == triangles
desc: triangle soup
eqv: "triangles"
--- 3: tristrip == tristrip
desc: triangle strip
eqv: "tristrip"
--- 4: trifan == trifan
desc: triangle fan
eqv: "trifan"
--- 5: quads == quads
desc: quad soup
eqv: "quads"
--- 6: linestrip == linestrip
desc: line strip
eqv: "linestrip"
--- 7: lines == lines
desc: lines
eqv: "lines"

airEnum "spline-type":
(is not case sensitive)
Values implicit; [1,5] valid
--- 0: "(unknown_spline_type)"
--- 1: linear == linear
desc: simple linear interpolation between control points
eqv: "linear" "lin" "line" "tent"
--- 2: timewarp == timewarp
desc: pseudo-Hermite spline for warping time to uniform (integral) control point locations
eqv: "timewarp" "time-warp" "warp"
--- 3: hermite == hermite
desc: Hermite cubic interpolating spline
eqv: "hermite"
--- 4: cubic-bezier == cubic-bezier
desc: cubic Bezier spline
eqv: "cubicbezier" "cubic-bezier" "bezier" "bez"
--- 5: BC == BC
desc: Mitchell-Netravalli BC-family of cubic splines
eqv: "BC" "BC-spline"

airEnum "spline-info":
(is not case sensitive)
Values implicit; [1,6] valid
--- 0: "(unknown_spline_info)"
--- 1: scalar == scalar
desc: scalar
eqv: "scalar" "scale" "s" "t"
--- 2: 2vector == 2vector
desc: 2-vector
eqv: "2-vector" "2vector" "2vec" "2v" "v2" "vec2" "vector2" "vector-2"
--- 3: 3vector == 3vector
desc: 3-vector
eqv: "3-vector" "3vector" "3vec" "3v" "v3" "vec3" "vector3" "vector-3"
--- 4: normal == normal
desc: surface normal, interpolated in S^2
eqv: "normal" "norm" "n"
--- 5: 4vector == 4vector
desc: 4-vector, interpolated in R^4
eqv: "4-vector" "4vector" "4vec" "4v" "v4" "vec4" "vector4" "vector-4"
--- 6: quaternion == quaternion
desc: quaternion, interpolated in S^3
eqv: "quaternion" "quat" "q"

airEnum "jitter":
(is not case sensitive)
Values (4 valid) given explicitly
--- (0) -1: "(unknown_jitter)"
--- (1) 0: "none" == "none"
desc: nothing- samples are ALWAYS at center of region
eqv: "none"
--- (2) 1: "grid" == "grid"
desc: no jittering- samples are at regular grid vertices
eqv: "grid" "regular"
--- (3) 2: "jitter" == "jitter"
desc: normal jittering- samples are randomly located within grid cells
eqv: "jitter"
--- (4) 3: "random" == "random"
desc: samples are randomly located within region
eqv: "random"

airEnum "object type":
(is not case sensitive)
Values (12 valid) given explicitly
--- (0) -1: "(unknown_object)"
--- (1) 0: "sphere" == "sphere"
desc: sphere
eqv: "sphere"
--- (2) 1: "cylinder" == "cylinder"
desc: axis-aligned cylinder
eqv: "cylinder" "cylind" "rod"
--- (3) 2: "superquad" == "superquad"
desc: superquadric (actually, superellipsoid)
eqv: "superquad" "squad"
--- (4) 3: "cube" == "cube"
desc: unit cube, centered at the origin
eqv: "cube" "box"
--- (5) 4: "triangle" == "triangle"
desc: triangle
eqv: "triangle" "tri"
--- (6) 5: "rectangle" == "rectangle"
desc: rectangle
eqv: "rectangle" "rect"
--- (7) 6: "mesh" == "mesh"
desc: mesh of triangles
eqv: "mesh" "tri-mesh" "trimesh"
--- (8) 7: "isosurface" == "isosurface"
desc: isosurface of scalar volume
eqv: "isosurface"
--- (9) 8: "AABoundingBox" == "AABoundingBox"
desc: axis-aligned bounding box
eqv: "aabbox" "AABoundingBox"
--- (10) 9: "split" == "split"
desc: split
eqv: "split"
--- (11) 10: "list" == "list"
desc: list
eqv: "list"
--- (12) 11: "instance" == "instance"
desc: instance
eqv: "instance"

airEnum "matter":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown_matter)"
--- 1: phong == phong
desc: phong shaded surface
--- 2: glass == glass
desc: glass
--- 3: metal == metal
desc: metal
--- 4: light == light
desc: light emitter

airEnum "error":
(is not case sensitive)
Values implicit; [1,10] valid
--- 0: "(unknown_err)"
--- 1: Initialization == Initialization
--- 2: RenderBegin == RenderBegin
--- 3: ThreadCreate == ThreadCreate
--- 4: ThreadBegin == ThreadBegin
--- 5: RayBegin == RayBegin
--- 6: Sample == Sample
--- 7: RayEnd == RayEnd
--- 8: ThreadEnd == ThreadEnd
--- 9: ThreadJoin == ThreadJoin
--- 10: RenderEnd == RenderEnd

airEnum "format":
(is not case sensitive)
Values implicit; [1,11] valid
--- 0: "(unknown_feature)"
--- 1: isocontour == isocontour
desc: standard marching cubes surface
eqv: "isocontour"
--- 2: ridge surface == ridge surface
desc: ridge surface
eqv: "ridge surface" "ridgesurface" "rs"
--- 3: valley surface == valley surface
desc: valley surface
eqv: "valley surface" "valleysurface" "vs"
--- 4: ridge line == ridge line
desc: ridge line
eqv: "ridge line" "ridgeline" "rl"
--- 5: valley line == valley line
desc: valley line
eqv: "valley line" "valleyline" "vl"
--- 6: minimal surface == minimal surface
desc: minimal surface
eqv: "minimal surface" "mins"
--- 7: maximal surface == maximal surface
desc: maximal surface
eqv: "maximal surface" "maxs"
--- 8: OP ridge surface == OP ridge surface
desc: ridge surface using outer product rule
eqv: "OP ridge surface" "ridgesurfaceop" "rsop"
--- 9: T ridge surface == T ridge surface
desc: ridge surface using tensor T
eqv: "T ridge surface" "ridgesurfacet" "rst"
--- 10: OP valley surface == OP valley surface
desc: valley surface using outer product rule
eqv: "OP valley surface" "valleysurfaceop" "vsop"
--- 11: T valley surface == T valley surface
desc: valley surface using tensor T
eqv: "T valley surface" "valleysurfacet" "vst"

airEnum "anisotropy metric":
(is not case sensitive)
Values implicit; [1,29] valid
--- 0: "(unknown aniso)"
--- 1: Conf == Conf
--- 2: Cl1 == Cl1
--- 3: Cp1 == Cp1
--- 4: Ca1 == Ca1
--- 5: Clpmin1 == Clpmin1
--- 6: Cs1 == Cs1
--- 7: Ct1 == Ct1
--- 8: Cl2 == Cl2
--- 9: Cp2 == Cp2
--- 10: Ca2 == Ca2
--- 11: Clpmin2 == Clpmin2
--- 12: Cs2 == Cs2
--- 13: Ct2 == Ct2
--- 14: RA == RA
--- 15: FA == FA
--- 16: VF == VF
--- 17: B == B
--- 18: Q == Q
--- 19: R == R
--- 20: S == S
--- 21: Skew == Skew
--- 22: Mode == Mode
--- 23: Th == Th
--- 24: Omega == Omega
--- 25: Det == Det
--- 26: Tr == Tr
--- 27: eval0 == eval0
--- 28: eval1 == eval1
--- 29: eval2 == eval2

airEnum "interp type":
(is not case sensitive)
Values implicit; [1,11] valid
--- 0: "(unknown interp type)"
--- 1: lin == lin
eqv: "lin" "linear" "lerp"
--- 2: loglin == loglin
eqv: "loglin" "loglinear" "loglerp"
--- 3: affinv == affinv
eqv: "affinv"
--- 4: wang == wang
eqv: "wang"
--- 5: geoloxk == geoloxk
eqv: "geoloxk" "glk"
--- 6: geoloxr == geoloxr
eqv: "geoloxr" "glr"
--- 7: loxk == loxk
eqv: "loxk"
--- 8: loxr == loxr
eqv: "loxr"
--- 9: qgeoloxk == qgeoloxk
eqv: "qgeoloxk" "qglk"
--- 10: qgeoloxr == qgeoloxr
eqv: "qgeoloxr" "qglr"
--- 11: rtplin == rtplin
eqv: "rtplin"

airEnum "tenGage":
(is not case sensitive)
Values (207 valid) given explicitly
--- (0) 0: "(unknown tenGage)"
--- (1) 1: "tensor" == "tensor"
desc: tensor
eqv: "t" "ten" "tensor"
--- (2) 2: "confidence" == "confidence"
desc: confidence
eqv: "c" "conf" "confidence"
--- (3) 3: "trace" == "trace"
desc: trace
eqv: "tr" "trace"
--- (4) 4: "N" == "N"
desc: norm
eqv: "n" "norm" "r1"
--- (5) 5: "B" == "B"
desc: B
eqv: "b"
--- (6) 6: "det" == "det"
desc: determinant
eqv: "det"
--- (7) 7: "S" == "S"
desc: S
eqv: "s"
--- (8) 8: "Q" == "Q"
desc: Q
eqv: "q"
--- (9) 9: "FA" == "FA"
desc: FA
eqv: "fa"
--- (10) 10: "R" == "R"
desc: R
eqv: "r"
--- (11) 11: "mode" == "mode"
desc: mode
eqv: "mode" "m"
--- (12) 12: "theta" == "theta"
desc: theta
eqv: "th" "theta"
--- (13) 13: "modew" == "modew"
desc: warped mode
eqv: "modew" "mw"
--- (14) 14: "omega" == "omega"
desc: omega
eqv: "omega" "om"
--- (15) 15: "evals" == "evals"
desc: 3 eigenvalues
eqv: "eval" "evals"
--- (16) 16: "eval0" == "eval0"
desc: eigenvalue 0
eqv: "eval0"
--- (17) 17: "eval1" == "eval1"
desc: eigenvalue 1
eqv: "eval1"
--- (18) 18: "eval2" == "eval2"
desc: eigenvalue 2
eqv: "eval2"
--- (19) 19: "evecs" == "evecs"
desc: 3 eigenvectors
eqv: "evec" "evecs"
--- (20) 20: "evec0" == "evec0"
desc: eigenvector 0
eqv: "evec0"
--- (21) 21: "evec1" == "evec1"
desc: eigenvector 1
eqv: "evec1"
--- (22) 22: "evec2" == "evec2"
desc: eigenvector 2
eqv: "evec2"
--- (23) 23: "delnk2" == "delnk2"
desc: delnk2
eqv: "delnk2"
--- (24) 24: "delnk3" == "delnk3"
desc: delnk3
eqv: "delnk3" "delnr3"
--- (25) 25: "delnr1" == "delnr1"
desc: delnr1
eqv: "delnr1"
--- (26) 26: "delnr2" == "delnr2"
desc: delnr2
eqv: "delnr2"
--- (27) 27: "delnphi1" == "delnphi1"
desc: delnphi1
eqv: "delnphi1"
--- (28) 28: "delnphi2" == "delnphi2"
desc: delnphi2
eqv: "delnphi2"
--- (29) 29: "delnphi3" == "delnphi3"
desc: delnphi3
eqv: "delnphi3"
--- (30) 30: "tensor grad" == "tensor grad"
desc: tensor gradients
eqv: "tg" "tensor grad"
--- (31) 31: "tensor grad mag" == "tensor grad mag"
desc: tensor gradients magnitudes
eqv: "tgm" "tensor grad mag"
--- (32) 32: "tensor grad mag mag" == "tensor grad mag mag"
desc: tensor gradients magnitude magnitudes
eqv: "tgmm" "tensor grad mag mag"
--- (33) 33: "trace grad vec" == "trace grad vec"
desc: trace grad vec
eqv: "trgv" "tracegv" "trace grad vec"
--- (34) 34: "trace grad mag" == "trace grad mag"
desc: trace grad mag
eqv: "trgm" "tracegm" "trace grad mag"
--- (35) 35: "trace normal" == "trace normal"
desc: trace normal
eqv: "trn" "tracen" "trace normal"
--- (36) 36: "norm grad vec" == "norm grad vec"
desc: norm grad vec
eqv: "ngv" "r1gv" "normgv" "norm grad vec"
--- (37) 37: "norm grad mag" == "norm grad mag"
desc: norm grad mag
eqv: "ngm" "r1gm" "normgm" "norm grad mag"
--- (38) 38: "norm normal" == "norm normal"
desc: norm normal
eqv: "nn" "r1n" "normn" "norm normal"
--- (39) 39: "B grad vec" == "B grad vec"
desc: B grad vec
eqv: "bgv" "b grad vec"
--- (40) 40: "B grad mag" == "B grad mag"
desc: B grad mag
eqv: "bgm" "b grad mag"
--- (41) 41: "B normal" == "B normal"
desc: B normal
eqv: "bn" "b normal"
--- (42) 42: "det grad vec" == "det grad vec"
desc: determinant grad vec
eqv: "detgv" "det grad vec"
--- (43) 43: "det grad mag" == "det grad mag"
desc: determinant grad mag
eqv: "detgm" "det grad mag"
--- (44) 44: "det normal" == "det normal"
desc: determinant normal
eqv: "detn" "det normal"
--- (45) 45: "S grad vec" == "S grad vec"
desc: S grad vec
eqv: "sgv" "s grad vec"
--- (46) 46: "S grad mag" == "S grad mag"
desc: S grad mag
eqv: "sgm" "s grad mag"
--- (47) 47: "S normal" == "S normal"
desc: S normal
eqv: "sn" "s normal"
--- (48) 48: "Q grad vec" == "Q grad vec"
desc: Q grad vec
eqv: "qgv" "q grad vec"
--- (49) 49: "Q grad mag" == "Q grad mag"
desc: Q grad mag
eqv: "qgm" "q grad mag"
--- (50) 50: "Q normal" == "Q normal"
desc: Q normal
eqv: "qn" "q normal"
--- (51) 51: "FA grad vec" == "FA grad vec"
desc: FA grad vec
eqv: "fagv" "fa grad vec"
--- (52) 52: "FA grad mag" == "FA grad mag"
desc: FA grad mag
eqv: "fagm" "fa grad mag"
--- (53) 53: "FA normal" == "FA normal"
desc: FA normal
eqv: "fan" "fa normal"
--- (54) 54: "R grad vec" == "R grad vec"
desc: R grad vec
eqv: "rgv" "r grad vec"
--- (55) 55: "R grad mag" == "R grad mag"
desc: R grad mag
eqv: "rgm" "r grad mag"
--- (56) 56: "R normal" == "R normal"
desc: R normal
eqv: "rn" "r normal"
--- (57) 57: "mode grad vec" == "mode grad vec"
desc: mode grad vec
eqv: "mgv" "mode grad vec"
--- (58) 58: "mode grad mag" == "mode grad mag"
desc: mode grad mag
eqv: "mgm" "mode grad mag"
--- (59) 59: "mode normal" == "mode normal"
desc: mode normal
eqv: "mn" "mode normal"
--- (60) 60: "theta grad vec" == "theta grad vec"
desc: theta grad vec
eqv: "thgv" "th grad vec" "theta grad vec"
--- (61) 61: "theta grad mag" == "theta grad mag"
desc: theta grad mag
eqv: "thgm" "th grad mag" "theta grad mag"
--- (62) 62: "theta normal" == "theta normal"
desc: theta normal
eqv: "thn" "th normal" "theta normal"
--- (63) 63: "omega grad vec" == "omega grad vec"
desc: omega grad vec
eqv: "omgv" "omega grad vec"
--- (64) 64: "omega grad mag" == "omega grad mag"
desc: omega grad mag
eqv: "omgm" "omega grad mag"
--- (65) 65: "omega normal" == "omega normal"
desc: omega normal
eqv: "omn" "omega normal"
--- (66) 66: "invariant K gradients" == "invariant K gradients"
desc: invariant K gradients
eqv: "ikgs" "invariant K gradients"
--- (67) 67: "invariant K gradient mags" == "invariant K gradient mags"
desc: invariant K gradient mags
eqv: "ikgms" "invariant K gradient mags"
--- (68) 68: "invariant R gradients" == "invariant R gradients"
desc: invariant R gradients
eqv: "irgs" "invariant R gradients"
--- (69) 69: "invariant R gradient mags" == "invariant R gradient mags"
desc: invariant R gradient mags
eqv: "irgms" "invariant R gradient mags"
--- (70) 70: "rotation tangents" == "rotation tangents"
desc: rotation tangents
eqv: "rts" "rotation tangents"
--- (71) 71: "rotation tangent mags" == "rotation tangent mags"
desc: rotation tangent mags
eqv: "rtms" "rotation tangent mags"
--- (72) 72: "eigenvalue gradients" == "eigenvalue gradients"
desc: eigenvalue gradients
eqv: "evgs" "eigenvalue gradients"
--- (73) 73: "Cl1" == "Cl1"
desc: linear anisotropy (1)
eqv: "cl1"
--- (74) 74: "Cp1" == "Cp1"
desc: planar anisotropy (1)
eqv: "cp1"
--- (75) 75: "Ca1" == "Ca1"
desc: linear+planar anisotropy (1)
eqv: "ca1"
--- (76) 76: "Clpmin1" == "Clpmin1"
desc: min(linear,planar) anisotropy (1)
eqv: "clpmin1"
--- (77) 77: "Cl2" == "Cl2"
desc: linear anisotropy (2)
eqv: "cl2"
--- (78) 78: "Cp2" == "Cp2"
desc: planar anisotropy (2)
eqv: "cp2"
--- (79) 79: "Ca2" == "Ca2"
desc: linear+planar anisotropy (2)
eqv: "ca2"
--- (80) 80: "Clpmin2" == "Clpmin2"
desc: min(linear,planar) anisotropy (2)
eqv: "clpmin2"
--- (81) 81: "hessian" == "hessian"
desc: hessian
eqv: "hess" "hessian"
--- (82) 82: "trace hessian" == "trace hessian"
desc: trace hessian
eqv: "trhess" "trace hessian"
--- (83) 83: "trace hessian evals" == "trace hessian evals"
desc: trace hessian evals
eqv: "trhesseval" "trace hessian evals"
--- (84) 84: "trace hessian eval 0" == "trace hessian eval 0"
desc: trace hessian eval 0
eqv: "trhesseval0" "trace hessian eval 0"
--- (85) 85: "trace hessian eval 1" == "trace hessian eval 1"
desc: trace hessian eval 1
eqv: "trhesseval1" "trace hessian eval 1"
--- (86) 86: "trace hessian eval 2" == "trace hessian eval 2"
desc: trace hessian eval 2
eqv: "trhesseval2" "trace hessian eval 2"
--- (87) 87: "trace hessian evecs" == "trace hessian evecs"
desc: trace hessian evecs
eqv: "trhessevec" "trace hessian evecs"
--- (88) 88: "trace hessian evec 0" == "trace hessian evec 0"
desc: trace hessian evec 0
eqv: "trhessevec0" "trace hessian evec 0"
--- (89) 89: "trace hessian evec 1" == "trace hessian evec 1"
desc: trace hessian evec 1
eqv: "trhessevec1" "trace hessian evec 1"
--- (90) 90: "trace hessian evec 2" == "trace hessian evec 2"
desc: trace hessian evec 2
eqv: "trhessevec2" "trace hessian evec 2"
--- (91) 91: "trace hessian frob" == "trace hessian frob"
desc: trace hessian frob
eqv: "trhessfrob" "trace hessian frob"
--- (92) 92: "B hessian" == "B hessian"
desc: B hessian
eqv: "bhess" "B hessian"
--- (93) 93: "det hessian" == "det hessian"
desc: det hessian
eqv: "dethess" "det hessian"
--- (94) 94: "S hessian" == "S hessian"
desc: S hessian
eqv: "shess" "S hessian"
--- (95) 95: "Q hessian" == "Q hessian"
desc: Q hessian
eqv: "qhess" "Q hessian"
--- (96) 96: "FA hessian" == "FA hessian"
desc: FA hessian
eqv: "fahess" "FA hessian"
--- (97) 97: "FA hessian evals" == "FA hessian evals"
desc: FA hessian evals
eqv: "fahesseval" "FA hessian evals"
--- (98) 98: "FA hessian eval 0" == "FA hessian eval 0"
desc: FA hessian eval 0
eqv: "fahesseval0" "FA hessian eval 0"
--- (99) 99: "FA hessian eval 1" == "FA hessian eval 1"
desc: FA hessian eval 1
eqv: "fahesseval1" "FA hessian eval 1"
--- (100) 100: "FA hessian eval 2" == "FA hessian eval 2"
desc: FA hessian eval 2
eqv: "fahesseval2" "FA hessian eval 2"
--- (101) 101: "FA hessian evecs" == "FA hessian evecs"
desc: FA hessian evecs
eqv: "fahessevec" "FA hessian evecs"
--- (102) 102: "FA hessian evec 0" == "FA hessian evec 0"
desc: FA hessian evec 0
eqv: "fahessevec0" "FA hessian evec 0"
--- (103) 103: "FA hessian evec 1" == "FA hessian evec 1"
desc: FA hessian evec 1
eqv: "fahessevec1" "FA hessian evec 1"
--- (104) 104: "FA hessian evec 2" == "FA hessian evec 2"
desc: FA hessian evec 2
eqv: "fahessevec2" "FA hessian evec 2"
--- (105) 105: "FA hessian frob" == "FA hessian frob"
desc: FA hessian frob
eqv: "fahessfrob" "FA hessian frob"
--- (106) 106: "FA ridge surface strength" == "FA ridge surface strength"
desc: FA ridge surface strength
eqv: "farsurfstrn" "FA ridge surface strength"
--- (107) 107: "FA valley surface strength" == "FA valley surface strength"
desc: FA valley surface strength
eqv: "favsurfstrn" "FA valley surface strength"
--- (108) 108: "FA laplacian" == "FA laplacian"
desc: FA laplacian
eqv: "falapl" "FA laplacian"
--- (109) 109: "FA hessian eval mode" == "FA hessian eval mode"
desc: FA hessian eval mode
eqv: "fahessevalmode" "FA hessian eval mode"
--- (110) 110: "FA ridge line alignment" == "FA ridge line alignment"
desc: FA ridge line alignment
eqv: "farlinealn" "FA ridge line alignment"
--- (111) 111: "FA ridge surface alignment" == "FA ridge surface alignment"
desc: FA ridge surface alignment
eqv: "farsurfaln" "FA ridge surface alignment"
--- (112) 112: "FA 2nd DD" == "FA 2nd DD"
desc: FA 2nd DD
eqv: "fa2d" "fa2dd" "FA 2nd DD"
--- (113) 113: "FA geometry tensor" == "FA geometry tensor"
desc: FA geometry tensor
eqv: "fagten" "FA geometry tensor"
--- (114) 114: "FA kappa1" == "FA kappa1"
desc: FA kappa1
eqv: "fak1" "FA kappa1"
--- (115) 115: "FA kappa2" == "FA kappa2"
desc: FA kappa2
eqv: "fak2" "FA kappa2"
--- (116) 116: "FA total curv" == "FA total curv"
desc: FA total curv
eqv: "fatc" "FA total curv"
--- (117) 117: "FA shape index" == "FA shape index"
desc: FA shape index
eqv: "fasi" "FA shape index"
--- (118) 118: "FA mean curv" == "FA mean curv"
desc: FA mean curv
eqv: "famc" "FA mean curv"
--- (119) 119: "FA gauss curv" == "FA gauss curv"
desc: FA gauss curv
eqv: "fagc" "FA gauss curv"
--- (120) 120: "FA curv dir1" == "FA curv dir1"
desc: FA curv dir1
eqv: "facdir1" "FA curv dir1"
--- (121) 121: "FA curv dir2" == "FA curv dir2"
desc: FA curv dir2
eqv: "facdir2" "FA curv dir2"
--- (122) 122: "FA flowline curv" == "FA flowline curv"
desc: FA flowline curv
eqv: "fafc" "FA flowline curv"
--- (123) 123: "R hessian" == "R hessian"
desc: R hessian
eqv: "rhess" "R hessian"
--- (124) 124: "mode hessian" == "mode hessian"
desc: mode hessian
eqv: "mhess" "mode hessian"
--- (125) 125: "mode hessian evals" == "mode hessian evals"
desc: mode hessian evals
eqv: "mhesseval" "mode hessian evals"
--- (126) 126: "mode hessian eval 0" == "mode hessian eval 0"
desc: mode hessian eval 0
eqv: "mhesseval0" "mode hessian eval 0"
--- (127) 127: "mode hessian eval 1" == "mode hessian eval 1"
desc: mode hessian eval 1
eqv: "mhesseval1" "mode hessian eval 1"
--- (128) 128: "mode hessian eval 2" == "mode hessian eval 2"
desc: mode hessian eval 2
eqv: "mhesseval2" "mode hessian eval 2"
--- (129) 129: "mode hessian evecs" == "mode hessian evecs"
desc: mode hessian evecs
eqv: "mhessevec" "mode hessian evecs"
--- (130) 130: "mode hessian evec 0" == "mode hessian evec 0"
desc: mode hessian evec 0
eqv: "mhessevec0" "mode hessian evec 0"
--- (131) 131: "mode hessian evec 1" == "mode hessian evec 1"
desc: mode hessian evec 1
eqv: "mhessevec1" "mode hessian evec 1"
--- (132) 132: "mode hessian evec 2" == "mode hessian evec 2"
desc: mode hessian evec 2
eqv: "mhessevec2" "mode hessian evec 2"
--- (133) 133: "mode hessian frob" == "mode hessian frob"
desc: mode hessian frob
eqv: "mhessfrob" "mode hessian frob"
--- (134) 134: "omega hessian" == "omega hessian"
desc: omega hessian
eqv: "omhess" "omega hessian"
--- (135) 135: "omega hessian evals" == "omega hessian evals"
desc: omega hessian evals
eqv: "omhesseval" "omega hessian evals"
--- (136) 136: "omega hessian eval 0" == "omega hessian eval 0"
desc: omega hessian eval 0
eqv: "omhesseval0" "omega hessian eval 0"
--- (137) 137: "omega hessian eval 1" == "omega hessian eval 1"
desc: omega hessian eval 1
eqv: "omhesseval1" "omega hessian eval 1"
--- (138) 138: "omega hessian eval 2" == "omega hessian eval 2"
desc: omega hessian eval 2
eqv: "omhesseval2" "omega hessian eval 2"
--- (139) 139: "omega hessian evecs" == "omega hessian evecs"
desc: omega hessian evecs
eqv: "omhessevec" "omega hessian evecs"
--- (140) 140: "omega hessian evec 0" == "omega hessian evec 0"
desc: omega hessian evec 0
eqv: "omhessevec0" "omega hessian evec 0"
--- (141) 141: "omega hessian evec 1" == "omega hessian evec 1"
desc: omega hessian evec 1
eqv: "omhessevec1" "omega hessian evec 1"
--- (142) 142: "omega hessian evec 2" == "omega hessian evec 2"
desc: omega hessian evec 2
eqv: "omhessevec2" "omega hessian evec 2"
--- (143) 143: "omega laplacian" == "omega laplacian"
desc: omega laplacian
eqv: "omlapl" "omega laplacian"
--- (144) 144: "omega 2nd DD" == "omega 2nd DD"
desc: omega 2nd DD
eqv: "om2d" "om2dd" "omega 2nd DD"
--- (145) 145: "omega hessian contracted with ten evec 0" == "omega hessian contracted with ten evec 0"
desc: omega hessian contracted with ten evec 0
eqv: "omhesscte0" "omega hessian contracted with ten evec 0"
--- (146) 146: "omega hessian contracted with ten evec 1" == "omega hessian contracted with ten evec 1"
desc: omega hessian contracted with ten evec 1
eqv: "omhesscte1" "omega hessian contracted with ten evec 1"
--- (147) 147: "omega hessian contracted with ten evec 2" == "omega hessian contracted with ten evec 2"
desc: omega hessian contracted with ten evec 2
eqv: "omhesscte2" "omega hessian contracted with ten evec 2"
--- (148) 148: "trace gradvec dot evec0" == "trace gradvec dot evec0"
desc: trace gradvec dot evec0
eqv: "trgvdotevec0" "trace gradvec dot evec0"
--- (149) 149: "diffusionAlign(trace)" == "diffusionAlign(trace)"
desc: diffusion align of trace
eqv: "datr" "diffusionAlign(trace)"
--- (150) 150: "diffusionFraction(trace)" == "diffusionFraction(trace)"
desc: diffusion fraction of trace
eqv: "dftr" "diffusionFraction(trace)"
--- (151) 151: "FA gradvec dot evec0" == "FA gradvec dot evec0"
desc: FA gradvec dot evec0
eqv: "fagvdotevec0" "FA gradvec dot evec0"
--- (152) 152: "diffusionAlign(FA)" == "diffusionAlign(FA)"
desc: diffusion align of FA
eqv: "dafa" "diffusionAlign(FA)"
--- (153) 153: "diffusionFraction(FA)" == "diffusionFraction(FA)"
desc: diffusion fraction of FA
eqv: "dffa" "diffusionFraction(FA)"
--- (154) 154: "omega gradvec dot evec0" == "omega gradvec dot evec0"
desc: omega gradvec dot evec0
eqv: "omgvdotevec0" "omega gradvec dot evec0"
--- (155) 155: "diffusionAlign(Omega)" == "diffusionAlign(Omega)"
desc: diffusion align of omega
eqv: "daom" "diffusionAlign(Omega)"
--- (156) 156: "diffusionFraction(Omega)" == "diffusionFraction(Omega)"
desc: diffusion fraction of omega
eqv: "dfom" "diffusionFraction(Omega)"
--- (157) 157: "conf gradvec dot evec0" == "conf gradvec dot evec0"
desc: conf gradvec dot evec0
eqv: "confgvdotevec0" "conf gradvec dot evec0"
--- (158) 158: "diffusionAlign(conf)" == "diffusionAlign(conf)"
desc: diffusion align of conf
eqv: "daconf" "diffusionAlign(Conf)"
--- (159) 159: "diffusionFraction(conf)" == "diffusionFraction(conf)"
desc: diffusion fraction of conf
eqv: "dfconf" "diffusionFraction(Conf)"
--- (160) 160: "cov" == "cov"
desc: covariance
eqv: "cov"
--- (161) 161: "covr" == "covr"
desc: covarianceR
eqv: "covr"
--- (162) 162: "covk" == "covk"
desc: covarianceK
eqv: "covk"
--- (163) 163: "logeuclid" == "logeuclid"
desc: log-euclidean
eqv: "logeuclidean" "logeuc" "logeuclid"
--- (164) 164: "qglk" == "qglk"
desc: QuatGeoLoxK
eqv: "quatgeoloxk" "qglk"
--- (165) 165: "qglr" == "qglr"
desc: QuatGeoLoxR
eqv: "quatgeoloxr" "qglr"
--- (166) 166: "rtpl" == "rtpl"
desc: RThetaPhiLinear interp
eqv: "rtpl"
--- (167) 167: "cl1gv" == "cl1gv"
desc: gradient vector of cl1
eqv: "cl1gv"
--- (168) 168: "cl1gm" == "cl1gm"
desc: gradient magnitude of cl1
eqv: "cl1gm"
--- (169) 169: "cl1gn" == "cl1gn"
desc: normal of cl1
eqv: "cl1gn"
--- (170) 170: "cp1gv" == "cp1gv"
desc: gradient vector of cp1
eqv: "cp1gv"
--- (171) 171: "cp1gm" == "cp1gm"
desc: gradient magnitude of cp1
eqv: "cp1gm"
--- (172) 172: "cp1gn" == "cp1gn"
desc: normal of cp1
eqv: "cp1gn"
--- (173) 173: "ca1gv" == "ca1gv"
desc: gradient vector of ca1
eqv: "ca1gv"
--- (174) 174: "ca1gm" == "ca1gm"
desc: gradient magnitude of ca1
eqv: "ca1gm"
--- (175) 175: "ca1gn" == "ca1gn"
desc: normal of ca1
eqv: "ca1gn"
--- (176) 176: "tgrote" == "tgrote"
desc: all tensor component gradients, starting with confidence gradient, rotated such that eigenvalue derivatives are on the diagonal
eqv: "tgrote"
--- (177) 177: "eval hessian" == "eval hessian"
desc: eigenvalue hessians
eqv: "evalhess" "eval hessian"
--- (178) 178: "cl1 hessian" == "cl1 hessian"
desc: cl1 hessian
eqv: "cl1hess" "cl1 hessian"
--- (179) 179: "cl1 hessian evals" == "cl1 hessian evals"
desc: cl1 hessian evals
eqv: "cl1hesseval" "cl1 hessian evals"
--- (180) 180: "cl1 hessian eval 0" == "cl1 hessian eval 0"
desc: cl1 hessian eval 0
eqv: "cl1hesseval0" "cl1 hessian eval 0"
--- (181) 181: "cl1 hessian eval 1" == "cl1 hessian eval 1"
desc: cl1 hessian eval 1
eqv: "cl1hesseval1" "cl1 hessian eval 1"
--- (182) 182: "cl1 hessian eval 2" == "cl1 hessian eval 2"
desc: cl1 hessian eval 2
eqv: "cl1hesseval2" "cl1 hessian eval 2"
--- (183) 183: "cl1 hessian evecs" == "cl1 hessian evecs"
desc: cl1 hessian evecs
eqv: "cl1hessevec" "cl1 hessian evecs"
--- (184) 184: "cl1 hessian evec 0" == "cl1 hessian evec 0"
desc: cl1 hessian evec 0
eqv: "cl1hessevec0" "cl1 hessian evec 0"
--- (185) 185: "cl1 hessian evec 1" == "cl1 hessian evec 1"
desc: cl1 hessian evec 1
eqv: "cl1hessevec1" "cl1 hessian evec 1"
--- (186) 186: "cl1 hessian evec 2" == "cl1 hessian evec 2"
desc: cl1 hessian evec 2
eqv: "cl1hessevec2" "cl1 hessian evec 2"
--- (187) 187: "cp1 hessian" == "cp1 hessian"
desc: cp1 hessian
eqv: "cp1hess" "cp1 hessian"
--- (188) 188: "cp1 hessian evals" == "cp1 hessian evals"
desc: cp1 hessian evals
eqv: "cp1hesseval" "cp1 hessian evals"
--- (189) 189: "cp1 hessian eval 0" == "cp1 hessian eval 0"
desc: cp1 hessian eval 0
eqv: "cp1hesseval0" "cp1 hessian eval 0"
--- (190) 190: "cp1 hessian eval 1" == "cp1 hessian eval 1"
desc: cp1 hessian eval 1
eqv: "cp1hesseval1" "cp1 hessian eval 1"
--- (191) 191: "cp1 hessian eval 2" == "cp1 hessian eval 2"
desc: cp1 hessian eval 2
eqv: "cp1hesseval2" "cp1 hessian eval 2"
--- (192) 192: "cp1 hessian evecs" == "cp1 hessian evecs"
desc: cp1 hessian evecs
eqv: "cp1hessevec" "cp1 hessian evecs"
--- (193) 193: "cp1 hessian evec 0" == "cp1 hessian evec 0"
desc: cp1 hessian evec 0
eqv: "cp1hessevec0" "cp1 hessian evec 0"
--- (194) 194: "cp1 hessian evec 1" == "cp1 hessian evec 1"
desc: cp1 hessian evec 1
eqv: "cp1hessevec1" "cp1 hessian evec 1"
--- (195) 195: "cp1 hessian evec 2" == "cp1 hessian evec 2"
desc: cp1 hessian evec 2
eqv: "cp1hessevec2" "cp1 hessian evec 2"
--- (196) 196: "ca1 hessian" == "ca1 hessian"
desc: ca1 hessian
eqv: "ca1hess" "ca1 hessian"
--- (197) 197: "ca1 hessian evals" == "ca1 hessian evals"
desc: ca1 hessian evals
eqv: "ca1hesseval" "ca1 hessian evals"
--- (198) 198: "ca1 hessian eval 0" == "ca1 hessian eval 0"
desc: ca1 hessian eval 0
eqv: "ca1hesseval0" "ca1 hessian eval 0"
--- (199) 199: "ca1 hessian eval 1" == "ca1 hessian eval 1"
desc: ca1 hessian eval 1
eqv: "ca1hesseval1" "ca1 hessian eval 1"
--- (200) 200: "ca1 hessian eval 2" == "ca1 hessian eval 2"
desc: ca1 hessian eval 2
eqv: "ca1hesseval2" "ca1 hessian eval 2"
--- (201) 201: "ca1 hessian evecs" == "ca1 hessian evecs"
desc: ca1 hessian evecs
eqv: "ca1hessevec" "ca1 hessian evecs"
--- (202) 202: "ca1 hessian evec 0" == "ca1 hessian evec 0"
desc: ca1 hessian evec 0
eqv: "ca1hessevec0" "ca1 hessian evec 0"
--- (203) 203: "ca1 hessian evec 1" == "ca1 hessian evec 1"
desc: ca1 hessian evec 1
eqv: "ca1hessevec1" "ca1 hessian evec 1"
--- (204) 204: "ca1 hessian evec 2" == "ca1 hessian evec 2"
desc: ca1 hessian evec 2
eqv: "ca1hessevec2" "ca1 hessian evec 2"
--- (205) 205: "fiber curving index" == "fiber curving index"
desc: fiber curving
eqv: "fcurv" "fibcurv" "fiber curving" "fiber curving index"
--- (206) 206: "fiber dispersion index" == "fiber dispersion index"
desc: fiber dispersion
eqv: "fdisp" "fibdisp" "fiber dispersion" "fiber dispersion index"
--- (207) 207: "anisotropies" == "anisotropies"
desc: anisotropies
eqv: "an" "aniso" "anisotropies"

airEnum "tenFiberType":
(is not case sensitive)
Values implicit; [1,6] valid
--- 0: "(unknown tenFiberType)"
--- 1: evec0 == evec0
desc: simply follow principal eigenvector
eqv: "ev0" "evec0"
--- 2: evec1 == evec1
desc: follow medium eigenvector
eqv: "ev1" "evec1"
--- 3: evec2 == evec2
desc: follow minor eigenvector
eqv: "ev2" "evec2"
--- 4: tensorline == tensorline
desc: Weinstein-Kindlmann tensorlines
eqv: "tline" "tensorline"
--- 5: pureline == pureline
desc: based on tensor multiplication only
eqv: "pline" "pureline"
--- 6: zhukov == zhukov
desc: Zhukov's oriented tensors
eqv: "z" "zhukov"

airEnum "tenDwiFiberType":
(is not case sensitive)
Values implicit; [1,3] valid
--- 0: "(unknown tenDwiFiberType)"
--- 1: 1evec0 == 1evec0
desc: single tensor evec0-based
eqv: "1evec0" "1e0"
--- 2: 2evec0 == 2evec0
desc: two-tensor evec0-based
eqv: "2evec0" "2e0"
--- 3: 12BlendEvec0 == 12BlendEvec0
desc: parameterized blend between 1- and 2-tensor fits
eqv: "12BlendEvec0" "12be0"

airEnum "fiber stopping criteria":
(is not case sensitive)
Values implicit; [1,10] valid
--- 0: "(unknown tenFiberStop)"
--- 1: aniso == aniso
desc: anisotropy went below threshold
eqv: "aniso"
--- 2: length == length
desc: fiber length exceeded normalcy bounds
eqv: "length" "len"
--- 3: steps == steps
desc: number of steps along fiber too many
eqv: "steps"
--- 4: confidence == confidence
desc: tensor "confidence" value too low
eqv: "confidence" "conf" "c"
--- 5: radius == radius
desc: radius of curvature of path got too small
eqv: "radius"
--- 6: bounds == bounds
desc: fiber went outside bounding box
eqv: "bounds"
--- 7: fraction == fraction
desc: fractional constituency of tracked tensor got too small
eqv: "fraction" "frac" "f"
--- 8: stub == stub
desc: neither fiber half got anywhere; fiber has single vert
eqv: "stub"
--- 9: minlen == minlen
desc: whole fiber has insufficient length
eqv: "minlen" "minlength"
--- 10: minsteps == minsteps
desc: whole fiber has too few numbers of steps
eqv: "minsteps" "minnumsteps"

airEnum "fiber integration method":
(is not case sensitive)
Values implicit; [1,3] valid
--- 0: "(unknown tenFiberIntg)"
--- 1: euler == euler
desc: plain Euler
eqv: "euler"
--- 2: midpoint == midpoint
desc: midpoint method, 2nd order Runge-Kutta
eqv: "midpoint" "rk2"
--- 3: rk4 == rk4
desc: 4rth order Runge-Kutta
eqv: "rk4"

airEnum "tenGlyphType":
(is not case sensitive)
Values implicit; [1,6] valid
--- 0: "(unknown tenGlyphType)"
--- 1: box == box
desc: box/cube (rectangular prisms)
eqv: "b" "box"
--- 2: sphere == sphere
desc: sphere (ellipsoids)
eqv: "s" "sph" "sphere"
--- 3: cylinder == cylinder
desc: cylinders aligned along major eigenvector
eqv: "c" "cyl" "cylind" "cylinder"
--- 4: superquad == superquad
desc: superquadric (superellipsoids)
eqv: "q" "superq" "sqd" "superquad" "superquadric"
--- 5: betterquad == betterquad
desc: better superquadric
eqv: "bqd" "betterquad"
--- 6: polarplot == polarplot
desc: polar plot
eqv: "pplot" "polarplot"

airEnum "single-tensor-estimation":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown tenEstimate1Method)"
--- 1: LLS == LLS
desc: linear least-squares fit of log(DWI)
--- 2: WLS == WLS
desc: weighted least-squares fit of log(DWI)
--- 3: NLS == NLS
desc: non-linear least-squares fit of DWI
--- 4: MLE == MLE
desc: maximum likelihood estimate from DWI

airEnum "two-tensor-estimation":
(is not case sensitive)
Values implicit; [1,2] valid
--- 0: "(unknown tenEstimate2Method)"
--- 1: QSegLLS == QSegLLS
desc: Q-ball segmentation
--- 2: Peled == Peled
desc: Peled

airEnum "tenTripleType":
(is not case sensitive)
Values implicit; [1,9] valid
--- 0: "(unknown tenTriple)"
--- 1: eigenvalue == eigenvalue
desc: eigenvalues sorted in descending order
eqv: "eigenvalue" "eval" "ev"
--- 2: moment == moment
desc: central moments (mu1,mu2,mu3)
eqv: "moment" "mu"
--- 3: XYZ == XYZ
desc: rotation of evals, like Bahn 1999 JMR:141(68-77)
eqv: "XYZ"
--- 4: RThetaZ == RThetaZ
desc: cylindrical coords of rotated evals
eqv: "RThetaZ" "RThZ" "rtz"
--- 5: RThetaPhi == RThetaPhi
desc: spherical coords of rotated evals
eqv: "RThetaPhi" "RThPh" "rtp"
--- 6: J == J
desc: principal invariants (J1,J2,J3)
eqv: "J"
--- 7: K == K
desc: cylindrical invariants (K1,K2,K3)
eqv: "K"
--- 8: R == R
desc: spherical invariants (R1,R2,R3)
eqv: "R"
--- 9: wheelParms == wheelParms
desc: eigenvalue wheel (center,radius,angle)
eqv: "wheelParm" "wheelParms" "WP"

airEnum "tenDwiGage":
(is not case sensitive)
Values (35 valid) given explicitly
--- (0) 0: "(unknown tenDwiGage)"
--- (1) 1: "all" == "all"
--- (2) 2: "b0" == "b0"
--- (3) 3: "jdwi" == "jdwi"
--- (4) 4: "adc" == "adc"
--- (5) 5: "mdwi" == "mdwi"
--- (6) 6: "tlls" == "tlls"
--- (7) 7: "tllserr" == "tllserr"
--- (8) 8: "tllserrlog" == "tllserrlog"
--- (9) 9: "tllslike" == "tllslike"
--- (10) 10: "twls" == "twls"
--- (11) 11: "twlserr" == "twlserr"
--- (12) 12: "twlserrlog" == "twlserrlog"
--- (13) 13: "twlslike" == "twlslike"
--- (14) 14: "tnls" == "tnls"
--- (15) 15: "tnlserr" == "tnlserr"
--- (16) 16: "tnlserrlog" == "tnlserrlog"
--- (17) 17: "tnlslike" == "tnlslike"
--- (18) 18: "tmle" == "tmle"
--- (19) 19: "tmleerr" == "tmleerr"
--- (20) 20: "tmleerrlog" == "tmleerrlog"
--- (21) 21: "tmlelike" == "tmlelike"
--- (22) 22: "t" == "t"
--- (23) 23: "terr" == "terr"
--- (24) 24: "terrlog" == "terrlog"
--- (25) 25: "tlike" == "tlike"
--- (26) 26: "c" == "c"
--- (27) 27: "fa" == "fa"
--- (28) 28: "adwie" == "adwie"
--- (29) 29: "2qs" == "2qs"
--- (30) 30: "2qserr" == "2qserr"
--- (31) 31: "2qsnerr" == "2qsnerr"
--- (32) 32: "2peled" == "2peled"
--- (33) 33: "2pelederr" == "2pelederr"
--- (34) 34: "2pelednerr" == "2pelednerr"
--- (35) 35: "2peledlminfo" == "2peledlminfo"

airEnum "interaction type":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown_inter)"
--- 1: justR == justR
eqv: "r" "justr"
--- 2: univariate == univariate
eqv: "univariate" "univar" "uni"
--- 3: separable == separable
eqv: "separable" "separ" "sep"
--- 4: additive == additive
eqv: "additive" "add"

airEnum "energy":
(is not case sensitive)
Values implicit; [1,13] valid
--- 0: "(unknown_energy)"
--- 1: spring == spring
desc: Hooke's law-based potential, with a tunable region of attraction
--- 2: gauss == gauss
desc: Gaussian potential
--- 3: bspln == bspln
desc: uniform cubic B-spline basis function
--- 4: butter == butter
desc: like a Gaussian, but a lot wider
--- 5: cotan == cotan
desc: Cotangent-based potential (from Meyer et al. SMI '05)
--- 6: cubic == cubic
desc: Cubic thing
--- 7: quartic == quartic
desc: Quartic thing
--- 8: cwell == cwell
desc: Piecewice cubic with tunable well location and depth
--- 9: bwell == bwell
desc: Better piecewice cubic with tunable well location and depth
--- 10: qwell == qwell
desc: Single quartic with tunable well location
--- 11: hwell == hwell
desc: Single heptic with tunable well location
--- 12: zero == zero
desc: no energy
--- 13: bparab == bparab
desc: butterworth-windowed spatial repel and scale attract

airEnum "pullInfo":
(is not case sensitive)
Values (23 valid) given explicitly
--- (0) 0: "(unknown pullInfo)"
--- (1) 1: "ten" == "ten"
eqv: "ten"
--- (2) 2: "teni" == "teni"
eqv: "teni"
--- (3) 3: "hess" == "hess"
eqv: "hess"
--- (4) 4: "in" == "in"
eqv: "in"
--- (5) 5: "ingradvec" == "ingradvec"
eqv: "ingradvec"
--- (6) 6: "hght" == "hght"
eqv: "hght" "h"
--- (7) 7: "hghtgradvec" == "hghtgradvec"
eqv: "hghtgradvec" "hgvec"
--- (8) 8: "hghthessian" == "hghthessian"
eqv: "hghthessian" "hhess"
--- (9) 9: "hghtlapl" == "hghtlapl"
eqv: "hghtlapl" "hlapl"
--- (10) 10: "seedprethresh" == "seedprethresh"
eqv: "seedprethresh" "spthr"
--- (11) 11: "seedthresh" == "seedthresh"
eqv: "seedthresh" "sthr"
--- (12) 12: "livethresh" == "livethresh"
eqv: "livethresh" "lthr"
--- (13) 13: "livethresh2" == "livethresh2"
eqv: "livethresh2" "lthr2"
--- (14) 14: "livethresh3" == "livethresh3"
eqv: "livethresh3" "lthr3"
--- (15) 15: "tan1" == "tan1"
eqv: "tan1"
--- (16) 16: "tan2" == "tan2"
eqv: "tan2"
--- (17) 17: "negtan1" == "negtan1"
eqv: "ntan1" "negtan1"
--- (18) 18: "negtan2" == "negtan2"
eqv: "ntan2" "negtan2"
--- (19) 19: "isoval" == "isoval"
eqv: "isoval" "iso"
--- (20) 20: "isogradvec" == "isogradvec"
eqv: "isogradvec" "isogvec"
--- (21) 21: "isohessian" == "isohessian"
eqv: "isohessian" "isohess"
--- (22) 22: "strength" == "strength"
eqv: "strength" "strn"
--- (23) 23: "quality" == "quality"
eqv: "quality" "qual"

airEnum "pullSource":
(is not case sensitive)
Values implicit; [1,2] valid
--- 0: "(unknown pullSource)"
--- 1: gage == gage
--- 2: prop == prop

airEnum "pullProp":
(is not case sensitive)
Values implicit; [1,17] valid
--- 0: "(unknown_prop)"
--- 1: idtag == idtag
--- 2: idcc == idcc
--- 3: energy == energy
--- 4: stepEnergy == stepEnergy
--- 5: stepConstr == stepConstr
--- 6: stuck == stuck
--- 7: position == position
--- 8: force == force
--- 9: neighDistMean == neighDistMean
--- 10: scale == scale
--- 11: neighCovar == neighCovar
--- 12: neighCovar7Ten == neighCovar7Ten
--- 13: neighTanCovar == neighTanCovar
--- 14: internum == internum
--- 15: neighCovarTrace == neighCovarTrace
--- 16: neighCovarDet == neighCovarDet
--- 17: stability == stability

airEnum "process mode":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown_mode)"
--- 1: descent == descent
--- 2: nlearn == nlearn
--- 3: adding == adding
--- 4: nixing == nixing

airEnum "trace stop":
(is not case sensitive)
Values implicit; [1,7] valid
--- 0: "(unknown_trace_stop)"
--- 1: speeding == speeding
--- 2: constrfail == constrfail
--- 3: bounds == bounds
--- 4: length == length
--- 5: stub == stub
--- 6: voledge == voledge
--- 7: orientconstrfail == orientconstrfail

airEnum "init method":
(is not case sensitive)
Values implicit; [1,4] valid
--- 0: "(unknown_init_method)"
--- 1: random == random
--- 2: halton == halton
--- 3: ppv == ppv
--- 4: given == given

airEnum "countable":
(is not case sensitive)
Values implicit; [1,14] valid
--- 0: "(unknown_countable)"
--- 1: descent == descent
--- 2: teststep == teststep
--- 3: enrg(img) == enrg(img)
--- 4: frc(img) == frc(img)
--- 5: enrg(pts) == enrg(pts)
--- 6: frc(pts) == frc(pts)
--- 7: probe == probe
--- 8: constr == constr
--- 9: adding == adding
--- 10: nixing == nixing
--- 11: pts stuck == pts stuck
--- 12: pts == pts
--- 13: CC == CC
--- 14: iter == iter

airEnum "constraint fail":
(is not case sensitive)
Values implicit; [1,7] valid
--- 0: "(unknown or no contraint fail)"
--- 1: needed Hessian 0 (A) == needed Hessian 0 (A)
--- 2: needed Hessian 0 (B) == needed Hessian 0 (B)
--- 3: projected gradient 0 (A) == projected gradient 0 (A)
--- 4: projected gradient 0 (B) == projected gradient 0 (B)
--- 5: iter max exceeded == iter max exceeded
--- 6: travel exceeded == travel exceeded
--- 7: plen doesn't exist == plen doesn't exist

airEnum "method":
(is not case sensitive)
Values implicit; [1,8] valid
--- 0: "(unknown_method)"
--- 1: testing == testing
desc: nothing, actually, just here for testing
eqv: "test" "testing"
--- 2: homogeneous == homogeneous
desc: homogenous isotropic diffusion (Gaussian blurring)
eqv: "iso" "homog" "homogeneous"
--- 3: perona-malik == perona-malik
desc: Perona-Malik
eqv: "pm" "perona-malik"
--- 4: modified curvature == modified curvature
desc: modified curvature diffusion
eqv: "mcde" "modified curvature"
--- 5: modified curvature rings == modified curvature rings
desc: modified curvature diffusion rings
eqv: "mcder" "modified curvature rings"
--- 6: curvature flow == curvature flow
desc: curvature flow
eqv: "flow" "curvature flow"
--- 7: self == self
desc: self-diffusion of diffusion tensors
eqv: "self"
--- 8: finish == finish
desc: finish a phd already
eqv: "finish"

airEnum "kind":
(is not case sensitive)
Values implicit; [1,3] valid
--- 0: "(unknown_kind)"
--- 1: scalar == scalar
desc: plain old scalar quantities
eqv: "scalar"
--- 2: 3color == 3color
desc: 3-component color
eqv: "3color"
--- 3: 7tensor == 7tensor
desc: ten-style 7-valued tensor
eqv: "7tensor" "tensor"

airEnum "energy":
(is not case sensitive)
Values implicit; [1,5] valid
--- 0: "(unknown_energy)"
--- 1: spring == spring
desc: Hooke's law-based potential, with a tunable region of attraction
--- 2: gauss == gauss
desc: Gaussian potential
--- 3: coulomb == coulomb
desc: Coulomb electrostatic potential, with tunable cut-off
--- 4: cotan == cotan
desc: Cotangent-based potential (from Meyer et al. SMI '05)
--- 5: zero == zero
desc: no energy

airEnum "miteVal":
(is not case sensitive)
Values (19 valid) given explicitly
--- (0) 0: "(unknown miteVal)"
--- (1) 1: "Xw" == "Xw"
eqv: "xw"
--- (2) 2: "Xi" == "Xi"
eqv: "xi"
--- (3) 3: "Yw" == "Yw"
eqv: "yw"
--- (4) 4: "Yi" == "Yi"
eqv: "yi"
--- (5) 5: "Zw" == "Zw"
eqv: "zw"
--- (6) 6: "Zi" == "Zi"
eqv: "zi"
--- (7) 7: "Rw" == "Rw"
eqv: "rw"
--- (8) 8: "Ri" == "Ri"
eqv: "ri"
--- (9) 9: "Tw" == "Tw"
eqv: "tw"
--- (10) 10: "Ti" == "Ti"
eqv: "ti"
--- (11) 11: "V" == "V"
eqv: "view" "v"
--- (12) 12: "N" == "N"
eqv: "normal" "n"
--- (13) 13: "NdotV" == "NdotV"
eqv: "ndotv" "vdotn"
--- (14) 14: "NdotL" == "NdotL"
eqv: "ndotl" "ldotn"
--- (15) 15: "VrefN" == "VrefN"
eqv: "vrefn"
--- (16) 16: "GTdotV" == "GTdotV"
eqv: "gtdotv"
--- (17) 17: "VdefT" == "VdefT"
eqv: "vdeft"
--- (18) 18: "VdefTdotV" == "VdefTdotV"
eqv: "vdeftdotv"
--- (19) 19: "WdotD" == "WdotD"
eqv: "wdotd"

airEnum "miteStageOp":
(is not case sensitive)
Values (4 valid) given explicitly
--- (0) 0: "(unknown miteStageOp)"
--- (1) 1: "min" == "min"
eqv: "min"
--- (2) 2: "max" == "max"
eqv: "max"
--- (3) 3: "add" == "add"
eqv: "add" "+"
--- (4) 4: "multiply" == "multiply"
eqv: "multiply" "*" "x"