Opcode: exp
Parameters
number x
Description
e^x
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(exp 0.5)Output:
1.6487212707001282
Opcode: log
Parameters
number x [number base]
Description
Evaluates to the logarithm of x. If base is specified, uses that base, otherwise defaults to natural log.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(log 0.5)Output:
-0.6931471805599453Example:
(log 0.5 2)Output:
-1
Opcode: erf
Parameters
number errno
Description
Evaluates to the error function on errno.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(erf 0.5)Output:
0.5204998778130465
Opcode: tgamma
Parameters
number z
Description
Evaluates the true (complete) gamma function on z.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(tgamma 0.5)Output:
1.772453850905516
Opcode: lgamma
Parameters
number z
Description
Evaluates the log-gamma function function on z.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(lgamma 0.5)Output:
0.5723649429247001
Opcode: sqrt
Parameters
number x
Description
Returns the square root of x.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(sqrt 0.5)Output:
0.7071067811865476
Opcode: pow
Parameters
number base number exponent
Description
Returns base raised to the exponent power.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(pow 0.5 2)Output:
0.25
Opcode: dot_product
Parameters
list|assoc x1 list|assoc x2
Description
Evaluates to the sum of all corresponding element-wise products of x1 and x2.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(dot_product [0.5 0.25 0.25] [4 8 8] )Output:
6Example:
(dot_product (associate "a" 0.5 "b" 0.25 "c" 0.25) (associate "a" 4 "b" 8 "c" 8) )Output:
6Example:
(dot_product (associate 0 0.5 1 0.25 2 0.25) [4 8 8] )Output:
6
Opcode: normalize
Parameters
list|assoc values [number p]
Description
Evaluates to a container of the values with the elements normalized, where p represents the order of the Lebesgue space to normalize the vector (e.g., 1 is Manhattan or surprisal space, 2 is Euclidean) and defaults to 1.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(normalize [0.5 0.5 0.5 0.5] )Output:
[0.25 0.25 0.25 0.25]Example:
(normalize [0.5 0.5 0.5 .infinity] )Output:
[0 0 0 1]Example:
(normalize { a 1 b 1 c 1 d 1 } 2 )Output:
{ a 0.5 b 0.5 c 0.5 d 0.5 }
Opcode: mode
Parameters
list|assoc values [list|assoc weights]
Description
Evaluates to mode of the values. If values is an assoc, it will return the key. If weights is specified and both values and weights are lists, then the corresponding elements will be weighted by weights. If weights is specified and is an assoc, then each value will be looked up in the weights.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): existing
Examples
Example:
(mode [1 1 2 3 4 5] )Output:
1Example:
(mode [ 1 1 2 3 4 5 5 5 ] )Output:
5Example:
(mode [ 1 1 [] [] [] {} {} ] )Output:
[]Example:
(mode [ 1 1 2 3 4 5 .null ] )Output:
1Example:
(mode [1 1 2 3 4 5] )Output:
1Example:
(mode [1 1 2 3 4 5] [0.5 0.1 0.1 0.1 0.1] )Output:
1Example:
(mode { a 1 b 1 c 3 d 4 e 5 } { a 0.5 b 0.1 c 0.1 d 0.1 e 0.1 } )Output:
1Example:
(mode [1 1 2 3 4 5] {0 0.75 4 0.125} )Output:
1Example:
(mode { 0 1 1 1 2 2 3 3 4 4 5 5 } [0.75 0 0 0 0.125] )Output:
1
Opcode: quantile
Parameters
list|assoc values number quantile [list|assoc weights]
Description
Evaluates to the quantile of the values specified by quantile ranging from 0 to 1. If weights is specified and both values and weights are lists, then the corresponding elements will be weighted by weights. If weights is specified and is an assoc, then each value will be looked up in the weights.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(quantile [1 2 3 4 5] 0.5 )Output:
3Example:
(quantile [1 2 3 4 5 .null] 0.5 )Output:
3Example:
(quantile [1 2 3 4 5] 0.5 )Output:
3Example:
(quantile [1 2 3 4 5] 0.5 [0.5 0.1 0.1 0.1 0.1] )Output:
1.6666666666666667Example:
(quantile { a 1 b 2 c 3 d 4 e 5 } 0.5 { a 0.5 b 0.1 c 0.1 d 0.1 e 0.1 } )Output:
1.6666666666666667Example:
(quantile [1 2 3 4 5] 0.5 {0 0.75 4 0.125} )Output:
1.5714285714285716Example:
(quantile { 0 1 1 2 2 3 3 4 4 5 5 .null } 0.5 [0.75 0 0 0 0.125] )Output:
1.1666666666666667
Opcode: generalized_mean
Parameters
list|assoc values [number p] [list|assoc weights] [number center] [bool calculate_moment] [bool absolute_value]
Description
Evaluates to the generalized mean of the values. If p is specified (which defaults to 1), it is the parameter that can control the type of mean from minimum (negative infinity) to harmonic mean (-1) to geometric mean (0) to arithmetic mean (1) to maximum (infinity). If weights are specified, it uses those when calculating the corresponding values for the generalized mean. If center is specified, calculations will use that as central point, and the default center is is 0.0. If calculate_moment is true, which defaults to false, then the results will not be raised to 1/p at the end. If absolute_value is true, which defaults to false, the differences will take the absolute value. Various parameterizations of generalized_mean can be used to compute moments about the mean, especially setting the calculate_moment parameter to true and using the mean as the center.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(generalized_mean [1 2 3 4 5] )Output:
3Example:
(generalized_mean [1 2 3 4 5 .null] )Output:
3Example:
(generalized_mean [1 2 3 4 5] 2 )Output:
3.3166247903554Example:
(generalized_mean [1 2 3 4 5] 1 [0.5 0.1 0.1 0.1 0.1] )Output:
2.111111111111111Example:
(generalized_mean { a 1 b 2 c 3 d 4 e 5 } 1 { a 0.5 b 0.1 c 0.1 d 0.1 e 0.1 } )Output:
2.111111111111111Example:
(generalized_mean [1 2 3 4 5] 1 {0 0.75 4 0.125} )Output:
1.5714285714285714Example:
(generalized_mean { 0 1 1 2 2 3 3 4 4 5 5 .null } 1 [0.75 0 0 0 0.125] )Output:
1.5714285714285714
Opcode: generalized_distance
Parameters
list|assoc|* vector1 [list|assoc|* vector2] [number p_value] [list|assoc|assoc of assoc|number weights] [list|assoc attributes] [list|assoc|number deviations] [list value_names] [list|string weights_selection_features] [bool surprisal_space]
Description
Computes the generalized norm between vector1 and vector2 (or an equivalent zero vector if unspecified) using the numerical distance or edit distance as appropriate. The parameter value_names, if specified as a list of the names of the values, will transform via unzipping any assoc into a list for the respective parameter in the order of the value_names, or if a number will use the number repeatedly for every element. If any vector value is null or any of the differences between vector1 and vector2 evaluate to null, then it will compute a corresponding maximum distance value based on the properties of the feature. If surprisal_space is true, which defaults to false, it will perform all computations in surprisal space. See Distance and Surprisal Calculations for details on the other parameters and how distance is computed.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(generalized_distance (map 10000 (range 0 200) ) .null 0.01 )Output:
2.0874003024080013e+234Example:
(generalized_distance [1 2 3] [0 2 3] 0.01 )Output:
1Example:
(generalized_distance [3 4] .null 2 )Output:
5Example:
(generalized_distance [3 4] .null -.infinity )Output:
3Example:
(generalized_distance [1 2 3] [0 2 3] 0.01 [0.3333 0.3333 0.3333] )Output:
1.9210176984148622e-48Example:
(generalized_distance [3 4] .null 2 [1 1] )Output:
5Example:
(generalized_distance [3 4] .null 2 [0.5 0.5] )Output:
3.5355339059327378Example:
(generalized_distance [3 4] .null 1 [0.5 0.5] )Output:
3.5Example:
(generalized_distance [3 4] .null 0.5 [0.5 0.5] )Output:
3.482050807568877Example:
(generalized_distance [3 4] .null 0.1 [0.5 0.5] )Output:
3.467687001077147Example:
(generalized_distance [3 4] .null 0.01 [0.5 0.5] )Output:
3.4644599990846436Example:
(generalized_distance [3 4] .null 0.001 [0.5 0.5] )Output:
3.4641374518767565Example:
(generalized_distance [3 4] .null 0 [0.5 0.5] )Output:
3.4641016151377544Example:
(generalized_distance [.null 4] .null 2 [1 1] )Output:
.infinityExample:
(generalized_distance [.null 4] .null 0 [1 1] )Output:
.infinityExample:
(generalized_distance [.null 4] .null 2 [0.5 0.5] )Output:
.infinityExample:
(generalized_distance [.null 4] .null 0 [0.5 0.5] )Output:
.infinityExample:
(generalized_distance [1 2 3] [10 2 4] 1 .null [{difference_type "nominal" data_type "number" nominal_count 1}] )Output:
2Example:
(generalized_distance [1 2 3] [10 2 10] 1 .null [{difference_type "nominal" data_type "number" nominal_count 1}] )Output:
8Example:
(generalized_distance [1 2 3] [10 2 10] 1 .null [{difference_type "nominal" data_type "number" nominal_count 1}] )Output:
8Example:
(generalized_distance [1 2 3] [10 2 4] 1 [0.3333 0.3333 0.3333] [{difference_type "nominal" data_type "number" nominal_count 1}] )Output:
0.6666Example:
(generalized_distance [1 2 3] [10 2 10] 1 [0.3333 0.3333 0.3333] [{difference_type "nominal" data_type "number" nominal_count 1}] )Output:
2.6664Example:
(generalized_distance [1 2 3] [10 2 10] 1 [0.3333 0.3333 0.3333] [{difference_type "nominal" data_type "number" nominal_count 1}] )Output:
2.6664Example:
(generalized_distance [1 2 3] [10 2 10] 1 [0.3333 0.3333 0.3333] [ {difference_type "nominal" data_type "number" nominal_count 1} {difference_type "continuous" data_type "number" cycle_range 360} {difference_type "continuous" data_type "number" cycle_range 12} ] )Output:
1.9997999999999998Example:
(generalized_distance [1 2 3] [10 2 10] 1 [0.3333 0.3333 0.3333] [{difference_type "nominal" data_type "number" nominal_count 1.1}] [0.25 180 -12] )Output:
92.57407500000001Example:
(generalized_distance [4 4 .null] [2 .null .null] 2 [1 0 1] [ {difference_type "continuous" data_type "number"} {difference_type "nominal" data_type "number" nominal_count 5} {difference_type "nominal" data_type "number" nominal_count 5} ] [0.1 0.1 0.1] )Output:
2.227195548101088Example:
(generalized_distance [4 4 .null] [2 .null .null] 2 [1 0 1] [ {difference_type "continuous" data_type "number"} {difference_type "nominal" data_type "number" nominal_count 5} {difference_type "nominal" data_type "number" nominal_count 5} ] )Output:
2.23606797749979Example:
(generalized_distance [4 4 .null 4] [2 .null .null 2] 2 [1 0 1 1] [ {difference_type "continuous" data_type "number"} {difference_type "nominal" data_type "number" nominal_count 5} {difference_type "nominal" data_type "number" nominal_count 5} ] [0.1 0.1 0.1 0.1] )Output:
2.9933927271513525Example:
(generalized_distance [4 4 .null 4] [2 .null .null 2] 2 [1 0 1 1] [ {difference_type "continuous" data_type "number"} {difference_type "nominal" data_type "number" nominal_count 5} {difference_type "nominal" data_type "number" nominal_count 5} ] )Output:
3Example:
(generalized_distance [4 4 4 4 4] [2 .null 2 2 2] 1 [1 0 1 1 1] )Output:
.nullExample:
(generalized_distance [4 4 4] [2 2 2] 1 {x 1 y 1 z 1} {x "nominal_number" y "continuous_number" z "continuous_number"} {z 5} .null .null .null ["x" "y" "z"] )Output:
6Example:
(generalized_distance [4 4 .null] [2 2 .null] 1 [1 1 1] [ {difference_type "continuous" data_type "number"} {difference_type "nominal" data_type "number" nominal_count 5} {difference_type "nominal" data_type "number" nominal_count 5} ] )Output:
4Example:
(generalized_distance [4 4 4 4] [2 2 2 .null] 0 [1 1 1 1] [ {difference_type "continuous" data_type "number"} {difference_type "nominal" data_type "number" nominal_count 5} {difference_type "nominal" data_type "number" nominal_count 5} {difference_type "continuous" data_type "number"} ] [ [0 2] .null .null [0 2] ] )Output:
4Example:
(generalized_distance [4 "s" "s" 4] [2 "s" 2 .null] 1 [1 1 1 1] [ {difference_type "continuous" data_type "number"} {difference_type "nominal" data_type "number" nominal_count 5} {difference_type "nominal" data_type "number" nominal_count 5} {difference_type "continuous" data_type "number"} ] [ [0 1] .null .null [0 1] ] )Output:
4Example:
(generalized_distance [ [1 2 3 4 5] "s" ] [ [1 2 3] "s" ] 1 [1 1] [ {difference_type "continuous" data_type "code"} {difference_type "nominal" data_type "number" nominal_count 5} ] )Output:
2Example:
(generalized_distance [ [1.5 2 3 4 5] "s" ] [ [1 2 3] "s" ] 1 [1 1] [ {difference_type "continuous" data_type "code"} {difference_type "nominal" data_type "number" nominal_count 5} ] )Output:
3.3255881193876142Example:
(generalized_distance [1 1] [1 1] 1 [1 1] [ {difference_type "continuous" data_type "number"} {difference_type "continuous" data_type "number"} ] [0.5 0.5] .null .null .true )Output:
0Example:
(generalized_distance [1 1] [1 1] 1 [1 1] [ {difference_type "nominal" data_type "number"} {difference_type "nominal" data_type "number"} ] [0.5 0.5] .null .null .true )Output:
0Example:
(generalized_distance [1 1] [2 2] 1 [1 1] [ {difference_type "continuous" data_type "number"} {difference_type "continuous" data_type "number"} ] [0.5 0.5] .null .null .true )Output:
1.6766764161830636Example:
(generalized_distance [1 1] [2 2] 1 [1 1] [ {difference_type "nominal" data_type "number" nominal_count 2} {difference_type "nominal" data_type "number" nominal_count 2} ] [0.25 0.25] .null .null .true )Output:
2.197224577336219Example:
(generalized_distance ;vector1 ["b"] ;vector2 ["c"] ;p 1 ;weights [1] ;attributes [{difference_type "nominal" data_type "string" nominal_count 4}] ;deviations [ { a {a 0.00744879 b 0.996275605 c 0.996275605} b {a 0.501736111 b 0.501736111 c 0.996527778} c {a 0.996539792 b 0.996539792 c 0.006920415} } ] ;value_names .null ;weights_selection_feature .null ;surpisal_space .true )Output:
4.966335099422683Example:
(generalized_distance ;vector1 ["b"] ;vector2 ["a"] ;p 1 ;weights [1] ;attributes [{difference_type "nominal" data_type "string" nominal_count 4}] ;deviations [ { a {a 0.00744879 b 0.996275605 c 0.996275605} b {a 0.501736111 b 0.501736111 c 0.996527778} c {a 0.996539792 b 0.996539792 c 0.006920415} } ] ;value_names .null ;weights_selection_feature .null ;surpisal_space .true )Output:
0Example:
(generalized_distance ;vector1 ["b"] ;vector2 ["q"] ;p 1 ;weights [1] ;attributes [{difference_type "nominal" data_type "string" nominal_count 4}] ;deviations [ { a {a 0.00744879 b 0.996275605 c 0.996275605} b [ {a 0.501736111 b 0.501736111 c 0.996527778} 0.8 ] c {a 0.996539792 b 0.996539792 c 0.006920415} } ] ;value_names .null ;weights_selection_feature .null ;surpisal_space .true )Output:
0.9128124677208268Example:
(generalized_distance ;vector1 ["q"] ;vector2 ["u"] ;p 1 ;weights [1] ;attributes [{difference_type "nominal" data_type "string" nominal_count 2}] ;deviations [ 0.2 ] ;value_names .null ;weights_selection_feature .null ;surpisal_space .true )Output:
1.3862943611198906Example:
(generalized_distance ;vector1 ["q"] ;vector2 ["u"] ;p 1 ;weights [1] ;attributes [{difference_type "nominal" data_type "string" nominal_count 4}] ;deviations [ [ { a {a 0.00744879 b 0.996275605 c 0.996275605} b [ {a 0.501736111 b 0.501736111 c 0.996527778} 0.8 ] c {a 0.996539792 b 0.996539792 c 0.006920415} } 0.2 ] ] ;value_names .null ;weights_selection_feature .null ;surpisal_space .true )Output:
1.3862943611198906Example:
(generalized_distance ;vector1 ["q"] ;vector2 ["u"] ;p 1 ;weights [1] ;attributes [{difference_type "nominal" data_type "string" nominal_count 4}] ;deviations [ [ [ { a {a 0.00744879 b 0.996275605 c 0.996275605} b [ {a 0.501736111 b 0.501736111 c 0.996527778} 0.8 ] c {a 0.996539792 b 0.996539792 c 0.006920415} } 0.2 ] 0.2 ] ] ;value_names .null ;weights_selection_feature .null ;surpisal_space .true )Output:
1.3862943611198906Example:
(generalized_distance ;vector1 { A1 1 A2 1 A3 1 B 1 } ;vector2 { A1 2 A2 2 A3 2 B 2 } ;p 1 ;weights { A1 { A1 0 A2 0.372145984 A3 0.370497589 B 0.082723928 sum 0.174632499 } A2 { A1 0.371518433 A2 0 A3 0.370520996 B 0.082668725 sum 0.175291846 } A3 { A1 0.370319458 A2 0.370968492 A3 0 B 0.085480882 sum 0.173231167 } B { A1 0.061363751 A2 0.049512288 A3 0.05628626 B 0 sum 0.832837701 } sum { A1 0.114003407 A2 0.106173002 A3 0.100958636 B 0.678864956 sum 0 } } ;attributes [{difference_type "continuous" data_type "number"}] ;deviations 0.5 ;value_names ["A2" "A3" "B"] ;weights_selection_features "sum" ;surprisal_space .true )Output:
0.8383382080915319Example:
(generalized_distance [ [1.5 2 3 4 5 "s12"] ] [ [1 2 3 "s21"] ] 1 [1] [{difference_type "continuous" data_type "code"}] )Output:
5.325588119387614Example:
(generalized_distance [ [1.5 2 3 4 5 "s12"] ] [ [1 2 3 "s21"] ] 1 [1] [{difference_type "continuous" data_type "code" nominal_strings .false types_must_match .false}] )Output:
3.697640774259515Example:
(generalized_distance ;vector1 { A1 1 A2 1 A3 1 B 1 } ;vector2 { A1 2 A2 2 A3 2 B 2 } ;p 1 ;weights { A1 { A1 0 A2 0.372145984 A3 0.370497589 B 0.082723928 sum 0.174632499 } A2 { A1 0.371518433 A2 0 A3 0.370520996 B 0.082668725 sum 0.175291846 } A3 { A1 0.370319458 A2 0.370968492 A3 0 B 0.085480882 sum 0.173231167 } B { A1 0.061363751 A2 0.049512288 A3 0.05628626 B 0 sum 0.832837701 } sum { A1 0.114003407 A2 0.106173002 A3 0.100958636 B 0.678864956 sum 0 } } ;attributes [{difference_type "continuous" data_type "number"}] ;deviations 0.5 ;value_names ["A2" "A3"] ;weights_selection_features ["sum" "A1" "B"] ;surprisal_space .true )Output:
0.8383382080915318
Opcode: entropy
Parameters
list|assoc|number p [list|assoc|number q] [number p_exponent] [number q_exponent]
Description
Computes a form of entropy on the specified vectors p and q using nats (natural log, not bits) in the form of -sum p_i ln (p_i^p_exponent * q_i^q_exponent). For both p and q, if p or q is a list of numbers, then it will treat each entry as being the probability of that element. If it is an associative array, then elements with matching keys will be matched. If p or q is a number then it will use that value in place of each element. If p or q is null or not specified, it will be calculated as the reciprocal of the size of the other element (p_i would be 1/|q| or q_i would be 1/|p|). If either p_exponent or q_exponent is 0, then that exponent will be ignored. Shannon entropy can be computed by ignoring the q parameters by specifying it as null, setting p_exponent to 1 and q_exponent to 0. KL-divergence can be computed by providing both p and q and setting p_exponent to -1 and q_exponent to 1. Cross-entropy can be computed by setting p_exponent to 0 and q_exponent to 1.
Details
- Permissions required: none
- Allows concurrency: false
- Requires entity: false
- Creates new scope: false
- Creates new target scope: false
- Value newness (whether references existing node): new
Examples
Example:
(entropy [0.5 0.5] )Output:
0.6931471805599453Example:
(entropy [0.5 0.5] [0.25 0.75] -1 1 )Output:
0.14384103622589045Example:
(entropy [0.5 0.5] [0.25 0.75] )Output:
0.14384103622589045Example:
(entropy 0.5 [0.25 0.75] -1 1 )Output:
0.14384103622589045Example:
(entropy 0.5 [0.25 0.75] 0 1 )Output:
1.6739764335716716Example:
(entropy {A 0.5 B 0.5} {A 0.75 B 0.25} )Output:
0.14384103622589045