Mercurial > repos > public > sbplib_julia
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`. |