@@ -191,19 +191,17 @@ has_constants(::ParametricExpression) = _interface_error()
191191
192192has_operators (ex:: ParametricExpression ) = has_operators (get_tree (ex))
193193
194- # TODO : Use regular `count_scalar_constants`
195-
196- function get_constants_array (parameter_refs, BT)
194+ function _get_constants_array (parameter_refs, :: Type{BT} ) where {BT}
197195 size = sum (count_scalar_constants, parameter_refs)
198196 flat = Vector {BT} (undef, size)
199197 ix = 1
200- for p in parameter_refs[:]
198+ for p in parameter_refs
201199 ix = pack_scalar_constants! (flat, ix, p)
202200 end
203201 return flat
204202end
205203
206- function set_constants_array (parameter_refs, flat)
204+ function _set_constants_array! (parameter_refs, flat)
207205 ix, i = 1 , 1
208206 while ix <= length (flat) && i <= length (parameter_refs)
209207 ix, parameter_refs[i] = unpack_scalar_constants (flat, ix, parameter_refs[i])
@@ -214,19 +212,20 @@ end
214212function get_scalar_constants (ex:: ParametricExpression{T} ) where {T}
215213 constants, constant_refs = get_scalar_constants (get_tree (ex))
216214 parameters = get_metadata (ex). parameters
217- parameters_numbers = get_constants_array (parameters, eltype (constants))
215+ flat_parameters = _get_constants_array (parameters, eltype (constants))
218216 num_constants = length (constants)
219- num_parameters = length (parameters_numbers)
220- return vcat (constants, parameters_numbers),
221- (; constant_refs, parameter_refs= parameters, num_parameters, num_constants)
217+ num_parameters = length (flat_parameters)
218+ combined_scalars = vcat (constants, flat_parameters)
219+ refs = (; constant_refs, parameter_refs= parameters, num_parameters, num_constants)
220+ return combined_scalars, refs
222221end
223222function set_scalar_constants! (ex:: ParametricExpression{T} , x, refs) where {T}
224223 # First, set the usual constants
225224 set_scalar_constants! (
226225 get_tree (ex), @view (x[1 : (refs. num_constants)]), refs. constant_refs
227226 )
228227 # Then, copy in the parameters
229- set_constants_array (
228+ _set_constants_array! (
230229 @view (get_metadata (ex). parameters[:]), @view (x[(refs. num_constants + 1 ): end ])
231230 )
232231 return ex
0 commit comments