@@ -510,6 +510,12 @@ function reorder_parameters(ic::IndexCache, ps; drop_missing = false)
510510 (BasicSymbolic[unwrap (variable (:DEF ))
511511 for _ in 1 : (ic. tunable_buffer_size. length)],)
512512 end
513+ initials_buf = if ic. initials_buffer_size. length == 0
514+ ()
515+ else
516+ (BasicSymbolic[unwrap (variable (:DEF ))
517+ for _ in 1 : (ic. initials_buffer_size. length)],)
518+ end
513519
514520 disc_buf = Tuple (BasicSymbolic[unwrap (variable (:DEF ))
515521 for _ in 1 : (sum (x -> x. length, temp))]
@@ -531,6 +537,13 @@ function reorder_parameters(ic::IndexCache, ps; drop_missing = false)
531537 else
532538 param_buf[1 ][i] = unwrap .(collect (p))
533539 end
540+ elseif haskey (ic. initials_idx, p)
541+ i = ic. initials_idx[p]
542+ if i isa Int
543+ initials_buf[1 ][i] = unwrap (p)
544+ else
545+ initials_buf[1 ][i] = unwrap .(collect (p))
546+ end
534547 elseif haskey (ic. constant_idx, p)
535548 i, j = ic. constant_idx[p]
536549 const_buf[i][j] = p
@@ -543,7 +556,8 @@ function reorder_parameters(ic::IndexCache, ps; drop_missing = false)
543556 end
544557
545558 result = broadcast .(
546- unwrap, (param_buf... , disc_buf... , const_buf... , nonnumeric_buf... ))
559+ unwrap, (
560+ param_buf... , initials_buf... , disc_buf... , const_buf... , nonnumeric_buf... ))
547561 if drop_missing
548562 result = map (result) do buf
549563 filter (buf) do sym
@@ -566,6 +580,11 @@ function iterated_buffer_index(ic::IndexCache, ind::ParameterIndex)
566580 elseif ic. tunable_buffer_size. length > 0
567581 idx += 1
568582 end
583+ if ind. portion isa SciMLStructures. Initials
584+ return idx + 1
585+ elseif ic. initials_buffer_size. length > 0
586+ idx += 1
587+ end
569588 if ind. portion isa SciMLStructures. Discrete
570589 return idx + ind. idx[1 ]
571590 elseif ! isempty (ic. discrete_buffer_sizes)
@@ -587,6 +606,8 @@ function get_buffer_template(ic::IndexCache, pidx::ParameterIndex)
587606
588607 if portion isa SciMLStructures. Tunable
589608 return ic. tunable_buffer_size
609+ elseif portion isa SciMLStructures. Initials
610+ return ic. initials_buffer_size
590611 elseif portion isa SciMLStructures. Discrete
591612 return ic. discrete_buffer_sizes[idx[1 ]][1 ]
592613 elseif portion isa SciMLStructures. Constants
0 commit comments