comparison src/LazyTensors/tuple_manipulation.jl @ 1225:6567e38b05ca refactor/LazyTensors/tuple_manipulation

Replace flatten_tuple with concatenate_tuple
author Jonatan Werpers <jonatan@werpers.com>
date Sat, 18 Feb 2023 12:24:44 +0100
parents 5bfb182e24dc
children ea5b4fca85e0
comparison
equal deleted inserted replaced
1224:e2f6dafb5d83 1225:6567e38b05ca
86 function sizes_to_ranges(szs) 86 function sizes_to_ranges(szs)
87 cum_szs = cumsum((0, szs...)) 87 cum_szs = cumsum((0, szs...))
88 return ntuple(i->cum_szs[i]+1:cum_szs[i+1], length(szs)) 88 return ntuple(i->cum_szs[i]+1:cum_szs[i+1], length(szs))
89 end 89 end
90 90
91
92 concatenate_tuples(t::Tuple,ts::Vararg{Tuple}) = (t..., concatenate_tuples(ts...)...) 91 concatenate_tuples(t::Tuple,ts::Vararg{Tuple}) = (t..., concatenate_tuples(ts...)...)
93 concatenate_tuples(t::Tuple) = t 92 concatenate_tuples(t::Tuple) = t
94 93
95 """
96 flatten_tuple(t)
97
98 Takes a nested tuple and flattens the whole structure
99 """
100 flatten_tuple(t::NTuple{N, Number} where N) = t
101 flatten_tuple(t::Tuple) = ((flatten_tuple.(t)...)...,) # simplify?
102 flatten_tuple(ts::Vararg) = flatten_tuple(ts)
103 # TBD: Can concatenate_tuples be used instead?
104 94
105 """ 95 """
106 left_pad_tuple(t, val, N) 96 left_pad_tuple(t, val, N)
107 97
108 Left pad the tuple `t` to length `N` using the value `val`. 98 Left pad the tuple `t` to length `N` using the value `val`.