33 _tr_identity(x)
44Identity function. Already defined in Julia as `identity`, specialized for vectors and scalars.
55"""
6- _tr_identity (x) = identity (x)
7- _tr_identity (i, x) = identity (i)
6+ _tr_identity (x; param = nothing ) = identity (x)
7+ _tr_identity (i, x; param = nothing ) = identity (i)
88
99"""
1010 _tr_count_eq(i, x)
1111 _tr_count_eq_right(i, x)
1212 _tr_count_eq_left(i, x)
1313Count the number of elements equal to `x[i]` (optionally to the right/left of `x[i]`). Extended method to vector `x` are generated.
1414"""
15- _tr_count_eq (i, x) = count (y -> x[i] == y, x) - 1
16- _tr_count_eq_right (i, x) = _tr_count_eq (1 , @view x[i: end ])
17- _tr_count_eq_left (i, x) = _tr_count_eq (i, @view x[1 : i])
15+ _tr_count_eq (i, x; param = nothing ) = count (y -> x[i] == y, x) - 1
16+ _tr_count_eq_right (i, x; param = nothing ) = _tr_count_eq (1 , @view x[i: end ])
17+ _tr_count_eq_left (i, x; param = nothing ) = _tr_count_eq (i, @view x[1 : i])
1818
1919# Generating vetorized versions
2020lazy (_tr_count_eq, _tr_count_eq_left, _tr_count_eq_right)
@@ -28,12 +28,12 @@ lazy(_tr_count_eq, _tr_count_eq_left, _tr_count_eq_right)
2828 _tr_count_l_right(i, x)
2929Count the number of elements greater/lesser than `x[i]` (optionally to the left/right of `x[i]`). Extended method to vector with sig `(x)` are generated.
3030"""
31- _tr_count_greater (i, x) = count (y -> x[i] < y, x)
32- _tr_count_lesser (i, x) = count (y -> x[i] > y, x)
33- _tr_count_g_left (i, x) = _tr_count_greater (i, @view x[1 : i])
34- _tr_count_l_left (i, x) = _tr_count_lesser (i, @view x[1 : i])
35- _tr_count_g_right (i, x) = _tr_count_greater (1 , @view x[i: end ])
36- _tr_count_l_right (i, x) = _tr_count_lesser (1 , @view x[i: end ])
31+ _tr_count_greater (i, x; param = nothing ) = count (y -> x[i] < y, x)
32+ _tr_count_lesser (i, x; param = nothing ) = count (y -> x[i] > y, x)
33+ _tr_count_g_left (i, x; param = nothing ) = _tr_count_greater (i, @view x[1 : i])
34+ _tr_count_l_left (i, x; param = nothing ) = _tr_count_lesser (i, @view x[1 : i])
35+ _tr_count_g_right (i, x; param = nothing ) = _tr_count_greater (1 , @view x[i: end ])
36+ _tr_count_l_right (i, x; param = nothing ) = _tr_count_lesser (1 , @view x[i: end ])
3737
3838# Generating vetorized versions
3939lazy (_tr_count_greater, _tr_count_g_left, _tr_count_g_right)
@@ -45,9 +45,9 @@ lazy(_tr_count_lesser, _tr_count_l_left, _tr_count_l_right)
4545 _tr_count_g_param(i, x, param)
4646Count the number of elements equal to (resp. lesser/greater than) `x[i] + param`. Extended method to vector with sig `(x, param)` are generated.
4747"""
48- _tr_count_eq_param (i, x, param) = count (y -> y == x[i] + param, x)
49- _tr_count_l_param (i, x, param) = count (y -> y < x[i] + param, x)
50- _tr_count_g_param (i, x, param) = count (y -> y > x[i] + param, x)
48+ _tr_count_eq_param (i, x; param) = count (y -> y == x[i] + param, x)
49+ _tr_count_l_param (i, x; param) = count (y -> y < x[i] + param, x)
50+ _tr_count_g_param (i, x; param) = count (y -> y > x[i] + param, x)
5151
5252# Generating vetorized versions
5353lazy_param (_tr_count_eq_param, _tr_count_l_param, _tr_count_g_param)
@@ -56,7 +56,7 @@ lazy_param(_tr_count_eq_param, _tr_count_l_param, _tr_count_g_param)
5656 _tr_count_bounding_param(i, x, param)
5757Count the number of elements bounded (not strictly) by `x[i]` and `x[i] + param`. An extended method to vector with sig `(x, param)` is generated.
5858"""
59- _tr_count_bounding_param (i, x, param) = count (y -> x[i] ≤ y ≤ x[i] + param, x)
59+ _tr_count_bounding_param (i, x; param) = count (y -> x[i] ≤ y ≤ x[i] + param, x)
6060
6161# Generating vetorized versions
6262lazy_param (_tr_count_bounding_param)
@@ -66,8 +66,8 @@ lazy_param(_tr_count_bounding_param)
6666 _tr_param_minus_val(i, x, param)
6767Return the difference `x[i] - param` (resp. `param - x[i]`) if positive, `0.0` otherwise. Extended method to vector with sig `(x, param)` are generated.
6868"""
69- _tr_val_minus_param (i, x, param) = max (0 , x[i] - param)
70- _tr_param_minus_val (i, x, param) = max (0 , param - x[i])
69+ _tr_val_minus_param (i, x; param) = max (0 , x[i] - param)
70+ _tr_param_minus_val (i, x; param) = max (0 , param - x[i])
7171
7272# Generating vetorized versions
7373lazy_param (_tr_val_minus_param, _tr_param_minus_val)
@@ -77,9 +77,9 @@ lazy_param(_tr_val_minus_param, _tr_param_minus_val)
7777 _tr_contiguous_vals_minus_rev(i, x)
7878Return the difference `x[i] - x[i + 1]` (resp. `x[i + 1] - x[i]`) if positive, `0.0` otherwise. Extended method to vector with sig `(x)` are generated.
7979"""
80- _tr_contiguous_vals_minus (i, x) = length (x) == i ? 0 : _tr_val_minus_param (i, x, x[i + 1 ])
81- function _tr_contiguous_vals_minus_rev (i, x)
82- return length (x) == i ? 0 : _tr_param_minus_val (i, x, x[i + 1 ])
80+ _tr_contiguous_vals_minus (i, x; param = nothing ) = length (x) == i ? 0 : _tr_val_minus_param (i, x; param = x[i + 1 ])
81+ function _tr_contiguous_vals_minus_rev (i, x; param = nothing )
82+ return length (x) == i ? 0 : _tr_param_minus_val (i, x; param = x[i + 1 ])
8383end
8484# Generating vetorized versions
8585lazy (_tr_contiguous_vals_minus, _tr_contiguous_vals_minus_rev)
@@ -89,8 +89,8 @@ lazy(_tr_contiguous_vals_minus, _tr_contiguous_vals_minus_rev)
8989 transformation_layer(param = nothing)
9090Generate the layer of transformations functions of the ICN. Iff `param` value is set, also includes all the parametric transformation with that value.
9191"""
92- function transformation_layer (param = nothing )
93- transformations = LittleDict {Symbol, Function} (
92+ function transformation_layer (param= false )
93+ transformations = LittleDict {Symbol,Function} (
9494 :identity => _tr_identity,
9595 :count_eq => _tr_count_eq,
9696 :count_eq_left => _tr_count_eq_left,
@@ -105,14 +105,14 @@ function transformation_layer(param = nothing)
105105 :contiguous_vals_minus_rev => _tr_contiguous_vals_minus_rev,
106106 )
107107
108- if ! isnothing ( param)
109- transformations_param = LittleDict {Symbol, Function} (
110- :count_eq_param => ((x ... ) -> _tr_count_eq_param (x ... , param)) ,
111- :count_l_param => ((x ... ) -> _tr_count_l_param (x ... , param)) ,
112- :count_g_param => ((x ... ) -> _tr_count_g_param (x ... , param)) ,
113- :count_bounding_param => ((x ... ) -> _tr_count_bounding_param (x ... , param)) ,
114- :val_minus_param => ((x ... ) -> _tr_val_minus_param (x ... , param)) ,
115- :param_minus_val => ((x ... ) -> _tr_param_minus_val (x ... , param)) ,
108+ if param
109+ transformations_param = LittleDict {Symbol,Function} (
110+ :count_eq_param => _tr_count_eq_param,
111+ :count_l_param => _tr_count_l_param,
112+ :count_g_param => _tr_count_g_param,
113+ :count_bounding_param => _tr_count_bounding_param,
114+ :val_minus_param => _tr_val_minus_param,
115+ :param_minus_val => _tr_param_minus_val,
116116 )
117117 transformations = LittleDict (union (transformations, transformations_param))
118118 end
0 commit comments