@@ -153,6 +153,31 @@ function strip_metadata(
153153) where {T,L}
154154 return with_metadata (ex; init_params (options, dataset, ex, Val (false ))... )
155155end
156+ function strip_metadata (
157+ member:: PM , options:: AbstractOptions , dataset:: Dataset{T,L}
158+ ) where {T,L,N,PM<: AbstractPopMember{T,L,N} }
159+ stripped_tree = strip_metadata (member. tree, options, dataset)
160+ new_member = create_child (
161+ member,
162+ stripped_tree,
163+ member. cost,
164+ member. loss,
165+ options;
166+ complexity= nothing ,
167+ parent_ref= member. parent,
168+ )
169+ new_member. ref = member. ref
170+ new_member. parent = member. parent
171+ setfield! (new_member, :complexity , - 1 )
172+
173+ for field in fieldnames (PM)
174+ if field in (:tree , :cost , :loss , :birth , :complexity , :ref , :parent )
175+ continue
176+ end
177+ setfield! (new_member, field, getfield (member, field))
178+ end
179+ return new_member
180+ end
156181function strip_metadata (
157182 member:: PopMember , options:: AbstractOptions , dataset:: Dataset{T,L}
158183) where {T,L}
@@ -166,6 +191,19 @@ function strip_metadata(
166191 deterministic= options. deterministic,
167192 )
168193end
194+ function strip_metadata (
195+ member:: PopMember{T,L,N} , options:: AbstractOptions , dataset:: Dataset{T,L}
196+ ) where {T,L,N}
197+ return PopMember (
198+ strip_metadata (member. tree, options, dataset),
199+ member. cost,
200+ member. loss,
201+ nothing ;
202+ ref= member. ref,
203+ parent= member. parent,
204+ deterministic= options. deterministic,
205+ )
206+ end
169207function strip_metadata (
170208 pop:: Population , options:: AbstractOptions , dataset:: Dataset{T,L}
171209) where {T,L}
0 commit comments