@zigc/lib 0.17.0-dev.27 → 0.17.0-dev.296
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/c/fcntl.zig +6 -1
- package/c/inttypes.zig +0 -10
- package/c/math.zig +52 -112
- package/c/pthread.zig +57 -0
- package/c/search.zig +1 -27
- package/c/stdlib/drand48.zig +0 -57
- package/c/stdlib.zig +31 -121
- package/c/string.zig +20 -7
- package/c/strings.zig +0 -38
- package/c/unistd.zig +27 -26
- package/c/wchar.zig +10 -0
- package/c.zig +2 -2
- package/compiler/aro/aro/CodeGen.zig +7 -8
- package/compiler/aro/aro/Compilation.zig +17 -17
- package/compiler/aro/aro/Driver.zig +14 -13
- package/compiler/aro/aro/Parser.zig +20 -15
- package/compiler/aro/aro/Pragma.zig +3 -2
- package/compiler/aro/aro/Preprocessor.zig +9 -6
- package/compiler/aro/aro/pragmas/message.zig +3 -2
- package/compiler/aro/aro/text_literal.zig +3 -2
- package/compiler/aro/assembly_backend/x86_64.zig +4 -4
- package/compiler/build_runner.zig +2 -4
- package/compiler/reduce/Walk.zig +8 -13
- package/compiler/resinator/compile.zig +1 -1
- package/compiler/resinator/cvtres.zig +4 -4
- package/compiler/resinator/errors.zig +7 -7
- package/compiler/resinator/ico.zig +4 -4
- package/compiler/resinator/parse.zig +2 -2
- package/compiler/resinator/res.zig +1 -1
- package/compiler/std-docs.zig +1 -1
- package/compiler/test_runner.zig +1 -1
- package/compiler/translate-c/MacroTranslator.zig +1 -1
- package/compiler/translate-c/Translator.zig +6 -2
- package/compiler/translate-c/ast.zig +16 -23
- package/compiler/translate-c/main.zig +1 -1
- package/compiler_rt/addf3.zig +1 -1
- package/compiler_rt/arm.zig +3 -3
- package/compiler_rt/atomics.zig +1 -1
- package/compiler_rt/comparef.zig +3 -3
- package/compiler_rt/cos.zig +1 -3
- package/compiler_rt/count0bits.zig +1 -1
- package/compiler_rt/divdf3.zig +2 -2
- package/compiler_rt/divsf3.zig +1 -1
- package/compiler_rt/divtf3.zig +1 -1
- package/compiler_rt/divxf3.zig +1 -1
- package/compiler_rt/exp.zig +0 -2
- package/compiler_rt/exp2.zig +0 -2
- package/compiler_rt/extendf.zig +5 -5
- package/compiler_rt/fabs.zig +1 -3
- package/compiler_rt/float_from_int.zig +3 -4
- package/compiler_rt/fma.zig +0 -2
- package/compiler_rt/fmax.zig +1 -3
- package/compiler_rt/fmin.zig +1 -3
- package/compiler_rt/fmod.zig +2 -4
- package/compiler_rt/limb64.zig +3 -2
- package/compiler_rt/log.zig +0 -2
- package/compiler_rt/log10.zig +0 -2
- package/compiler_rt/log2.zig +0 -2
- package/compiler_rt/mulf3.zig +2 -2
- package/compiler_rt/rem_pio2l.zig +1 -1
- package/compiler_rt/round.zig +0 -2
- package/compiler_rt/sin.zig +1 -3
- package/compiler_rt/sincos.zig +1 -3
- package/compiler_rt/sqrt.zig +0 -2
- package/compiler_rt/ssp.zig +2 -2
- package/compiler_rt/tan.zig +1 -3
- package/compiler_rt/trunc.zig +0 -2
- package/compiler_rt/truncf.zig +3 -3
- package/compiler_rt/trunctfhf2.zig +3 -0
- package/compiler_rt.zig +5 -26
- package/docs/wasm/Walk.zig +1 -3
- package/docs/wasm/html_render.zig +1 -2
- package/docs/wasm/markdown/Parser.zig +16 -20
- package/fuzzer.zig +2 -0
- package/include/__clang_spirv_builtins.h +12 -12
- package/include/__float_float.h +176 -0
- package/include/__float_header_macro.h +12 -0
- package/include/__float_infinity_nan.h +20 -0
- package/include/amo.h +131 -0
- package/include/amxavx512intrin.h +215 -1
- package/include/amxintrin.h +0 -2
- package/include/arm_acle.h +37 -27
- package/include/arm_neon.h +218 -82
- package/include/arm_sme.h +8 -8
- package/include/arm_sve.h +4162 -3782
- package/include/avx10_2_512bf16intrin.h +19 -12
- package/include/avx10_2_512convertintrin.h +1 -1
- package/include/avx10_2_512niintrin.h +31 -31
- package/include/avx10_2_512satcvtdsintrin.h +1 -1
- package/include/avx10_2bf16intrin.h +54 -45
- package/include/avx10_2convertintrin.h +2 -2
- package/include/avx10_2copyintrin.h +1 -1
- package/include/avx10_2niintrin.h +14 -14
- package/include/avx10_2satcvtdsintrin.h +2 -2
- package/include/avx2intrin.h +275 -377
- package/include/avx512bf16intrin.h +25 -16
- package/include/avx512bitalgintrin.h +19 -30
- package/include/avx512bwintrin.h +386 -505
- package/include/avx512cdintrin.h +42 -55
- package/include/avx512dqintrin.h +132 -161
- package/include/avx512fintrin.h +1015 -1424
- package/include/avx512fp16intrin.h +112 -110
- package/include/avx512ifmaintrin.h +32 -34
- package/include/avx512ifmavlintrin.h +73 -46
- package/include/avx512vbmi2intrin.h +43 -32
- package/include/avx512vbmiintrin.h +19 -27
- package/include/avx512vbmivlintrin.h +35 -49
- package/include/avx512vlbf16intrin.h +32 -22
- package/include/avx512vlbitalgintrin.h +37 -53
- package/include/avx512vlbwintrin.h +470 -573
- package/include/avx512vlcdintrin.h +74 -102
- package/include/avx512vldqintrin.h +110 -127
- package/include/avx512vlfp16intrin.h +130 -111
- package/include/avx512vlintrin.h +945 -1299
- package/include/avx512vlvbmi2intrin.h +78 -63
- package/include/avx512vlvnniintrin.h +21 -18
- package/include/avx512vlvp2intersectintrin.h +2 -2
- package/include/avx512vnniintrin.h +10 -10
- package/include/avx512vp2intersectintrin.h +1 -2
- package/include/avx512vpopcntdqintrin.h +8 -10
- package/include/avx512vpopcntdqvlintrin.h +17 -15
- package/include/avxifmaintrin.h +16 -0
- package/include/avxintrin.h +165 -241
- package/include/avxvnniint16intrin.h +118 -99
- package/include/avxvnniint8intrin.h +56 -32
- package/include/avxvnniintrin.h +16 -8
- package/include/cpuid.h +101 -4
- package/include/emmintrin.h +168 -168
- package/include/f16cintrin.h +23 -9
- package/include/float.h +16 -155
- package/include/fma4intrin.h +98 -96
- package/include/fmaintrin.h +96 -66
- package/include/gfniintrin.h +21 -16
- package/include/hexagon_types.h +23 -20
- package/include/hvx_hexagon_protos.h +649 -860
- package/include/immintrin.h +0 -12
- package/include/intrin.h +4 -0
- package/include/lasxintrin.h +113 -0
- package/include/llvm_libc_wrappers/assert.h +3 -5
- package/include/llvm_libc_wrappers/ctype.h +3 -115
- package/include/llvm_libc_wrappers/inttypes.h +3 -5
- package/include/llvm_libc_wrappers/stdio.h +10 -38
- package/include/llvm_libc_wrappers/stdlib.h +3 -24
- package/include/llvm_libc_wrappers/string.h +2 -70
- package/include/llvm_libc_wrappers/time.h +4 -10
- package/include/mmintrin.h +188 -257
- package/include/module.modulemap +23 -4
- package/include/movrs_avx10_2_512intrin.h +2 -2
- package/include/movrs_avx10_2intrin.h +4 -4
- package/include/pmmintrin.h +12 -24
- package/include/ptrauth.h +16 -2
- package/include/riscv_mips.h +34 -0
- package/include/riscv_nds.h +89 -0
- package/include/sifive_vector.h +58 -2
- package/include/sm4evexintrin.h +2 -2
- package/include/smmintrin.h +77 -59
- package/include/spirvintrin.h +194 -0
- package/include/stddefer.h +19 -0
- package/include/tmmintrin.h +116 -147
- package/include/vaesintrin.h +1 -2
- package/include/xmmintrin.h +44 -70
- package/include/xopintrin.h +20 -10
- package/libc/include/aarch64-linux-any/asm/hwcap.h +1 -0
- package/libc/include/aarch64-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/any-linux-any/asm-generic/errno.h +2 -0
- package/libc/include/any-linux-any/asm-generic/unistd.h +4 -1
- package/libc/include/any-linux-any/drm/amdgpu_drm.h +20 -6
- package/libc/include/any-linux-any/drm/amdxdna_accel.h +8 -0
- package/libc/include/any-linux-any/drm/drm_fourcc.h +6 -6
- package/libc/include/any-linux-any/drm/panfrost_drm.h +75 -1
- package/libc/include/any-linux-any/drm/panthor_drm.h +154 -3
- package/libc/include/any-linux-any/drm/rocket_accel.h +74 -24
- package/libc/include/any-linux-any/drm/xe_drm.h +89 -6
- package/libc/include/any-linux-any/linux/android/binder.h +1 -1
- package/libc/include/any-linux-any/linux/bpf.h +28 -0
- package/libc/include/any-linux-any/linux/btrfs.h +1 -0
- package/libc/include/any-linux-any/linux/btrfs_tree.h +32 -2
- package/libc/include/any-linux-any/linux/dma-buf.h +1 -0
- package/libc/include/any-linux-any/linux/dpll.h +1 -0
- package/libc/include/any-linux-any/linux/elf.h +2 -0
- package/libc/include/any-linux-any/linux/ethtool.h +21 -5
- package/libc/include/any-linux-any/linux/fs.h +1 -0
- package/libc/include/any-linux-any/linux/hyperv.h +1 -1
- package/libc/include/any-linux-any/linux/idxd.h +134 -134
- package/libc/include/any-linux-any/linux/if_alg.h +1 -1
- package/libc/include/any-linux-any/linux/if_link.h +1 -0
- package/libc/include/any-linux-any/linux/input-event-codes.h +4 -0
- package/libc/include/any-linux-any/linux/io_uring/bpf_filter.h +68 -0
- package/libc/include/any-linux-any/linux/io_uring/query.h +5 -1
- package/libc/include/any-linux-any/linux/io_uring.h +33 -2
- package/libc/include/any-linux-any/linux/iommufd.h +39 -0
- package/libc/include/any-linux-any/linux/kfd_ioctl.h +13 -3
- package/libc/include/any-linux-any/linux/kfd_sysfs.h +2 -1
- package/libc/include/any-linux-any/linux/kvm.h +30 -6
- package/libc/include/any-linux-any/linux/landlock.h +22 -8
- package/libc/include/any-linux-any/linux/magic.h +1 -0
- package/libc/include/any-linux-any/linux/mempolicy.h +3 -0
- package/libc/include/any-linux-any/linux/mount.h +11 -2
- package/libc/include/any-linux-any/linux/mptcp_pm.h +1 -1
- package/libc/include/any-linux-any/linux/mshv.h +2 -0
- package/libc/include/any-linux-any/linux/netfilter_bridge.h +5 -4
- package/libc/include/any-linux-any/linux/netfilter_ipv4.h +4 -5
- package/libc/include/any-linux-any/linux/netfilter_ipv6.h +3 -4
- package/libc/include/any-linux-any/linux/nfs.h +1 -1
- package/libc/include/any-linux-any/linux/nfsd_netlink.h +1 -0
- package/libc/include/any-linux-any/linux/nilfs2_api.h +2 -2
- package/libc/include/any-linux-any/linux/nilfs2_ondisk.h +97 -66
- package/libc/include/any-linux-any/linux/nl80211.h +104 -3
- package/libc/include/any-linux-any/linux/pci.h +7 -0
- package/libc/include/any-linux-any/linux/pci_regs.h +65 -6
- package/libc/include/any-linux-any/linux/pcitest.h +1 -0
- package/libc/include/any-linux-any/linux/perf_event.h +24 -3
- package/libc/include/any-linux-any/linux/pkt_sched.h +1 -0
- package/libc/include/any-linux-any/linux/prctl.h +30 -0
- package/libc/include/any-linux-any/linux/rseq.h +62 -5
- package/libc/include/any-linux-any/linux/shm.h +0 -1
- package/libc/include/any-linux-any/linux/stddef.h +4 -0
- package/libc/include/any-linux-any/linux/sysctl.h +1 -2
- package/libc/include/any-linux-any/linux/taskstats.h +12 -1
- package/libc/include/any-linux-any/linux/tcp.h +23 -3
- package/libc/include/any-linux-any/linux/typelimits.h +8 -0
- package/libc/include/any-linux-any/linux/ublk_cmd.h +120 -1
- package/libc/include/any-linux-any/linux/v4l2-controls.h +63 -0
- package/libc/include/any-linux-any/linux/vbox_vmmdev_types.h +2 -2
- package/libc/include/any-linux-any/linux/vduse.h +80 -5
- package/libc/include/any-linux-any/linux/version.h +3 -3
- package/libc/include/any-linux-any/linux/vfio.h +4 -0
- package/libc/include/any-linux-any/linux/videodev2.h +3 -0
- package/libc/include/any-linux-any/linux/virtio_ring.h +1 -2
- package/libc/include/any-linux-any/linux/vmclock-abi.h +20 -0
- package/libc/include/any-linux-any/rdma/bnxt_re-abi.h +16 -0
- package/libc/include/any-linux-any/rdma/ib_user_ioctl_cmds.h +16 -0
- package/libc/include/any-linux-any/rdma/mana-abi.h +3 -0
- package/libc/include/any-linux-any/scsi/scsi_bsg_ufs.h +8 -9
- package/libc/include/any-linux-any/sound/sof/tokens.h +6 -0
- package/libc/include/arc-linux-any/asm/swab.h +0 -63
- package/libc/include/arc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/arm-linux-any/asm/ptrace.h +0 -9
- package/libc/include/arm-linux-any/asm/unistd-eabi.h +1 -0
- package/libc/include/arm-linux-any/asm/unistd-oabi.h +1 -0
- package/libc/include/csky-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/hexagon-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/loongarch-linux-any/asm/hwcap.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm.h +1 -0
- package/libc/include/loongarch-linux-any/asm/kvm_para.h +1 -0
- package/libc/include/loongarch-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/loongarch-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/m68k-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/mips-linux-any/asm/errno.h +2 -0
- package/libc/include/mips-linux-any/asm/unistd_n32.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_n64.h +1 -0
- package/libc/include/mips-linux-any/asm/unistd_o32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/powerpc-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/riscv-linux-any/asm/hwprobe.h +4 -0
- package/libc/include/riscv-linux-any/asm/kvm.h +3 -0
- package/libc/include/riscv-linux-any/asm/ptrace.h +37 -0
- package/libc/include/riscv-linux-any/asm/sigcontext.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/riscv-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/s390x-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/sparc-linux-any/asm/errno.h +2 -0
- package/libc/include/sparc-linux-any/asm/ioctls.h +4 -4
- package/libc/include/sparc-linux-any/asm/unistd_32.h +2 -0
- package/libc/include/sparc-linux-any/asm/unistd_64.h +2 -0
- package/libc/include/x86-linux-any/asm/auxvec.h +0 -4
- package/libc/include/x86-linux-any/asm/kvm.h +13 -8
- package/libc/include/x86-linux-any/asm/svm.h +16 -16
- package/libc/include/x86-linux-any/asm/unistd_32.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_64.h +1 -0
- package/libc/include/x86-linux-any/asm/unistd_x32.h +1 -0
- package/libc/include/xtensa-linux-any/asm/unistd_32.h +1 -0
- package/libc/musl/arch/mipsn32/syscall_arch.h +35 -32
- package/libcxx/include/__algorithm/all_of.h +11 -5
- package/libcxx/include/__algorithm/comp.h +4 -0
- package/libcxx/include/__algorithm/copy.h +28 -147
- package/libcxx/include/__algorithm/copy_backward.h +9 -24
- package/libcxx/include/__algorithm/copy_n.h +50 -16
- package/libcxx/include/__algorithm/count.h +2 -2
- package/libcxx/include/__algorithm/equal.h +43 -55
- package/libcxx/include/__algorithm/fill.h +26 -8
- package/libcxx/include/__algorithm/fill_n.h +32 -46
- package/libcxx/include/__algorithm/find.h +96 -39
- package/libcxx/include/__algorithm/find_end.h +105 -0
- package/libcxx/include/__algorithm/for_each.h +18 -24
- package/libcxx/include/__algorithm/for_each_n.h +20 -47
- package/libcxx/include/__algorithm/for_each_n_segment.h +1 -1
- package/libcxx/include/__algorithm/for_each_segment.h +26 -0
- package/libcxx/include/__algorithm/generate.h +4 -2
- package/libcxx/include/__algorithm/generate_n.h +19 -6
- package/libcxx/include/__algorithm/is_permutation.h +4 -4
- package/libcxx/include/__algorithm/iterator_operations.h +3 -0
- package/libcxx/include/__algorithm/lexicographical_compare.h +2 -2
- package/libcxx/include/__algorithm/lexicographical_compare_three_way.h +6 -6
- package/libcxx/include/__algorithm/make_heap.h +16 -4
- package/libcxx/include/__algorithm/mismatch.h +2 -2
- package/libcxx/include/__algorithm/move.h +8 -19
- package/libcxx/include/__algorithm/move_backward.h +9 -24
- package/libcxx/include/__algorithm/none_of.h +4 -4
- package/libcxx/include/__algorithm/partial_sort.h +1 -1
- package/libcxx/include/__algorithm/partial_sort_copy.h +1 -1
- package/libcxx/include/__algorithm/pstl.h +9 -9
- package/libcxx/include/__algorithm/radix_sort.h +27 -25
- package/libcxx/include/__algorithm/ranges_copy_n.h +3 -26
- package/libcxx/include/__algorithm/ranges_equal.h +17 -26
- package/libcxx/include/__algorithm/ranges_fill.h +7 -6
- package/libcxx/include/__algorithm/ranges_for_each.h +9 -1
- package/libcxx/include/__algorithm/ranges_generate_n.h +2 -6
- package/libcxx/include/__algorithm/ranges_search_n.h +2 -2
- package/libcxx/include/__algorithm/rotate.h +27 -44
- package/libcxx/include/__algorithm/search_n.h +49 -37
- package/libcxx/include/__algorithm/sift_down.h +19 -18
- package/libcxx/include/__algorithm/simd_utils.h +33 -4
- package/libcxx/include/__algorithm/specialized_algorithms.h +54 -0
- package/libcxx/include/__algorithm/stable_sort.h +1 -1
- package/libcxx/include/__assertion_handler +31 -4
- package/libcxx/include/__atomic/atomic.h +36 -60
- package/libcxx/include/__atomic/atomic_flag.h +19 -37
- package/libcxx/include/__atomic/atomic_ref.h +29 -12
- package/libcxx/include/__atomic/atomic_sync.h +127 -55
- package/libcxx/include/__atomic/atomic_sync_timed.h +144 -0
- package/libcxx/include/__atomic/atomic_waitable_traits.h +103 -0
- package/libcxx/include/__atomic/contention_t.h +27 -3
- package/libcxx/include/__atomic/floating_point_helper.h +55 -0
- package/libcxx/include/__bit/countl.h +1 -2
- package/libcxx/include/__bit/countr.h +1 -2
- package/libcxx/include/__bit/has_single_bit.h +1 -1
- package/libcxx/include/__bit/popcount.h +0 -1
- package/libcxx/include/__bit/rotate.h +15 -26
- package/libcxx/include/__bit_reference +207 -18
- package/libcxx/include/__charconv/from_chars_integral.h +1 -1
- package/libcxx/include/__charconv/from_chars_result.h +1 -1
- package/libcxx/include/__charconv/to_chars_integral.h +1 -0
- package/libcxx/include/__charconv/to_chars_result.h +1 -1
- package/libcxx/include/__charconv/traits.h +3 -24
- package/libcxx/include/__chrono/day.h +11 -0
- package/libcxx/include/__chrono/duration.h +58 -33
- package/libcxx/include/__chrono/file_clock.h +4 -2
- package/libcxx/include/__chrono/is_clock.h +72 -0
- package/libcxx/include/__chrono/leap_second.h +13 -0
- package/libcxx/include/__chrono/month.h +13 -0
- package/libcxx/include/__chrono/month_weekday.h +22 -0
- package/libcxx/include/__chrono/monthday.h +20 -0
- package/libcxx/include/__chrono/steady_clock.h +1 -1
- package/libcxx/include/__chrono/system_clock.h +3 -3
- package/libcxx/include/__chrono/time_point.h +37 -13
- package/libcxx/include/__chrono/weekday.h +25 -0
- package/libcxx/include/__chrono/year.h +11 -0
- package/libcxx/include/__chrono/year_month.h +13 -0
- package/libcxx/include/__chrono/year_month_day.h +23 -0
- package/libcxx/include/__chrono/year_month_weekday.h +26 -0
- package/libcxx/include/__chrono/zoned_time.h +16 -0
- package/libcxx/include/__compare/is_eq.h +6 -6
- package/libcxx/include/__compare/strong_order.h +12 -30
- package/libcxx/include/__compare/three_way_comparable.h +2 -2
- package/libcxx/include/__concepts/comparison_common_type.h +40 -0
- package/libcxx/include/__concepts/equality_comparable.h +2 -1
- package/libcxx/include/__condition_variable/condition_variable.h +1 -1
- package/libcxx/include/__config +63 -280
- package/libcxx/include/__configuration/abi.h +14 -24
- package/libcxx/include/__configuration/availability.h +65 -118
- package/libcxx/include/__configuration/compiler.h +6 -6
- package/libcxx/include/__configuration/experimental.h +38 -0
- package/libcxx/include/__configuration/hardening.h +215 -0
- package/libcxx/include/__configuration/language.h +3 -0
- package/libcxx/include/__configuration/platform.h +9 -16
- package/libcxx/include/__coroutine/coroutine_handle.h +9 -9
- package/libcxx/include/__coroutine/noop_coroutine_handle.h +11 -13
- package/libcxx/include/__debug_utils/strict_weak_ordering_check.h +1 -1
- package/libcxx/include/__exception/exception.h +6 -4
- package/libcxx/include/__exception/exception_ptr.h +27 -5
- package/libcxx/include/__exception/nested_exception.h +2 -2
- package/libcxx/include/__exception/operations.h +5 -5
- package/libcxx/include/__expected/bad_expected_access.h +8 -6
- package/libcxx/include/__expected/expected.h +62 -64
- package/libcxx/include/__expected/unexpected.h +4 -4
- package/libcxx/include/__filesystem/copy_options.h +4 -4
- package/libcxx/include/__filesystem/directory_entry.h +37 -33
- package/libcxx/include/__filesystem/directory_iterator.h +9 -11
- package/libcxx/include/__filesystem/directory_options.h +7 -4
- package/libcxx/include/__filesystem/file_status.h +3 -3
- package/libcxx/include/__filesystem/filesystem_error.h +9 -10
- package/libcxx/include/__filesystem/operations.h +97 -66
- package/libcxx/include/__filesystem/path.h +68 -64
- package/libcxx/include/__filesystem/path_iterator.h +1 -3
- package/libcxx/include/__filesystem/perm_options.h +4 -4
- package/libcxx/include/__filesystem/perms.h +4 -4
- package/libcxx/include/__filesystem/recursive_directory_iterator.h +9 -14
- package/libcxx/include/__filesystem/space_info.h +1 -1
- package/libcxx/include/__filesystem/u8path.h +12 -14
- package/libcxx/include/__flat_map/flat_map.h +88 -71
- package/libcxx/include/__flat_map/flat_multimap.h +251 -172
- package/libcxx/include/__flat_map/key_value_iterator.h +0 -1
- package/libcxx/include/__flat_map/utils.h +1 -0
- package/libcxx/include/__flat_set/flat_multiset.h +211 -143
- package/libcxx/include/__flat_set/flat_set.h +86 -68
- package/libcxx/include/__format/concepts.h +0 -14
- package/libcxx/include/__format/extended_grapheme_cluster_table.h +3 -2
- package/libcxx/include/__format/fmt_pair_like.h +42 -0
- package/libcxx/include/__format/format_arg.h +7 -10
- package/libcxx/include/__format/format_args.h +1 -1
- package/libcxx/include/__format/format_context.h +5 -5
- package/libcxx/include/__format/format_parse_context.h +2 -2
- package/libcxx/include/__format/formatter_output.h +30 -34
- package/libcxx/include/__format/indic_conjunct_break_table.h +3 -2
- package/libcxx/include/__format/range_default_formatter.h +2 -41
- package/libcxx/include/__format/range_format.h +71 -0
- package/libcxx/include/__format/range_formatter.h +1 -0
- package/libcxx/include/__format/width_estimation_table.h +4 -2
- package/libcxx/include/__functional/bind.h +10 -15
- package/libcxx/include/__functional/bind_back.h +1 -1
- package/libcxx/include/__functional/bind_front.h +1 -1
- package/libcxx/include/__functional/function.h +57 -75
- package/libcxx/include/__functional/hash.h +1 -10
- package/libcxx/include/__functional/identity.h +1 -1
- package/libcxx/include/__functional/is_transparent.h +8 -0
- package/libcxx/include/__functional/mem_fn.h +2 -1
- package/libcxx/include/__functional/operations.h +18 -0
- package/libcxx/include/__functional/ranges_operations.h +7 -0
- package/libcxx/include/__functional/reference_wrapper.h +7 -5
- package/libcxx/include/__functional/weak_result_type.h +14 -28
- package/libcxx/include/__fwd/ios.h +1 -1
- package/libcxx/include/__fwd/tuple.h +14 -0
- package/libcxx/include/__hash_table +371 -357
- package/libcxx/include/__ios/fpos.h +4 -4
- package/libcxx/include/__iterator/back_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/bounded_iter.h +7 -8
- package/libcxx/include/__iterator/concepts.h +6 -9
- package/libcxx/include/__iterator/cpp17_iterator_concepts.h +13 -12
- package/libcxx/include/__iterator/distance.h +40 -18
- package/libcxx/include/__iterator/front_insert_iterator.h +1 -7
- package/libcxx/include/__iterator/insert_iterator.h +1 -7
- package/libcxx/include/__iterator/istream_iterator.h +6 -7
- package/libcxx/include/__iterator/istreambuf_iterator.h +6 -7
- package/libcxx/include/__iterator/iter_move.h +1 -1
- package/libcxx/include/__iterator/iterator.h +13 -0
- package/libcxx/include/__iterator/iterator_traits.h +13 -14
- package/libcxx/include/__iterator/ostream_iterator.h +1 -7
- package/libcxx/include/__iterator/ostreambuf_iterator.h +1 -7
- package/libcxx/include/__iterator/reverse_iterator.h +8 -13
- package/libcxx/include/__iterator/segmented_iterator.h +3 -8
- package/libcxx/include/__iterator/static_bounded_iter.h +3 -3
- package/libcxx/include/__iterator/wrap_iter.h +8 -6
- package/libcxx/include/__locale +3 -10
- package/libcxx/include/__locale_dir/locale_base_api/bsd_locale_fallbacks.h +0 -10
- package/libcxx/include/__locale_dir/locale_base_api.h +5 -28
- package/libcxx/include/__locale_dir/messages.h +1 -1
- package/libcxx/include/__locale_dir/money.h +2 -2
- package/libcxx/include/__locale_dir/num.h +190 -243
- package/libcxx/include/__locale_dir/pad_and_output.h +5 -6
- package/libcxx/include/__locale_dir/support/bsd_like.h +0 -20
- package/libcxx/include/__locale_dir/support/fuchsia.h +0 -7
- package/libcxx/include/__locale_dir/support/linux.h +0 -37
- package/libcxx/include/__locale_dir/support/netbsd.h +0 -2
- package/libcxx/include/__locale_dir/support/newlib.h +243 -0
- package/libcxx/include/__locale_dir/support/no_locale/characters.h +0 -4
- package/libcxx/include/__locale_dir/support/no_locale/strtonum.h +0 -9
- package/libcxx/include/__locale_dir/support/windows.h +0 -29
- package/libcxx/include/__locale_dir/time.h +3 -7
- package/libcxx/include/__math/hypot.h +1 -1
- package/libcxx/include/__math/logarithms.h +1 -1
- package/libcxx/include/__math/traits.h +80 -11
- package/libcxx/include/__mdspan/extents.h +7 -4
- package/libcxx/include/__mdspan/layout_stride.h +4 -5
- package/libcxx/include/__mdspan/mdspan.h +29 -23
- package/libcxx/include/__memory/addressof.h +7 -5
- package/libcxx/include/__memory/align.h +18 -1
- package/libcxx/include/__memory/allocate_at_least.h +15 -10
- package/libcxx/include/__memory/allocator.h +14 -26
- package/libcxx/include/__memory/allocator_traits.h +6 -4
- package/libcxx/include/__memory/compressed_pair.h +15 -9
- package/libcxx/include/__memory/construct_at.h +12 -23
- package/libcxx/include/__memory/inout_ptr.h +1 -1
- package/libcxx/include/__memory/is_sufficiently_aligned.h +1 -1
- package/libcxx/include/__memory/out_ptr.h +1 -1
- package/libcxx/include/__memory/pointer_traits.h +1 -1
- package/libcxx/include/__memory/raw_storage_iterator.h +3 -9
- package/libcxx/include/__memory/shared_count.h +9 -30
- package/libcxx/include/__memory/shared_ptr.h +100 -145
- package/libcxx/include/__memory/temp_value.h +1 -2
- package/libcxx/include/__memory/uninitialized_algorithms.h +44 -115
- package/libcxx/include/__memory/unique_ptr.h +14 -16
- package/libcxx/include/__memory/uses_allocator_construction.h +1 -0
- package/libcxx/include/__memory_resource/memory_resource.h +4 -2
- package/libcxx/include/__memory_resource/monotonic_buffer_resource.h +1 -1
- package/libcxx/include/__memory_resource/polymorphic_allocator.h +13 -8
- package/libcxx/include/__memory_resource/pool_options.h +1 -1
- package/libcxx/include/__memory_resource/synchronized_pool_resource.h +4 -2
- package/libcxx/include/__memory_resource/unsynchronized_pool_resource.h +1 -1
- package/libcxx/include/__mutex/mutex.h +2 -2
- package/libcxx/include/__mutex/once_flag.h +14 -11
- package/libcxx/include/__mutex/tag_types.h +3 -3
- package/libcxx/include/__mutex/unique_lock.h +8 -7
- package/libcxx/include/__new/align_val_t.h +6 -0
- package/libcxx/include/__new/allocate.h +1 -2
- package/libcxx/include/__new/exceptions.h +8 -2
- package/libcxx/include/__new/global_new_delete.h +4 -11
- package/libcxx/include/__new/interference_size.h +0 -4
- package/libcxx/include/__new/launder.h +3 -5
- package/libcxx/include/__new/nothrow_t.h +1 -1
- package/libcxx/include/__numeric/gcd_lcm.h +24 -34
- package/libcxx/include/__numeric/midpoint.h +9 -14
- package/libcxx/include/__numeric/pstl.h +2 -2
- package/libcxx/include/__numeric/saturation_arithmetic.h +13 -5
- package/libcxx/include/__ostream/basic_ostream.h +8 -8
- package/libcxx/include/__pstl/backends/default.h +14 -14
- package/libcxx/include/__pstl/backends/libdispatch.h +2 -2
- package/libcxx/include/__pstl/cpu_algos/find_if.h +1 -1
- package/libcxx/include/__pstl/cpu_algos/transform.h +5 -6
- package/libcxx/include/__pstl/cpu_algos/transform_reduce.h +5 -4
- package/libcxx/include/__random/binomial_distribution.h +10 -4
- package/libcxx/include/__random/mersenne_twister_engine.h +50 -154
- package/libcxx/include/__random/piecewise_constant_distribution.h +3 -2
- package/libcxx/include/__random/piecewise_linear_distribution.h +3 -2
- package/libcxx/include/__ranges/adjacent_transform_view.h +406 -0
- package/libcxx/include/__ranges/adjacent_view.h +419 -0
- package/libcxx/include/__ranges/as_rvalue_view.h +9 -9
- package/libcxx/include/__ranges/chunk_by_view.h +6 -6
- package/libcxx/include/__ranges/common_view.h +7 -7
- package/libcxx/include/__ranges/drop_view.h +8 -8
- package/libcxx/include/__ranges/drop_while_view.h +5 -5
- package/libcxx/include/__ranges/elements_of.h +49 -0
- package/libcxx/include/__ranges/empty_view.h +5 -5
- package/libcxx/include/__ranges/filter_view.h +10 -10
- package/libcxx/include/__ranges/iota_view.h +41 -22
- package/libcxx/include/__ranges/owning_view.h +15 -15
- package/libcxx/include/__ranges/ref_view.h +6 -6
- package/libcxx/include/__ranges/repeat_view.h +17 -10
- package/libcxx/include/__ranges/single_view.h +8 -8
- package/libcxx/include/__ranges/take_view.h +9 -9
- package/libcxx/include/__ranges/transform_view.h +1 -2
- package/libcxx/include/__ranges/view_interface.h +10 -10
- package/libcxx/include/__ranges/zip_transform_view.h +357 -0
- package/libcxx/include/__ranges/zip_view.h +20 -20
- package/libcxx/include/__split_buffer +612 -240
- package/libcxx/include/__stop_token/atomic_unique_lock.h +1 -1
- package/libcxx/include/__stop_token/stop_callback.h +2 -2
- package/libcxx/include/__stop_token/stop_source.h +1 -1
- package/libcxx/include/__stop_token/stop_state.h +4 -4
- package/libcxx/include/__stop_token/stop_token.h +1 -1
- package/libcxx/include/__string/char_traits.h +51 -31
- package/libcxx/include/__string/constexpr_c_functions.h +5 -5
- package/libcxx/include/__support/xlocale/__strtonum_fallback.h +0 -8
- package/libcxx/include/__system_error/error_category.h +8 -8
- package/libcxx/include/__system_error/error_code.h +5 -5
- package/libcxx/include/__system_error/error_condition.h +4 -4
- package/libcxx/include/__system_error/system_error.h +1 -1
- package/libcxx/include/__thread/id.h +1 -1
- package/libcxx/include/__thread/jthread.h +1 -1
- package/libcxx/include/__thread/poll_with_backoff.h +27 -8
- package/libcxx/include/__thread/support/c11.h +8 -8
- package/libcxx/include/__thread/support/pthread.h +8 -8
- package/libcxx/include/__thread/support/windows.h +8 -8
- package/libcxx/include/__thread/thread.h +13 -8
- package/libcxx/include/__thread/timed_backoff_policy.h +3 -2
- package/libcxx/include/__tree +849 -701
- package/libcxx/include/__tuple/sfinae_helpers.h +1 -44
- package/libcxx/include/__tuple/tuple_element.h +0 -12
- package/libcxx/include/__tuple/tuple_size.h +0 -4
- package/libcxx/include/__tuple/tuple_transform.h +45 -0
- package/libcxx/include/__type_traits/aligned_storage.h +13 -40
- package/libcxx/include/__type_traits/desugars_to.h +4 -0
- package/libcxx/include/__type_traits/invoke.h +8 -0
- package/libcxx/include/__type_traits/is_allocator.h +6 -7
- package/libcxx/include/__type_traits/is_array.h +26 -0
- package/libcxx/include/__type_traits/is_equality_comparable.h +16 -21
- package/libcxx/include/__type_traits/is_final.h +1 -1
- package/libcxx/include/__type_traits/is_floating_point.h +7 -6
- package/libcxx/include/__type_traits/is_generic_transparent_comparator.h +30 -0
- package/libcxx/include/__type_traits/is_specialization.h +2 -6
- package/libcxx/include/__type_traits/is_within_lifetime.h +29 -0
- package/libcxx/include/__type_traits/make_transparent.h +52 -0
- package/libcxx/include/__type_traits/reference_constructs_from_temporary.h +1 -7
- package/libcxx/include/__type_traits/reference_converts_from_temporary.h +1 -1
- package/libcxx/include/__utility/cmp.h +19 -7
- package/libcxx/include/__utility/default_three_way_comparator.h +70 -0
- package/libcxx/include/__utility/in_place.h +1 -1
- package/libcxx/include/__utility/integer_sequence.h +56 -41
- package/libcxx/include/__utility/lazy_synth_three_way_comparator.h +120 -0
- package/libcxx/include/__utility/pair.h +22 -25
- package/libcxx/include/__utility/scope_guard.h +2 -0
- package/libcxx/include/__utility/try_key_extraction.h +114 -0
- package/libcxx/include/__vector/vector.h +187 -160
- package/libcxx/include/__vector/vector_bool.h +76 -83
- package/libcxx/include/any +118 -155
- package/libcxx/include/array +88 -56
- package/libcxx/include/atomic +2 -0
- package/libcxx/include/barrier +20 -24
- package/libcxx/include/bitset +49 -30
- package/libcxx/include/ccomplex +3 -11
- package/libcxx/include/chrono +47 -0
- package/libcxx/include/ciso646 +3 -6
- package/libcxx/include/complex +77 -65
- package/libcxx/include/complex.h +10 -10
- package/libcxx/include/condition_variable +3 -3
- package/libcxx/include/cstdalign +3 -10
- package/libcxx/include/cstdbool +3 -10
- package/libcxx/include/ctgmath +2 -11
- package/libcxx/include/ctype.h +24 -24
- package/libcxx/include/cwchar +2 -2
- package/libcxx/include/deque +109 -225
- package/libcxx/include/errno.h +269 -269
- package/libcxx/include/exception +4 -1
- package/libcxx/include/ext/hash_map +7 -48
- package/libcxx/include/ext/hash_set +2 -8
- package/libcxx/include/fenv.h +43 -43
- package/libcxx/include/flat_map +663 -11
- package/libcxx/include/flat_set +543 -8
- package/libcxx/include/float.h +16 -16
- package/libcxx/include/forward_list +33 -53
- package/libcxx/include/fstream +57 -42
- package/libcxx/include/future +41 -51
- package/libcxx/include/initializer_list +9 -3
- package/libcxx/include/inttypes.h +16 -16
- package/libcxx/include/ios +28 -28
- package/libcxx/include/istream +19 -13
- package/libcxx/include/iterator +10 -0
- package/libcxx/include/latch +7 -5
- package/libcxx/include/limits +4 -4
- package/libcxx/include/list +61 -79
- package/libcxx/include/map +386 -274
- package/libcxx/include/math.h +19 -0
- package/libcxx/include/mdspan +1 -5
- package/libcxx/include/mutex +29 -19
- package/libcxx/include/optional +644 -149
- package/libcxx/include/print +9 -5
- package/libcxx/include/queue +39 -37
- package/libcxx/include/ranges +48 -0
- package/libcxx/include/regex +33 -31
- package/libcxx/include/scoped_allocator +16 -11
- package/libcxx/include/semaphore +15 -18
- package/libcxx/include/set +220 -192
- package/libcxx/include/shared_mutex +3 -8
- package/libcxx/include/span +53 -37
- package/libcxx/include/sstream +34 -28
- package/libcxx/include/stack +13 -15
- package/libcxx/include/stddef.h +10 -10
- package/libcxx/include/stdexcept +2 -2
- package/libcxx/include/stdio.h +20 -21
- package/libcxx/include/streambuf +59 -19
- package/libcxx/include/string +574 -573
- package/libcxx/include/string_view +113 -89
- package/libcxx/include/strstream +10 -10
- package/libcxx/include/syncstream +4 -4
- package/libcxx/include/tgmath.h +12 -12
- package/libcxx/include/tuple +242 -212
- package/libcxx/include/type_traits +8 -2
- package/libcxx/include/typeindex +5 -3
- package/libcxx/include/typeinfo +92 -89
- package/libcxx/include/unordered_map +179 -304
- package/libcxx/include/unordered_set +168 -195
- package/libcxx/include/utility +12 -0
- package/libcxx/include/valarray +106 -161
- package/libcxx/include/variant +25 -33
- package/libcxx/include/version +41 -24
- package/libcxx/include/wctype.h +29 -29
- package/libcxx/libc/hdr/errno_macros.h +3 -1
- package/libcxx/libc/hdr/stdint_proxy.h +18 -0
- package/libcxx/libc/hdr/types/wchar_t.h +23 -0
- package/libcxx/libc/hdr/wchar_overlay.h +69 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat128-macros.h +41 -0
- package/libcxx/libc/include/llvm-libc-macros/cfloat16-macros.h +20 -0
- package/libcxx/libc/include/llvm-libc-macros/wchar-macros.h +18 -0
- package/libcxx/libc/include/llvm-libc-types/cfloat128.h +11 -28
- package/libcxx/libc/include/llvm-libc-types/cfloat16.h +4 -7
- package/libcxx/libc/include/llvm-libc-types/wint_t.h +14 -0
- package/libcxx/libc/shared/libc_common.h +5 -0
- package/libcxx/libc/src/__support/CPP/bit.h +50 -12
- package/libcxx/libc/src/__support/CPP/type_traits/is_complex.h +7 -0
- package/libcxx/libc/src/__support/CPP/type_traits/is_destructible.h +2 -1
- package/libcxx/libc/src/__support/CPP/type_traits/is_unsigned.h +6 -0
- package/libcxx/libc/src/__support/CPP/utility/integer_sequence.h +10 -0
- package/libcxx/libc/src/__support/FPUtil/FPBits.h +6 -7
- package/libcxx/libc/src/__support/FPUtil/rounding_mode.h +50 -4
- package/libcxx/libc/src/__support/big_int.h +14 -14
- package/libcxx/libc/src/__support/common.h +3 -2
- package/libcxx/libc/src/__support/ctype_utils.h +19 -12
- package/libcxx/libc/src/__support/detailed_powers_of_ten.h +1 -2
- package/libcxx/libc/src/__support/high_precision_decimal.h +33 -14
- package/libcxx/libc/src/__support/libc_assert.h +2 -0
- package/libcxx/libc/src/__support/macros/attributes.h +44 -1
- package/libcxx/libc/src/__support/macros/config.h +23 -0
- package/libcxx/libc/src/__support/macros/null_check.h +1 -2
- package/libcxx/libc/src/__support/macros/optimization.h +3 -0
- package/libcxx/libc/src/__support/macros/properties/architectures.h +5 -1
- package/libcxx/libc/src/__support/macros/properties/compiler.h +8 -3
- package/libcxx/libc/src/__support/macros/properties/cpu_features.h +17 -1
- package/libcxx/libc/src/__support/macros/properties/types.h +2 -3
- package/libcxx/libc/src/__support/macros/sanitizer.h +0 -10
- package/libcxx/libc/src/__support/math_extras.h +20 -4
- package/libcxx/libc/src/__support/str_to_float.h +98 -125
- package/libcxx/libc/src/__support/str_to_integer.h +39 -27
- package/libcxx/libc/src/__support/wctype_utils.h +588 -0
- package/libcxx/src/any.cpp +4 -0
- package/libcxx/src/atomic.cpp +365 -80
- package/libcxx/src/barrier.cpp +4 -3
- package/libcxx/src/charconv.cpp +6 -3
- package/libcxx/src/condition_variable_destructor.cpp +1 -1
- package/libcxx/src/error_category.cpp +3 -1
- package/libcxx/src/exception.cpp +2 -10
- package/libcxx/src/experimental/time_zone.cpp +1 -1
- package/libcxx/src/experimental/tzdb.cpp +4 -1
- package/libcxx/src/filesystem/error.h +4 -22
- package/libcxx/src/filesystem/format_string.h +9 -18
- package/libcxx/src/filesystem/int128_builtins.cpp +2 -0
- package/libcxx/src/filesystem/operations.cpp +2 -9
- package/libcxx/src/filesystem/path.cpp +3 -1
- package/libcxx/src/include/aligned_alloc.h +65 -0
- package/libcxx/src/include/config_elast.h +1 -1
- package/libcxx/src/include/from_chars_floating_point.h +11 -7
- package/libcxx/src/include/overridable_function.h +8 -10
- package/libcxx/src/iostream.cpp +56 -37
- package/libcxx/src/locale.cpp +213 -196
- package/libcxx/src/memory.cpp +12 -14
- package/libcxx/src/mutex_destructor.cpp +1 -1
- package/libcxx/src/new.cpp +5 -5
- package/libcxx/src/optional.cpp +4 -0
- package/libcxx/src/print.cpp +9 -1
- package/libcxx/src/random.cpp +0 -26
- package/libcxx/src/string.cpp +10 -25
- package/libcxx/src/support/runtime/exception_fallback.ipp +2 -0
- package/libcxx/src/support/runtime/exception_glibcxx.ipp +3 -0
- package/libcxx/src/support/runtime/exception_libcxxabi.ipp +6 -2
- package/libcxx/src/support/runtime/exception_libcxxrt.ipp +2 -0
- package/libcxx/src/support/runtime/exception_msvc.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_cxxabi.ipp +9 -10
- package/libcxx/src/support/runtime/exception_pointer_glibcxx.ipp +2 -0
- package/libcxx/src/support/runtime/exception_pointer_msvc.ipp +1 -0
- package/libcxx/src/support/runtime/exception_pointer_unimplemented.ipp +1 -0
- package/libcxx/src/support/win32/locale_win32.cpp +1 -1
- package/libcxx/src/system_error.cpp +2 -0
- package/libcxx/src/thread.cpp +1 -3
- package/libcxx/src/valarray.cpp +1 -2
- package/libcxx/src/vector.cpp +2 -2
- package/libcxxabi/include/__cxxabi_config.h +42 -23
- package/libcxxabi/src/cxa_exception.cpp +4 -2
- package/libcxxabi/src/cxa_exception.h +16 -14
- package/libcxxabi/src/cxa_personality.cpp +126 -9
- package/libcxxabi/src/cxa_thread_atexit.cpp +2 -1
- package/libcxxabi/src/demangle/DemangleConfig.h +4 -0
- package/libcxxabi/src/demangle/ItaniumDemangle.h +9 -6
- package/libcxxabi/src/demangle/Utility.h +21 -7
- package/libcxxabi/src/fallback_malloc.cpp +1 -1
- package/libcxxabi/src/private_typeinfo.cpp +6 -0
- package/libcxxabi/src/stdlib_new_delete.cpp +5 -5
- package/libtsan/LICENSE.TXT +311 -0
- package/libtsan/builtins/assembly.h +41 -8
- package/libtsan/interception/interception_win.cpp +4 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary32.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_allocator_primary64.h +18 -0
- package/libtsan/sanitizer_common/sanitizer_common.h +15 -2
- package/libtsan/sanitizer_common/sanitizer_common_interceptors.inc +30 -4
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_ioctl.inc +4 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_aarch64.inc.S +2 -1
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_i386.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_interceptors_vfork_x86_64.inc.S +2 -0
- package/libtsan/sanitizer_common/sanitizer_common_syscalls.inc +18 -0
- package/libtsan/sanitizer_common/sanitizer_file.cpp +40 -12
- package/libtsan/sanitizer_common/sanitizer_file.h +3 -0
- package/libtsan/sanitizer_common/sanitizer_flags.inc +7 -0
- package/libtsan/sanitizer_common/sanitizer_fuchsia.cpp +30 -3
- package/libtsan/sanitizer_common/sanitizer_haiku.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_internal_defs.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_libc.cpp +8 -0
- package/libtsan/sanitizer_common/sanitizer_libc.h +1 -0
- package/libtsan/sanitizer_common/sanitizer_linux.cpp +15 -7
- package/libtsan/sanitizer_common/sanitizer_linux.h +3 -3
- package/libtsan/sanitizer_common/sanitizer_linux_libcdep.cpp +1 -0
- package/libtsan/sanitizer_common/sanitizer_mac.cpp +255 -104
- package/libtsan/sanitizer_common/sanitizer_mac.h +5 -0
- package/libtsan/sanitizer_common/sanitizer_netbsd.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_platform.h +27 -1
- package/libtsan/sanitizer_common/sanitizer_platform_interceptors.h +5 -4
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.cpp +15 -17
- package/libtsan/sanitizer_common/sanitizer_platform_limits_posix.h +32 -6
- package/libtsan/sanitizer_common/sanitizer_posix.cpp +3 -12
- package/libtsan/sanitizer_common/sanitizer_posix.h +2 -1
- package/libtsan/sanitizer_common/sanitizer_posix_libcdep.cpp +19 -0
- package/libtsan/sanitizer_common/sanitizer_procmaps_mac.cpp +102 -37
- package/libtsan/sanitizer_common/sanitizer_redefine_builtins.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_signal_interceptors.inc +40 -2
- package/libtsan/sanitizer_common/sanitizer_stoptheworld.h +1 -1
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp +83 -12
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_mac.cpp +3 -3
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp +7 -7
- package/libtsan/sanitizer_common/sanitizer_stoptheworld_win.cpp +2 -2
- package/libtsan/sanitizer_common/sanitizer_symbolizer_internal.h +5 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp +11 -1
- package/libtsan/sanitizer_common/sanitizer_symbolizer_mac.cpp +86 -29
- package/libtsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp +27 -16
- package/libtsan/sanitizer_common/sanitizer_thread_registry.cpp +5 -4
- package/libtsan/sanitizer_common/sanitizer_thread_registry.h +4 -4
- package/libtsan/sanitizer_common/sanitizer_win.cpp +1 -3
- package/libtsan/tsan_debugging.cpp +2 -2
- package/libtsan/tsan_flags.cpp +37 -0
- package/libtsan/tsan_flags.h +8 -0
- package/libtsan/tsan_flags.inc +12 -0
- package/libtsan/tsan_interceptors.h +9 -1
- package/libtsan/tsan_interceptors_mac.cpp +19 -0
- package/libtsan/tsan_interceptors_posix.cpp +78 -32
- package/libtsan/tsan_interface.h +3 -3
- package/libtsan/tsan_interface_ann.cpp +23 -9
- package/libtsan/tsan_mman.cpp +18 -4
- package/libtsan/tsan_platform.h +44 -7
- package/libtsan/tsan_platform_linux.cpp +42 -14
- package/libtsan/tsan_platform_mac.cpp +16 -3
- package/libtsan/tsan_report.h +14 -1
- package/libtsan/tsan_rtl.cpp +14 -0
- package/libtsan/tsan_rtl.h +7 -2
- package/libtsan/tsan_rtl_aarch64.S +3 -5
- package/libtsan/tsan_rtl_access.cpp +8 -3
- package/libtsan/tsan_rtl_amd64.S +2 -0
- package/libtsan/tsan_rtl_mutex.cpp +94 -49
- package/libtsan/tsan_rtl_report.cpp +132 -65
- package/libtsan/tsan_rtl_thread.cpp +31 -9
- package/libtsan/tsan_symbolize.cpp +1 -1
- package/libtsan/tsan_symbolize.h +1 -1
- package/libtsan/tsan_trace.h +1 -1
- package/libunwind/include/__libunwind_config.h +11 -2
- package/libunwind/include/libunwind.h +117 -11
- package/libunwind/include/unwind_arm_ehabi.h +4 -1
- package/libunwind/src/AddressSpace.hpp +42 -20
- package/libunwind/src/CompactUnwinder.hpp +16 -5
- package/libunwind/src/DwarfInstructions.hpp +24 -13
- package/libunwind/src/DwarfParser.hpp +62 -23
- package/libunwind/src/EHHeaderParser.hpp +7 -4
- package/libunwind/src/Registers.hpp +226 -22
- package/libunwind/src/Unwind-seh.cpp +6 -7
- package/libunwind/src/Unwind-wasm.c +7 -7
- package/libunwind/src/UnwindCursor.hpp +167 -49
- package/libunwind/src/UnwindLevel1.c +46 -17
- package/libunwind/src/UnwindRegistersRestore.S +46 -5
- package/libunwind/src/UnwindRegistersSave.S +86 -2
- package/libunwind/src/assembly.h +5 -1
- package/libunwind/src/config.h +9 -0
- package/libunwind/src/gcc_personality_v0.c +79 -6
- package/libunwind/src/libunwind.cpp +104 -4
- package/libunwind/src/libunwind_ext.h +7 -1
- package/libunwind/src/shadow_stack_unwind.h +2 -2
- package/lldb/pretty_printers.py +948 -0
- package/package.json +1 -1
- package/std/Build/Cache/Path.zig +1 -1
- package/std/Build/Cache.zig +6 -6
- package/std/Build/Step/Compile.zig +18 -20
- package/std/Build/Step/ConfigHeader.zig +1 -1
- package/std/Build/Step/Run.zig +15 -8
- package/std/Build/Step.zig +3 -7
- package/std/Build/Watch/FsEvents.zig +1 -1
- package/std/Build/WebServer.zig +2 -2
- package/std/Build/abi.zig +1 -1
- package/std/Build.zig +0 -3
- package/std/Io/Dir.zig +9 -4
- package/std/Io/Dispatch.zig +8 -18
- package/std/Io/File/Writer.zig +8 -6
- package/std/Io/File.zig +0 -9
- package/std/Io/Kqueue.zig +3 -3
- package/std/Io/Reader.zig +8 -14
- package/std/Io/Semaphore.zig +112 -17
- package/std/Io/Terminal.zig +1 -1
- package/std/Io/Threaded.zig +183 -46
- package/std/Io/Uring.zig +18 -20
- package/std/Io/Writer.zig +10 -7
- package/std/Io/net/HostName.zig +11 -6
- package/std/Io/net.zig +11 -11
- package/std/Io.zig +104 -38
- package/std/Random/ChaCha.zig +2 -2
- package/std/Random/benchmark.zig +2 -2
- package/std/Random.zig +6 -6
- package/std/SemanticVersion.zig +1 -1
- package/std/Target/Query.zig +2 -2
- package/std/Target/aarch64.zig +620 -77
- package/std/Target/amdgcn.zig +421 -21
- package/std/Target/arm.zig +40 -6
- package/std/Target/bpf.zig +6 -0
- package/std/Target/hexagon.zig +41 -6
- package/std/Target/loongarch.zig +18 -0
- package/std/Target/mips.zig +6 -0
- package/std/Target/nvptx.zig +58 -35
- package/std/Target/powerpc.zig +27 -19
- package/std/Target/riscv.zig +415 -177
- package/std/Target/sparc.zig +17 -0
- package/std/Target/wasm.zig +7 -0
- package/std/Target/x86.zig +200 -31
- package/std/Target/xtensa.zig +65 -0
- package/std/Target.zig +67 -14
- package/std/Thread.zig +5 -2
- package/std/array_hash_map.zig +103 -57
- package/std/array_list.zig +10 -31
- package/std/base64.zig +5 -5
- package/std/bit_set.zig +86 -69
- package/std/c/haiku.zig +3 -0
- package/std/c/serenity.zig +1 -6
- package/std/c.zig +123 -32
- package/std/compress/flate/Decompress.zig +3 -4
- package/std/compress/zstd/Decompress.zig +7 -9
- package/std/crypto/25519/curve25519.zig +2 -2
- package/std/crypto/25519/edwards25519.zig +3 -3
- package/std/crypto/25519/ristretto255.zig +2 -2
- package/std/crypto/25519/scalar.zig +6 -6
- package/std/crypto/25519/x25519.zig +1 -1
- package/std/crypto/Certificate.zig +14 -2
- package/std/crypto/Sha1.zig +1 -1
- package/std/crypto/aegis.zig +45 -39
- package/std/crypto/aes_ccm.zig +22 -22
- package/std/crypto/aes_gcm.zig +10 -12
- package/std/crypto/aes_ocb.zig +9 -9
- package/std/crypto/argon2.zig +15 -15
- package/std/crypto/ascon.zig +75 -33
- package/std/crypto/bcrypt.zig +20 -10
- package/std/crypto/benchmark.zig +7 -7
- package/std/crypto/blake2.zig +100 -64
- package/std/crypto/cbc_mac.zig +1 -1
- package/std/crypto/chacha20.zig +10 -10
- package/std/crypto/cmac.zig +3 -3
- package/std/crypto/codecs/asn1/Oid.zig +12 -1
- package/std/crypto/codecs/asn1/der/Encoder.zig +1 -1
- package/std/crypto/codecs/asn1.zig +1 -1
- package/std/crypto/codecs/base64_hex_ct.zig +3 -5
- package/std/crypto/ecdsa.zig +9 -9
- package/std/crypto/ff.zig +4 -5
- package/std/crypto/ghash_polyval.zig +4 -4
- package/std/crypto/hkdf.zig +1 -1
- package/std/crypto/isap.zig +3 -3
- package/std/crypto/kangarootwelve.zig +1 -1
- package/std/crypto/keccak_p.zig +8 -8
- package/std/crypto/md5.zig +1 -1
- package/std/crypto/ml_dsa.zig +39 -39
- package/std/crypto/ml_kem.zig +12 -34
- package/std/crypto/modes.zig +2 -2
- package/std/crypto/pbkdf2.zig +1 -1
- package/std/crypto/pcurves/common.zig +4 -5
- package/std/crypto/pcurves/p256/scalar.zig +3 -3
- package/std/crypto/pcurves/p384/scalar.zig +2 -2
- package/std/crypto/pcurves/secp256k1/scalar.zig +3 -3
- package/std/crypto/pcurves/tests/p256.zig +5 -5
- package/std/crypto/pcurves/tests/p384.zig +5 -5
- package/std/crypto/pcurves/tests/secp256k1.zig +3 -3
- package/std/crypto/salsa20.zig +8 -8
- package/std/crypto/sha2.zig +2 -2
- package/std/crypto/sha3.zig +2 -2
- package/std/crypto/siphash.zig +1 -1
- package/std/crypto/timing_safe.zig +10 -9
- package/std/crypto/tls/Client.zig +89 -13
- package/std/crypto/tls.zig +1 -1
- package/std/crypto.zig +4 -3
- package/std/debug/Dwarf.zig +15 -12
- package/std/debug/Pdb.zig +25 -17
- package/std/debug.zig +14 -8
- package/std/deque.zig +1 -1
- package/std/elf.zig +1 -1
- package/std/enums.zig +8 -8
- package/std/fmt/parse_float/decimal.zig +1 -1
- package/std/fmt/parse_float.zig +1 -1
- package/std/fmt.zig +14 -10
- package/std/fs/path.zig +7 -5
- package/std/hash/Adler32.zig +3 -3
- package/std/hash/benchmark.zig +2 -2
- package/std/hash/wyhash.zig +2 -2
- package/std/hash/xxhash.zig +0 -6
- package/std/hash_map.zig +20 -1
- package/std/heap/BufferFirstAllocator.zig +165 -0
- package/std/heap/debug_allocator.zig +2 -2
- package/std/heap/memory_pool.zig +34 -197
- package/std/heap.zig +2 -133
- package/std/http/Client.zig +21 -24
- package/std/http.zig +4 -5
- package/std/json/Scanner.zig +2 -2
- package/std/json/static.zig +2 -2
- package/std/{builtin.zig → lang.zig} +5 -1
- package/std/leb128.zig +2 -2
- package/std/math/big/int.zig +5 -5
- package/std/math/big.zig +4 -4
- package/std/math/copysign.zig +1 -1
- package/std/math/float.zig +62 -0
- package/std/math/frexp.zig +4 -4
- package/std/math/ilogb.zig +1 -1
- package/std/math/isfinite.zig +1 -1
- package/std/math/isinf.zig +1 -1
- package/std/math/isnan.zig +1 -2
- package/std/math/isnormal.zig +2 -2
- package/std/math/iszero.zig +2 -2
- package/std/math/ldexp.zig +2 -2
- package/std/math/log10.zig +0 -2
- package/std/math/modf.zig +1 -2
- package/std/math/nextafter.zig +3 -4
- package/std/math/pow.zig +1 -1
- package/std/math/powi.zig +2 -3
- package/std/math/signbit.zig +0 -1
- package/std/math.zig +21 -26
- package/std/mem/Allocator.zig +0 -6
- package/std/mem.zig +31 -31
- package/std/meta/trailer_flags.zig +1 -1
- package/std/meta.zig +4 -36
- package/std/multi_array_list.zig +24 -0
- package/std/os/emscripten.zig +7 -6
- package/std/os/linux/IoUring.zig +2 -0
- package/std/os/linux/aarch64.zig +41 -12
- package/std/os/linux/arc.zig +41 -12
- package/std/os/linux/arm.zig +41 -12
- package/std/os/linux/bpf.zig +6 -0
- package/std/os/linux/hexagon.zig +33 -11
- package/std/os/linux/ioctl.zig +2 -2
- package/std/os/linux/loongarch32.zig +41 -13
- package/std/os/linux/loongarch64.zig +41 -12
- package/std/os/linux/m68k.zig +41 -13
- package/std/os/linux/mips.zig +67 -36
- package/std/os/linux/mips64.zig +60 -29
- package/std/os/linux/mipsn32.zig +60 -29
- package/std/os/linux/or1k.zig +41 -12
- package/std/os/linux/powerpc.zig +41 -12
- package/std/os/linux/powerpc64.zig +41 -12
- package/std/os/linux/riscv32.zig +41 -12
- package/std/os/linux/riscv64.zig +41 -12
- package/std/os/linux/s390x.zig +44 -7
- package/std/os/linux/sparc64.zig +83 -52
- package/std/os/linux/syscalls.zig +26 -1
- package/std/os/linux/thumb.zig +52 -36
- package/std/os/linux/x32.zig +41 -12
- package/std/os/linux/x86.zig +44 -15
- package/std/os/linux/x86_64.zig +41 -12
- package/std/os/linux.zig +416 -450
- package/std/os/plan9.zig +1 -1
- package/std/os/uefi/hii.zig +1 -1
- package/std/os/uefi/tables/boot_services.zig +9 -8
- package/std/os/uefi/tables/runtime_services.zig +1 -1
- package/std/os/windows.zig +130 -1
- package/std/os.zig +41 -0
- package/std/posix.zig +1 -1
- package/std/process/Environ.zig +1 -1
- package/std/process.zig +5 -4
- package/std/simd.zig +4 -21
- package/std/sort.zig +3 -3
- package/std/start.zig +17 -4
- package/std/std.zig +8 -1
- package/std/tar/Writer.zig +39 -33
- package/std/tar.zig +8 -4
- package/std/testing.zig +2 -2
- package/std/unicode.zig +13 -8
- package/std/zig/Ast/Render.zig +6 -30
- package/std/zig/Ast.zig +12 -37
- package/std/zig/AstGen.zig +175 -332
- package/std/zig/AstRlAnnotate.zig +1 -22
- package/std/zig/AstSmith.zig +5 -11
- package/std/zig/BuiltinFn.zig +0 -32
- package/std/zig/ErrorBundle.zig +6 -2
- package/std/zig/LibCDirs.zig +15 -6
- package/std/zig/LibCInstallation.zig +34 -12
- package/std/zig/Parse.zig +11 -76
- package/std/zig/TokenSmith.zig +0 -6
- package/std/zig/WindowsSdk.zig +18 -18
- package/std/zig/Zir.zig +65 -132
- package/std/zig/ZonGen.zig +19 -27
- package/std/zig/llvm/Builder.zig +39 -33
- package/std/zig/llvm/bitcode_writer.zig +3 -3
- package/std/zig/llvm/ir.zig +8 -8
- package/std/zig/system/arm.zig +56 -2
- package/std/zig/system/windows.zig +34 -1
- package/std/zig/system/x86.zig +60 -16
- package/std/zig/system.zig +0 -10
- package/std/zig/target.zig +1 -4
- package/std/zig/tokenizer.zig +4 -43
- package/std/zig.zig +3 -14
- package/std/zip.zig +5 -5
- package/std/zon/parse.zig +1 -1
- package/zig.h +340 -1
- package/compiler_rt/long_double.zig +0 -37
- package/include/amxbf16transposeintrin.h +0 -94
- package/include/amxcomplextransposeintrin.h +0 -303
- package/include/amxfp16transposeintrin.h +0 -94
- package/include/amxmovrstransposeintrin.h +0 -200
- package/include/amxtf32transposeintrin.h +0 -105
- package/include/amxtransposeintrin.h +0 -248
- package/libc/include/hexagon-linux-any/asm/signal.h +0 -29
- package/libc/include/s390x-linux-any/asm/tape390.h +0 -103
- package/libc/mingw/math/lrintl.c +0 -18
- package/libc/mingw/math/rintl.c +0 -16
- package/libc/mingw/winpthreads/spinlock.c +0 -82
- package/libc/musl/src/linux/tee.c +0 -8
- package/libc/musl/src/math/i386/lrintl.c +0 -8
- package/libc/musl/src/math/i386/rintl.c +0 -7
- package/libc/musl/src/math/lrintl.c +0 -36
- package/libc/musl/src/math/rintl.c +0 -29
- package/libc/musl/src/math/s390x/rintl.c +0 -15
- package/libc/musl/src/math/x32/lrintl.s +0 -7
- package/libc/musl/src/math/x32/rintl.s +0 -6
- package/libc/musl/src/math/x86_64/lrintl.c +0 -8
- package/libc/musl/src/math/x86_64/rintl.c +0 -7
- package/libc/musl/src/string/strdup.c +0 -10
- package/libc/musl/src/string/strndup.c +0 -12
- package/libc/musl/src/string/wcsdup.c +0 -10
- package/libc/musl/src/thread/pthread_spin_destroy.c +0 -6
- package/libc/musl/src/thread/pthread_spin_init.c +0 -6
- package/libc/musl/src/thread/pthread_spin_lock.c +0 -8
- package/libc/musl/src/thread/pthread_spin_trylock.c +0 -7
- package/libc/musl/src/thread/pthread_spin_unlock.c +0 -7
- package/libc/musl/src/unistd/dup2.c +0 -20
- package/libc/musl/src/unistd/dup3.c +0 -26
- package/libc/wasi/thread-stub/pthread_spin_lock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_trylock.c +0 -8
- package/libc/wasi/thread-stub/pthread_spin_unlock.c +0 -7
- package/libtsan/sanitizer_common/sanitizer_coverage_interface.inc +0 -43
- package/std/Build/Step/CheckObject.zig +0 -2764
- /package/std/{builtin → lang}/assembly.zig +0 -0
|
@@ -62,24 +62,6 @@ _LIBCPP_HIDE_FROM_ABI bool
|
|
|
62
62
|
operator==(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp, _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
|
|
63
63
|
const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp, _Bp, _Tp, _Cp, _Lp, _Fp>& __y);
|
|
64
64
|
|
|
65
|
-
template <class _UInt,
|
|
66
|
-
size_t _Wp,
|
|
67
|
-
size_t _Np,
|
|
68
|
-
size_t _Mp,
|
|
69
|
-
size_t _Rp,
|
|
70
|
-
_UInt _Ap,
|
|
71
|
-
size_t _Up,
|
|
72
|
-
_UInt _Dp,
|
|
73
|
-
size_t _Sp,
|
|
74
|
-
_UInt _Bp,
|
|
75
|
-
size_t _Tp,
|
|
76
|
-
_UInt _Cp,
|
|
77
|
-
size_t _Lp,
|
|
78
|
-
_UInt _Fp>
|
|
79
|
-
_LIBCPP_HIDE_FROM_ABI bool
|
|
80
|
-
operator!=(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp, _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
|
|
81
|
-
const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp, _Bp, _Tp, _Cp, _Lp, _Fp>& __y);
|
|
82
|
-
|
|
83
65
|
template <class _CharT,
|
|
84
66
|
class _Traits,
|
|
85
67
|
class _UInt,
|
|
@@ -194,14 +176,31 @@ public:
|
|
|
194
176
|
_LIBCPP_HIDE_FROM_ABI explicit mersenne_twister_engine(_Sseq& __q) {
|
|
195
177
|
seed(__q);
|
|
196
178
|
}
|
|
197
|
-
_LIBCPP_HIDE_FROM_ABI void seed(result_type __sd = default_seed)
|
|
179
|
+
_LIBCPP_HIDE_FROM_ABI void seed(result_type __sd = default_seed) _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK {
|
|
180
|
+
__x_[0] = __sd & _Max;
|
|
181
|
+
for (size_t __i = 1; __i < __n; ++__i)
|
|
182
|
+
__x_[__i] = (__f * (__x_[__i - 1] ^ __rshift<__w - 2>(__x_[__i - 1])) + __i) & _Max;
|
|
183
|
+
__i_ = 0;
|
|
184
|
+
}
|
|
198
185
|
template <class _Sseq, __enable_if_t<__is_seed_sequence<_Sseq, mersenne_twister_engine>::value, int> = 0>
|
|
199
186
|
_LIBCPP_HIDE_FROM_ABI void seed(_Sseq& __q) {
|
|
200
187
|
__seed(__q, integral_constant<unsigned, 1 + (__w - 1) / 32>());
|
|
201
188
|
}
|
|
202
189
|
|
|
203
190
|
// generating functions
|
|
204
|
-
_LIBCPP_HIDE_FROM_ABI result_type operator()()
|
|
191
|
+
_LIBCPP_HIDE_FROM_ABI result_type operator()() {
|
|
192
|
+
const size_t __j = (__i_ + 1) % __n;
|
|
193
|
+
const result_type __mask = __r == _Dt ? result_type(~0) : (result_type(1) << __r) - result_type(1);
|
|
194
|
+
const result_type __yp = (__x_[__i_] & ~__mask) | (__x_[__j] & __mask);
|
|
195
|
+
const size_t __k = (__i_ + __m) % __n;
|
|
196
|
+
__x_[__i_] = __x_[__k] ^ __rshift<1>(__yp) ^ (__a * (__yp & 1));
|
|
197
|
+
result_type __z = __x_[__i_] ^ (__rshift<__u>(__x_[__i_]) & __d);
|
|
198
|
+
__i_ = __j;
|
|
199
|
+
__z ^= __lshift<__s>(__z) & __b;
|
|
200
|
+
__z ^= __lshift<__t>(__z) & __c;
|
|
201
|
+
return __z ^ __rshift<__l>(__z);
|
|
202
|
+
}
|
|
203
|
+
|
|
205
204
|
_LIBCPP_HIDE_FROM_ABI void discard(unsigned long long __z) {
|
|
206
205
|
for (; __z; --__z)
|
|
207
206
|
operator()();
|
|
@@ -225,24 +224,6 @@ public:
|
|
|
225
224
|
const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp, _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
|
|
226
225
|
const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp, _Bp, _Tp, _Cp, _Lp, _Fp>& __y);
|
|
227
226
|
|
|
228
|
-
template <class _UInt,
|
|
229
|
-
size_t _Wp,
|
|
230
|
-
size_t _Np,
|
|
231
|
-
size_t _Mp,
|
|
232
|
-
size_t _Rp,
|
|
233
|
-
_UInt _Ap,
|
|
234
|
-
size_t _Up,
|
|
235
|
-
_UInt _Dp,
|
|
236
|
-
size_t _Sp,
|
|
237
|
-
_UInt _Bp,
|
|
238
|
-
size_t _Tp,
|
|
239
|
-
_UInt _Cp,
|
|
240
|
-
size_t _Lp,
|
|
241
|
-
_UInt _Fp>
|
|
242
|
-
friend bool operator!=(
|
|
243
|
-
const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp, _Bp, _Tp, _Cp, _Lp, _Fp>& __x,
|
|
244
|
-
const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp, _Bp, _Tp, _Cp, _Lp, _Fp>& __y);
|
|
245
|
-
|
|
246
227
|
template <class _CharT,
|
|
247
228
|
class _Traits,
|
|
248
229
|
class _UInt,
|
|
@@ -285,9 +266,38 @@ public:
|
|
|
285
266
|
|
|
286
267
|
private:
|
|
287
268
|
template <class _Sseq>
|
|
288
|
-
_LIBCPP_HIDE_FROM_ABI void __seed(_Sseq& __q, integral_constant<unsigned, 1>)
|
|
269
|
+
_LIBCPP_HIDE_FROM_ABI void __seed(_Sseq& __q, integral_constant<unsigned, 1>) {
|
|
270
|
+
const unsigned __k = 1;
|
|
271
|
+
uint32_t __ar[__n * __k];
|
|
272
|
+
__q.generate(__ar, __ar + __n * __k);
|
|
273
|
+
for (size_t __i = 0; __i < __n; ++__i)
|
|
274
|
+
__x_[__i] = static_cast<result_type>(__ar[__i] & _Max);
|
|
275
|
+
const result_type __mask = __r == _Dt ? result_type(~0) : (result_type(1) << __r) - result_type(1);
|
|
276
|
+
__i_ = 0;
|
|
277
|
+
if ((__x_[0] & ~__mask) == 0) {
|
|
278
|
+
for (size_t __i = 1; __i < __n; ++__i)
|
|
279
|
+
if (__x_[__i] != 0)
|
|
280
|
+
return;
|
|
281
|
+
__x_[0] = result_type(1) << (__w - 1);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
289
285
|
template <class _Sseq>
|
|
290
|
-
_LIBCPP_HIDE_FROM_ABI void __seed(_Sseq& __q, integral_constant<unsigned, 2>)
|
|
286
|
+
_LIBCPP_HIDE_FROM_ABI void __seed(_Sseq& __q, integral_constant<unsigned, 2>) {
|
|
287
|
+
const unsigned __k = 2;
|
|
288
|
+
uint32_t __ar[__n * __k];
|
|
289
|
+
__q.generate(__ar, __ar + __n * __k);
|
|
290
|
+
for (size_t __i = 0; __i < __n; ++__i)
|
|
291
|
+
__x_[__i] = static_cast<result_type>((__ar[2 * __i] + ((uint64_t)__ar[2 * __i + 1] << 32)) & _Max);
|
|
292
|
+
const result_type __mask = __r == _Dt ? result_type(~0) : (result_type(1) << __r) - result_type(1);
|
|
293
|
+
__i_ = 0;
|
|
294
|
+
if ((__x_[0] & ~__mask) == 0) {
|
|
295
|
+
for (size_t __i = 1; __i < __n; ++__i)
|
|
296
|
+
if (__x_[__i] != 0)
|
|
297
|
+
return;
|
|
298
|
+
__x_[0] = result_type(1) << (__w - 1);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
291
301
|
|
|
292
302
|
template <size_t __count,
|
|
293
303
|
__enable_if_t<__count< __w, int> = 0> _LIBCPP_HIDE_FROM_ABI static result_type __lshift(result_type __x) {
|
|
@@ -310,120 +320,6 @@ private:
|
|
|
310
320
|
}
|
|
311
321
|
};
|
|
312
322
|
|
|
313
|
-
template <class _UIntType,
|
|
314
|
-
size_t __w,
|
|
315
|
-
size_t __n,
|
|
316
|
-
size_t __m,
|
|
317
|
-
size_t __r,
|
|
318
|
-
_UIntType __a,
|
|
319
|
-
size_t __u,
|
|
320
|
-
_UIntType __d,
|
|
321
|
-
size_t __s,
|
|
322
|
-
_UIntType __b,
|
|
323
|
-
size_t __t,
|
|
324
|
-
_UIntType __c,
|
|
325
|
-
size_t __l,
|
|
326
|
-
_UIntType __f>
|
|
327
|
-
void mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::seed(
|
|
328
|
-
result_type __sd) _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK { // __w >= 2
|
|
329
|
-
__x_[0] = __sd & _Max;
|
|
330
|
-
for (size_t __i = 1; __i < __n; ++__i)
|
|
331
|
-
__x_[__i] = (__f * (__x_[__i - 1] ^ __rshift<__w - 2>(__x_[__i - 1])) + __i) & _Max;
|
|
332
|
-
__i_ = 0;
|
|
333
|
-
}
|
|
334
|
-
|
|
335
|
-
template <class _UIntType,
|
|
336
|
-
size_t __w,
|
|
337
|
-
size_t __n,
|
|
338
|
-
size_t __m,
|
|
339
|
-
size_t __r,
|
|
340
|
-
_UIntType __a,
|
|
341
|
-
size_t __u,
|
|
342
|
-
_UIntType __d,
|
|
343
|
-
size_t __s,
|
|
344
|
-
_UIntType __b,
|
|
345
|
-
size_t __t,
|
|
346
|
-
_UIntType __c,
|
|
347
|
-
size_t __l,
|
|
348
|
-
_UIntType __f>
|
|
349
|
-
template <class _Sseq>
|
|
350
|
-
void mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::__seed(
|
|
351
|
-
_Sseq& __q, integral_constant<unsigned, 1>) {
|
|
352
|
-
const unsigned __k = 1;
|
|
353
|
-
uint32_t __ar[__n * __k];
|
|
354
|
-
__q.generate(__ar, __ar + __n * __k);
|
|
355
|
-
for (size_t __i = 0; __i < __n; ++__i)
|
|
356
|
-
__x_[__i] = static_cast<result_type>(__ar[__i] & _Max);
|
|
357
|
-
const result_type __mask = __r == _Dt ? result_type(~0) : (result_type(1) << __r) - result_type(1);
|
|
358
|
-
__i_ = 0;
|
|
359
|
-
if ((__x_[0] & ~__mask) == 0) {
|
|
360
|
-
for (size_t __i = 1; __i < __n; ++__i)
|
|
361
|
-
if (__x_[__i] != 0)
|
|
362
|
-
return;
|
|
363
|
-
__x_[0] = result_type(1) << (__w - 1);
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
template <class _UIntType,
|
|
368
|
-
size_t __w,
|
|
369
|
-
size_t __n,
|
|
370
|
-
size_t __m,
|
|
371
|
-
size_t __r,
|
|
372
|
-
_UIntType __a,
|
|
373
|
-
size_t __u,
|
|
374
|
-
_UIntType __d,
|
|
375
|
-
size_t __s,
|
|
376
|
-
_UIntType __b,
|
|
377
|
-
size_t __t,
|
|
378
|
-
_UIntType __c,
|
|
379
|
-
size_t __l,
|
|
380
|
-
_UIntType __f>
|
|
381
|
-
template <class _Sseq>
|
|
382
|
-
void mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::__seed(
|
|
383
|
-
_Sseq& __q, integral_constant<unsigned, 2>) {
|
|
384
|
-
const unsigned __k = 2;
|
|
385
|
-
uint32_t __ar[__n * __k];
|
|
386
|
-
__q.generate(__ar, __ar + __n * __k);
|
|
387
|
-
for (size_t __i = 0; __i < __n; ++__i)
|
|
388
|
-
__x_[__i] = static_cast<result_type>((__ar[2 * __i] + ((uint64_t)__ar[2 * __i + 1] << 32)) & _Max);
|
|
389
|
-
const result_type __mask = __r == _Dt ? result_type(~0) : (result_type(1) << __r) - result_type(1);
|
|
390
|
-
__i_ = 0;
|
|
391
|
-
if ((__x_[0] & ~__mask) == 0) {
|
|
392
|
-
for (size_t __i = 1; __i < __n; ++__i)
|
|
393
|
-
if (__x_[__i] != 0)
|
|
394
|
-
return;
|
|
395
|
-
__x_[0] = result_type(1) << (__w - 1);
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
template <class _UIntType,
|
|
400
|
-
size_t __w,
|
|
401
|
-
size_t __n,
|
|
402
|
-
size_t __m,
|
|
403
|
-
size_t __r,
|
|
404
|
-
_UIntType __a,
|
|
405
|
-
size_t __u,
|
|
406
|
-
_UIntType __d,
|
|
407
|
-
size_t __s,
|
|
408
|
-
_UIntType __b,
|
|
409
|
-
size_t __t,
|
|
410
|
-
_UIntType __c,
|
|
411
|
-
size_t __l,
|
|
412
|
-
_UIntType __f>
|
|
413
|
-
_UIntType
|
|
414
|
-
mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::operator()() {
|
|
415
|
-
const size_t __j = (__i_ + 1) % __n;
|
|
416
|
-
const result_type __mask = __r == _Dt ? result_type(~0) : (result_type(1) << __r) - result_type(1);
|
|
417
|
-
const result_type __yp = (__x_[__i_] & ~__mask) | (__x_[__j] & __mask);
|
|
418
|
-
const size_t __k = (__i_ + __m) % __n;
|
|
419
|
-
__x_[__i_] = __x_[__k] ^ __rshift<1>(__yp) ^ (__a * (__yp & 1));
|
|
420
|
-
result_type __z = __x_[__i_] ^ (__rshift<__u>(__x_[__i_]) & __d);
|
|
421
|
-
__i_ = __j;
|
|
422
|
-
__z ^= __lshift<__s>(__z) & __b;
|
|
423
|
-
__z ^= __lshift<__t>(__z) & __c;
|
|
424
|
-
return __z ^ __rshift<__l>(__z);
|
|
425
|
-
}
|
|
426
|
-
|
|
427
323
|
template <class _UInt,
|
|
428
324
|
size_t _Wp,
|
|
429
325
|
size_t _Np,
|
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
#ifndef _LIBCPP___RANDOM_PIECEWISE_CONSTANT_DISTRIBUTION_H
|
|
10
10
|
#define _LIBCPP___RANDOM_PIECEWISE_CONSTANT_DISTRIBUTION_H
|
|
11
11
|
|
|
12
|
+
#include <__algorithm/copy_n.h>
|
|
12
13
|
#include <__algorithm/upper_bound.h>
|
|
13
14
|
#include <__config>
|
|
14
15
|
#include <__cstddef/ptrdiff_t.h>
|
|
16
|
+
#include <__iterator/back_insert_iterator.h>
|
|
15
17
|
#include <__random/is_valid.h>
|
|
16
18
|
#include <__random/uniform_real_distribution.h>
|
|
17
19
|
#include <__vector/vector.h>
|
|
@@ -190,8 +192,7 @@ piecewise_constant_distribution<_RealType>::param_type::param_type(
|
|
|
190
192
|
__areas_.assign(1, 0.0);
|
|
191
193
|
} else {
|
|
192
194
|
__densities_.reserve(__b_.size() - 1);
|
|
193
|
-
|
|
194
|
-
__densities_.push_back(*__f_w);
|
|
195
|
+
std::copy_n(__f_w, __b_.size() - 1, std::back_inserter(__densities_));
|
|
195
196
|
__init();
|
|
196
197
|
}
|
|
197
198
|
}
|
|
@@ -9,9 +9,11 @@
|
|
|
9
9
|
#ifndef _LIBCPP___RANDOM_PIECEWISE_LINEAR_DISTRIBUTION_H
|
|
10
10
|
#define _LIBCPP___RANDOM_PIECEWISE_LINEAR_DISTRIBUTION_H
|
|
11
11
|
|
|
12
|
+
#include <__algorithm/copy_n.h>
|
|
12
13
|
#include <__algorithm/upper_bound.h>
|
|
13
14
|
#include <__config>
|
|
14
15
|
#include <__cstddef/ptrdiff_t.h>
|
|
16
|
+
#include <__iterator/back_insert_iterator.h>
|
|
15
17
|
#include <__random/is_valid.h>
|
|
16
18
|
#include <__random/uniform_real_distribution.h>
|
|
17
19
|
#include <__vector/comparison.h>
|
|
@@ -194,8 +196,7 @@ piecewise_linear_distribution<_RealType>::param_type::param_type(
|
|
|
194
196
|
__areas_.assign(1, 0.0);
|
|
195
197
|
} else {
|
|
196
198
|
__densities_.reserve(__b_.size());
|
|
197
|
-
|
|
198
|
-
__densities_.push_back(*__f_w);
|
|
199
|
+
std::copy_n(__f_w, __b_.size(), std::back_inserter(__densities_));
|
|
199
200
|
__init();
|
|
200
201
|
}
|
|
201
202
|
}
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
// -*- C++ -*-
|
|
2
|
+
//===----------------------------------------------------------------------===//
|
|
3
|
+
//
|
|
4
|
+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
5
|
+
// See https://llvm.org/LICENSE.txt for license information.
|
|
6
|
+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
7
|
+
//
|
|
8
|
+
//===----------------------------------------------------------------------===//
|
|
9
|
+
|
|
10
|
+
#ifndef _LIBCPP___RANGES_ADJACENT_TRANSFORM_VIEW_H
|
|
11
|
+
#define _LIBCPP___RANGES_ADJACENT_TRANSFORM_VIEW_H
|
|
12
|
+
|
|
13
|
+
#include <__config>
|
|
14
|
+
|
|
15
|
+
#include <__algorithm/min.h>
|
|
16
|
+
#include <__compare/three_way_comparable.h>
|
|
17
|
+
#include <__concepts/constructible.h>
|
|
18
|
+
#include <__concepts/convertible_to.h>
|
|
19
|
+
#include <__concepts/derived_from.h>
|
|
20
|
+
#include <__concepts/equality_comparable.h>
|
|
21
|
+
#include <__concepts/invocable.h>
|
|
22
|
+
#include <__cstddef/size_t.h>
|
|
23
|
+
#include <__functional/bind_back.h>
|
|
24
|
+
#include <__functional/invoke.h>
|
|
25
|
+
#include <__functional/operations.h>
|
|
26
|
+
#include <__iterator/concepts.h>
|
|
27
|
+
#include <__iterator/incrementable_traits.h>
|
|
28
|
+
#include <__iterator/iter_move.h>
|
|
29
|
+
#include <__iterator/iter_swap.h>
|
|
30
|
+
#include <__iterator/iterator_traits.h>
|
|
31
|
+
#include <__iterator/next.h>
|
|
32
|
+
#include <__iterator/prev.h>
|
|
33
|
+
#include <__memory/addressof.h>
|
|
34
|
+
#include <__ranges/access.h>
|
|
35
|
+
#include <__ranges/adjacent_view.h>
|
|
36
|
+
#include <__ranges/all.h>
|
|
37
|
+
#include <__ranges/concepts.h>
|
|
38
|
+
#include <__ranges/empty_view.h>
|
|
39
|
+
#include <__ranges/movable_box.h>
|
|
40
|
+
#include <__ranges/range_adaptor.h>
|
|
41
|
+
#include <__ranges/size.h>
|
|
42
|
+
#include <__ranges/view_interface.h>
|
|
43
|
+
#include <__ranges/zip_transform_view.h>
|
|
44
|
+
#include <__type_traits/common_type.h>
|
|
45
|
+
#include <__type_traits/decay.h>
|
|
46
|
+
#include <__type_traits/is_nothrow_constructible.h>
|
|
47
|
+
#include <__type_traits/is_object.h>
|
|
48
|
+
#include <__type_traits/is_referenceable.h>
|
|
49
|
+
#include <__type_traits/make_unsigned.h>
|
|
50
|
+
#include <__type_traits/maybe_const.h>
|
|
51
|
+
#include <__utility/declval.h>
|
|
52
|
+
#include <__utility/forward.h>
|
|
53
|
+
#include <__utility/in_place.h>
|
|
54
|
+
#include <__utility/integer_sequence.h>
|
|
55
|
+
#include <__utility/move.h>
|
|
56
|
+
|
|
57
|
+
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
58
|
+
# pragma GCC system_header
|
|
59
|
+
#endif
|
|
60
|
+
|
|
61
|
+
_LIBCPP_PUSH_MACROS
|
|
62
|
+
#include <__undef_macros>
|
|
63
|
+
|
|
64
|
+
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
65
|
+
|
|
66
|
+
#if _LIBCPP_STD_VER >= 23
|
|
67
|
+
|
|
68
|
+
namespace ranges {
|
|
69
|
+
|
|
70
|
+
template <class _Fn, size_t _Np>
|
|
71
|
+
struct __apply_n {
|
|
72
|
+
template <class _Tp, size_t... _Is>
|
|
73
|
+
static auto __apply(index_sequence<_Is...>) -> invoke_result_t<_Fn, decltype((void)_Is, std::declval<_Tp>())...>;
|
|
74
|
+
|
|
75
|
+
template <class _Tp>
|
|
76
|
+
static auto operator()(_Tp&&) -> decltype(__apply<_Tp>(make_index_sequence<_Np>{}));
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
template <forward_range _View, move_constructible _Fn, size_t _Np>
|
|
80
|
+
requires view<_View> && (_Np > 0) && is_object_v<_Fn> &&
|
|
81
|
+
regular_invocable<__apply_n<_Fn&, _Np>, range_reference_t<_View>> &&
|
|
82
|
+
__referenceable<invoke_result_t<__apply_n<_Fn&, _Np>, range_reference_t<_View>>>
|
|
83
|
+
class adjacent_transform_view : public view_interface<adjacent_transform_view<_View, _Fn, _Np>> {
|
|
84
|
+
private:
|
|
85
|
+
_LIBCPP_NO_UNIQUE_ADDRESS adjacent_view<_View, _Np> __inner_;
|
|
86
|
+
_LIBCPP_NO_UNIQUE_ADDRESS __movable_box<_Fn> __fun_;
|
|
87
|
+
|
|
88
|
+
using _InnerView _LIBCPP_NODEBUG = adjacent_view<_View, _Np>;
|
|
89
|
+
|
|
90
|
+
template <bool _Const>
|
|
91
|
+
using __inner_iterator _LIBCPP_NODEBUG = iterator_t<__maybe_const<_Const, _InnerView>>;
|
|
92
|
+
|
|
93
|
+
template <bool _Const>
|
|
94
|
+
using __inner_sentinel _LIBCPP_NODEBUG = sentinel_t<__maybe_const<_Const, _InnerView>>;
|
|
95
|
+
|
|
96
|
+
template <bool>
|
|
97
|
+
class __iterator;
|
|
98
|
+
|
|
99
|
+
template <bool>
|
|
100
|
+
class __sentinel;
|
|
101
|
+
|
|
102
|
+
public:
|
|
103
|
+
_LIBCPP_HIDE_FROM_ABI adjacent_transform_view() = default;
|
|
104
|
+
|
|
105
|
+
_LIBCPP_HIDE_FROM_ABI constexpr explicit adjacent_transform_view(_View __base, _Fn __fun)
|
|
106
|
+
: __inner_(std::move(__base)), __fun_(std::in_place, std::move(__fun)) {}
|
|
107
|
+
|
|
108
|
+
_LIBCPP_HIDE_FROM_ABI constexpr _View base() const&
|
|
109
|
+
requires copy_constructible<_View>
|
|
110
|
+
{
|
|
111
|
+
return __inner_.base();
|
|
112
|
+
}
|
|
113
|
+
_LIBCPP_HIDE_FROM_ABI constexpr _View base() && { return std::move(__inner_).base(); }
|
|
114
|
+
|
|
115
|
+
_LIBCPP_HIDE_FROM_ABI constexpr auto begin() { return __iterator<false>(*this, __inner_.begin()); }
|
|
116
|
+
|
|
117
|
+
_LIBCPP_HIDE_FROM_ABI constexpr auto begin() const
|
|
118
|
+
requires range<const _InnerView> && regular_invocable<__apply_n<const _Fn&, _Np>, range_reference_t<const _View>>
|
|
119
|
+
{
|
|
120
|
+
return __iterator<true>(*this, __inner_.begin());
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
_LIBCPP_HIDE_FROM_ABI constexpr auto end() {
|
|
124
|
+
if constexpr (common_range<_InnerView>) {
|
|
125
|
+
return __iterator<false>(*this, __inner_.end());
|
|
126
|
+
} else {
|
|
127
|
+
return __sentinel<false>(__inner_.end());
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
_LIBCPP_HIDE_FROM_ABI constexpr auto end() const
|
|
132
|
+
requires range<const _InnerView> && regular_invocable<__apply_n<const _Fn&, _Np>, range_reference_t<const _View>>
|
|
133
|
+
{
|
|
134
|
+
if constexpr (common_range<const _InnerView>) {
|
|
135
|
+
return __iterator<true>(*this, __inner_.end());
|
|
136
|
+
} else {
|
|
137
|
+
return __sentinel<true>(__inner_.end());
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
_LIBCPP_HIDE_FROM_ABI constexpr auto size()
|
|
142
|
+
requires sized_range<_InnerView>
|
|
143
|
+
{
|
|
144
|
+
return __inner_.size();
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
_LIBCPP_HIDE_FROM_ABI constexpr auto size() const
|
|
148
|
+
requires sized_range<const _InnerView>
|
|
149
|
+
{
|
|
150
|
+
return __inner_.size();
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
template <forward_range _View, move_constructible _Fn, size_t _Np>
|
|
155
|
+
requires view<_View> && (_Np > 0) && is_object_v<_Fn> &&
|
|
156
|
+
regular_invocable<__apply_n<_Fn&, _Np>, range_reference_t<_View>> &&
|
|
157
|
+
__referenceable<invoke_result_t<__apply_n<_Fn&, _Np>, range_reference_t<_View>>>
|
|
158
|
+
template <bool _Const>
|
|
159
|
+
class adjacent_transform_view<_View, _Fn, _Np>::__iterator {
|
|
160
|
+
friend adjacent_transform_view;
|
|
161
|
+
|
|
162
|
+
using _Parent _LIBCPP_NODEBUG = __maybe_const<_Const, adjacent_transform_view>;
|
|
163
|
+
using _Base _LIBCPP_NODEBUG = __maybe_const<_Const, _View>;
|
|
164
|
+
|
|
165
|
+
_Parent* __parent_ = nullptr;
|
|
166
|
+
__inner_iterator<_Const> __inner_;
|
|
167
|
+
|
|
168
|
+
_LIBCPP_HIDE_FROM_ABI constexpr __iterator(_Parent& __parent, __inner_iterator<_Const> __inner)
|
|
169
|
+
: __parent_(std::addressof(__parent)), __inner_(std::move(__inner)) {}
|
|
170
|
+
|
|
171
|
+
static consteval auto __get_iterator_category() {
|
|
172
|
+
using _Cat = iterator_traits<iterator_t<_Base>>::iterator_category;
|
|
173
|
+
if constexpr (!is_reference_v<
|
|
174
|
+
invoke_result_t<__apply_n<__maybe_const<_Const, _Fn>&, _Np>, range_reference_t<_Base>>>)
|
|
175
|
+
return input_iterator_tag{};
|
|
176
|
+
else if constexpr (derived_from<_Cat, random_access_iterator_tag>)
|
|
177
|
+
return random_access_iterator_tag{};
|
|
178
|
+
else if constexpr (derived_from<_Cat, bidirectional_iterator_tag>)
|
|
179
|
+
return bidirectional_iterator_tag{};
|
|
180
|
+
else if constexpr (derived_from<_Cat, forward_iterator_tag>)
|
|
181
|
+
return forward_iterator_tag{};
|
|
182
|
+
else
|
|
183
|
+
return input_iterator_tag{};
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
template <size_t... _Is>
|
|
187
|
+
static consteval bool __noexcept_dereference(index_sequence<_Is...>) {
|
|
188
|
+
return noexcept(std::invoke(
|
|
189
|
+
std::declval<__maybe_const<_Const, _Fn>&>(), ((void)_Is, *std::declval<iterator_t<_Base> const&>())...));
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
public:
|
|
193
|
+
using iterator_category = decltype(__get_iterator_category());
|
|
194
|
+
using iterator_concept = typename __inner_iterator<_Const>::iterator_concept;
|
|
195
|
+
using value_type =
|
|
196
|
+
remove_cvref_t<invoke_result_t<__apply_n<__maybe_const<_Const, _Fn>&, _Np>, range_reference_t<_Base>>>;
|
|
197
|
+
using difference_type = range_difference_t<_Base>;
|
|
198
|
+
|
|
199
|
+
_LIBCPP_HIDE_FROM_ABI __iterator() = default;
|
|
200
|
+
|
|
201
|
+
_LIBCPP_HIDE_FROM_ABI constexpr __iterator(__iterator<!_Const> __i)
|
|
202
|
+
requires _Const && convertible_to<__inner_iterator<false>, __inner_iterator<true>>
|
|
203
|
+
: __parent_(__i.__parent_), __inner_(std::move(__i.__inner_)) {}
|
|
204
|
+
|
|
205
|
+
_LIBCPP_HIDE_FROM_ABI constexpr decltype(auto) operator*() const
|
|
206
|
+
noexcept(__noexcept_dereference(make_index_sequence<_Np>{})) {
|
|
207
|
+
return std::apply(
|
|
208
|
+
[&](const auto&... __iters) -> decltype(auto) { return std::invoke(*__parent_->__fun_, *__iters...); },
|
|
209
|
+
__adjacent_view_iter_access::__get_current(__inner_));
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
_LIBCPP_HIDE_FROM_ABI constexpr __iterator& operator++() {
|
|
213
|
+
++__inner_;
|
|
214
|
+
return *this;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
_LIBCPP_HIDE_FROM_ABI constexpr __iterator operator++(int) {
|
|
218
|
+
auto __tmp = *this;
|
|
219
|
+
++*this;
|
|
220
|
+
return __tmp;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
_LIBCPP_HIDE_FROM_ABI constexpr __iterator& operator--()
|
|
224
|
+
requires bidirectional_range<_Base>
|
|
225
|
+
{
|
|
226
|
+
--__inner_;
|
|
227
|
+
return *this;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
_LIBCPP_HIDE_FROM_ABI constexpr __iterator operator--(int)
|
|
231
|
+
requires bidirectional_range<_Base>
|
|
232
|
+
{
|
|
233
|
+
auto __tmp = *this;
|
|
234
|
+
--*this;
|
|
235
|
+
return __tmp;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
_LIBCPP_HIDE_FROM_ABI constexpr __iterator& operator+=(difference_type __x)
|
|
239
|
+
requires random_access_range<_Base>
|
|
240
|
+
{
|
|
241
|
+
__inner_ += __x;
|
|
242
|
+
return *this;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
_LIBCPP_HIDE_FROM_ABI constexpr __iterator& operator-=(difference_type __x)
|
|
246
|
+
requires random_access_range<_Base>
|
|
247
|
+
{
|
|
248
|
+
__inner_ -= __x;
|
|
249
|
+
return *this;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
_LIBCPP_HIDE_FROM_ABI constexpr decltype(auto) operator[](difference_type __n) const
|
|
253
|
+
requires random_access_range<_Base>
|
|
254
|
+
{
|
|
255
|
+
return std::apply(
|
|
256
|
+
[&](const auto&... __iters) -> decltype(auto) { return std::invoke(*__parent_->__fun_, __iters[__n]...); },
|
|
257
|
+
__adjacent_view_iter_access::__get_current(__inner_));
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator==(const __iterator& __x, const __iterator& __y) {
|
|
261
|
+
return __x.__inner_ == __y.__inner_;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator<(const __iterator& __x, const __iterator& __y)
|
|
265
|
+
requires random_access_range<_Base>
|
|
266
|
+
{
|
|
267
|
+
return __x.__inner_ < __y.__inner_;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator>(const __iterator& __x, const __iterator& __y)
|
|
271
|
+
requires random_access_range<_Base>
|
|
272
|
+
{
|
|
273
|
+
return __x.__inner_ > __y.__inner_;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator<=(const __iterator& __x, const __iterator& __y)
|
|
277
|
+
requires random_access_range<_Base>
|
|
278
|
+
{
|
|
279
|
+
return __x.__inner_ <= __y.__inner_;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator>=(const __iterator& __x, const __iterator& __y)
|
|
283
|
+
requires random_access_range<_Base>
|
|
284
|
+
{
|
|
285
|
+
return __x.__inner_ >= __y.__inner_;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr auto operator<=>(const __iterator& __x, const __iterator& __y)
|
|
289
|
+
requires random_access_range<_Base> && three_way_comparable<__inner_iterator<_Const>>
|
|
290
|
+
{
|
|
291
|
+
return __x.__inner_ <=> __y.__inner_;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr __iterator operator+(const __iterator& __i, difference_type __n)
|
|
295
|
+
requires random_access_range<_Base>
|
|
296
|
+
{
|
|
297
|
+
return __iterator(*__i.__parent_, __i.__inner_ + __n);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr __iterator operator+(difference_type __n, const __iterator& __i)
|
|
301
|
+
requires random_access_range<_Base>
|
|
302
|
+
{
|
|
303
|
+
return __iterator(*__i.__parent_, __i.__inner_ + __n);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr __iterator operator-(const __iterator& __i, difference_type __n)
|
|
307
|
+
requires random_access_range<_Base>
|
|
308
|
+
{
|
|
309
|
+
return __iterator(*__i.__parent_, __i.__inner_ - __n);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr difference_type operator-(const __iterator& __x, const __iterator& __y)
|
|
313
|
+
requires sized_sentinel_for<__inner_iterator<_Const>, __inner_iterator<_Const>>
|
|
314
|
+
{
|
|
315
|
+
return __x.__inner_ - __y.__inner_;
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
template <forward_range _View, move_constructible _Fn, size_t _Np>
|
|
320
|
+
requires view<_View> && (_Np > 0) && is_object_v<_Fn> &&
|
|
321
|
+
regular_invocable<__apply_n<_Fn&, _Np>, range_reference_t<_View>> &&
|
|
322
|
+
__referenceable<invoke_result_t<__apply_n<_Fn&, _Np>, range_reference_t<_View>>>
|
|
323
|
+
template <bool _Const>
|
|
324
|
+
class adjacent_transform_view<_View, _Fn, _Np>::__sentinel {
|
|
325
|
+
friend adjacent_transform_view;
|
|
326
|
+
|
|
327
|
+
__inner_sentinel<_Const> __inner_;
|
|
328
|
+
|
|
329
|
+
_LIBCPP_HIDE_FROM_ABI constexpr explicit __sentinel(__inner_sentinel<_Const> __inner)
|
|
330
|
+
: __inner_(std::move(__inner)) {}
|
|
331
|
+
|
|
332
|
+
public:
|
|
333
|
+
_LIBCPP_HIDE_FROM_ABI __sentinel() = default;
|
|
334
|
+
|
|
335
|
+
_LIBCPP_HIDE_FROM_ABI constexpr __sentinel(__sentinel<!_Const> __i)
|
|
336
|
+
requires _Const && convertible_to<__inner_sentinel<false>, __inner_sentinel<_Const>>
|
|
337
|
+
: __inner_(std::move(__i.__inner_)) {}
|
|
338
|
+
|
|
339
|
+
template <bool _OtherConst>
|
|
340
|
+
requires sentinel_for<__inner_sentinel<_Const>, __inner_iterator<_OtherConst>>
|
|
341
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr bool operator==(const __iterator<_OtherConst>& __x, const __sentinel& __y) {
|
|
342
|
+
return __x.__inner_ == __y.__inner_;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
template <bool _OtherConst>
|
|
346
|
+
requires sized_sentinel_for<__inner_sentinel<_Const>, __inner_iterator<_OtherConst>>
|
|
347
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr range_difference_t<__maybe_const<_OtherConst, _InnerView>>
|
|
348
|
+
operator-(const __iterator<_OtherConst>& __x, const __sentinel& __y) {
|
|
349
|
+
return __x.__inner_ - __y.__inner_;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
template <bool _OtherConst>
|
|
353
|
+
requires sized_sentinel_for<__inner_sentinel<_Const>, __inner_iterator<_OtherConst>>
|
|
354
|
+
_LIBCPP_HIDE_FROM_ABI friend constexpr range_difference_t<__maybe_const<_OtherConst, _InnerView>>
|
|
355
|
+
operator-(const __sentinel& __x, const __iterator<_OtherConst>& __y) {
|
|
356
|
+
return __x.__inner_ - __y.__inner_;
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
namespace views {
|
|
361
|
+
namespace __adjacent_transform {
|
|
362
|
+
|
|
363
|
+
template <size_t _Np>
|
|
364
|
+
struct __fn : __range_adaptor_closure<__fn<_Np>> {
|
|
365
|
+
template <class _Range, class _Fn>
|
|
366
|
+
requires(_Np == 0 && forward_range<_Range &&>)
|
|
367
|
+
_LIBCPP_HIDE_FROM_ABI static constexpr auto
|
|
368
|
+
operator()(_Range&&, _Fn&& __fn) noexcept(noexcept(views::zip_transform(std::forward<_Fn>(__fn))))
|
|
369
|
+
-> decltype(views::zip_transform(std::forward<_Fn>(__fn))) {
|
|
370
|
+
return views::zip_transform(std::forward<_Fn>(__fn));
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
template <class _Range, class _Fn>
|
|
374
|
+
_LIBCPP_HIDE_FROM_ABI static constexpr auto operator()(_Range&& __range, _Fn&& __fn) noexcept(
|
|
375
|
+
noexcept(adjacent_transform_view<views::all_t<_Range&&>, decay_t<_Fn>, _Np>(
|
|
376
|
+
std::forward<_Range>(__range), std::forward<_Fn>(__fn))))
|
|
377
|
+
-> decltype(adjacent_transform_view<views::all_t<_Range&&>, decay_t<_Fn>, _Np>(
|
|
378
|
+
std::forward<_Range>(__range), std::forward<_Fn>(__fn))) {
|
|
379
|
+
return adjacent_transform_view<views::all_t<_Range&&>, decay_t<_Fn>, _Np>(
|
|
380
|
+
std::forward<_Range>(__range), std::forward<_Fn>(__fn));
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
template <class _Fn>
|
|
384
|
+
requires constructible_from<decay_t<_Fn>, _Fn>
|
|
385
|
+
[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr auto operator()(_Fn&& __f) const
|
|
386
|
+
noexcept(is_nothrow_constructible_v<decay_t<_Fn>, _Fn>) {
|
|
387
|
+
return __pipeable(std::__bind_back(*this, std::forward<_Fn>(__f)));
|
|
388
|
+
}
|
|
389
|
+
};
|
|
390
|
+
|
|
391
|
+
} // namespace __adjacent_transform
|
|
392
|
+
inline namespace __cpo {
|
|
393
|
+
template <size_t _Np>
|
|
394
|
+
inline constexpr auto adjacent_transform = __adjacent_transform::__fn<_Np>{};
|
|
395
|
+
inline constexpr auto pairwise_transform = adjacent_transform<2>;
|
|
396
|
+
} // namespace __cpo
|
|
397
|
+
} // namespace views
|
|
398
|
+
} // namespace ranges
|
|
399
|
+
|
|
400
|
+
#endif // _LIBCPP_STD_VER >= 23
|
|
401
|
+
|
|
402
|
+
_LIBCPP_END_NAMESPACE_STD
|
|
403
|
+
|
|
404
|
+
_LIBCPP_POP_MACROS
|
|
405
|
+
|
|
406
|
+
#endif // _LIBCPP___RANGES_ADJACENT_TRANSFORM_VIEW_H
|