@@ -2,8 +2,9 @@ module DynamicExpressionsLoopVectorizationExt
22
33using LoopVectorization: @turbo
44using DynamicExpressions: AbstractExpressionNode
5- using DynamicExpressions. UtilsModule: ResultOk, fill_similar
6- using DynamicExpressions. EvaluateModule: @return_on_nonfinite_val , EvalOptions
5+ using DynamicExpressions. UtilsModule: ResultOk
6+ using DynamicExpressions. EvaluateModule:
7+ @return_on_nonfinite_val , EvalOptions, get_array, get_feature_array, get_filled_array
78import DynamicExpressions. EvaluateModule:
89 deg1_eval,
910 deg2_eval,
@@ -56,12 +57,12 @@ function deg1_l2_ll0_lr0_eval(
5657 @return_on_nonfinite_val (eval_options, x_l, cX)
5758 x = op (x_l):: T
5859 @return_on_nonfinite_val (eval_options, x, cX)
59- return ResultOk (fill_similar ( x, cX, axes (cX, 2 )), true )
60+ return ResultOk (get_filled_array (eval_options . buffer, x, cX, axes (cX, 2 )), true )
6061 elseif tree. l. l. constant
6162 val_ll = tree. l. l. val
6263 @return_on_nonfinite_val (eval_options, val_ll, cX)
6364 feature_lr = tree. l. r. feature
64- cumulator = similar ( cX, axes (cX, 2 ))
65+ cumulator = get_array (eval_options . buffer, cX, axes (cX, 2 ))
6566 @turbo for j in axes (cX, 2 )
6667 x_l = op_l (val_ll, cX[feature_lr, j])
6768 x = op (x_l)
@@ -72,7 +73,7 @@ function deg1_l2_ll0_lr0_eval(
7273 feature_ll = tree. l. l. feature
7374 val_lr = tree. l. r. val
7475 @return_on_nonfinite_val (eval_options, val_lr, cX)
75- cumulator = similar ( cX, axes (cX, 2 ))
76+ cumulator = get_array (eval_options . buffer, cX, axes (cX, 2 ))
7677 @turbo for j in axes (cX, 2 )
7778 x_l = op_l (cX[feature_ll, j], val_lr)
7879 x = op (x_l)
@@ -82,7 +83,7 @@ function deg1_l2_ll0_lr0_eval(
8283 else
8384 feature_ll = tree. l. l. feature
8485 feature_lr = tree. l. r. feature
85- cumulator = similar ( cX, axes (cX, 2 ))
86+ cumulator = get_array (eval_options . buffer, cX, axes (cX, 2 ))
8687 @turbo for j in axes (cX, 2 )
8788 x_l = op_l (cX[feature_ll, j], cX[feature_lr, j])
8889 x = op (x_l)
@@ -106,10 +107,10 @@ function deg1_l1_ll0_eval(
106107 @return_on_nonfinite_val (eval_options, x_l, cX)
107108 x = op (x_l):: T
108109 @return_on_nonfinite_val (eval_options, x, cX)
109- return ResultOk (fill_similar ( x, cX, axes (cX, 2 )), true )
110+ return ResultOk (get_filled_array (eval_options . buffer, x, cX, axes (cX, 2 )), true )
110111 else
111112 feature_ll = tree. l. l. feature
112- cumulator = similar ( cX, axes (cX, 2 ))
113+ cumulator = get_array (eval_options . buffer, cX, axes (cX, 2 ))
113114 @turbo for j in axes (cX, 2 )
114115 x_l = op_l (cX[feature_ll, j])
115116 x = op (x_l)
@@ -132,9 +133,9 @@ function deg2_l0_r0_eval(
132133 @return_on_nonfinite_val (eval_options, val_r, cX)
133134 x = op (val_l, val_r):: T
134135 @return_on_nonfinite_val (eval_options, x, cX)
135- return ResultOk (fill_similar ( x, cX, axes (cX, 2 )), true )
136+ return ResultOk (get_filled_array (eval_options . buffer, x, cX, axes (cX, 2 )), true )
136137 elseif tree. l. constant
137- cumulator = similar ( cX, axes (cX, 2 ))
138+ cumulator = get_array (eval_options . buffer, cX, axes (cX, 2 ))
138139 val_l = tree. l. val
139140 @return_on_nonfinite_val (eval_options, val_l, cX)
140141 feature_r = tree. r. feature
@@ -144,7 +145,7 @@ function deg2_l0_r0_eval(
144145 end
145146 return ResultOk (cumulator, true )
146147 elseif tree. r. constant
147- cumulator = similar ( cX, axes (cX, 2 ))
148+ cumulator = get_array (eval_options . buffer, cX, axes (cX, 2 ))
148149 feature_l = tree. l. feature
149150 val_r = tree. r. val
150151 @return_on_nonfinite_val (eval_options, val_r, cX)
@@ -154,7 +155,7 @@ function deg2_l0_r0_eval(
154155 end
155156 return ResultOk (cumulator, true )
156157 else
157- cumulator = similar ( cX, axes (cX, 2 ))
158+ cumulator = get_array (eval_options . buffer, cX, axes (cX, 2 ))
158159 feature_l = tree. l. feature
159160 feature_r = tree. r. feature
160161 @turbo for j in axes (cX, 2 )
0 commit comments