Skip to content

Commit 8e179ec

Browse files
committed
refactor: remove more unneccessary methods
1 parent 1e70235 commit 8e179ec

File tree

1 file changed

+5
-46
lines changed

1 file changed

+5
-46
lines changed

src/ArrayNode.jl

Lines changed: 5 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,10 @@ import ..NodeModule:
88
constructorof,
99
with_type_parameters,
1010
with_max_degree,
11-
preserve_sharing,
12-
max_degree,
1311
default_allocator,
1412
get_children,
1513
set_children!,
1614
unsafe_get_children,
17-
tree_mapreduce,
18-
count_nodes,
19-
set_node!,
20-
any,
2115
copy_node
2216

2317
export ArrayNode
@@ -215,13 +209,17 @@ function ArrayNode{T,D}(
215209
tree.nodes.degree[idx] = 0
216210
tree.nodes.constant[idx] = true
217211
tree.nodes.val[idx] = val
212+
# Clear children for leaf node
213+
tree.nodes.children[idx] = ntuple(_ -> UInt16(0), Val(D))
218214
return ArrayNode{T,D,typeof(tree.nodes)}(tree, idx)
219215
end
220216

221217
if !isnothing(feature)
222218
tree.nodes.degree[idx] = 0
223219
tree.nodes.constant[idx] = false
224220
tree.nodes.feature[idx] = feature
221+
# Clear children for leaf node
222+
tree.nodes.children[idx] = ntuple(_ -> UInt16(0), Val(D))
225223
return ArrayNode{T,D,typeof(tree.nodes)}(tree, idx)
226224
end
227225

@@ -273,6 +271,7 @@ function ArrayNode{T,D}(
273271
tree.nodes.degree[idx] = 0
274272
tree.nodes.constant[idx] = true
275273
tree.nodes.val[idx] = zero(T)
274+
tree.nodes.children[idx] = ntuple(_ -> UInt16(0), Val(D))
276275
return ArrayNode{T,D,typeof(tree.nodes)}(tree, idx)
277276
end
278277

@@ -455,44 +454,4 @@ end
455454

456455
Base.copy(n::ArrayNode) = copy_node(n)
457456

458-
# tree_mapreduce implementation
459-
function tree_mapreduce(
460-
f::F,
461-
op::G,
462-
tree::ArrayNode{T,D,S},
463-
result_type::Type{RT}=Undefined;
464-
f_on_shared::H=(result, is_shared) -> result,
465-
break_sharing::Val{BS}=Val(false),
466-
) where {F<:Function,G<:Function,H<:Function,T,D,S,RT,BS}
467-
return tree_mapreduce(f, f, op, tree, result_type; f_on_shared, break_sharing)
468-
end
469-
470-
function tree_mapreduce(
471-
f_leaf::F1,
472-
f_branch::F2,
473-
op::G,
474-
tree::ArrayNode{T,D,S},
475-
result_type::Type{RT}=Undefined;
476-
f_on_shared::H=(result, is_shared) -> result,
477-
break_sharing::Val{BS}=Val(false),
478-
) where {F1<:Function,F2<:Function,G<:Function,H<:Function,T,D,S,RT,BS}
479-
# ArrayNode doesn't preserve sharing, so we can use simple recursion
480-
if tree.degree == 0
481-
return f_leaf(tree)
482-
else
483-
# Apply to children
484-
degree = tree.degree
485-
children_results = ntuple(Val(Int(degree))) do i
486-
child = get_children(tree, Val(degree))[i]
487-
tree_mapreduce(
488-
f_leaf, f_branch, op, child, result_type; f_on_shared, break_sharing
489-
)
490-
end
491-
492-
# Reduce children results
493-
self_result = f_branch(tree)
494-
return op(self_result, children_results...)
495-
end
496-
end
497-
498457
end # module

0 commit comments

Comments
 (0)