header: - name: ['Name', ['rowname']] - Inp: ['Input ranges*', ['Inp']] - Acc: ['Accumu­lator', ['Acc']] - Ret: ['Output ranges', ['Ret']] - Ops: ['Operations', ['Ops']] - Def: ['Default operations', ['Def']] - Cpx: ['Compl­exity', ['Cpx']] - Dir: ['Order', ['Dir']] - Cmp: ['Compare to', ['Cmp']] - Family: ['Family', ['Family', 'hidden']] data: - name: '{std:transform_@inclusive_@scan}' id: 'std:transform_inclusive_scan' Inp: '1{^↓I,∥F|FN:raccess}' Acc: 'First, Arg' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'aR, uT' Def: '' Cpx: 'O(N)' Dir: '{∥|FN:par}' Cmp: '' Family: '20' - name: '{std:transform_@exclusive_@scan}' id: 'std:transform_exclusive_scan' Inp: '1{^↓I,∥F|FN:raccess}' Acc: 'Arg' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'aR, uT' Def: '' Cpx: 'O(N)' Dir: '{∥|FN:par}' Cmp: '' Family: '20' - name: '{std:partial_@sum}' id: 'std:partial_sum' Inp: '1{^↓I|FN:raccess}' Acc: 'First' Ret: '1{^↓O|FN:raccess}' Ops: 'A' Def: '{std:plus}' Cpx: 'O(N), =(N - 1)' Dir: 'Fwd.' Cmp: '' Family: '30' - name: '{std:inclusive_@scan}' id: 'std:inclusive_scan' Inp: '1{^↓I,∥F|FN:raccess}' Acc: 'First, Arg' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'aR' Def: '{std:plus}' Cpx: 'O(N)' Dir: '{∥|FN:par}' Cmp: '' Family: '30' - name: '{std:exclusive_@scan}' id: 'std:exclusive_scan' Inp: '1{^↓I,∥F|FN:raccess}' Acc: 'Arg' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'aR' Def: '{std:plus}' Cpx: 'O(N)' Dir: '{∥|FN:par}' Cmp: '' Family: '30' - name: '{std:adjacent_@difference}' id: 'std:adjacent_difference' Inp: '1s{^↓I,∥F|FN:raccess}' Acc: 'Quasi' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'fD' Def: '{std:minus}' Cpx: 'O(N), =(N - 1)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#CH:adjacent_@transform}' Family: '40' - name: '{CH:adjacent_@transform}{▸|YT:sEvYmb3eKsw?t=}' id: 'CH:adjacent_transform' Inp: '1s{^↓I|FN:raccess}' Acc: 'Quasi' Ret: '1{^↓O|FN:raccess}' Ops: 'D' Def: '' Cpx: 'O(N), =(N - 1)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#std:adjacent_@difference}' Family: '40' - name: '{CH:adjacent_@inclusive_@scan}{▸|YT:sEvYmb3eKsw?t=51m}' id: 'CH:adjacent_inclusive_scan' Inp: '1s{^↓I|FN:raccess}' Acc: 'First' Ret: '1{^↓O|FN:raccess}' Ops: 'A, D' Def: '' Cpx: 'O(N)' Dir: 'Fwd.' Cmp: '' Family: '50' - name: '{std:transform}' id: 'std:transform' Inp: '1{^↓I,∥F|FN:raccess} / 2{^↓I,∥F|FN:raccess}' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'uT / bT' Def: '' Cpx: '=(N)' Dir: '{∥|FN:par}' Cmp: '' Family: '60' - name: '{std:copy}' id: 'std:copy' Inp: '1{^↓I,∥F|FN:raccess}' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: '' Def: '' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#std:transform}' Family: '60' - name: '{std:copy_@backward}' id: 'std:copy_backward' Inp: '1{^↓B|FN:raccess}' Acc: '' Ret: '1{^↓B|FN:raccess}' Ops: '' Def: '' Cpx: '=(N)' Dir: 'Rev.' Cmp: '' Family: '60' - name: '{std:copy_n}' id: 'std:copy_n' Inp: '1{^↓I,∥F|FN:raccess}' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: '' Def: '' Cpx: '=(N)' Dir: 'Unspc., {∥|FN:par}' Cmp: '{#std:transform}' Family: '60' - name: '{std:replace_@copy}' id: 'std:replace_copy' Inp: '1{^↓I,∥F|FN:raccess}+Value' Acc: 'Arg' Ret: '1{^↓O,∥F|FN:raccess}' Ops: '' Def: '{std:equal_to}' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#std:transform}' Family: '60' - name: '{std:replace_@copy_if}' id: 'std:replace_copy_if' Inp: '1{^↓I,∥F|FN:raccess}' Acc: 'Arg' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'uP' Def: '' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#std:transform}' Family: '60' - name: '{std:reverse_@copy}' id: 'std:reverse_copy' Inp: '1{^↓B|FN:raccess}' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: '' Def: '' Cpx: '=(N)' Dir: '{∥|FN:par}' Cmp: '{#std:transform}' Family: '60' - name: '{std:rotate_@copy}' id: 'std:rotate_copy' Inp: '1d{^↓F|FN:raccess}' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: '' Def: '' Cpx: 'O(N)' Dir: '{∥|FN:par}' Cmp: '' Family: '60' - name: '{std:move (algorithm)}' id: 'std:move.algorithm' Inp: '1{^↓I,∥F|FN:raccess}' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: '' Def: '' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#std:shift_left}' Family: '65' - name: '{std:move_@backward}' id: 'std:move_backward' Inp: '1{^↓B|FN:raccess}' Acc: '' Ret: '1{^↓B|FN:raccess}' Ops: '' Def: '' Cpx: '=(N)' Dir: 'Rev.' Cmp: '{#std:shift_@right}' Family: '65' - name: '{std:shift_@left}' id: 'std:shift_left' Inp: '1d{^↓F|FN:raccess}' Acc: '' Ret: 'Self' Ops: '' Def: '' Cpx: '"≤(N-n)"' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#%move (algorithm)|std:move.algorithm}' Family: '67' - name: '{std:shift_@right}' id: 'std:shift_right' Inp: '1d{^↓F(swap),B|FN:raccess}' Acc: '' Ret: 'Self' Ops: '' Def: '' Cpx: '"≤(N-n)"' Dir: 'Yes, {∥|FN:par}' Cmp: '{#std:move_@backward}' Family: '67' - name: '{std:sample}' id: 'std:sample' Inp: '1{^↓F|FN:raccess}' Acc: 'Arg(URBG)' Ret: '1{^↓O|FN:raccess}+Size' Ops: '' Def: '' Cpx: 'O(N)' Dir: 'Fwd.' Cmp: '' Family: '70' - name: '{std:sample}{^Ⓢ|FN:sample}' id: 'std:sampleI' Inp: '1{^↓I|FN:raccess}' Acc: 'Arg(URBG)' Ret: '1{^↓R|FN:raccess}+Size' Ops: '' Def: '' Cpx: 'O(N)' Dir: 'Fwd.' Cmp: '' Family: '70' - name: '{std:partial_@sort_@copy}' id: 'std:partial_sort_copy' Inp: '1{^↓I,∥F|FN:raccess}' Acc: '' Ret: '1{^↓R|FN:raccess}' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N log(min(D,N))' Dir: '{∥|FN:par}' Cmp: '' Family: '70' - name: '{std:partition_@copy}' id: 'std:partition_copy' Inp: '1{^↓I,∥F|FN:raccess}' Acc: '' Ret: '2{^↓O,∥F|FN:raccess}' Ops: 'uP' Def: '' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '' Family: '73' - name: '{kblib:transform_if}' id: 'kblib:transform_if' Inp: '1{^↓I|FN:raccess}' Acc: '' Ret: '1{^↓O|FN:raccess}' Ops: 'uP, uT' Def: '' Cpx: 'O(N)' Dir: 'Fwd.' Cmp: '' Family: '75' - name: '{std:copy_if}, {std:remove_@copy_if}' id: 'std:copy_if' Inp: '1{^↓I,∥F|FN:raccess}' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'uP' Def: '' Cpx: 'O(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#kblib:transform_if}' Family: '75' - name: '{std:remove_@copy}' id: 'std:remove_copy' Inp: '1{^↓I,∥F|FN:raccess}+Value' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: '' Def: '{std:equal_to}' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#kblib:transform_if}' Family: '75' - name: '{std:unique_@copy}' id: 'std:unique_copy' Inp: '1{^↓I,∥F|FN:raccess}' Acc: 'First' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'bP' Def: '{std:equal_to}' Cpx: 'O(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '' Family: '75' - name: '{std:set_@difference}, {std:set_@intersection}, {std:set_@symmetric_@difference}, {std:set_@union}' id: 'std:set_difference' Inp: '2{^↓I,∥F|FN:raccess}' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N+M), ≤(2â‹…(N+M)−1)' Dir: 'Fwd., {∥|FN:par}' Cmp: '' Family: '77' - name: '{std:merge}' id: 'std:merge' Inp: '2{^↓I,∥F|FN:raccess}' Acc: '' Ret: '1{^↓O,∥F|FN:raccess}' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N+M)' Dir: 'Fwd., {∥|FN:par}' Cmp: '' Family: '77' - name: '{std:regex_@replace}{^⧫|FN:re}' id: 'std:regex_replace' Inp: '2{^↓B|FN:raccess}' Acc: '' Ret: '1{^↓O|FN:raccess}' Ops: 'Regex{^⧫|FN:re}' Def: '' Cpx: 'Unspc.' Dir: '' Cmp: 'See note{^⧫|FN:re}' Family: '78' - name: '{kblib:search_@replace_@copy}' id: 'kblib:search_replace_copy' Inp: '3{^↓F|FN:raccess}' Acc: '' Ret: '1{^↓O|FN:raccess}' Ops: 'bP' Def: '{std:equal_to}' Cpx: 'O(N×(S+R))' Dir: '' Cmp: '{#std:regex_@replace}{^⧫|FN:re}' Family: '78' - name: '{std:generate}, {std:generate_n}' id: 'std:generate' Inp: '0' Acc: '' Ret: '1{^↓F|FN:raccess}' Ops: 'G' Def: '' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '' Family: '100' - name: '{std:iota}' id: 'std:iota' Inp: '0' Acc: 'Arg' Ret: '1{^↓F|FN:raccess}' Ops: '' Def: '{$:++}' Cpx: '=(N)' Dir: 'Fwd.' Cmp: '{#std:generate}' Family: '100' - name: '{kblib:iota}' id: 'kblib:iota' Inp: '0' Acc: 'Arg' Ret: '1{^↓F|FN:raccess}' Ops: 'uT' Def: '{:++}' Cpx: '=(N)' Dir: 'Fwd.' Cmp: '{#std:generate}' Family: '100' - name: '{std:fill}, {std:fill_n}' id: 'std:fill' Inp: '0' Acc: 'Arg' Ret: '1{^↓F|FN:raccess}' Ops: '' Def: '' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#std:generate}, {#std:generate_n}' Family: '100' - name: '{std:for_@each}, {std:for_@each_n}' id: 'std:for_each' Inp: '1{^↓I,∥F|FN:raccess}' Acc: '' Ret: '0{^∅|FN:for-each}' Ops: 'muT' Def: '' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '' Family: '140' - name: '{kblib:for_@each}, {kblib:for_@each_n}' id: 'kblib:for_each' Inp: '1{^↓I|FN:raccess} / 2{^↓I|FN:raccess}' Acc: '' Ret: '0{^∅|FN:for-each}' Ops: 'muT / mbT' Def: '' Cpx: '=(N)' Dir: 'Fwd.' Cmp: '' Family: '140' - name: '{std:swap_@ranges}' id: 'std:swap_ranges' Inp: '2{^↓F|FN:raccess}' Acc: '' Ret: 'Self' Ops: '' Def: '{$std:swap}' Cpx: 'O(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#kblib:for_@each}' Family: '140' - name: '{%remove|std:remove ()}' id: 'std:remove.algorithm' Inp: '1{^↓F|FN:raccess}+Value' Acc: '' Ret: 'Self' Ops: '' Def: '{std:equal_to}' Cpx: 'O(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '' Family: '150' - name: '{std:remove_if}' id: 'std:remove_if' Inp: '1{^↓F|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'uP' Def: '' Cpx: 'O(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '' Family: '150' - name: '{std:unique}' id: 'std:unique' Inp: '1{^↓F|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:equal_to}' Cpx: 'O(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '' Family: '150' - name: '{std:replace}' id: 'std:replace' Inp: '1{^↓F|FN:raccess}+Value' Acc: '' Ret: 'Self' Ops: '' Def: '{std:equal_to}' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#std:transform}' Family: '160' - name: '{std:replace_if}' id: 'std:replace_if' Inp: '1{^↓F|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'uP' Def: '' Cpx: '=(N)' Dir: 'Fwd., {∥|FN:par}' Cmp: '{#std:transform}' Family: '160' - name: '{std:reverse}' id: 'std:reverse' Inp: '1{^↓B|FN:raccess}' Acc: '' Ret: 'Self' Ops: '' Def: '' Cpx: 'O(N), =(N/2)' Dir: 'Yes, {∥|FN:par}' Cmp: '{#std:swap_ranges}' Family: '170' - name: '{std:rotate}' id: 'std:rotate' Inp: '1d{^↓F|FN:raccess}' Acc: '' Ret: 'Self' Ops: '' Def: '' Cpx: 'O(N)' Dir: 'Yes, {∥|FN:par}' Cmp: '' Family: '170' - name: '{std:shuffle}' id: 'std:shuffle' Inp: '1{^↓R|FN:raccess}' Acc: 'Acc(URBG)' Ret: 'Self' Ops: '' Def: '' Cpx: 'O(N)' Dir: '' Cmp: '' Family: '170' - name: '{std:next_@permutation}, {std:prev_@permutation}' id: 'std:next_permutation' Inp: '1{^↓B|FN:raccess}' Acc: '' Ret: 'Self' Ops: '' Def: '' Cpx: 'O(N), ≤(N/2)' Dir: '' Cmp: '' Family: '170' - name: '{std:partition}' id: 'std:partition' Inp: '1{^↓F|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'uP' Def: '' Cpx: 'O(N); O(N log N){^↓∥|FN:raccess}' Dir: '{∥|FN:par}' Cmp: '' Family: '170' - name: '{std:stable_@partition}' id: 'std:stable_partition' Inp: '1{^↓B|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'uP' Def: '' Cpx: 'O(N) w/ memory, else O(N log N); O(N log N){^↓∥|FN:raccess}' Dir: '{∥|FN:par}' Cmp: '' Family: '170' - name: '{std:sort}' id: 'std:sort' Inp: '1{^↓R|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N log N)' Dir: '{∥|FN:par}' Cmp: '' Family: '170' - name: '{std:partial_@sort}' id: 'std:partial_sort' Inp: '1d{^↓R|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N log M)' Dir: '{∥|FN:par}' Cmp: '' Family: '170' - name: '{std:stable_@sort}' id: 'std:stable_sort' Inp: '1{^↓R|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N log N) w/ memory, else O(N log(N)2)' Dir: '{∥|FN:par}' Cmp: '' Family: '170' - name: '{std:nth_@element}' id: 'std:nth_element' Inp: '1d{^↓R|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N); O(N log N){^↓∥|FN:raccess}' Dir: '{∥|FN:par}' Cmp: '' Family: '170' - name: '{%nth_@elements, multi_@nth_@element|wg21:p2375}' id: 'wg21:nth_elements' Inp: '1{^↓R|FN:raccess}+positions{^↓R|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N log M)' Dir: '' Cmp: '{#std:nth_@element}' Family: '170' - name: '{std:make_@heap}' id: 'std:make_heap' Inp: '1{^↓R|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N), ≤(3N)' Dir: '' Cmp: '' Family: '170' - name: '{std:push_@heap}, {std:pop_@heap}' id: 'std:push_heap' Inp: '1{^↓R|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:less}' Cpx: 'O(log N)' Dir: '' Cmp: '' Family: '170' - name: '{std:sort_@heap}' id: 'std:sort_heap' Inp: '1{^↓R|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:less}' Cpx: 'O(N log N)' Dir: '' Cmp: '' Family: '170' - name: '{std:inplace_@merge}' id: 'std:inplace_merge' Inp: '1d{^↓B|FN:raccess}' Acc: '' Ret: 'Self' Ops: 'bP' Def: '{std:less}' Cpx: '=(N-1) w/ memory, O(N log N); O(N log N){^↓∥|FN:raccess}' Dir: '{∥|FN:par}' Cmp: '' Family: '170'