Skip to content

Instantly share code, notes, and snippets.

@hokein
Created February 12, 2024 15:58
Show Gist options
  • Save hokein/9bf88e4d82cf83c3f3c81fa266ef2563 to your computer and use it in GitHub Desktop.
Save hokein/9bf88e4d82cf83c3f3c81fa266ef2563 to your computer and use it in GitHub Desktop.
Crash on SLPVectorizer.cpp
<command line>:7:9: warning: redefining builtin macro [-Wbuiltin-macro-redefined]
7 | #define __DATE__ "redacted"
| ^
<command line>:8:9: warning: redefining builtin macro [-Wbuiltin-macro-redefined]
8 | #define __TIMESTAMP__ "redacted"
| ^
<command line>:9:9: warning: redefining builtin macro [-Wbuiltin-macro-redefined]
9 | #define __TIME__ "redacted"
| ^
clang: llvm-project/llvm/include/llvm/ADT/SmallVector.h:313: reference llvm::SmallVectorTemplateCommon<std::pair<llvm::SmallVector<unsigned int, 4>, unsigned int>>::front() [T = std::pair<llvm::SmallVector<unsigned int, 4>, unsigned int>]: Assertion `!empty()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /usr/local/google/home/hokein/creduce2/clang -cc1 -triple x86_64-grtev4-linux-gnu -emit-obj -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name jit_uni_layer_normalization.cpp -function-alignment 5 -mrelocation-model pic -pic-level 2 -fhalf-no-semantic-interposition -fmerge-all-constants -mframe-pointer=non-leaf -relaxed-aliasing -fmath-errno -ffp-contract=off -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -target-feature +aes -target-feature +cx16 -target-feature +sse4.2 -target-feature +pclmul -mllvm -generate-type-units --compress-debug-sections=zstd -ffunction-sections -fdata-sections -fno-unique-section-names -U USE_MKL -U USE_CBLAS -D DNNL_ENABLE_MAX_CPU_ISA -D DNNL_MAYBE_UNIQUE_PTR_IS_UNIQUE=0 -D DNNL_ENABLE_JIT_PROFILING=0 -D DNNL_ENABLE_JIT_DUMP=0 -D __DATE__=\"redacted\" -D __TIMESTAMP__=\"redacted\" -D __TIME__=\"redacted\" -ffile-reproducible -O3 -Wall -std=gnu++20 -fdeprecated-macro -fbracket-depth 768 -ferror-limit 19 -flax-vector-conversions=all -pthread -fcoro-aligned-allocation -fno-signed-char -fgnuc-version=4.2.1 -fmodules-strict-decluse -fno-implicit-modules -fskip-odr-check-in-gmf -fcxx-exceptions -fexceptions -fno-assume-unique-vtables -fsized-deallocation -faligned-allocation -fnew-alignment=8 -fcolor-diagnostics -vectorize-loops -vectorize-slp -mprefer-vector-width=128 -fshow-overloads=best -fno-cxx-modules -fmodule-map-file-home-is-cwd -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -x c++ run.cpp
1. <eof> parser at end of file
2. Optimizer
#0 0x00005627dd41d6a8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) llvm-project/llvm/lib/Support/Unix/Signals.inc:723:13
#1 0x00005627dd41b7a0 llvm::sys::RunSignalHandlers() llvm-project/llvm/lib/Support/Signals.cpp:106:18
#2 0x00005627dd41dd48 SignalHandler(int) llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
#3 0x00007fd8fb05a510 (/lib/x86_64-linux-gnu/libc.so.6+0x3c510)
#4 0x00007fd8fb0a80fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x00007fd8fb05a472 raise ./signal/../sysdeps/posix/raise.c:27:6
#6 0x00007fd8fb0444b2 abort ./stdlib/abort.c:81:7
#7 0x00007fd8fb0443d5 _nl_load_domain ./intl/loadmsgcat.c:1177:9
#8 0x00007fd8fb0533a2 (/lib/x86_64-linux-gnu/libc.so.6+0x353a2)
#9 0x00005627de99d150 llvm::isa_impl_cl<llvm::InsertElementInst, llvm::Instruction const*>::doit(llvm::Instruction const*) llvm-project/llvm/include/llvm/Support/Casting.h:109:5
#10 0x00005627de99d150 llvm::isa_impl_wrap<llvm::InsertElementInst, llvm::Instruction const*, llvm::Instruction const*>::doit(llvm::Instruction const* const&) llvm-project/llvm/include/llvm/Support/Casting.h:137:12
#11 0x00005627de99d150 llvm::isa_impl_wrap<llvm::InsertElementInst, llvm::Instruction const* const, llvm::Instruction const*>::doit(llvm::Instruction const* const&) llvm-project/llvm/include/llvm/Support/Casting.h:127:12
#12 0x00005627de99d150 llvm::CastIsPossible<llvm::InsertElementInst, llvm::Instruction const*, void>::isPossible(llvm::Instruction const* const&) llvm-project/llvm/include/llvm/Support/Casting.h:255:12
#13 0x00005627de99d150 llvm::CastInfo<llvm::InsertElementInst, llvm::Instruction* const, void>::isPossible(llvm::Instruction* const&) llvm-project/llvm/include/llvm/Support/Casting.h:509:12
#14 0x00005627de99d150 bool llvm::isa<llvm::InsertElementInst, llvm::Instruction*>(llvm::Instruction* const&) llvm-project/llvm/include/llvm/Support/Casting.h:549:10
#15 0x00005627de99d150 bool llvm::isa<llvm::InsertElementInst, llvm::StoreInst, llvm::Instruction*>(llvm::Instruction* const&) llvm-project/llvm/include/llvm/Support/Casting.h:554:10
#16 0x00005627de99d150 llvm::slpvectorizer::BoUpSLP::reorderTopToBottom() llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:4609:13
#17 0x00005627de9f8148 (anonymous namespace)::HorizontalReduction::tryToReduce(llvm::slpvectorizer::BoUpSLP&, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo const&) llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:14873:11
#18 0x00005627de9dfe8e llvm::SLPVectorizerPass::vectorizeHorReduction(llvm::PHINode*, llvm::Instruction*, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&, llvm::TargetTransformInfo*, llvm::SmallVectorImpl<llvm::WeakTrackingVH>&)::$_1::operator()(llvm::Instruction*) const llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15699:19
#19 0x00005627de9dfe8e llvm::SLPVectorizerPass::vectorizeHorReduction(llvm::PHINode*, llvm::Instruction*, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&, llvm::TargetTransformInfo*, llvm::SmallVectorImpl<llvm::WeakTrackingVH>&) llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15724:30
#20 0x00005627de9e01d9 llvm::SLPVectorizerPass::vectorizeRootInstruction(llvm::PHINode*, llvm::Instruction*, llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&, llvm::TargetTransformInfo*) llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:15759:14
#21 0x00005627de9d81fd llvm::SLPVectorizerPass::vectorizeChainsInBlock(llvm::BasicBlock*, llvm::slpvectorizer::BoUpSLP&) llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:16317:24
#22 0x00005627de9d5fc0 llvm::SLPVectorizerPass::runImpl(llvm::Function&, llvm::ScalarEvolution*, llvm::TargetTransformInfo*, llvm::TargetLibraryInfo*, llvm::AAResults*, llvm::LoopInfo*, llvm::DominatorTree*, llvm::AssumptionCache*, llvm::DemandedBits*, llvm::OptimizationRemarkEmitter*) llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:13528:13
#23 0x00005627de9d58bf llvm::SLPVectorizerPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:13459:18
#24 0x00005627de6cc5ed llvm::detail::PassModel<llvm::Function, llvm::SLPVectorizerPass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:90:5
#25 0x00005627dcef2459 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) llvm-project/llvm/include/llvm/IR/PassManager.h:247:10
#26 0x00005627db43affd llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:90:5
#27 0x00005627dcef5e2e llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) llvm-project/llvm/lib/IR/PassManager.cpp:128:23
#28 0x00005627db43ad9d llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:90:5
#29 0x00005627dcef174b llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) llvm-project/llvm/include/llvm/IR/PassManager.h:247:10
#30 0x00005627ddb51a67 llvm::SmallPtrSetImplBase::isSmall() const llvm-project/llvm/include/llvm/ADT/SmallPtrSet.h:196:33
#31 0x00005627ddb51a67 llvm::SmallPtrSetImplBase::~SmallPtrSetImplBase() llvm-project/llvm/include/llvm/ADT/SmallPtrSet.h:84:10
#32 0x00005627ddb51a67 llvm::PreservedAnalyses::~PreservedAnalyses() llvm-project/llvm/include/llvm/IR/Analysis.h:109:7
#33 0x00005627ddb51a67 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&, clang::BackendConsumer*) llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1102:5
#34 0x00005627ddb48de8 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) llvm-project/clang/lib/CodeGen/BackendUtil.cpp:0:3
#35 0x00005627ddb48de8 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1329:13
#36 0x00005627ddb6754a std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>::~unique_ptr() /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_ptr.h:403:6
#37 0x00005627ddb6754a clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:379:3
#38 0x00005627df5faab6 __gnu_cxx::__normal_iterator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>*, std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>::__normal_iterator(std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>* const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_iterator.h:1077:20
#39 0x00005627df5faab6 std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>::begin() /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/stl_vector.h:871:16
#40 0x00005627df5faab6 void clang::finalize<std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>(std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>&, clang::Sema const&) llvm-project/clang/include/clang/Sema/TemplateInstCallback.h:54:16
#41 0x00005627df5faab6 clang::ParseAST(clang::Sema&, bool, bool) llvm-project/clang/lib/Parse/ParseAST.cpp:183:3
#42 0x00005627ddf05230 clang::FrontendAction::Execute() llvm-project/clang/lib/Frontend/FrontendAction.cpp:1073:10
#43 0x00005627dde7b6ad llvm::Error::getPtr() const llvm-project/llvm/include/llvm/Support/Error.h:276:42
#44 0x00005627dde7b6ad llvm::Error::operator bool() llvm-project/llvm/include/llvm/Support/Error.h:239:16
#45 0x00005627dde7b6ad clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1057:23
#46 0x00005627ddfdaf67 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:272:25
#47 0x00005627db05776d cc1_main(llvm::ArrayRef<char const*>, char const*, void*) llvm-project/clang/tools/driver/cc1_main.cpp:294:15
#48 0x00005627db053c6a ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) llvm-project/clang/tools/driver/driver.cpp:365:12
#49 0x00005627db052b71 clang_main(int, char**, llvm::ToolContext const&) llvm-project/clang/tools/driver/driver.cpp:405:12
#50 0x00005627db062f57 main llvm-project/build/tools/clang/tools/driver/clang-driver.cpp:17:10
#51 0x00007fd8fb0456ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#52 0x00007fd8fb045785 call_init ./csu/../csu/libc-start.c:128:20
#53 0x00007fd8fb045785 __libc_start_main ./csu/../csu/libc-start.c:347:5
#54 0x00005627db0503e1 _start (/usr/local/google/home/hokein/creduce2/clang+0x526c3e1)
[4] 2693371 IOT instruction "/usr/local/google/home/hokein/creduce2/clang" "-cc1" "-triple" "-emit-obj"
This file has been truncated, but you can view the full file.
# 1 "third_party/intel_dnnl/src/cpu/x64/jit_uni_layer_normalization.cpp"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 476 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "third_party/intel_dnnl/src/cpu/x64/jit_uni_layer_normalization.cpp" 2
# 17 "third_party/intel_dnnl/src/cpu/x64/jit_uni_layer_normalization.cpp"
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/assert.h" 1 3 4
# 35 "third_party/grte/v5_x86/release/usr/grte/v5/include/assert.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/features.h" 1 3 4
# 408 "third_party/grte/v5_x86/release/usr/grte/v5/include/features.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdc-predef.h" 1 3 4
# 409 "third_party/grte/v5_x86/release/usr/grte/v5/include/features.h" 2 3 4
# 435 "third_party/grte/v5_x86/release/usr/grte/v5/include/features.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/cdefs.h" 1 3 4
# 432 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/cdefs.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wordsize.h" 1 3 4
# 433 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/cdefs.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/long-double.h" 1 3 4
# 434 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/cdefs.h" 2 3 4
# 436 "third_party/grte/v5_x86/release/usr/grte/v5/include/features.h" 2 3 4
# 458 "third_party/grte/v5_x86/release/usr/grte/v5/include/features.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/gnu/stubs.h" 1 3 4
# 10 "third_party/grte/v5_x86/release/usr/grte/v5/include/gnu/stubs.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/gnu/stubs-64.h" 1 3 4
# 11 "third_party/grte/v5_x86/release/usr/grte/v5/include/gnu/stubs.h" 2 3 4
# 459 "third_party/grte/v5_x86/release/usr/grte/v5/include/features.h" 2 3 4
# 36 "third_party/grte/v5_x86/release/usr/grte/v5/include/assert.h" 2 3 4
# 18 "third_party/intel_dnnl/src/cpu/x64/jit_uni_layer_normalization.cpp" 2
# 1 "third_party/stl/cxx17/math.h" 1 3
# 1 "/bin/../include/c++/v1/math.h" 1 3
# 294 "/bin/../include/c++/v1/math.h" 3
# 1 "/bin/../include/c++/v1/__config" 1 3
# 13 "/bin/../include/c++/v1/__config" 3
# 1 "/bin/../include/c++/v1/__config_site" 1 3
# 44 "/bin/../include/c++/v1/__config_site" 3
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wmacro-redefined"
# 107 "/bin/../include/c++/v1/__config_site" 3
#pragma clang diagnostic pop
# 14 "/bin/../include/c++/v1/__config" 2 3
# 17 "/bin/../include/c++/v1/__config" 3
# 295 "/bin/../include/c++/v1/math.h" 2 3
# 298 "/bin/../include/c++/v1/math.h" 3
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 1 3 4
# 27 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/libc-header-start.h" 1 3 4
# 28 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
extern "C" {
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types.h" 1 3 4
# 27 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wordsize.h" 1 3 4
# 28 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types.h" 2 3 4
typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;
typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;
typedef long int __quad_t;
typedef unsigned long int __u_quad_t;
typedef long int __intmax_t;
typedef unsigned long int __uintmax_t;
# 130 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/typesizes.h" 1 3 4
# 131 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types.h" 2 3 4
typedef unsigned long int __dev_t;
typedef unsigned int __uid_t;
typedef unsigned int __gid_t;
typedef unsigned long int __ino_t;
typedef unsigned long int __ino64_t;
typedef unsigned int __mode_t;
typedef unsigned long int __nlink_t;
typedef long int __off_t;
typedef long int __off64_t;
typedef int __pid_t;
typedef struct { int __val[2]; } __fsid_t;
typedef long int __clock_t;
typedef unsigned long int __rlim_t;
typedef unsigned long int __rlim64_t;
typedef unsigned int __id_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef int __daddr_t;
typedef int __key_t;
typedef int __clockid_t;
typedef void * __timer_t;
typedef long int __blksize_t;
typedef long int __blkcnt_t;
typedef long int __blkcnt64_t;
typedef unsigned long int __fsblkcnt_t;
typedef unsigned long int __fsblkcnt64_t;
typedef unsigned long int __fsfilcnt_t;
typedef unsigned long int __fsfilcnt64_t;
typedef long int __fsword_t;
typedef long int __ssize_t;
typedef long int __syscall_slong_t;
typedef unsigned long int __syscall_ulong_t;
typedef __off64_t __loff_t;
typedef char *__caddr_t;
typedef long int __intptr_t;
typedef unsigned int __socklen_t;
typedef int __sig_atomic_t;
# 38 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/math-vector.h" 1 3 4
# 25 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/math-vector.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/libm-simd-decl-stubs.h" 1 3 4
# 26 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/math-vector.h" 2 3 4
# 41 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn.h" 1 3 4
# 145 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn.h" 3 4
typedef long double _Float128;
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn-common.h" 1 3 4
# 24 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn-common.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/long-double.h" 1 3 4
# 25 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn-common.h" 2 3 4
# 207 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn-common.h" 3 4
typedef float _Float32;
# 244 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn-common.h" 3 4
typedef double _Float64;
# 261 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn-common.h" 3 4
typedef double _Float32x;
# 278 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn-common.h" 3 4
typedef long double _Float64x;
# 151 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/floatn.h" 2 3 4
# 44 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 138 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/flt-eval-method.h" 1 3 4
# 139 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 149 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
typedef float float_t;
typedef double double_t;
# 190 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/fp-logb.h" 1 3 4
# 191 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 233 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/fp-fast.h" 1 3 4
# 234 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
enum
{
FP_INT_UPWARD =
0,
FP_INT_DOWNWARD =
1,
FP_INT_TOWARDZERO =
2,
FP_INT_TONEARESTFROMZERO =
3,
FP_INT_TONEAREST =
4,
};
# 289 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls-helper-functions.h" 1 3 4
# 21 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls-helper-functions.h" 3 4
extern int __fpclassify (double __value) throw ()
__attribute__ ((__const__));
extern int __signbit (double __value) throw ()
__attribute__ ((__const__));
extern int __isinf (double __value) throw () __attribute__ ((__const__));
extern int __finite (double __value) throw () __attribute__ ((__const__));
extern int __isnan (double __value) throw () __attribute__ ((__const__));
extern int __iseqsig (double __x, double __y) throw ();
extern int __issignaling (double __value) throw ()
__attribute__ ((__const__));
# 290 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 1 3 4
# 53 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern double acos (double __x) throw (); extern double __acos (double __x) throw ();
extern double asin (double __x) throw (); extern double __asin (double __x) throw ();
extern double atan (double __x) throw (); extern double __atan (double __x) throw ();
extern double atan2 (double __y, double __x) throw (); extern double __atan2 (double __y, double __x) throw ();
extern double cos (double __x) throw (); extern double __cos (double __x) throw ();
extern double sin (double __x) throw (); extern double __sin (double __x) throw ();
extern double tan (double __x) throw (); extern double __tan (double __x) throw ();
extern double cosh (double __x) throw (); extern double __cosh (double __x) throw ();
extern double sinh (double __x) throw (); extern double __sinh (double __x) throw ();
extern double tanh (double __x) throw (); extern double __tanh (double __x) throw ();
extern void sincos (double __x, double *__sinx, double *__cosx) throw (); extern void __sincos (double __x, double *__sinx, double *__cosx) throw ();
extern double acosh (double __x) throw (); extern double __acosh (double __x) throw ();
extern double asinh (double __x) throw (); extern double __asinh (double __x) throw ();
extern double atanh (double __x) throw (); extern double __atanh (double __x) throw ();
extern double exp (double __x) throw (); extern double __exp (double __x) throw ();
extern double frexp (double __x, int *__exponent) throw (); extern double __frexp (double __x, int *__exponent) throw ();
extern double ldexp (double __x, int __exponent) throw (); extern double __ldexp (double __x, int __exponent) throw ();
extern double log (double __x) throw (); extern double __log (double __x) throw ();
extern double log10 (double __x) throw (); extern double __log10 (double __x) throw ();
extern double modf (double __x, double *__iptr) throw (); extern double __modf (double __x, double *__iptr) throw () __attribute__ ((__nonnull__ (2)));
extern double exp10 (double __x) throw (); extern double __exp10 (double __x) throw ();
extern double expm1 (double __x) throw (); extern double __expm1 (double __x) throw ();
extern double log1p (double __x) throw (); extern double __log1p (double __x) throw ();
extern double logb (double __x) throw (); extern double __logb (double __x) throw ();
extern double exp2 (double __x) throw (); extern double __exp2 (double __x) throw ();
extern double log2 (double __x) throw (); extern double __log2 (double __x) throw ();
extern double pow (double __x, double __y) throw (); extern double __pow (double __x, double __y) throw ();
extern double sqrt (double __x) throw (); extern double __sqrt (double __x) throw ();
extern double hypot (double __x, double __y) throw (); extern double __hypot (double __x, double __y) throw ();
extern double cbrt (double __x) throw (); extern double __cbrt (double __x) throw ();
extern double ceil (double __x) throw () __attribute__ ((__const__)); extern double __ceil (double __x) throw () __attribute__ ((__const__));
extern double fabs (double __x) throw () __attribute__ ((__const__)); extern double __fabs (double __x) throw () __attribute__ ((__const__));
extern double floor (double __x) throw () __attribute__ ((__const__)); extern double __floor (double __x) throw () __attribute__ ((__const__));
extern double fmod (double __x, double __y) throw (); extern double __fmod (double __x, double __y) throw ();
# 182 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern int finite (double __value) throw () __attribute__ ((__const__));
extern double drem (double __x, double __y) throw (); extern double __drem (double __x, double __y) throw ();
extern double significand (double __x) throw (); extern double __significand (double __x) throw ();
extern double copysign (double __x, double __y) throw () __attribute__ ((__const__)); extern double __copysign (double __x, double __y) throw () __attribute__ ((__const__));
extern double nan (const char *__tagb) throw () __attribute__ ((__const__)); extern double __nan (const char *__tagb) throw () __attribute__ ((__const__));
# 217 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern double j0 (double) throw (); extern double __j0 (double) throw ();
extern double j1 (double) throw (); extern double __j1 (double) throw ();
extern double jn (int, double) throw (); extern double __jn (int, double) throw ();
extern double y0 (double) throw (); extern double __y0 (double) throw ();
extern double y1 (double) throw (); extern double __y1 (double) throw ();
extern double yn (int, double) throw (); extern double __yn (int, double) throw ();
extern double erf (double) throw (); extern double __erf (double) throw ();
extern double erfc (double) throw (); extern double __erfc (double) throw ();
extern double lgamma (double) throw (); extern double __lgamma (double) throw ();
extern double tgamma (double) throw (); extern double __tgamma (double) throw ();
extern double gamma (double) throw (); extern double __gamma (double) throw ();
extern double lgamma_r (double, int *__signgamp) throw (); extern double __lgamma_r (double, int *__signgamp) throw ();
extern double rint (double __x) throw (); extern double __rint (double __x) throw ();
extern double nextafter (double __x, double __y) throw (); extern double __nextafter (double __x, double __y) throw ();
extern double nexttoward (double __x, long double __y) throw (); extern double __nexttoward (double __x, long double __y) throw ();
extern double nextdown (double __x) throw (); extern double __nextdown (double __x) throw ();
extern double nextup (double __x) throw (); extern double __nextup (double __x) throw ();
extern double remainder (double __x, double __y) throw (); extern double __remainder (double __x, double __y) throw ();
extern double scalbn (double __x, int __n) throw (); extern double __scalbn (double __x, int __n) throw ();
extern int ilogb (double __x) throw (); extern int __ilogb (double __x) throw ();
extern long int llogb (double __x) throw (); extern long int __llogb (double __x) throw ();
extern double scalbln (double __x, long int __n) throw (); extern double __scalbln (double __x, long int __n) throw ();
extern double nearbyint (double __x) throw (); extern double __nearbyint (double __x) throw ();
extern double round (double __x) throw () __attribute__ ((__const__)); extern double __round (double __x) throw () __attribute__ ((__const__));
extern double trunc (double __x) throw () __attribute__ ((__const__)); extern double __trunc (double __x) throw () __attribute__ ((__const__));
extern double remquo (double __x, double __y, int *__quo) throw (); extern double __remquo (double __x, double __y, int *__quo) throw ();
extern long int lrint (double __x) throw (); extern long int __lrint (double __x) throw ();
__extension__
extern long long int llrint (double __x) throw (); extern long long int __llrint (double __x) throw ();
extern long int lround (double __x) throw (); extern long int __lround (double __x) throw ();
__extension__
extern long long int llround (double __x) throw (); extern long long int __llround (double __x) throw ();
extern double fdim (double __x, double __y) throw (); extern double __fdim (double __x, double __y) throw ();
extern double fmax (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmax (double __x, double __y) throw () __attribute__ ((__const__));
extern double fmin (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmin (double __x, double __y) throw () __attribute__ ((__const__));
extern double fma (double __x, double __y, double __z) throw (); extern double __fma (double __x, double __y, double __z) throw ();
extern double roundeven (double __x) throw () __attribute__ ((__const__)); extern double __roundeven (double __x) throw () __attribute__ ((__const__));
extern __intmax_t fromfp (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfp (double __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfp (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfp (double __x, int __round, unsigned int __width) throw ();
extern __intmax_t fromfpx (double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpx (double __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpx (double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpx (double __x, int __round, unsigned int __width) throw ();
extern double fmaxmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fmaxmag (double __x, double __y) throw () __attribute__ ((__const__));
extern double fminmag (double __x, double __y) throw () __attribute__ ((__const__)); extern double __fminmag (double __x, double __y) throw () __attribute__ ((__const__));
extern int totalorder (double __x, double __y) throw ()
__attribute__ ((__const__));
extern int totalordermag (double __x, double __y) throw ()
__attribute__ ((__const__));
extern int canonicalize (double *__cx, const double *__x) throw ();
extern double getpayload (const double *__x) throw (); extern double __getpayload (const double *__x) throw ();
extern int setpayload (double *__x, double __payload) throw ();
extern int setpayloadsig (double *__x, double __payload) throw ();
extern double scalb (double __x, double __n) throw (); extern double __scalb (double __x, double __n) throw ();
# 291 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 306 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls-helper-functions.h" 1 3 4
# 21 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls-helper-functions.h" 3 4
extern int __fpclassifyf (float __value) throw ()
__attribute__ ((__const__));
extern int __signbitf (float __value) throw ()
__attribute__ ((__const__));
extern int __isinff (float __value) throw () __attribute__ ((__const__));
extern int __finitef (float __value) throw () __attribute__ ((__const__));
extern int __isnanf (float __value) throw () __attribute__ ((__const__));
extern int __iseqsigf (float __x, float __y) throw ();
extern int __issignalingf (float __value) throw ()
__attribute__ ((__const__));
# 307 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 1 3 4
# 53 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern float acosf (float __x) throw (); extern float __acosf (float __x) throw ();
extern float asinf (float __x) throw (); extern float __asinf (float __x) throw ();
extern float atanf (float __x) throw (); extern float __atanf (float __x) throw ();
extern float atan2f (float __y, float __x) throw (); extern float __atan2f (float __y, float __x) throw ();
extern float cosf (float __x) throw (); extern float __cosf (float __x) throw ();
extern float sinf (float __x) throw (); extern float __sinf (float __x) throw ();
extern float tanf (float __x) throw (); extern float __tanf (float __x) throw ();
extern float coshf (float __x) throw (); extern float __coshf (float __x) throw ();
extern float sinhf (float __x) throw (); extern float __sinhf (float __x) throw ();
extern float tanhf (float __x) throw (); extern float __tanhf (float __x) throw ();
extern void sincosf (float __x, float *__sinx, float *__cosx) throw (); extern void __sincosf (float __x, float *__sinx, float *__cosx) throw ();
extern float acoshf (float __x) throw (); extern float __acoshf (float __x) throw ();
extern float asinhf (float __x) throw (); extern float __asinhf (float __x) throw ();
extern float atanhf (float __x) throw (); extern float __atanhf (float __x) throw ();
extern float expf (float __x) throw (); extern float __expf (float __x) throw ();
extern float frexpf (float __x, int *__exponent) throw (); extern float __frexpf (float __x, int *__exponent) throw ();
extern float ldexpf (float __x, int __exponent) throw (); extern float __ldexpf (float __x, int __exponent) throw ();
extern float logf (float __x) throw (); extern float __logf (float __x) throw ();
extern float log10f (float __x) throw (); extern float __log10f (float __x) throw ();
extern float modff (float __x, float *__iptr) throw (); extern float __modff (float __x, float *__iptr) throw () __attribute__ ((__nonnull__ (2)));
extern float exp10f (float __x) throw (); extern float __exp10f (float __x) throw ();
extern float expm1f (float __x) throw (); extern float __expm1f (float __x) throw ();
extern float log1pf (float __x) throw (); extern float __log1pf (float __x) throw ();
extern float logbf (float __x) throw (); extern float __logbf (float __x) throw ();
extern float exp2f (float __x) throw (); extern float __exp2f (float __x) throw ();
extern float log2f (float __x) throw (); extern float __log2f (float __x) throw ();
extern float powf (float __x, float __y) throw (); extern float __powf (float __x, float __y) throw ();
extern float sqrtf (float __x) throw (); extern float __sqrtf (float __x) throw ();
extern float hypotf (float __x, float __y) throw (); extern float __hypotf (float __x, float __y) throw ();
extern float cbrtf (float __x) throw (); extern float __cbrtf (float __x) throw ();
extern float ceilf (float __x) throw () __attribute__ ((__const__)); extern float __ceilf (float __x) throw () __attribute__ ((__const__));
extern float fabsf (float __x) throw () __attribute__ ((__const__)); extern float __fabsf (float __x) throw () __attribute__ ((__const__));
extern float floorf (float __x) throw () __attribute__ ((__const__)); extern float __floorf (float __x) throw () __attribute__ ((__const__));
extern float fmodf (float __x, float __y) throw (); extern float __fmodf (float __x, float __y) throw ();
# 177 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern int isinff (float __value) throw () __attribute__ ((__const__));
extern int finitef (float __value) throw () __attribute__ ((__const__));
extern float dremf (float __x, float __y) throw (); extern float __dremf (float __x, float __y) throw ();
extern float significandf (float __x) throw (); extern float __significandf (float __x) throw ();
extern float copysignf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) throw () __attribute__ ((__const__));
extern float nanf (const char *__tagb) throw () __attribute__ ((__const__)); extern float __nanf (const char *__tagb) throw () __attribute__ ((__const__));
# 211 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern int isnanf (float __value) throw () __attribute__ ((__const__));
extern float j0f (float) throw (); extern float __j0f (float) throw ();
extern float j1f (float) throw (); extern float __j1f (float) throw ();
extern float jnf (int, float) throw (); extern float __jnf (int, float) throw ();
extern float y0f (float) throw (); extern float __y0f (float) throw ();
extern float y1f (float) throw (); extern float __y1f (float) throw ();
extern float ynf (int, float) throw (); extern float __ynf (int, float) throw ();
extern float erff (float) throw (); extern float __erff (float) throw ();
extern float erfcf (float) throw (); extern float __erfcf (float) throw ();
extern float lgammaf (float) throw (); extern float __lgammaf (float) throw ();
extern float tgammaf (float) throw (); extern float __tgammaf (float) throw ();
extern float gammaf (float) throw (); extern float __gammaf (float) throw ();
extern float lgammaf_r (float, int *__signgamp) throw (); extern float __lgammaf_r (float, int *__signgamp) throw ();
extern float rintf (float __x) throw (); extern float __rintf (float __x) throw ();
extern float nextafterf (float __x, float __y) throw (); extern float __nextafterf (float __x, float __y) throw ();
extern float nexttowardf (float __x, long double __y) throw (); extern float __nexttowardf (float __x, long double __y) throw ();
extern float nextdownf (float __x) throw (); extern float __nextdownf (float __x) throw ();
extern float nextupf (float __x) throw (); extern float __nextupf (float __x) throw ();
extern float remainderf (float __x, float __y) throw (); extern float __remainderf (float __x, float __y) throw ();
extern float scalbnf (float __x, int __n) throw (); extern float __scalbnf (float __x, int __n) throw ();
extern int ilogbf (float __x) throw (); extern int __ilogbf (float __x) throw ();
extern long int llogbf (float __x) throw (); extern long int __llogbf (float __x) throw ();
extern float scalblnf (float __x, long int __n) throw (); extern float __scalblnf (float __x, long int __n) throw ();
extern float nearbyintf (float __x) throw (); extern float __nearbyintf (float __x) throw ();
extern float roundf (float __x) throw () __attribute__ ((__const__)); extern float __roundf (float __x) throw () __attribute__ ((__const__));
extern float truncf (float __x) throw () __attribute__ ((__const__)); extern float __truncf (float __x) throw () __attribute__ ((__const__));
extern float remquof (float __x, float __y, int *__quo) throw (); extern float __remquof (float __x, float __y, int *__quo) throw ();
extern long int lrintf (float __x) throw (); extern long int __lrintf (float __x) throw ();
__extension__
extern long long int llrintf (float __x) throw (); extern long long int __llrintf (float __x) throw ();
extern long int lroundf (float __x) throw (); extern long int __lroundf (float __x) throw ();
__extension__
extern long long int llroundf (float __x) throw (); extern long long int __llroundf (float __x) throw ();
extern float fdimf (float __x, float __y) throw (); extern float __fdimf (float __x, float __y) throw ();
extern float fmaxf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxf (float __x, float __y) throw () __attribute__ ((__const__));
extern float fminf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminf (float __x, float __y) throw () __attribute__ ((__const__));
extern float fmaf (float __x, float __y, float __z) throw (); extern float __fmaf (float __x, float __y, float __z) throw ();
extern float roundevenf (float __x) throw () __attribute__ ((__const__)); extern float __roundevenf (float __x) throw () __attribute__ ((__const__));
extern __intmax_t fromfpf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf (float __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf (float __x, int __round, unsigned int __width) throw ();
extern __intmax_t fromfpxf (float __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf (float __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpxf (float __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf (float __x, int __round, unsigned int __width) throw ();
extern float fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fmaxmagf (float __x, float __y) throw () __attribute__ ((__const__));
extern float fminmagf (float __x, float __y) throw () __attribute__ ((__const__)); extern float __fminmagf (float __x, float __y) throw () __attribute__ ((__const__));
extern int totalorderf (float __x, float __y) throw ()
__attribute__ ((__const__));
extern int totalordermagf (float __x, float __y) throw ()
__attribute__ ((__const__));
extern int canonicalizef (float *__cx, const float *__x) throw ();
extern float getpayloadf (const float *__x) throw (); extern float __getpayloadf (const float *__x) throw ();
extern int setpayloadf (float *__x, float __payload) throw ();
extern int setpayloadsigf (float *__x, float __payload) throw ();
extern float scalbf (float __x, float __n) throw (); extern float __scalbf (float __x, float __n) throw ();
# 308 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 349 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls-helper-functions.h" 1 3 4
# 21 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls-helper-functions.h" 3 4
extern int __fpclassifyl (long double __value) throw ()
__attribute__ ((__const__));
extern int __signbitl (long double __value) throw ()
__attribute__ ((__const__));
extern int __isinfl (long double __value) throw () __attribute__ ((__const__));
extern int __finitel (long double __value) throw () __attribute__ ((__const__));
extern int __isnanl (long double __value) throw () __attribute__ ((__const__));
extern int __iseqsigl (long double __x, long double __y) throw ();
extern int __issignalingl (long double __value) throw ()
__attribute__ ((__const__));
# 350 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 1 3 4
# 53 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern long double acosl (long double __x) throw (); extern long double __acosl (long double __x) throw ();
extern long double asinl (long double __x) throw (); extern long double __asinl (long double __x) throw ();
extern long double atanl (long double __x) throw (); extern long double __atanl (long double __x) throw ();
extern long double atan2l (long double __y, long double __x) throw (); extern long double __atan2l (long double __y, long double __x) throw ();
extern long double cosl (long double __x) throw (); extern long double __cosl (long double __x) throw ();
extern long double sinl (long double __x) throw (); extern long double __sinl (long double __x) throw ();
extern long double tanl (long double __x) throw (); extern long double __tanl (long double __x) throw ();
extern long double coshl (long double __x) throw (); extern long double __coshl (long double __x) throw ();
extern long double sinhl (long double __x) throw (); extern long double __sinhl (long double __x) throw ();
extern long double tanhl (long double __x) throw (); extern long double __tanhl (long double __x) throw ();
extern void sincosl (long double __x, long double *__sinx, long double *__cosx) throw (); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) throw ();
extern long double acoshl (long double __x) throw (); extern long double __acoshl (long double __x) throw ();
extern long double asinhl (long double __x) throw (); extern long double __asinhl (long double __x) throw ();
extern long double atanhl (long double __x) throw (); extern long double __atanhl (long double __x) throw ();
extern long double expl (long double __x) throw (); extern long double __expl (long double __x) throw ();
extern long double frexpl (long double __x, int *__exponent) throw (); extern long double __frexpl (long double __x, int *__exponent) throw ();
extern long double ldexpl (long double __x, int __exponent) throw (); extern long double __ldexpl (long double __x, int __exponent) throw ();
extern long double logl (long double __x) throw (); extern long double __logl (long double __x) throw ();
extern long double log10l (long double __x) throw (); extern long double __log10l (long double __x) throw ();
extern long double modfl (long double __x, long double *__iptr) throw (); extern long double __modfl (long double __x, long double *__iptr) throw () __attribute__ ((__nonnull__ (2)));
extern long double exp10l (long double __x) throw (); extern long double __exp10l (long double __x) throw ();
extern long double expm1l (long double __x) throw (); extern long double __expm1l (long double __x) throw ();
extern long double log1pl (long double __x) throw (); extern long double __log1pl (long double __x) throw ();
extern long double logbl (long double __x) throw (); extern long double __logbl (long double __x) throw ();
extern long double exp2l (long double __x) throw (); extern long double __exp2l (long double __x) throw ();
extern long double log2l (long double __x) throw (); extern long double __log2l (long double __x) throw ();
extern long double powl (long double __x, long double __y) throw (); extern long double __powl (long double __x, long double __y) throw ();
extern long double sqrtl (long double __x) throw (); extern long double __sqrtl (long double __x) throw ();
extern long double hypotl (long double __x, long double __y) throw (); extern long double __hypotl (long double __x, long double __y) throw ();
extern long double cbrtl (long double __x) throw (); extern long double __cbrtl (long double __x) throw ();
extern long double ceill (long double __x) throw () __attribute__ ((__const__)); extern long double __ceill (long double __x) throw () __attribute__ ((__const__));
extern long double fabsl (long double __x) throw () __attribute__ ((__const__)); extern long double __fabsl (long double __x) throw () __attribute__ ((__const__));
extern long double floorl (long double __x) throw () __attribute__ ((__const__)); extern long double __floorl (long double __x) throw () __attribute__ ((__const__));
extern long double fmodl (long double __x, long double __y) throw (); extern long double __fmodl (long double __x, long double __y) throw ();
# 177 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern int isinfl (long double __value) throw () __attribute__ ((__const__));
extern int finitel (long double __value) throw () __attribute__ ((__const__));
extern long double dreml (long double __x, long double __y) throw (); extern long double __dreml (long double __x, long double __y) throw ();
extern long double significandl (long double __x) throw (); extern long double __significandl (long double __x) throw ();
extern long double copysignl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) throw () __attribute__ ((__const__));
extern long double nanl (const char *__tagb) throw () __attribute__ ((__const__)); extern long double __nanl (const char *__tagb) throw () __attribute__ ((__const__));
# 211 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern int isnanl (long double __value) throw () __attribute__ ((__const__));
extern long double j0l (long double) throw (); extern long double __j0l (long double) throw ();
extern long double j1l (long double) throw (); extern long double __j1l (long double) throw ();
extern long double jnl (int, long double) throw (); extern long double __jnl (int, long double) throw ();
extern long double y0l (long double) throw (); extern long double __y0l (long double) throw ();
extern long double y1l (long double) throw (); extern long double __y1l (long double) throw ();
extern long double ynl (int, long double) throw (); extern long double __ynl (int, long double) throw ();
extern long double erfl (long double) throw (); extern long double __erfl (long double) throw ();
extern long double erfcl (long double) throw (); extern long double __erfcl (long double) throw ();
extern long double lgammal (long double) throw (); extern long double __lgammal (long double) throw ();
extern long double tgammal (long double) throw (); extern long double __tgammal (long double) throw ();
extern long double gammal (long double) throw (); extern long double __gammal (long double) throw ();
extern long double lgammal_r (long double, int *__signgamp) throw (); extern long double __lgammal_r (long double, int *__signgamp) throw ();
extern long double rintl (long double __x) throw (); extern long double __rintl (long double __x) throw ();
extern long double nextafterl (long double __x, long double __y) throw (); extern long double __nextafterl (long double __x, long double __y) throw ();
extern long double nexttowardl (long double __x, long double __y) throw (); extern long double __nexttowardl (long double __x, long double __y) throw ();
extern long double nextdownl (long double __x) throw (); extern long double __nextdownl (long double __x) throw ();
extern long double nextupl (long double __x) throw (); extern long double __nextupl (long double __x) throw ();
extern long double remainderl (long double __x, long double __y) throw (); extern long double __remainderl (long double __x, long double __y) throw ();
extern long double scalbnl (long double __x, int __n) throw (); extern long double __scalbnl (long double __x, int __n) throw ();
extern int ilogbl (long double __x) throw (); extern int __ilogbl (long double __x) throw ();
extern long int llogbl (long double __x) throw (); extern long int __llogbl (long double __x) throw ();
extern long double scalblnl (long double __x, long int __n) throw (); extern long double __scalblnl (long double __x, long int __n) throw ();
extern long double nearbyintl (long double __x) throw (); extern long double __nearbyintl (long double __x) throw ();
extern long double roundl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundl (long double __x) throw () __attribute__ ((__const__));
extern long double truncl (long double __x) throw () __attribute__ ((__const__)); extern long double __truncl (long double __x) throw () __attribute__ ((__const__));
extern long double remquol (long double __x, long double __y, int *__quo) throw (); extern long double __remquol (long double __x, long double __y, int *__quo) throw ();
extern long int lrintl (long double __x) throw (); extern long int __lrintl (long double __x) throw ();
__extension__
extern long long int llrintl (long double __x) throw (); extern long long int __llrintl (long double __x) throw ();
extern long int lroundl (long double __x) throw (); extern long int __lroundl (long double __x) throw ();
__extension__
extern long long int llroundl (long double __x) throw (); extern long long int __llroundl (long double __x) throw ();
extern long double fdiml (long double __x, long double __y) throw (); extern long double __fdiml (long double __x, long double __y) throw ();
extern long double fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxl (long double __x, long double __y) throw () __attribute__ ((__const__));
extern long double fminl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminl (long double __x, long double __y) throw () __attribute__ ((__const__));
extern long double fmal (long double __x, long double __y, long double __z) throw (); extern long double __fmal (long double __x, long double __y, long double __z) throw ();
extern long double roundevenl (long double __x) throw () __attribute__ ((__const__)); extern long double __roundevenl (long double __x) throw () __attribute__ ((__const__));
extern __intmax_t fromfpl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpl (long double __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpl (long double __x, int __round, unsigned int __width) throw ();
extern __intmax_t fromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxl (long double __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpxl (long double __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxl (long double __x, int __round, unsigned int __width) throw ();
extern long double fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fmaxmagl (long double __x, long double __y) throw () __attribute__ ((__const__));
extern long double fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__)); extern long double __fminmagl (long double __x, long double __y) throw () __attribute__ ((__const__));
extern int totalorderl (long double __x, long double __y) throw ()
__attribute__ ((__const__));
extern int totalordermagl (long double __x, long double __y) throw ()
__attribute__ ((__const__));
extern int canonicalizel (long double *__cx, const long double *__x) throw ();
extern long double getpayloadl (const long double *__x) throw (); extern long double __getpayloadl (const long double *__x) throw ();
extern int setpayloadl (long double *__x, long double __payload) throw ();
extern int setpayloadsigl (long double *__x, long double __payload) throw ();
extern long double scalbl (long double __x, long double __n) throw (); extern long double __scalbl (long double __x, long double __n) throw ();
# 351 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 389 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 1 3 4
# 53 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float32 acosf32 (_Float32 __x) throw (); extern _Float32 __acosf32 (_Float32 __x) throw ();
extern _Float32 asinf32 (_Float32 __x) throw (); extern _Float32 __asinf32 (_Float32 __x) throw ();
extern _Float32 atanf32 (_Float32 __x) throw (); extern _Float32 __atanf32 (_Float32 __x) throw ();
extern _Float32 atan2f32 (_Float32 __y, _Float32 __x) throw (); extern _Float32 __atan2f32 (_Float32 __y, _Float32 __x) throw ();
extern _Float32 cosf32 (_Float32 __x) throw (); extern _Float32 __cosf32 (_Float32 __x) throw ();
extern _Float32 sinf32 (_Float32 __x) throw (); extern _Float32 __sinf32 (_Float32 __x) throw ();
extern _Float32 tanf32 (_Float32 __x) throw (); extern _Float32 __tanf32 (_Float32 __x) throw ();
extern _Float32 coshf32 (_Float32 __x) throw (); extern _Float32 __coshf32 (_Float32 __x) throw ();
extern _Float32 sinhf32 (_Float32 __x) throw (); extern _Float32 __sinhf32 (_Float32 __x) throw ();
extern _Float32 tanhf32 (_Float32 __x) throw (); extern _Float32 __tanhf32 (_Float32 __x) throw ();
extern void sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw (); extern void __sincosf32 (_Float32 __x, _Float32 *__sinx, _Float32 *__cosx) throw ();
extern _Float32 acoshf32 (_Float32 __x) throw (); extern _Float32 __acoshf32 (_Float32 __x) throw ();
extern _Float32 asinhf32 (_Float32 __x) throw (); extern _Float32 __asinhf32 (_Float32 __x) throw ();
extern _Float32 atanhf32 (_Float32 __x) throw (); extern _Float32 __atanhf32 (_Float32 __x) throw ();
extern _Float32 expf32 (_Float32 __x) throw (); extern _Float32 __expf32 (_Float32 __x) throw ();
extern _Float32 frexpf32 (_Float32 __x, int *__exponent) throw (); extern _Float32 __frexpf32 (_Float32 __x, int *__exponent) throw ();
extern _Float32 ldexpf32 (_Float32 __x, int __exponent) throw (); extern _Float32 __ldexpf32 (_Float32 __x, int __exponent) throw ();
extern _Float32 logf32 (_Float32 __x) throw (); extern _Float32 __logf32 (_Float32 __x) throw ();
extern _Float32 log10f32 (_Float32 __x) throw (); extern _Float32 __log10f32 (_Float32 __x) throw ();
extern _Float32 modff32 (_Float32 __x, _Float32 *__iptr) throw (); extern _Float32 __modff32 (_Float32 __x, _Float32 *__iptr) throw () __attribute__ ((__nonnull__ (2)));
extern _Float32 exp10f32 (_Float32 __x) throw (); extern _Float32 __exp10f32 (_Float32 __x) throw ();
extern _Float32 expm1f32 (_Float32 __x) throw (); extern _Float32 __expm1f32 (_Float32 __x) throw ();
extern _Float32 log1pf32 (_Float32 __x) throw (); extern _Float32 __log1pf32 (_Float32 __x) throw ();
extern _Float32 logbf32 (_Float32 __x) throw (); extern _Float32 __logbf32 (_Float32 __x) throw ();
extern _Float32 exp2f32 (_Float32 __x) throw (); extern _Float32 __exp2f32 (_Float32 __x) throw ();
extern _Float32 log2f32 (_Float32 __x) throw (); extern _Float32 __log2f32 (_Float32 __x) throw ();
extern _Float32 powf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __powf32 (_Float32 __x, _Float32 __y) throw ();
extern _Float32 sqrtf32 (_Float32 __x) throw (); extern _Float32 __sqrtf32 (_Float32 __x) throw ();
extern _Float32 hypotf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __hypotf32 (_Float32 __x, _Float32 __y) throw ();
extern _Float32 cbrtf32 (_Float32 __x) throw (); extern _Float32 __cbrtf32 (_Float32 __x) throw ();
extern _Float32 ceilf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __ceilf32 (_Float32 __x) throw () __attribute__ ((__const__));
extern _Float32 fabsf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __fabsf32 (_Float32 __x) throw () __attribute__ ((__const__));
extern _Float32 floorf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __floorf32 (_Float32 __x) throw () __attribute__ ((__const__));
extern _Float32 fmodf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fmodf32 (_Float32 __x, _Float32 __y) throw ();
# 196 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float32 copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __copysignf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__));
extern _Float32 nanf32 (const char *__tagb) throw () __attribute__ ((__const__)); extern _Float32 __nanf32 (const char *__tagb) throw () __attribute__ ((__const__));
# 217 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float32 j0f32 (_Float32) throw (); extern _Float32 __j0f32 (_Float32) throw ();
extern _Float32 j1f32 (_Float32) throw (); extern _Float32 __j1f32 (_Float32) throw ();
extern _Float32 jnf32 (int, _Float32) throw (); extern _Float32 __jnf32 (int, _Float32) throw ();
extern _Float32 y0f32 (_Float32) throw (); extern _Float32 __y0f32 (_Float32) throw ();
extern _Float32 y1f32 (_Float32) throw (); extern _Float32 __y1f32 (_Float32) throw ();
extern _Float32 ynf32 (int, _Float32) throw (); extern _Float32 __ynf32 (int, _Float32) throw ();
extern _Float32 erff32 (_Float32) throw (); extern _Float32 __erff32 (_Float32) throw ();
extern _Float32 erfcf32 (_Float32) throw (); extern _Float32 __erfcf32 (_Float32) throw ();
extern _Float32 lgammaf32 (_Float32) throw (); extern _Float32 __lgammaf32 (_Float32) throw ();
extern _Float32 tgammaf32 (_Float32) throw (); extern _Float32 __tgammaf32 (_Float32) throw ();
# 249 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float32 lgammaf32_r (_Float32, int *__signgamp) throw (); extern _Float32 __lgammaf32_r (_Float32, int *__signgamp) throw ();
extern _Float32 rintf32 (_Float32 __x) throw (); extern _Float32 __rintf32 (_Float32 __x) throw ();
extern _Float32 nextafterf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __nextafterf32 (_Float32 __x, _Float32 __y) throw ();
extern _Float32 nextdownf32 (_Float32 __x) throw (); extern _Float32 __nextdownf32 (_Float32 __x) throw ();
extern _Float32 nextupf32 (_Float32 __x) throw (); extern _Float32 __nextupf32 (_Float32 __x) throw ();
extern _Float32 remainderf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __remainderf32 (_Float32 __x, _Float32 __y) throw ();
extern _Float32 scalbnf32 (_Float32 __x, int __n) throw (); extern _Float32 __scalbnf32 (_Float32 __x, int __n) throw ();
extern int ilogbf32 (_Float32 __x) throw (); extern int __ilogbf32 (_Float32 __x) throw ();
extern long int llogbf32 (_Float32 __x) throw (); extern long int __llogbf32 (_Float32 __x) throw ();
extern _Float32 scalblnf32 (_Float32 __x, long int __n) throw (); extern _Float32 __scalblnf32 (_Float32 __x, long int __n) throw ();
extern _Float32 nearbyintf32 (_Float32 __x) throw (); extern _Float32 __nearbyintf32 (_Float32 __x) throw ();
extern _Float32 roundf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundf32 (_Float32 __x) throw () __attribute__ ((__const__));
extern _Float32 truncf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __truncf32 (_Float32 __x) throw () __attribute__ ((__const__));
extern _Float32 remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw (); extern _Float32 __remquof32 (_Float32 __x, _Float32 __y, int *__quo) throw ();
extern long int lrintf32 (_Float32 __x) throw (); extern long int __lrintf32 (_Float32 __x) throw ();
__extension__
extern long long int llrintf32 (_Float32 __x) throw (); extern long long int __llrintf32 (_Float32 __x) throw ();
extern long int lroundf32 (_Float32 __x) throw (); extern long int __lroundf32 (_Float32 __x) throw ();
__extension__
extern long long int llroundf32 (_Float32 __x) throw (); extern long long int __llroundf32 (_Float32 __x) throw ();
extern _Float32 fdimf32 (_Float32 __x, _Float32 __y) throw (); extern _Float32 __fdimf32 (_Float32 __x, _Float32 __y) throw ();
extern _Float32 fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__));
extern _Float32 fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__));
extern _Float32 fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw (); extern _Float32 __fmaf32 (_Float32 __x, _Float32 __y, _Float32 __z) throw ();
extern _Float32 roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__)); extern _Float32 __roundevenf32 (_Float32 __x) throw () __attribute__ ((__const__));
extern __intmax_t fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32 (_Float32 __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32 (_Float32 __x, int __round, unsigned int __width) throw ();
extern __intmax_t fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32 (_Float32 __x, int __round, unsigned int __width) throw ();
extern _Float32 fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fmaxmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__));
extern _Float32 fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__)); extern _Float32 __fminmagf32 (_Float32 __x, _Float32 __y) throw () __attribute__ ((__const__));
extern int totalorderf32 (_Float32 __x, _Float32 __y) throw ()
__attribute__ ((__const__));
extern int totalordermagf32 (_Float32 __x, _Float32 __y) throw ()
__attribute__ ((__const__));
extern int canonicalizef32 (_Float32 *__cx, const _Float32 *__x) throw ();
extern _Float32 getpayloadf32 (const _Float32 *__x) throw (); extern _Float32 __getpayloadf32 (const _Float32 *__x) throw ();
extern int setpayloadf32 (_Float32 *__x, _Float32 __payload) throw ();
extern int setpayloadsigf32 (_Float32 *__x, _Float32 __payload) throw ();
# 390 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 406 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 1 3 4
# 53 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float64 acosf64 (_Float64 __x) throw (); extern _Float64 __acosf64 (_Float64 __x) throw ();
extern _Float64 asinf64 (_Float64 __x) throw (); extern _Float64 __asinf64 (_Float64 __x) throw ();
extern _Float64 atanf64 (_Float64 __x) throw (); extern _Float64 __atanf64 (_Float64 __x) throw ();
extern _Float64 atan2f64 (_Float64 __y, _Float64 __x) throw (); extern _Float64 __atan2f64 (_Float64 __y, _Float64 __x) throw ();
extern _Float64 cosf64 (_Float64 __x) throw (); extern _Float64 __cosf64 (_Float64 __x) throw ();
extern _Float64 sinf64 (_Float64 __x) throw (); extern _Float64 __sinf64 (_Float64 __x) throw ();
extern _Float64 tanf64 (_Float64 __x) throw (); extern _Float64 __tanf64 (_Float64 __x) throw ();
extern _Float64 coshf64 (_Float64 __x) throw (); extern _Float64 __coshf64 (_Float64 __x) throw ();
extern _Float64 sinhf64 (_Float64 __x) throw (); extern _Float64 __sinhf64 (_Float64 __x) throw ();
extern _Float64 tanhf64 (_Float64 __x) throw (); extern _Float64 __tanhf64 (_Float64 __x) throw ();
extern void sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw (); extern void __sincosf64 (_Float64 __x, _Float64 *__sinx, _Float64 *__cosx) throw ();
extern _Float64 acoshf64 (_Float64 __x) throw (); extern _Float64 __acoshf64 (_Float64 __x) throw ();
extern _Float64 asinhf64 (_Float64 __x) throw (); extern _Float64 __asinhf64 (_Float64 __x) throw ();
extern _Float64 atanhf64 (_Float64 __x) throw (); extern _Float64 __atanhf64 (_Float64 __x) throw ();
extern _Float64 expf64 (_Float64 __x) throw (); extern _Float64 __expf64 (_Float64 __x) throw ();
extern _Float64 frexpf64 (_Float64 __x, int *__exponent) throw (); extern _Float64 __frexpf64 (_Float64 __x, int *__exponent) throw ();
extern _Float64 ldexpf64 (_Float64 __x, int __exponent) throw (); extern _Float64 __ldexpf64 (_Float64 __x, int __exponent) throw ();
extern _Float64 logf64 (_Float64 __x) throw (); extern _Float64 __logf64 (_Float64 __x) throw ();
extern _Float64 log10f64 (_Float64 __x) throw (); extern _Float64 __log10f64 (_Float64 __x) throw ();
extern _Float64 modff64 (_Float64 __x, _Float64 *__iptr) throw (); extern _Float64 __modff64 (_Float64 __x, _Float64 *__iptr) throw () __attribute__ ((__nonnull__ (2)));
extern _Float64 exp10f64 (_Float64 __x) throw (); extern _Float64 __exp10f64 (_Float64 __x) throw ();
extern _Float64 expm1f64 (_Float64 __x) throw (); extern _Float64 __expm1f64 (_Float64 __x) throw ();
extern _Float64 log1pf64 (_Float64 __x) throw (); extern _Float64 __log1pf64 (_Float64 __x) throw ();
extern _Float64 logbf64 (_Float64 __x) throw (); extern _Float64 __logbf64 (_Float64 __x) throw ();
extern _Float64 exp2f64 (_Float64 __x) throw (); extern _Float64 __exp2f64 (_Float64 __x) throw ();
extern _Float64 log2f64 (_Float64 __x) throw (); extern _Float64 __log2f64 (_Float64 __x) throw ();
extern _Float64 powf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __powf64 (_Float64 __x, _Float64 __y) throw ();
extern _Float64 sqrtf64 (_Float64 __x) throw (); extern _Float64 __sqrtf64 (_Float64 __x) throw ();
extern _Float64 hypotf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __hypotf64 (_Float64 __x, _Float64 __y) throw ();
extern _Float64 cbrtf64 (_Float64 __x) throw (); extern _Float64 __cbrtf64 (_Float64 __x) throw ();
extern _Float64 ceilf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __ceilf64 (_Float64 __x) throw () __attribute__ ((__const__));
extern _Float64 fabsf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __fabsf64 (_Float64 __x) throw () __attribute__ ((__const__));
extern _Float64 floorf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __floorf64 (_Float64 __x) throw () __attribute__ ((__const__));
extern _Float64 fmodf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fmodf64 (_Float64 __x, _Float64 __y) throw ();
# 196 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float64 copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __copysignf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__));
extern _Float64 nanf64 (const char *__tagb) throw () __attribute__ ((__const__)); extern _Float64 __nanf64 (const char *__tagb) throw () __attribute__ ((__const__));
# 217 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float64 j0f64 (_Float64) throw (); extern _Float64 __j0f64 (_Float64) throw ();
extern _Float64 j1f64 (_Float64) throw (); extern _Float64 __j1f64 (_Float64) throw ();
extern _Float64 jnf64 (int, _Float64) throw (); extern _Float64 __jnf64 (int, _Float64) throw ();
extern _Float64 y0f64 (_Float64) throw (); extern _Float64 __y0f64 (_Float64) throw ();
extern _Float64 y1f64 (_Float64) throw (); extern _Float64 __y1f64 (_Float64) throw ();
extern _Float64 ynf64 (int, _Float64) throw (); extern _Float64 __ynf64 (int, _Float64) throw ();
extern _Float64 erff64 (_Float64) throw (); extern _Float64 __erff64 (_Float64) throw ();
extern _Float64 erfcf64 (_Float64) throw (); extern _Float64 __erfcf64 (_Float64) throw ();
extern _Float64 lgammaf64 (_Float64) throw (); extern _Float64 __lgammaf64 (_Float64) throw ();
extern _Float64 tgammaf64 (_Float64) throw (); extern _Float64 __tgammaf64 (_Float64) throw ();
# 249 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float64 lgammaf64_r (_Float64, int *__signgamp) throw (); extern _Float64 __lgammaf64_r (_Float64, int *__signgamp) throw ();
extern _Float64 rintf64 (_Float64 __x) throw (); extern _Float64 __rintf64 (_Float64 __x) throw ();
extern _Float64 nextafterf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __nextafterf64 (_Float64 __x, _Float64 __y) throw ();
extern _Float64 nextdownf64 (_Float64 __x) throw (); extern _Float64 __nextdownf64 (_Float64 __x) throw ();
extern _Float64 nextupf64 (_Float64 __x) throw (); extern _Float64 __nextupf64 (_Float64 __x) throw ();
extern _Float64 remainderf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __remainderf64 (_Float64 __x, _Float64 __y) throw ();
extern _Float64 scalbnf64 (_Float64 __x, int __n) throw (); extern _Float64 __scalbnf64 (_Float64 __x, int __n) throw ();
extern int ilogbf64 (_Float64 __x) throw (); extern int __ilogbf64 (_Float64 __x) throw ();
extern long int llogbf64 (_Float64 __x) throw (); extern long int __llogbf64 (_Float64 __x) throw ();
extern _Float64 scalblnf64 (_Float64 __x, long int __n) throw (); extern _Float64 __scalblnf64 (_Float64 __x, long int __n) throw ();
extern _Float64 nearbyintf64 (_Float64 __x) throw (); extern _Float64 __nearbyintf64 (_Float64 __x) throw ();
extern _Float64 roundf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundf64 (_Float64 __x) throw () __attribute__ ((__const__));
extern _Float64 truncf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __truncf64 (_Float64 __x) throw () __attribute__ ((__const__));
extern _Float64 remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw (); extern _Float64 __remquof64 (_Float64 __x, _Float64 __y, int *__quo) throw ();
extern long int lrintf64 (_Float64 __x) throw (); extern long int __lrintf64 (_Float64 __x) throw ();
__extension__
extern long long int llrintf64 (_Float64 __x) throw (); extern long long int __llrintf64 (_Float64 __x) throw ();
extern long int lroundf64 (_Float64 __x) throw (); extern long int __lroundf64 (_Float64 __x) throw ();
__extension__
extern long long int llroundf64 (_Float64 __x) throw (); extern long long int __llroundf64 (_Float64 __x) throw ();
extern _Float64 fdimf64 (_Float64 __x, _Float64 __y) throw (); extern _Float64 __fdimf64 (_Float64 __x, _Float64 __y) throw ();
extern _Float64 fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__));
extern _Float64 fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__));
extern _Float64 fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw (); extern _Float64 __fmaf64 (_Float64 __x, _Float64 __y, _Float64 __z) throw ();
extern _Float64 roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__)); extern _Float64 __roundevenf64 (_Float64 __x) throw () __attribute__ ((__const__));
extern __intmax_t fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64 (_Float64 __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64 (_Float64 __x, int __round, unsigned int __width) throw ();
extern __intmax_t fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64 (_Float64 __x, int __round, unsigned int __width) throw ();
extern _Float64 fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fmaxmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__));
extern _Float64 fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__)); extern _Float64 __fminmagf64 (_Float64 __x, _Float64 __y) throw () __attribute__ ((__const__));
extern int totalorderf64 (_Float64 __x, _Float64 __y) throw ()
__attribute__ ((__const__));
extern int totalordermagf64 (_Float64 __x, _Float64 __y) throw ()
__attribute__ ((__const__));
extern int canonicalizef64 (_Float64 *__cx, const _Float64 *__x) throw ();
extern _Float64 getpayloadf64 (const _Float64 *__x) throw (); extern _Float64 __getpayloadf64 (const _Float64 *__x) throw ();
extern int setpayloadf64 (_Float64 *__x, _Float64 __payload) throw ();
extern int setpayloadsigf64 (_Float64 *__x, _Float64 __payload) throw ();
# 407 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 440 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 1 3 4
# 53 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float32x acosf32x (_Float32x __x) throw (); extern _Float32x __acosf32x (_Float32x __x) throw ();
extern _Float32x asinf32x (_Float32x __x) throw (); extern _Float32x __asinf32x (_Float32x __x) throw ();
extern _Float32x atanf32x (_Float32x __x) throw (); extern _Float32x __atanf32x (_Float32x __x) throw ();
extern _Float32x atan2f32x (_Float32x __y, _Float32x __x) throw (); extern _Float32x __atan2f32x (_Float32x __y, _Float32x __x) throw ();
extern _Float32x cosf32x (_Float32x __x) throw (); extern _Float32x __cosf32x (_Float32x __x) throw ();
extern _Float32x sinf32x (_Float32x __x) throw (); extern _Float32x __sinf32x (_Float32x __x) throw ();
extern _Float32x tanf32x (_Float32x __x) throw (); extern _Float32x __tanf32x (_Float32x __x) throw ();
extern _Float32x coshf32x (_Float32x __x) throw (); extern _Float32x __coshf32x (_Float32x __x) throw ();
extern _Float32x sinhf32x (_Float32x __x) throw (); extern _Float32x __sinhf32x (_Float32x __x) throw ();
extern _Float32x tanhf32x (_Float32x __x) throw (); extern _Float32x __tanhf32x (_Float32x __x) throw ();
extern void sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw (); extern void __sincosf32x (_Float32x __x, _Float32x *__sinx, _Float32x *__cosx) throw ();
extern _Float32x acoshf32x (_Float32x __x) throw (); extern _Float32x __acoshf32x (_Float32x __x) throw ();
extern _Float32x asinhf32x (_Float32x __x) throw (); extern _Float32x __asinhf32x (_Float32x __x) throw ();
extern _Float32x atanhf32x (_Float32x __x) throw (); extern _Float32x __atanhf32x (_Float32x __x) throw ();
extern _Float32x expf32x (_Float32x __x) throw (); extern _Float32x __expf32x (_Float32x __x) throw ();
extern _Float32x frexpf32x (_Float32x __x, int *__exponent) throw (); extern _Float32x __frexpf32x (_Float32x __x, int *__exponent) throw ();
extern _Float32x ldexpf32x (_Float32x __x, int __exponent) throw (); extern _Float32x __ldexpf32x (_Float32x __x, int __exponent) throw ();
extern _Float32x logf32x (_Float32x __x) throw (); extern _Float32x __logf32x (_Float32x __x) throw ();
extern _Float32x log10f32x (_Float32x __x) throw (); extern _Float32x __log10f32x (_Float32x __x) throw ();
extern _Float32x modff32x (_Float32x __x, _Float32x *__iptr) throw (); extern _Float32x __modff32x (_Float32x __x, _Float32x *__iptr) throw () __attribute__ ((__nonnull__ (2)));
extern _Float32x exp10f32x (_Float32x __x) throw (); extern _Float32x __exp10f32x (_Float32x __x) throw ();
extern _Float32x expm1f32x (_Float32x __x) throw (); extern _Float32x __expm1f32x (_Float32x __x) throw ();
extern _Float32x log1pf32x (_Float32x __x) throw (); extern _Float32x __log1pf32x (_Float32x __x) throw ();
extern _Float32x logbf32x (_Float32x __x) throw (); extern _Float32x __logbf32x (_Float32x __x) throw ();
extern _Float32x exp2f32x (_Float32x __x) throw (); extern _Float32x __exp2f32x (_Float32x __x) throw ();
extern _Float32x log2f32x (_Float32x __x) throw (); extern _Float32x __log2f32x (_Float32x __x) throw ();
extern _Float32x powf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __powf32x (_Float32x __x, _Float32x __y) throw ();
extern _Float32x sqrtf32x (_Float32x __x) throw (); extern _Float32x __sqrtf32x (_Float32x __x) throw ();
extern _Float32x hypotf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __hypotf32x (_Float32x __x, _Float32x __y) throw ();
extern _Float32x cbrtf32x (_Float32x __x) throw (); extern _Float32x __cbrtf32x (_Float32x __x) throw ();
extern _Float32x ceilf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __ceilf32x (_Float32x __x) throw () __attribute__ ((__const__));
extern _Float32x fabsf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __fabsf32x (_Float32x __x) throw () __attribute__ ((__const__));
extern _Float32x floorf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __floorf32x (_Float32x __x) throw () __attribute__ ((__const__));
extern _Float32x fmodf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fmodf32x (_Float32x __x, _Float32x __y) throw ();
# 196 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float32x copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __copysignf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__));
extern _Float32x nanf32x (const char *__tagb) throw () __attribute__ ((__const__)); extern _Float32x __nanf32x (const char *__tagb) throw () __attribute__ ((__const__));
# 217 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float32x j0f32x (_Float32x) throw (); extern _Float32x __j0f32x (_Float32x) throw ();
extern _Float32x j1f32x (_Float32x) throw (); extern _Float32x __j1f32x (_Float32x) throw ();
extern _Float32x jnf32x (int, _Float32x) throw (); extern _Float32x __jnf32x (int, _Float32x) throw ();
extern _Float32x y0f32x (_Float32x) throw (); extern _Float32x __y0f32x (_Float32x) throw ();
extern _Float32x y1f32x (_Float32x) throw (); extern _Float32x __y1f32x (_Float32x) throw ();
extern _Float32x ynf32x (int, _Float32x) throw (); extern _Float32x __ynf32x (int, _Float32x) throw ();
extern _Float32x erff32x (_Float32x) throw (); extern _Float32x __erff32x (_Float32x) throw ();
extern _Float32x erfcf32x (_Float32x) throw (); extern _Float32x __erfcf32x (_Float32x) throw ();
extern _Float32x lgammaf32x (_Float32x) throw (); extern _Float32x __lgammaf32x (_Float32x) throw ();
extern _Float32x tgammaf32x (_Float32x) throw (); extern _Float32x __tgammaf32x (_Float32x) throw ();
# 249 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float32x lgammaf32x_r (_Float32x, int *__signgamp) throw (); extern _Float32x __lgammaf32x_r (_Float32x, int *__signgamp) throw ();
extern _Float32x rintf32x (_Float32x __x) throw (); extern _Float32x __rintf32x (_Float32x __x) throw ();
extern _Float32x nextafterf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __nextafterf32x (_Float32x __x, _Float32x __y) throw ();
extern _Float32x nextdownf32x (_Float32x __x) throw (); extern _Float32x __nextdownf32x (_Float32x __x) throw ();
extern _Float32x nextupf32x (_Float32x __x) throw (); extern _Float32x __nextupf32x (_Float32x __x) throw ();
extern _Float32x remainderf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __remainderf32x (_Float32x __x, _Float32x __y) throw ();
extern _Float32x scalbnf32x (_Float32x __x, int __n) throw (); extern _Float32x __scalbnf32x (_Float32x __x, int __n) throw ();
extern int ilogbf32x (_Float32x __x) throw (); extern int __ilogbf32x (_Float32x __x) throw ();
extern long int llogbf32x (_Float32x __x) throw (); extern long int __llogbf32x (_Float32x __x) throw ();
extern _Float32x scalblnf32x (_Float32x __x, long int __n) throw (); extern _Float32x __scalblnf32x (_Float32x __x, long int __n) throw ();
extern _Float32x nearbyintf32x (_Float32x __x) throw (); extern _Float32x __nearbyintf32x (_Float32x __x) throw ();
extern _Float32x roundf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundf32x (_Float32x __x) throw () __attribute__ ((__const__));
extern _Float32x truncf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __truncf32x (_Float32x __x) throw () __attribute__ ((__const__));
extern _Float32x remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw (); extern _Float32x __remquof32x (_Float32x __x, _Float32x __y, int *__quo) throw ();
extern long int lrintf32x (_Float32x __x) throw (); extern long int __lrintf32x (_Float32x __x) throw ();
__extension__
extern long long int llrintf32x (_Float32x __x) throw (); extern long long int __llrintf32x (_Float32x __x) throw ();
extern long int lroundf32x (_Float32x __x) throw (); extern long int __lroundf32x (_Float32x __x) throw ();
__extension__
extern long long int llroundf32x (_Float32x __x) throw (); extern long long int __llroundf32x (_Float32x __x) throw ();
extern _Float32x fdimf32x (_Float32x __x, _Float32x __y) throw (); extern _Float32x __fdimf32x (_Float32x __x, _Float32x __y) throw ();
extern _Float32x fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__));
extern _Float32x fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__));
extern _Float32x fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw (); extern _Float32x __fmaf32x (_Float32x __x, _Float32x __y, _Float32x __z) throw ();
extern _Float32x roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__)); extern _Float32x __roundevenf32x (_Float32x __x) throw () __attribute__ ((__const__));
extern __intmax_t fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf32x (_Float32x __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf32x (_Float32x __x, int __round, unsigned int __width) throw ();
extern __intmax_t fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf32x (_Float32x __x, int __round, unsigned int __width) throw ();
extern _Float32x fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fmaxmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__));
extern _Float32x fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__)); extern _Float32x __fminmagf32x (_Float32x __x, _Float32x __y) throw () __attribute__ ((__const__));
extern int totalorderf32x (_Float32x __x, _Float32x __y) throw ()
__attribute__ ((__const__));
extern int totalordermagf32x (_Float32x __x, _Float32x __y) throw ()
__attribute__ ((__const__));
extern int canonicalizef32x (_Float32x *__cx, const _Float32x *__x) throw ();
extern _Float32x getpayloadf32x (const _Float32x *__x) throw (); extern _Float32x __getpayloadf32x (const _Float32x *__x) throw ();
extern int setpayloadf32x (_Float32x *__x, _Float32x __payload) throw ();
extern int setpayloadsigf32x (_Float32x *__x, _Float32x __payload) throw ();
# 441 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 457 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 1 3 4
# 53 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float64x acosf64x (_Float64x __x) throw (); extern _Float64x __acosf64x (_Float64x __x) throw ();
extern _Float64x asinf64x (_Float64x __x) throw (); extern _Float64x __asinf64x (_Float64x __x) throw ();
extern _Float64x atanf64x (_Float64x __x) throw (); extern _Float64x __atanf64x (_Float64x __x) throw ();
extern _Float64x atan2f64x (_Float64x __y, _Float64x __x) throw (); extern _Float64x __atan2f64x (_Float64x __y, _Float64x __x) throw ();
extern _Float64x cosf64x (_Float64x __x) throw (); extern _Float64x __cosf64x (_Float64x __x) throw ();
extern _Float64x sinf64x (_Float64x __x) throw (); extern _Float64x __sinf64x (_Float64x __x) throw ();
extern _Float64x tanf64x (_Float64x __x) throw (); extern _Float64x __tanf64x (_Float64x __x) throw ();
extern _Float64x coshf64x (_Float64x __x) throw (); extern _Float64x __coshf64x (_Float64x __x) throw ();
extern _Float64x sinhf64x (_Float64x __x) throw (); extern _Float64x __sinhf64x (_Float64x __x) throw ();
extern _Float64x tanhf64x (_Float64x __x) throw (); extern _Float64x __tanhf64x (_Float64x __x) throw ();
extern void sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw (); extern void __sincosf64x (_Float64x __x, _Float64x *__sinx, _Float64x *__cosx) throw ();
extern _Float64x acoshf64x (_Float64x __x) throw (); extern _Float64x __acoshf64x (_Float64x __x) throw ();
extern _Float64x asinhf64x (_Float64x __x) throw (); extern _Float64x __asinhf64x (_Float64x __x) throw ();
extern _Float64x atanhf64x (_Float64x __x) throw (); extern _Float64x __atanhf64x (_Float64x __x) throw ();
extern _Float64x expf64x (_Float64x __x) throw (); extern _Float64x __expf64x (_Float64x __x) throw ();
extern _Float64x frexpf64x (_Float64x __x, int *__exponent) throw (); extern _Float64x __frexpf64x (_Float64x __x, int *__exponent) throw ();
extern _Float64x ldexpf64x (_Float64x __x, int __exponent) throw (); extern _Float64x __ldexpf64x (_Float64x __x, int __exponent) throw ();
extern _Float64x logf64x (_Float64x __x) throw (); extern _Float64x __logf64x (_Float64x __x) throw ();
extern _Float64x log10f64x (_Float64x __x) throw (); extern _Float64x __log10f64x (_Float64x __x) throw ();
extern _Float64x modff64x (_Float64x __x, _Float64x *__iptr) throw (); extern _Float64x __modff64x (_Float64x __x, _Float64x *__iptr) throw () __attribute__ ((__nonnull__ (2)));
extern _Float64x exp10f64x (_Float64x __x) throw (); extern _Float64x __exp10f64x (_Float64x __x) throw ();
extern _Float64x expm1f64x (_Float64x __x) throw (); extern _Float64x __expm1f64x (_Float64x __x) throw ();
extern _Float64x log1pf64x (_Float64x __x) throw (); extern _Float64x __log1pf64x (_Float64x __x) throw ();
extern _Float64x logbf64x (_Float64x __x) throw (); extern _Float64x __logbf64x (_Float64x __x) throw ();
extern _Float64x exp2f64x (_Float64x __x) throw (); extern _Float64x __exp2f64x (_Float64x __x) throw ();
extern _Float64x log2f64x (_Float64x __x) throw (); extern _Float64x __log2f64x (_Float64x __x) throw ();
extern _Float64x powf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __powf64x (_Float64x __x, _Float64x __y) throw ();
extern _Float64x sqrtf64x (_Float64x __x) throw (); extern _Float64x __sqrtf64x (_Float64x __x) throw ();
extern _Float64x hypotf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __hypotf64x (_Float64x __x, _Float64x __y) throw ();
extern _Float64x cbrtf64x (_Float64x __x) throw (); extern _Float64x __cbrtf64x (_Float64x __x) throw ();
extern _Float64x ceilf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __ceilf64x (_Float64x __x) throw () __attribute__ ((__const__));
extern _Float64x fabsf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __fabsf64x (_Float64x __x) throw () __attribute__ ((__const__));
extern _Float64x floorf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __floorf64x (_Float64x __x) throw () __attribute__ ((__const__));
extern _Float64x fmodf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fmodf64x (_Float64x __x, _Float64x __y) throw ();
# 196 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float64x copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __copysignf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__));
extern _Float64x nanf64x (const char *__tagb) throw () __attribute__ ((__const__)); extern _Float64x __nanf64x (const char *__tagb) throw () __attribute__ ((__const__));
# 217 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float64x j0f64x (_Float64x) throw (); extern _Float64x __j0f64x (_Float64x) throw ();
extern _Float64x j1f64x (_Float64x) throw (); extern _Float64x __j1f64x (_Float64x) throw ();
extern _Float64x jnf64x (int, _Float64x) throw (); extern _Float64x __jnf64x (int, _Float64x) throw ();
extern _Float64x y0f64x (_Float64x) throw (); extern _Float64x __y0f64x (_Float64x) throw ();
extern _Float64x y1f64x (_Float64x) throw (); extern _Float64x __y1f64x (_Float64x) throw ();
extern _Float64x ynf64x (int, _Float64x) throw (); extern _Float64x __ynf64x (int, _Float64x) throw ();
extern _Float64x erff64x (_Float64x) throw (); extern _Float64x __erff64x (_Float64x) throw ();
extern _Float64x erfcf64x (_Float64x) throw (); extern _Float64x __erfcf64x (_Float64x) throw ();
extern _Float64x lgammaf64x (_Float64x) throw (); extern _Float64x __lgammaf64x (_Float64x) throw ();
extern _Float64x tgammaf64x (_Float64x) throw (); extern _Float64x __tgammaf64x (_Float64x) throw ();
# 249 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/mathcalls.h" 3 4
extern _Float64x lgammaf64x_r (_Float64x, int *__signgamp) throw (); extern _Float64x __lgammaf64x_r (_Float64x, int *__signgamp) throw ();
extern _Float64x rintf64x (_Float64x __x) throw (); extern _Float64x __rintf64x (_Float64x __x) throw ();
extern _Float64x nextafterf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __nextafterf64x (_Float64x __x, _Float64x __y) throw ();
extern _Float64x nextdownf64x (_Float64x __x) throw (); extern _Float64x __nextdownf64x (_Float64x __x) throw ();
extern _Float64x nextupf64x (_Float64x __x) throw (); extern _Float64x __nextupf64x (_Float64x __x) throw ();
extern _Float64x remainderf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __remainderf64x (_Float64x __x, _Float64x __y) throw ();
extern _Float64x scalbnf64x (_Float64x __x, int __n) throw (); extern _Float64x __scalbnf64x (_Float64x __x, int __n) throw ();
extern int ilogbf64x (_Float64x __x) throw (); extern int __ilogbf64x (_Float64x __x) throw ();
extern long int llogbf64x (_Float64x __x) throw (); extern long int __llogbf64x (_Float64x __x) throw ();
extern _Float64x scalblnf64x (_Float64x __x, long int __n) throw (); extern _Float64x __scalblnf64x (_Float64x __x, long int __n) throw ();
extern _Float64x nearbyintf64x (_Float64x __x) throw (); extern _Float64x __nearbyintf64x (_Float64x __x) throw ();
extern _Float64x roundf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundf64x (_Float64x __x) throw () __attribute__ ((__const__));
extern _Float64x truncf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __truncf64x (_Float64x __x) throw () __attribute__ ((__const__));
extern _Float64x remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw (); extern _Float64x __remquof64x (_Float64x __x, _Float64x __y, int *__quo) throw ();
extern long int lrintf64x (_Float64x __x) throw (); extern long int __lrintf64x (_Float64x __x) throw ();
__extension__
extern long long int llrintf64x (_Float64x __x) throw (); extern long long int __llrintf64x (_Float64x __x) throw ();
extern long int lroundf64x (_Float64x __x) throw (); extern long int __lroundf64x (_Float64x __x) throw ();
__extension__
extern long long int llroundf64x (_Float64x __x) throw (); extern long long int __llroundf64x (_Float64x __x) throw ();
extern _Float64x fdimf64x (_Float64x __x, _Float64x __y) throw (); extern _Float64x __fdimf64x (_Float64x __x, _Float64x __y) throw ();
extern _Float64x fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__));
extern _Float64x fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__));
extern _Float64x fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw (); extern _Float64x __fmaf64x (_Float64x __x, _Float64x __y, _Float64x __z) throw ();
extern _Float64x roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__)); extern _Float64x __roundevenf64x (_Float64x __x) throw () __attribute__ ((__const__));
extern __intmax_t fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpf64x (_Float64x __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpf64x (_Float64x __x, int __round, unsigned int __width) throw ();
extern __intmax_t fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __intmax_t __fromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw ();
extern __uintmax_t ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw (); extern __uintmax_t __ufromfpxf64x (_Float64x __x, int __round, unsigned int __width) throw ();
extern _Float64x fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fmaxmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__));
extern _Float64x fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__)); extern _Float64x __fminmagf64x (_Float64x __x, _Float64x __y) throw () __attribute__ ((__const__));
extern int totalorderf64x (_Float64x __x, _Float64x __y) throw ()
__attribute__ ((__const__));
extern int totalordermagf64x (_Float64x __x, _Float64x __y) throw ()
__attribute__ ((__const__));
extern int canonicalizef64x (_Float64x *__cx, const _Float64x *__x) throw ();
extern _Float64x getpayloadf64x (const _Float64x *__x) throw (); extern _Float64x __getpayloadf64x (const _Float64x *__x) throw ();
extern int setpayloadf64x (_Float64x *__x, _Float64x __payload) throw ();
extern int setpayloadsigf64x (_Float64x *__x, _Float64x __payload) throw ();
# 458 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 489 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
extern int signgam;
# 569 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
enum
{
FP_NAN =
0,
FP_INFINITE =
1,
FP_ZERO =
2,
FP_SUBNORMAL =
3,
FP_NORMAL =
4
};
# 684 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/iscanonical.h" 1 3 4
# 23 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/iscanonical.h" 3 4
extern int __iscanonicall (long double __x)
throw () __attribute__ ((__const__));
# 46 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/iscanonical.h" 3 4
extern "C++" {
inline int iscanonical (float __val) { return ((void) (__typeof (__val)) (__val), 1); }
inline int iscanonical (double __val) { return ((void) (__typeof (__val)) (__val), 1); }
inline int iscanonical (long double __val) { return __iscanonicall (__val); }
}
# 685 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 2 3 4
# 696 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
extern "C++" {
inline int issignaling (float __val) { return __issignalingf (__val); }
inline int issignaling (double __val) { return __issignaling (__val); }
inline int
issignaling (long double __val)
{
return __issignalingl (__val);
}
}
# 725 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
extern "C++" {
# 754 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
template <class __T> inline bool
iszero (__T __val)
{
return __val == 0;
}
}
# 1205 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
extern "C++" {
template<typename> struct __iseqsig_type;
template<> struct __iseqsig_type<float>
{
static int __call (float __x, float __y) throw ()
{
return __iseqsigf (__x, __y);
}
};
template<> struct __iseqsig_type<double>
{
static int __call (double __x, double __y) throw ()
{
return __iseqsig (__x, __y);
}
};
template<> struct __iseqsig_type<long double>
{
static int __call (double __x, double __y) throw ()
{
return __iseqsigl (__x, __y);
}
};
# 1246 "third_party/grte/v5_x86/release/usr/grte/v5/include/math.h" 3 4
template<typename _T1, typename _T2>
inline int
iseqsig (_T1 __x, _T2 __y) throw ()
{
typedef decltype (((__x) + (__y) + 0.0f)) _T3;
return __iseqsig_type<_T3>::__call (__x, __y);
}
}
}
# 302 "/bin/../include/c++/v1/math.h" 2 3
extern "C++" {
# 358 "/bin/../include/c++/v1/math.h" 3
# 1 "/bin/../include/c++/v1/__math/abs.h" 1 3
# 13 "/bin/../include/c++/v1/__math/abs.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/enable_if.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/enable_if.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <bool, class _Tp = void>
struct enable_if {};
template <class _Tp>
struct enable_if<true, _Tp> {
typedef _Tp type;
};
template <bool _Bp, class _Tp = void>
using __enable_if_t __attribute__((__nodebug__)) = typename enable_if<_Bp, _Tp>::type;
template <bool _Bp, class _Tp = void>
using enable_if_t = typename enable_if<_Bp, _Tp>::type;
}}
# 14 "/bin/../include/c++/v1/__math/abs.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_integral.h" 1 3
# 13 "/bin/../include/c++/v1/__type_traits/is_integral.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/integral_constant.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/integral_constant.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, _Tp __v>
struct integral_constant {
static constexpr const _Tp value = __v;
typedef _Tp value_type;
typedef integral_constant type;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr operator value_type() const noexcept { return value; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr value_type operator()() const noexcept { return value; }
};
template <class _Tp, _Tp __v>
constexpr const _Tp integral_constant<_Tp, __v>::value;
typedef integral_constant<bool, true> true_type;
typedef integral_constant<bool, false> false_type;
template <bool _Val>
using _BoolConstant __attribute__((__nodebug__)) = integral_constant<bool, _Val>;
template <bool __b>
using bool_constant = integral_constant<bool, __b>;
}}
# 14 "/bin/../include/c++/v1/__type_traits/is_integral.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/remove_cv.h" 1 3
# 13 "/bin/../include/c++/v1/__type_traits/remove_cv.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/remove_const.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/remove_const.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct remove_const {
using type __attribute__((__nodebug__)) = __remove_const(_Tp);
};
template <class _Tp>
using __remove_const_t = __remove_const(_Tp);
# 43 "/bin/../include/c++/v1/__type_traits/remove_const.h" 3
template <class _Tp>
using remove_const_t = __remove_const_t<_Tp>;
}}
# 14 "/bin/../include/c++/v1/__type_traits/remove_cv.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/remove_volatile.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/remove_volatile.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct remove_volatile {
using type __attribute__((__nodebug__)) = __remove_volatile(_Tp);
};
template <class _Tp>
using __remove_volatile_t = __remove_volatile(_Tp);
# 43 "/bin/../include/c++/v1/__type_traits/remove_volatile.h" 3
template <class _Tp>
using remove_volatile_t = __remove_volatile_t<_Tp>;
}}
# 15 "/bin/../include/c++/v1/__type_traits/remove_cv.h" 2 3
# 18 "/bin/../include/c++/v1/__type_traits/remove_cv.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct remove_cv {
using type __attribute__((__nodebug__)) = __remove_cv(_Tp);
};
template <class _Tp>
using __remove_cv_t = __remove_cv(_Tp);
# 41 "/bin/../include/c++/v1/__type_traits/remove_cv.h" 3
template <class _Tp>
using remove_cv_t = __remove_cv_t<_Tp>;
}}
# 15 "/bin/../include/c++/v1/__type_traits/is_integral.h" 2 3
# 18 "/bin/../include/c++/v1/__type_traits/is_integral.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp> struct __libcpp_is_integral { enum { value = 0 }; };
template <> struct __libcpp_is_integral<bool> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<char> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<signed char> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned char> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<wchar_t> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<char8_t> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<char16_t> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<char32_t> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<short> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned short> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<int> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned int> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<long> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned long> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<long long> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<unsigned long long> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<__int128_t> { enum { value = 1 }; };
template <> struct __libcpp_is_integral<__uint128_t> { enum { value = 1 }; };
template <class _Tp>
struct is_integral : _BoolConstant<__is_integral(_Tp)> {};
template <class _Tp>
inline constexpr bool is_integral_v = __is_integral(_Tp);
# 72 "/bin/../include/c++/v1/__type_traits/is_integral.h" 3
}}
# 15 "/bin/../include/c++/v1/__math/abs.h" 2 3
# 18 "/bin/../include/c++/v1/__math/abs.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float fabs(float __x) noexcept { return __builtin_fabsf(__x); }
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double fabs(double __x) noexcept {
return __builtin_fabs(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double fabs(long double __x) noexcept {
return __builtin_fabsl(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double fabs(_A1 __x) noexcept {
return __builtin_fabs((double)__x);
}
}
}}
# 359 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/copysign.h" 1 3
# 14 "/bin/../include/c++/v1/__math/copysign.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_arithmetic.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/is_arithmetic.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_floating_point.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_floating_point.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp> struct __libcpp_is_floating_point : public false_type {};
template <> struct __libcpp_is_floating_point<float> : public true_type {};
template <> struct __libcpp_is_floating_point<double> : public true_type {};
template <> struct __libcpp_is_floating_point<long double> : public true_type {};
template <class _Tp>
struct is_floating_point : public __libcpp_is_floating_point<__remove_cv_t<_Tp> > {};
template <class _Tp>
inline constexpr bool is_floating_point_v = is_floating_point<_Tp>::value;
}}
# 15 "/bin/../include/c++/v1/__type_traits/is_arithmetic.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/is_arithmetic.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_arithmetic
: public integral_constant<bool, is_integral<_Tp>::value || is_floating_point<_Tp>::value> {};
template <class _Tp>
inline constexpr bool is_arithmetic_v = is_arithmetic<_Tp>::value;
}}
# 15 "/bin/../include/c++/v1/__math/copysign.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/promote.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/promote.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_same.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_same.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up>
struct is_same : _BoolConstant<__is_same(_Tp, _Up)> {};
template <class _Tp, class _Up>
inline constexpr bool is_same_v = __is_same(_Tp, _Up);
# 36 "/bin/../include/c++/v1/__type_traits/is_same.h" 3
template <class _Tp, class _Up>
using _IsSame = _BoolConstant<__is_same(_Tp, _Up)>;
template <class _Tp, class _Up>
using _IsNotSame = _BoolConstant<!__is_same(_Tp, _Up)>;
}}
# 15 "/bin/../include/c++/v1/__type_traits/promote.h" 2 3
# 1 "/bin/../include/c++/v1/__utility/declval.h" 1 3
# 16 "/bin/../include/c++/v1/__utility/declval.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
#pragma GCC diagnostic push
# 22 "/bin/../include/c++/v1/__utility/declval.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 22 "/bin/../include/c++/v1/__utility/declval.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <class _Tp>
_Tp&& __declval(int);
template <class _Tp>
_Tp __declval(long);
#pragma GCC diagnostic pop
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) decltype(std::__declval<_Tp>(0)) declval() noexcept {
static_assert(!__is_same(_Tp, _Tp),
"std::declval can only be used in an unevaluated context. "
"It's likely that your current usage is trying to extract a value from the function.");
}
}}
# 16 "/bin/../include/c++/v1/__type_traits/promote.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/promote.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __numeric_type {
static void __test(...);
static float __test(float);
static double __test(char);
static double __test(int);
static double __test(unsigned);
static double __test(long);
static double __test(unsigned long);
static double __test(long long);
static double __test(unsigned long long);
static double __test(__int128_t);
static double __test(__uint128_t);
static double __test(double);
static long double __test(long double);
typedef decltype(__test(std::declval<_Tp>())) type;
static const bool value = _IsNotSame<type, void>::value;
};
template <>
struct __numeric_type<void> {
static const bool value = true;
};
template <class _A1,
class _A2 = void,
class _A3 = void,
bool = __numeric_type<_A1>::value && __numeric_type<_A2>::value && __numeric_type<_A3>::value>
class __promote_imp {
public:
static const bool value = false;
};
template <class _A1, class _A2, class _A3>
class __promote_imp<_A1, _A2, _A3, true> {
private:
typedef typename __promote_imp<_A1>::type __type1;
typedef typename __promote_imp<_A2>::type __type2;
typedef typename __promote_imp<_A3>::type __type3;
public:
typedef decltype(__type1() + __type2() + __type3()) type;
static const bool value = true;
};
template <class _A1, class _A2>
class __promote_imp<_A1, _A2, void, true> {
private:
typedef typename __promote_imp<_A1>::type __type1;
typedef typename __promote_imp<_A2>::type __type2;
public:
typedef decltype(__type1() + __type2()) type;
static const bool value = true;
};
template <class _A1>
class __promote_imp<_A1, void, void, true> {
public:
typedef typename __numeric_type<_A1>::type type;
static const bool value = true;
};
template <class _A1, class _A2 = void, class _A3 = void>
class __promote : public __promote_imp<_A1, _A2, _A3> {};
}}
# 16 "/bin/../include/c++/v1/__math/copysign.h" 2 3
# 1 "third_party/stl/cxx17/limits" 1 3
# 1 "/bin/../include/c++/v1/limits" 1 3
# 105 "/bin/../include/c++/v1/limits" 3
# 1 "/bin/../include/c++/v1/__assert" 1 3
# 13 "/bin/../include/c++/v1/__assert" 3
# 1 "/bin/../include/c++/v1/__assertion_handler" 1 3
# 14 "/bin/../include/c++/v1/__assertion_handler" 3
# 1 "/bin/../include/c++/v1/__verbose_abort" 1 3
# 13 "/bin/../include/c++/v1/__verbose_abort" 3
# 1 "/bin/../include/c++/v1/__availability" 1 3
# 17 "/bin/../include/c++/v1/__availability" 3
# 14 "/bin/../include/c++/v1/__verbose_abort" 2 3
# 18 "/bin/../include/c++/v1/__verbose_abort" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
[[noreturn]] __attribute__((__visibility__("default")))
__attribute__((__format__(__printf__, 1, 2))) void __libcpp_verbose_abort(const char* __format, ...);
# 51 "/bin/../include/c++/v1/__verbose_abort" 3
}}
# 15 "/bin/../include/c++/v1/__assertion_handler" 2 3
# 18 "/bin/../include/c++/v1/__assertion_handler" 3
# 14 "/bin/../include/c++/v1/__assert" 2 3
# 18 "/bin/../include/c++/v1/__assert" 3
# 106 "/bin/../include/c++/v1/limits" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_signed.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/is_signed.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_signed : _BoolConstant<__is_signed(_Tp)> {};
template <class _Tp>
inline constexpr bool is_signed_v = __is_signed(_Tp);
# 57 "/bin/../include/c++/v1/__type_traits/is_signed.h" 3
}}
# 109 "/bin/../include/c++/v1/limits" 2 3
# 113 "/bin/../include/c++/v1/limits" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 117 "/bin/../include/c++/v1/limits" 2 3
# 1 "third_party/stl/cxx17/version" 1 3
# 1 "/bin/../include/c++/v1/version" 1 3
# 253 "/bin/../include/c++/v1/version" 3
# 6 "third_party/stl/cxx17/version" 2 3
# 118 "/bin/../include/c++/v1/limits" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
enum float_round_style {
round_indeterminate = -1,
round_toward_zero = 0,
round_to_nearest = 1,
round_toward_infinity = 2,
round_toward_neg_infinity = 3
};
enum float_denorm_style {
denorm_indeterminate = -1,
denorm_absent = 0,
denorm_present = 1
};
template <class _Tp, bool = is_arithmetic<_Tp>::value>
class __libcpp_numeric_limits {
protected:
typedef _Tp type;
static constexpr const bool is_specialized = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept { return type(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept { return type(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept { return type(); }
static constexpr const int digits = 0;
static constexpr const int digits10 = 0;
static constexpr const int max_digits10 = 0;
static constexpr const bool is_signed = false;
static constexpr const bool is_integer = false;
static constexpr const bool is_exact = false;
static constexpr const int radix = 0;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept { return type(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept { return type(); }
static constexpr const int min_exponent = 0;
static constexpr const int min_exponent10 = 0;
static constexpr const int max_exponent = 0;
static constexpr const int max_exponent10 = 0;
static constexpr const bool has_infinity = false;
static constexpr const bool has_quiet_NaN = false;
static constexpr const bool has_signaling_NaN = false;
static constexpr const float_denorm_style has_denorm = denorm_absent;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept { return type(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept { return type(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept { return type(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept { return type(); }
static constexpr const bool is_iec559 = false;
static constexpr const bool is_bounded = false;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = false;
static constexpr const float_round_style round_style = round_toward_zero;
};
template <class _Tp, int __digits, bool _IsSigned>
struct __libcpp_compute_min {
static constexpr const _Tp value = _Tp(_Tp(1) << __digits);
};
template <class _Tp, int __digits>
struct __libcpp_compute_min<_Tp, __digits, false> {
static constexpr const _Tp value = _Tp(0);
};
template <class _Tp>
class __libcpp_numeric_limits<_Tp, true> {
protected:
typedef _Tp type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = type(-1) < type(0);
static constexpr const int digits = static_cast<int>(sizeof(type) * 8 - is_signed);
static constexpr const int digits10 = digits * 3 / 10;
static constexpr const int max_digits10 = 0;
static constexpr const type __min = __libcpp_compute_min<type, digits, is_signed>::value;
static constexpr const type __max = is_signed ? type(type(~0) ^ __min) : type(~0);
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept { return __min; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept { return __max; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept { return min(); }
static constexpr const bool is_integer = true;
static constexpr const bool is_exact = true;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept { return type(0); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept { return type(0); }
static constexpr const int min_exponent = 0;
static constexpr const int min_exponent10 = 0;
static constexpr const int max_exponent = 0;
static constexpr const int max_exponent10 = 0;
static constexpr const bool has_infinity = false;
static constexpr const bool has_quiet_NaN = false;
static constexpr const bool has_signaling_NaN = false;
static constexpr const float_denorm_style has_denorm = denorm_absent;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept { return type(0); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept { return type(0); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept { return type(0); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept { return type(0); }
static constexpr const bool is_iec559 = false;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = !std::is_signed<_Tp>::value;
static constexpr const bool traps = true;
static constexpr const bool tinyness_before = false;
static constexpr const float_round_style round_style = round_toward_zero;
};
template <>
class __libcpp_numeric_limits<bool, true> {
protected:
typedef bool type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = false;
static constexpr const int digits = 1;
static constexpr const int digits10 = 0;
static constexpr const int max_digits10 = 0;
static constexpr const type __min = false;
static constexpr const type __max = true;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept { return __min; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept { return __max; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept { return min(); }
static constexpr const bool is_integer = true;
static constexpr const bool is_exact = true;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept { return type(0); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept { return type(0); }
static constexpr const int min_exponent = 0;
static constexpr const int min_exponent10 = 0;
static constexpr const int max_exponent = 0;
static constexpr const int max_exponent10 = 0;
static constexpr const bool has_infinity = false;
static constexpr const bool has_quiet_NaN = false;
static constexpr const bool has_signaling_NaN = false;
static constexpr const float_denorm_style has_denorm = denorm_absent;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept { return type(0); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept { return type(0); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept { return type(0); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept { return type(0); }
static constexpr const bool is_iec559 = false;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = false;
static constexpr const float_round_style round_style = round_toward_zero;
};
template <>
class __libcpp_numeric_limits<float, true> {
protected:
typedef float type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = true;
static constexpr const int digits = 24;
static constexpr const int digits10 = 6;
static constexpr const int max_digits10 = 2 + (digits * 30103l) / 100000l;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept { return 1.17549435e-38F; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept { return 3.40282347e+38F; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept { return -max(); }
static constexpr const bool is_integer = false;
static constexpr const bool is_exact = false;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept { return 1.19209290e-7F; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept { return 0.5F; }
static constexpr const int min_exponent = (-125);
static constexpr const int min_exponent10 = (-37);
static constexpr const int max_exponent = 128;
static constexpr const int max_exponent10 = 38;
static constexpr const bool has_infinity = true;
static constexpr const bool has_quiet_NaN = true;
static constexpr const bool has_signaling_NaN = true;
static constexpr const float_denorm_style has_denorm = denorm_present;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept { return __builtin_huge_valf(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept { return __builtin_nanf(""); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept { return __builtin_nansf(""); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept { return 1.40129846e-45F; }
static constexpr const bool is_iec559 = true;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = false;
static constexpr const float_round_style round_style = round_to_nearest;
};
template <>
class __libcpp_numeric_limits<double, true> {
protected:
typedef double type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = true;
static constexpr const int digits = 53;
static constexpr const int digits10 = 15;
static constexpr const int max_digits10 = 2 + (digits * 30103l) / 100000l;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept { return 2.2250738585072014e-308; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept { return 1.7976931348623157e+308; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept { return -max(); }
static constexpr const bool is_integer = false;
static constexpr const bool is_exact = false;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept { return 2.2204460492503131e-16; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept { return 0.5; }
static constexpr const int min_exponent = (-1021);
static constexpr const int min_exponent10 = (-307);
static constexpr const int max_exponent = 1024;
static constexpr const int max_exponent10 = 308;
static constexpr const bool has_infinity = true;
static constexpr const bool has_quiet_NaN = true;
static constexpr const bool has_signaling_NaN = true;
static constexpr const float_denorm_style has_denorm = denorm_present;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept { return __builtin_huge_val(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept { return __builtin_nan(""); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept { return __builtin_nans(""); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept { return 4.9406564584124654e-324; }
static constexpr const bool is_iec559 = true;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = false;
static constexpr const float_round_style round_style = round_to_nearest;
};
template <>
class __libcpp_numeric_limits<long double, true> {
protected:
typedef long double type;
static constexpr const bool is_specialized = true;
static constexpr const bool is_signed = true;
static constexpr const int digits = 64;
static constexpr const int digits10 = 18;
static constexpr const int max_digits10 = 2 + (digits * 30103l) / 100000l;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept { return 3.36210314311209350626e-4932L; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept { return 1.18973149535723176502e+4932L; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept { return -max(); }
static constexpr const bool is_integer = false;
static constexpr const bool is_exact = false;
static constexpr const int radix = 2;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept { return 1.08420217248550443401e-19L; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept { return 0.5L; }
static constexpr const int min_exponent = (-16381);
static constexpr const int min_exponent10 = (-4931);
static constexpr const int max_exponent = 16384;
static constexpr const int max_exponent10 = 4932;
static constexpr const bool has_infinity = true;
static constexpr const bool has_quiet_NaN = true;
static constexpr const bool has_signaling_NaN = true;
static constexpr const float_denorm_style has_denorm = denorm_present;
static constexpr const bool has_denorm_loss = false;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept { return __builtin_huge_vall(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept { return __builtin_nanl(""); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept { return __builtin_nansl(""); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept { return 3.64519953188247460253e-4951L; }
static constexpr const bool is_iec559 = true;
static constexpr const bool is_bounded = true;
static constexpr const bool is_modulo = false;
static constexpr const bool traps = false;
static constexpr const bool tinyness_before = false;
static constexpr const float_round_style round_style = round_to_nearest;
};
template <class _Tp>
class numeric_limits : private __libcpp_numeric_limits<_Tp> {
typedef __libcpp_numeric_limits<_Tp> __base;
typedef typename __base::type type;
public:
static constexpr const bool is_specialized = __base::is_specialized;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type min() noexcept { return __base::min(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type max() noexcept { return __base::max(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type lowest() noexcept { return __base::lowest(); }
static constexpr const int digits = __base::digits;
static constexpr const int digits10 = __base::digits10;
static constexpr const int max_digits10 = __base::max_digits10;
static constexpr const bool is_signed = __base::is_signed;
static constexpr const bool is_integer = __base::is_integer;
static constexpr const bool is_exact = __base::is_exact;
static constexpr const int radix = __base::radix;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type epsilon() noexcept { return __base::epsilon(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type round_error() noexcept { return __base::round_error(); }
static constexpr const int min_exponent = __base::min_exponent;
static constexpr const int min_exponent10 = __base::min_exponent10;
static constexpr const int max_exponent = __base::max_exponent;
static constexpr const int max_exponent10 = __base::max_exponent10;
static constexpr const bool has_infinity = __base::has_infinity;
static constexpr const bool has_quiet_NaN = __base::has_quiet_NaN;
static constexpr const bool has_signaling_NaN = __base::has_signaling_NaN;
#pragma GCC diagnostic push
# 467 "/bin/../include/c++/v1/limits" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 467 "/bin/../include/c++/v1/limits" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
static constexpr const float_denorm_style has_denorm = __base::has_denorm;
static constexpr const bool has_denorm_loss = __base::has_denorm_loss;
#pragma GCC diagnostic pop
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type infinity() noexcept { return __base::infinity(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type quiet_NaN() noexcept { return __base::quiet_NaN(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type signaling_NaN() noexcept { return __base::signaling_NaN(); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr type denorm_min() noexcept { return __base::denorm_min(); }
static constexpr const bool is_iec559 = __base::is_iec559;
static constexpr const bool is_bounded = __base::is_bounded;
static constexpr const bool is_modulo = __base::is_modulo;
static constexpr const bool traps = __base::traps;
static constexpr const bool tinyness_before = __base::tinyness_before;
static constexpr const float_round_style round_style = __base::round_style;
};
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_specialized;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::digits;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::digits10;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::max_digits10;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_signed;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_integer;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_exact;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::radix;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::min_exponent;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::min_exponent10;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::max_exponent;
template <class _Tp>
constexpr const int numeric_limits<_Tp>::max_exponent10;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::has_infinity;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::has_quiet_NaN;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::has_signaling_NaN;
template <class _Tp>
constexpr const float_denorm_style numeric_limits<_Tp>::has_denorm;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::has_denorm_loss;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_iec559;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_bounded;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::is_modulo;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::traps;
template <class _Tp>
constexpr const bool numeric_limits<_Tp>::tinyness_before;
template <class _Tp>
constexpr const float_round_style numeric_limits<_Tp>::round_style;
template <class _Tp>
class numeric_limits<const _Tp> : public numeric_limits<_Tp> {};
template <class _Tp>
class numeric_limits<volatile _Tp> : public numeric_limits<_Tp> {};
template <class _Tp>
class numeric_limits<const volatile _Tp> : public numeric_limits<_Tp> {};
}}
# 7 "third_party/stl/cxx17/limits" 2 3
# 17 "/bin/../include/c++/v1/__math/copysign.h" 2 3
# 20 "/bin/../include/c++/v1/__math/copysign.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float copysign(float __x, float __y) noexcept {
return ::__builtin_copysignf(__x, __y);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double copysign(long double __x, long double __y) noexcept {
return ::__builtin_copysignl(__x, __y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type
copysign(_A1 __x, _A2 __y) noexcept {
return ::__builtin_copysign(__x, __y);
}
}
}}
# 360 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/error_functions.h" 1 3
# 18 "/bin/../include/c++/v1/__math/error_functions.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float erf(float __x) noexcept { return __builtin_erff(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double erf(double __x) noexcept {
return __builtin_erf(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double erf(long double __x) noexcept { return __builtin_erfl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double erf(_A1 __x) noexcept {
return __builtin_erf((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float erfc(float __x) noexcept { return __builtin_erfcf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double erfc(double __x) noexcept {
return __builtin_erfc(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double erfc(long double __x) noexcept { return __builtin_erfcl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double erfc(_A1 __x) noexcept {
return __builtin_erfc((double)__x);
}
}
}}
# 361 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/exponential_functions.h" 1 3
# 21 "/bin/../include/c++/v1/__math/exponential_functions.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float exp(float __x) noexcept { return __builtin_expf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double exp(double __x) noexcept {
return __builtin_exp(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double exp(long double __x) noexcept { return __builtin_expl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double exp(_A1 __x) noexcept {
return __builtin_exp((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float frexp(float __x, int* __e) noexcept { return __builtin_frexpf(__x, __e); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double frexp(double __x, int* __e) noexcept {
return __builtin_frexp(__x, __e);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double frexp(long double __x, int* __e) noexcept {
return __builtin_frexpl(__x, __e);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double frexp(_A1 __x, int* __e) noexcept {
return __builtin_frexp((double)__x, __e);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float ldexp(float __x, int __e) noexcept { return __builtin_ldexpf(__x, __e); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double ldexp(double __x, int __e) noexcept {
return __builtin_ldexp(__x, __e);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double ldexp(long double __x, int __e) noexcept {
return __builtin_ldexpl(__x, __e);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double ldexp(_A1 __x, int __e) noexcept {
return __builtin_ldexp((double)__x, __e);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float exp2(float __x) noexcept { return __builtin_exp2f(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double exp2(double __x) noexcept {
return __builtin_exp2(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double exp2(long double __x) noexcept { return __builtin_exp2l(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double exp2(_A1 __x) noexcept {
return __builtin_exp2((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float expm1(float __x) noexcept { return __builtin_expm1f(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double expm1(double __x) noexcept {
return __builtin_expm1(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double expm1(long double __x) noexcept { return __builtin_expm1l(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double expm1(_A1 __x) noexcept {
return __builtin_expm1((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float scalbln(float __x, long __y) noexcept { return __builtin_scalblnf(__x, __y); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double scalbln(double __x, long __y) noexcept {
return __builtin_scalbln(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double scalbln(long double __x, long __y) noexcept {
return __builtin_scalblnl(__x, __y);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double scalbln(_A1 __x, long __y) noexcept {
return __builtin_scalbln((double)__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float scalbn(float __x, int __y) noexcept { return __builtin_scalbnf(__x, __y); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double scalbn(double __x, int __y) noexcept {
return __builtin_scalbn(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double scalbn(long double __x, int __y) noexcept {
return __builtin_scalbnl(__x, __y);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double scalbn(_A1 __x, int __y) noexcept {
return __builtin_scalbn((double)__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float pow(float __x, float __y) noexcept { return __builtin_powf(__x, __y); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double pow(double __x, double __y) noexcept {
return __builtin_pow(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double pow(long double __x, long double __y) noexcept {
return __builtin_powl(__x, __y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type pow(_A1 __x, _A2 __y) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::pow((__result_type)__x, (__result_type)__y);
}
}
}}
# 362 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/fdim.h" 1 3
# 20 "/bin/../include/c++/v1/__math/fdim.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float fdim(float __x, float __y) noexcept { return __builtin_fdimf(__x, __y); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double fdim(double __x, double __y) noexcept {
return __builtin_fdim(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double fdim(long double __x, long double __y) noexcept {
return __builtin_fdiml(__x, __y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type fdim(_A1 __x, _A2 __y) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::fdim((__result_type)__x, (__result_type)__y);
}
}
}}
# 363 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/fma.h" 1 3
# 20 "/bin/../include/c++/v1/__math/fma.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float fma(float __x, float __y, float __z) noexcept {
return __builtin_fmaf(__x, __y, __z);
}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double fma(double __x, double __y, double __z) noexcept {
return __builtin_fma(__x, __y, __z);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double fma(long double __x, long double __y, long double __z) noexcept {
return __builtin_fmal(__x, __y, __z);
}
template <class _A1,
class _A2,
class _A3,
__enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value && is_arithmetic<_A3>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2, _A3>::type fma(_A1 __x, _A2 __y, _A3 __z) noexcept {
using __result_type = typename __promote<_A1, _A2, _A3>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value &&
_IsSame<_A3, __result_type>::value)),
"");
return __builtin_fma((__result_type)__x, (__result_type)__y, (__result_type)__z);
}
}
}}
# 364 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/gamma.h" 1 3
# 18 "/bin/../include/c++/v1/__math/gamma.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float lgamma(float __x) noexcept { return __builtin_lgammaf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double lgamma(double __x) noexcept {
return __builtin_lgamma(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double lgamma(long double __x) noexcept { return __builtin_lgammal(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double lgamma(_A1 __x) noexcept {
return __builtin_lgamma((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float tgamma(float __x) noexcept { return __builtin_tgammaf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double tgamma(double __x) noexcept {
return __builtin_tgamma(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double tgamma(long double __x) noexcept { return __builtin_tgammal(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double tgamma(_A1 __x) noexcept {
return __builtin_tgamma((double)__x);
}
}
}}
# 365 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/hyperbolic_functions.h" 1 3
# 18 "/bin/../include/c++/v1/__math/hyperbolic_functions.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float cosh(float __x) noexcept { return __builtin_coshf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double cosh(double __x) noexcept {
return __builtin_cosh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double cosh(long double __x) noexcept { return __builtin_coshl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double cosh(_A1 __x) noexcept {
return __builtin_cosh((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float sinh(float __x) noexcept { return __builtin_sinhf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double sinh(double __x) noexcept {
return __builtin_sinh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double sinh(long double __x) noexcept { return __builtin_sinhl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double sinh(_A1 __x) noexcept {
return __builtin_sinh((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float tanh(float __x) noexcept { return __builtin_tanhf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double tanh(double __x) noexcept {
return __builtin_tanh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double tanh(long double __x) noexcept { return __builtin_tanhl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double tanh(_A1 __x) noexcept {
return __builtin_tanh((double)__x);
}
}
}}
# 366 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/hypot.h" 1 3
# 20 "/bin/../include/c++/v1/__math/hypot.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float hypot(float __x, float __y) noexcept { return __builtin_hypotf(__x, __y); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double hypot(double __x, double __y) noexcept {
return __builtin_hypot(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double hypot(long double __x, long double __y) noexcept {
return __builtin_hypotl(__x, __y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type hypot(_A1 __x, _A2 __y) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::hypot((__result_type)__x, (__result_type)__y);
}
}
}}
# 367 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/inverse_hyperbolic_functions.h" 1 3
# 18 "/bin/../include/c++/v1/__math/inverse_hyperbolic_functions.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float acosh(float __x) noexcept { return __builtin_acoshf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double acosh(double __x) noexcept {
return __builtin_acosh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double acosh(long double __x) noexcept { return __builtin_acoshl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double acosh(_A1 __x) noexcept {
return __builtin_acosh((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float asinh(float __x) noexcept { return __builtin_asinhf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double asinh(double __x) noexcept {
return __builtin_asinh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double asinh(long double __x) noexcept { return __builtin_asinhl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double asinh(_A1 __x) noexcept {
return __builtin_asinh((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float atanh(float __x) noexcept { return __builtin_atanhf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double atanh(double __x) noexcept {
return __builtin_atanh(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double atanh(long double __x) noexcept { return __builtin_atanhl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double atanh(_A1 __x) noexcept {
return __builtin_atanh((double)__x);
}
}
}}
# 368 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/inverse_trigonometric_functions.h" 1 3
# 21 "/bin/../include/c++/v1/__math/inverse_trigonometric_functions.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float acos(float __x) noexcept { return __builtin_acosf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double acos(double __x) noexcept {
return __builtin_acos(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double acos(long double __x) noexcept { return __builtin_acosl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double acos(_A1 __x) noexcept {
return __builtin_acos((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float asin(float __x) noexcept { return __builtin_asinf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double asin(double __x) noexcept {
return __builtin_asin(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double asin(long double __x) noexcept { return __builtin_asinl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double asin(_A1 __x) noexcept {
return __builtin_asin((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float atan(float __x) noexcept { return __builtin_atanf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double atan(double __x) noexcept {
return __builtin_atan(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double atan(long double __x) noexcept { return __builtin_atanl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double atan(_A1 __x) noexcept {
return __builtin_atan((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float atan2(float __y, float __x) noexcept { return __builtin_atan2f(__y, __x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double atan2(double __x, double __y) noexcept {
return __builtin_atan2(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double atan2(long double __y, long double __x) noexcept {
return __builtin_atan2l(__y, __x);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type atan2(_A1 __y, _A2 __x) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::atan2((__result_type)__y, (__result_type)__x);
}
}
}}
# 369 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/logarithms.h" 1 3
# 18 "/bin/../include/c++/v1/__math/logarithms.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float log(float __x) noexcept { return __builtin_logf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double log(double __x) noexcept {
return __builtin_log(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double log(long double __x) noexcept { return __builtin_logl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double log(_A1 __x) noexcept {
return __builtin_log((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float log10(float __x) noexcept { return __builtin_log10f(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double log10(double __x) noexcept {
return __builtin_log10(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double log10(long double __x) noexcept { return __builtin_log10l(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double log10(_A1 __x) noexcept {
return __builtin_log10((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) int ilogb(float __x) noexcept { return __builtin_ilogbf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double ilogb(double __x) noexcept {
return __builtin_ilogb(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) int ilogb(long double __x) noexcept { return __builtin_ilogbl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) int ilogb(_A1 __x) noexcept {
return __builtin_ilogb((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float log1p(float __x) noexcept { return __builtin_log1pf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double log1p(double __x) noexcept {
return __builtin_log1p(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double log1p(long double __x) noexcept { return __builtin_log1pl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double log1p(_A1 __x) noexcept {
return __builtin_log1p((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float log2(float __x) noexcept { return __builtin_log2f(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double log2(double __x) noexcept {
return __builtin_log2(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double log2(long double __x) noexcept { return __builtin_log2l(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double log2(_A1 __x) noexcept {
return __builtin_log2((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float logb(float __x) noexcept { return __builtin_logbf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double logb(double __x) noexcept {
return __builtin_logb(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double logb(long double __x) noexcept { return __builtin_logbl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double logb(_A1 __x) noexcept {
return __builtin_logb((double)__x);
}
}
}}
# 370 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/min_max.h" 1 3
# 20 "/bin/../include/c++/v1/__math/min_max.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float fmax(float __x, float __y) noexcept {
return __builtin_fmaxf(__x, __y);
}
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double fmax(double __x, double __y) noexcept {
return __builtin_fmax(__x, __y);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double fmax(long double __x, long double __y) noexcept {
return __builtin_fmaxl(__x, __y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type fmax(_A1 __x, _A2 __y) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::fmax((__result_type)__x, (__result_type)__y);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float fmin(float __x, float __y) noexcept {
return __builtin_fminf(__x, __y);
}
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double fmin(double __x, double __y) noexcept {
return __builtin_fmin(__x, __y);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double fmin(long double __x, long double __y) noexcept {
return __builtin_fminl(__x, __y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type fmin(_A1 __x, _A2 __y) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::fmin((__result_type)__x, (__result_type)__y);
}
}
}}
# 371 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/modulo.h" 1 3
# 20 "/bin/../include/c++/v1/__math/modulo.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float fmod(float __x, float __y) noexcept { return __builtin_fmodf(__x, __y); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double fmod(double __x, double __y) noexcept {
return __builtin_fmod(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double fmod(long double __x, long double __y) noexcept {
return __builtin_fmodl(__x, __y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type fmod(_A1 __x, _A2 __y) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::fmod((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float modf(float __x, float* __y) noexcept { return __builtin_modff(__x, __y); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double modf(double __x, double* __y) noexcept {
return __builtin_modf(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double modf(long double __x, long double* __y) noexcept {
return __builtin_modfl(__x, __y);
}
}
}}
# 372 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/remainder.h" 1 3
# 21 "/bin/../include/c++/v1/__math/remainder.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float remainder(float __x, float __y) noexcept { return __builtin_remainderf(__x, __y); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double remainder(double __x, double __y) noexcept {
return __builtin_remainder(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double remainder(long double __x, long double __y) noexcept {
return __builtin_remainderl(__x, __y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type remainder(_A1 __x, _A2 __y) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::remainder((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float remquo(float __x, float __y, int* __z) noexcept {
return __builtin_remquof(__x, __y, __z);
}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double remquo(double __x, double __y, int* __z) noexcept {
return __builtin_remquo(__x, __y, __z);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double remquo(long double __x, long double __y, int* __z) noexcept {
return __builtin_remquol(__x, __y, __z);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type remquo(_A1 __x, _A2 __y, int* __z) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::remquo((__result_type)__x, (__result_type)__y, __z);
}
}
}}
# 373 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/roots.h" 1 3
# 18 "/bin/../include/c++/v1/__math/roots.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float sqrt(float __x) noexcept { return __builtin_sqrtf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double sqrt(double __x) noexcept {
return __builtin_sqrt(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double sqrt(long double __x) noexcept { return __builtin_sqrtl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double sqrt(_A1 __x) noexcept {
return __builtin_sqrt((double)__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float cbrt(float __x) noexcept { return __builtin_cbrtf(__x); }
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double cbrt(double __x) noexcept {
return __builtin_cbrt(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double cbrt(long double __x) noexcept {
return __builtin_cbrtl(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double cbrt(_A1 __x) noexcept {
return __builtin_cbrt((double)__x);
}
}
}}
# 374 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/rounding_functions.h" 1 3
# 21 "/bin/../include/c++/v1/__math/rounding_functions.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float ceil(float __x) noexcept { return __builtin_ceilf(__x); }
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double ceil(double __x) noexcept {
return __builtin_ceil(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double ceil(long double __x) noexcept {
return __builtin_ceill(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double ceil(_A1 __x) noexcept {
return __builtin_ceil((double)__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float floor(float __x) noexcept { return __builtin_floorf(__x); }
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double floor(double __x) noexcept {
return __builtin_floor(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double floor(long double __x) noexcept {
return __builtin_floorl(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double floor(_A1 __x) noexcept {
return __builtin_floor((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long long llrint(float __x) noexcept { return __builtin_llrintf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long long llrint(double __x) noexcept {
return __builtin_llrint(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long long llrint(long double __x) noexcept { return __builtin_llrintl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long long llrint(_A1 __x) noexcept {
return __builtin_llrint((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long long llround(float __x) noexcept { return __builtin_llroundf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long long llround(double __x) noexcept {
return __builtin_llround(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long long llround(long double __x) noexcept { return __builtin_llroundl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long long llround(_A1 __x) noexcept {
return __builtin_llround((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long lrint(float __x) noexcept { return __builtin_lrintf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long lrint(double __x) noexcept {
return __builtin_lrint(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long lrint(long double __x) noexcept { return __builtin_lrintl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long lrint(_A1 __x) noexcept {
return __builtin_lrint((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long lround(float __x) noexcept { return __builtin_lroundf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long lround(double __x) noexcept {
return __builtin_lround(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long lround(long double __x) noexcept { return __builtin_lroundl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long lround(_A1 __x) noexcept {
return __builtin_lround((double)__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float nearbyint(float __x) noexcept {
return __builtin_nearbyintf(__x);
}
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double nearbyint(double __x) noexcept {
return __builtin_nearbyint(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double nearbyint(long double __x) noexcept {
return __builtin_nearbyintl(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double nearbyint(_A1 __x) noexcept {
return __builtin_nearbyint((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float nextafter(float __x, float __y) noexcept { return __builtin_nextafterf(__x, __y); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double nextafter(double __x, double __y) noexcept {
return __builtin_nextafter(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double nextafter(long double __x, long double __y) noexcept {
return __builtin_nextafterl(__x, __y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type nextafter(_A1 __x, _A2 __y) noexcept {
using __result_type = typename __promote<_A1, _A2>::type;
static_assert((!(_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value)), "");
return __math::nextafter((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float nexttoward(float __x, long double __y) noexcept {
return __builtin_nexttowardf(__x, __y);
}
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double nexttoward(double __x, long double __y) noexcept {
return __builtin_nexttoward(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double nexttoward(long double __x, long double __y) noexcept {
return __builtin_nexttowardl(__x, __y);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double nexttoward(_A1 __x, long double __y) noexcept {
return __builtin_nexttoward((double)__x, __y);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float rint(float __x) noexcept { return __builtin_rintf(__x); }
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double rint(double __x) noexcept {
return __builtin_rint(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double rint(long double __x) noexcept {
return __builtin_rintl(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double rint(_A1 __x) noexcept {
return __builtin_rint((double)__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float round(float __x) noexcept { return __builtin_round(__x); }
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double round(double __x) noexcept {
return __builtin_round(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double round(long double __x) noexcept {
return __builtin_roundl(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double round(_A1 __x) noexcept {
return __builtin_round((double)__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float trunc(float __x) noexcept { return __builtin_trunc(__x); }
template <class = int>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double trunc(double __x) noexcept {
return __builtin_trunc(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double trunc(long double __x) noexcept {
return __builtin_truncl(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double trunc(_A1 __x) noexcept {
return __builtin_trunc((double)__x);
}
}
}}
# 375 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/traits.h" 1 3
# 23 "/bin/../include/c++/v1/__math/traits.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
template <class _A1, __enable_if_t<is_floating_point<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool signbit(_A1 __x) noexcept {
return __builtin_signbit(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value && is_signed<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool signbit(_A1 __x) noexcept {
return __x < 0;
}
template <class _A1, __enable_if_t<is_integral<_A1>::value && !is_signed<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool signbit(_A1) noexcept {
return false;
}
template <class _A1, __enable_if_t<is_arithmetic<_A1>::value && numeric_limits<_A1>::has_infinity, int> = 0>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isfinite(_A1 __x) noexcept {
return __builtin_isfinite((typename __promote<_A1>::type)__x);
}
template <class _A1, __enable_if_t<is_arithmetic<_A1>::value && !numeric_limits<_A1>::has_infinity, int> = 0>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isfinite(_A1) noexcept {
return true;
}
template <class _A1, __enable_if_t<is_arithmetic<_A1>::value && numeric_limits<_A1>::has_infinity, int> = 0>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isinf(_A1 __x) noexcept {
return __builtin_isinf((typename __promote<_A1>::type)__x);
}
template <class _A1, __enable_if_t<is_arithmetic<_A1>::value && !numeric_limits<_A1>::has_infinity, int> = 0>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isinf(_A1) noexcept {
return false;
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isinf(float __x) noexcept {
return __builtin_isinf(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__enable_if__(true, ""))) bool
isinf(double __x) noexcept {
return __builtin_isinf(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isinf(long double __x) noexcept {
return __builtin_isinf(__x);
}
template <class _A1, __enable_if_t<is_floating_point<_A1>::value, int> = 0>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isnan(_A1 __x) noexcept {
return __builtin_isnan(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isnan(_A1) noexcept {
return false;
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isnan(float __x) noexcept {
return __builtin_isnan(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__enable_if__(true, ""))) bool
isnan(double __x) noexcept {
return __builtin_isnan(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isnan(long double __x) noexcept {
return __builtin_isnan(__x);
}
template <class _A1, __enable_if_t<is_floating_point<_A1>::value, int> = 0>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isnormal(_A1 __x) noexcept {
return __builtin_isnormal(__x);
}
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isnormal(_A1 __x) noexcept {
return __x != 0;
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isgreater(_A1 __x, _A2 __y) noexcept {
using type = typename __promote<_A1, _A2>::type;
return __builtin_isgreater((type)__x, (type)__y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isgreaterequal(_A1 __x, _A2 __y) noexcept {
using type = typename __promote<_A1, _A2>::type;
return __builtin_isgreaterequal((type)__x, (type)__y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isless(_A1 __x, _A2 __y) noexcept {
using type = typename __promote<_A1, _A2>::type;
return __builtin_isless((type)__x, (type)__y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool islessequal(_A1 __x, _A2 __y) noexcept {
using type = typename __promote<_A1, _A2>::type;
return __builtin_islessequal((type)__x, (type)__y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool islessgreater(_A1 __x, _A2 __y) noexcept {
using type = typename __promote<_A1, _A2>::type;
return __builtin_islessgreater((type)__x, (type)__y);
}
template <class _A1, class _A2, __enable_if_t<is_arithmetic<_A1>::value && is_arithmetic<_A2>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool isunordered(_A1 __x, _A2 __y) noexcept {
using type = typename __promote<_A1, _A2>::type;
return __builtin_isunordered((type)__x, (type)__y);
}
}
}}
# 376 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/__math/trigonometric_functions.h" 1 3
# 18 "/bin/../include/c++/v1/__math/trigonometric_functions.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float cos(float __x) noexcept { return __builtin_cosf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double cos(double __x) noexcept {
return __builtin_cos(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double cos(long double __x) noexcept { return __builtin_cosl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double cos(_A1 __x) noexcept {
return __builtin_cos((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float sin(float __x) noexcept { return __builtin_sinf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double sin(double __x) noexcept {
return __builtin_sin(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double sin(long double __x) noexcept { return __builtin_sinl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double sin(_A1 __x) noexcept {
return __builtin_sin((double)__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float tan(float __x) noexcept { return __builtin_tanf(__x); }
template <class = int>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double tan(double __x) noexcept {
return __builtin_tan(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double tan(long double __x) noexcept { return __builtin_tanl(__x); }
template <class _A1, __enable_if_t<is_integral<_A1>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double tan(_A1 __x) noexcept {
return __builtin_tan((double)__x);
}
}
}}
# 377 "/bin/../include/c++/v1/math.h" 2 3
# 1 "/bin/../include/c++/v1/stdlib.h" 1 3
# 91 "/bin/../include/c++/v1/stdlib.h" 3
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 1 3 4
# 25 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/libc-header-start.h" 1 3 4
# 26 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 2 3 4
# 1 "/bin/../include/c++/v1/stddef.h" 1 3 4
# 15 "/bin/../include/c++/v1/stddef.h" 3
# 1 "include/stddef.h" 1 3
# 77 "include/stddef.h" 3
# 1 "include/__stddef_size_t.h" 1 3
# 13 "include/__stddef_size_t.h" 3
typedef long unsigned int size_t;
# 78 "include/stddef.h" 2 3
# 87 "include/stddef.h" 3
# 1 "include/__stddef_wchar_t.h" 1 3
# 88 "include/stddef.h" 2 3
# 1 "include/__stddef_null.h" 1 3
# 93 "include/stddef.h" 2 3
# 18 "/bin/../include/c++/v1/stddef.h" 2 3
# 32 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 2 3 4
extern "C" {
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/waitflags.h" 1 3 4
# 40 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/waitstatus.h" 1 3 4
# 41 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 2 3 4
# 58 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
typedef struct
{
int quot;
int rem;
} div_t;
typedef struct
{
long int quot;
long int rem;
} ldiv_t;
__extension__ typedef struct
{
long long int quot;
long long int rem;
} lldiv_t;
# 97 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern size_t __ctype_get_mb_cur_max (void) throw () ;
extern double atof (const char *__nptr)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern int atoi (const char *__nptr)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern long int atol (const char *__nptr)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
__extension__ extern long long int atoll (const char *__nptr)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
extern double strtod (const char *__restrict __nptr,
char **__restrict __endptr)
throw () __attribute__ ((__nonnull__ (1)));
extern float strtof (const char *__restrict __nptr,
char **__restrict __endptr) throw () __attribute__ ((__nonnull__ (1)));
extern long double strtold (const char *__restrict __nptr,
char **__restrict __endptr)
throw () __attribute__ ((__nonnull__ (1)));
# 140 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern _Float32 strtof32 (const char *__restrict __nptr,
char **__restrict __endptr)
throw () __attribute__ ((__nonnull__ (1)));
extern _Float64 strtof64 (const char *__restrict __nptr,
char **__restrict __endptr)
throw () __attribute__ ((__nonnull__ (1)));
# 158 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern _Float32x strtof32x (const char *__restrict __nptr,
char **__restrict __endptr)
throw () __attribute__ ((__nonnull__ (1)));
extern _Float64x strtof64x (const char *__restrict __nptr,
char **__restrict __endptr)
throw () __attribute__ ((__nonnull__ (1)));
# 176 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern long int strtol (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
throw () __attribute__ ((__nonnull__ (1)));
extern unsigned long int strtoul (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
throw () __attribute__ ((__nonnull__ (1)));
__extension__
extern long long int strtoq (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
throw () __attribute__ ((__nonnull__ (1)));
__extension__
extern unsigned long long int strtouq (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
throw () __attribute__ ((__nonnull__ (1)));
__extension__
extern long long int strtoll (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
throw () __attribute__ ((__nonnull__ (1)));
__extension__
extern unsigned long long int strtoull (const char *__restrict __nptr,
char **__restrict __endptr, int __base)
throw () __attribute__ ((__nonnull__ (1)));
extern int strfromd (char *__dest, size_t __size, const char *__format,
double __f)
throw () __attribute__ ((__nonnull__ (3)));
extern int strfromf (char *__dest, size_t __size, const char *__format,
float __f)
throw () __attribute__ ((__nonnull__ (3)));
extern int strfroml (char *__dest, size_t __size, const char *__format,
long double __f)
throw () __attribute__ ((__nonnull__ (3)));
# 232 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int strfromf32 (char *__dest, size_t __size, const char * __format,
_Float32 __f)
throw () __attribute__ ((__nonnull__ (3)));
extern int strfromf64 (char *__dest, size_t __size, const char * __format,
_Float64 __f)
throw () __attribute__ ((__nonnull__ (3)));
# 250 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int strfromf32x (char *__dest, size_t __size, const char * __format,
_Float32x __f)
throw () __attribute__ ((__nonnull__ (3)));
extern int strfromf64x (char *__dest, size_t __size, const char * __format,
_Float64x __f)
throw () __attribute__ ((__nonnull__ (3)));
# 272 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/locale_t.h" 1 3 4
# 22 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/locale_t.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/__locale_t.h" 1 3 4
# 28 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/__locale_t.h" 3 4
struct __locale_struct
{
struct __locale_data *__locales[13];
const unsigned short int *__ctype_b;
const int *__ctype_tolower;
const int *__ctype_toupper;
const char *__names[13];
};
typedef struct __locale_struct *__locale_t;
# 23 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/locale_t.h" 2 3 4
typedef __locale_t locale_t;
# 273 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 2 3 4
extern long int strtol_l (const char *__restrict __nptr,
char **__restrict __endptr, int __base,
locale_t __loc) throw () __attribute__ ((__nonnull__ (1, 4)));
extern unsigned long int strtoul_l (const char *__restrict __nptr,
char **__restrict __endptr,
int __base, locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 4)));
__extension__
extern long long int strtoll_l (const char *__restrict __nptr,
char **__restrict __endptr, int __base,
locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 4)));
__extension__
extern unsigned long long int strtoull_l (const char *__restrict __nptr,
char **__restrict __endptr,
int __base, locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 4)));
extern double strtod_l (const char *__restrict __nptr,
char **__restrict __endptr, locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 3)));
extern float strtof_l (const char *__restrict __nptr,
char **__restrict __endptr, locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 3)));
extern long double strtold_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 3)));
# 316 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern _Float32 strtof32_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 3)));
extern _Float64 strtof64_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 3)));
# 337 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern _Float32x strtof32x_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 3)));
extern _Float64x strtof64x_l (const char *__restrict __nptr,
char **__restrict __endptr,
locale_t __loc)
throw () __attribute__ ((__nonnull__ (1, 3)));
# 385 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern char *l64a (long int __n) throw () ;
extern long int a64l (const char *__s)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) ;
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 1 3 4
# 27 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 3 4
extern "C" {
typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;
typedef __loff_t loff_t;
typedef __ino_t ino_t;
typedef __ino64_t ino64_t;
typedef __dev_t dev_t;
typedef __gid_t gid_t;
typedef __mode_t mode_t;
typedef __nlink_t nlink_t;
typedef __uid_t uid_t;
typedef __off_t off_t;
typedef __off64_t off64_t;
typedef __pid_t pid_t;
typedef __id_t id_t;
typedef __ssize_t ssize_t;
typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;
typedef __key_t key_t;
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/clock_t.h" 1 3 4
typedef __clock_t clock_t;
# 128 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/clockid_t.h" 1 3 4
typedef __clockid_t clockid_t;
# 130 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/time_t.h" 1 3 4
typedef __time_t time_t;
# 131 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/timer_t.h" 1 3 4
typedef __timer_t timer_t;
# 132 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 2 3 4
typedef __useconds_t useconds_t;
typedef __suseconds_t suseconds_t;
# 1 "/bin/../include/c++/v1/stddef.h" 1 3 4
# 15 "/bin/../include/c++/v1/stddef.h" 3
# 1 "include/stddef.h" 1 3
# 18 "/bin/../include/c++/v1/stddef.h" 2 3
# 146 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 2 3 4
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/stdint-intn.h" 1 3 4
# 24 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/stdint-intn.h" 3 4
typedef __int8_t int8_t;
typedef __int16_t int16_t;
typedef __int32_t int32_t;
typedef __int64_t int64_t;
# 157 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 2 3 4
# 178 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 3 4
typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
typedef int register_t __attribute__ ((__mode__ (__word__)));
# 194 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/endian.h" 1 3 4
# 36 "third_party/grte/v5_x86/release/usr/grte/v5/include/endian.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/endian.h" 1 3 4
# 37 "third_party/grte/v5_x86/release/usr/grte/v5/include/endian.h" 2 3 4
# 60 "third_party/grte/v5_x86/release/usr/grte/v5/include/endian.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/byteswap.h" 1 3 4
# 28 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/byteswap.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wordsize.h" 1 3 4
# 29 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/byteswap.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/byteswap-16.h" 1 3 4
# 36 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/byteswap.h" 2 3 4
# 61 "third_party/grte/v5_x86/release/usr/grte/v5/include/endian.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/uintn-identity.h" 1 3 4
# 32 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/uintn-identity.h" 3 4
static __inline __uint16_t
__uint16_identity (__uint16_t __x)
{
return __x;
}
static __inline __uint32_t
__uint32_identity (__uint32_t __x)
{
return __x;
}
static __inline __uint64_t
__uint64_identity (__uint64_t __x)
{
return __x;
}
# 62 "third_party/grte/v5_x86/release/usr/grte/v5/include/endian.h" 2 3 4
# 195 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 1 3 4
# 30 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/select.h" 1 3 4
# 22 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/select.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wordsize.h" 1 3 4
# 23 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/select.h" 2 3 4
# 31 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/sigset_t.h" 1 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/__sigset_t.h" 1 3 4
typedef struct
{
unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
} __sigset_t;
# 5 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/sigset_t.h" 2 3 4
typedef __sigset_t sigset_t;
# 34 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/struct_timeval.h" 1 3 4
struct timeval
{
__time_t tv_sec;
__suseconds_t tv_usec;
};
# 38 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/struct_timespec.h" 1 3 4
struct timespec
{
__time_t tv_sec;
__syscall_slong_t tv_nsec;
};
# 40 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 2 3 4
# 49 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 3 4
typedef long int __fd_mask;
# 59 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 3 4
typedef struct
{
__fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))];
} fd_set;
typedef __fd_mask fd_mask;
# 91 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 3 4
extern "C" {
# 101 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 3 4
extern int select (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout);
# 113 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 3 4
extern int pselect (int __nfds, fd_set *__restrict __readfds,
fd_set *__restrict __writefds,
fd_set *__restrict __exceptfds,
const struct timespec *__restrict __timeout,
const __sigset_t *__restrict __sigmask);
# 126 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/select.h" 3 4
}
# 198 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 2 3 4
typedef __blksize_t blksize_t;
typedef __blkcnt_t blkcnt_t;
typedef __fsblkcnt_t fsblkcnt_t;
typedef __fsfilcnt_t fsfilcnt_t;
# 237 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 3 4
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/pthreadtypes.h" 1 3 4
# 23 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/pthreadtypes.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/thread-shared-types.h" 1 3 4
# 77 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/thread-shared-types.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/pthreadtypes-arch.h" 1 3 4
# 21 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/pthreadtypes-arch.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wordsize.h" 1 3 4
# 22 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/pthreadtypes-arch.h" 2 3 4
# 65 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/pthreadtypes-arch.h" 3 4
struct __pthread_rwlock_arch_t
{
unsigned int __readers;
unsigned int __writers;
unsigned int __wrphase_futex;
unsigned int __writers_futex;
unsigned int __pad3;
unsigned int __pad4;
int __cur_writer;
int __shared;
signed char __rwelision;
unsigned char __pad1[7];
unsigned long int __pad2;
unsigned int __flags;
# 99 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/pthreadtypes-arch.h" 3 4
};
# 78 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/thread-shared-types.h" 2 3 4
typedef struct __pthread_internal_list
{
struct __pthread_internal_list *__prev;
struct __pthread_internal_list *__next;
} __pthread_list_t;
# 118 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/thread-shared-types.h" 3 4
struct __pthread_mutex_s
{
int __lock ;
unsigned int __count;
int __owner;
unsigned int __nusers;
int __kind;
short __spins; short __elision;
__pthread_list_t __list;
# 146 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/thread-shared-types.h" 3 4
};
struct __pthread_cond_s
{
__extension__ union
{
__extension__ unsigned long long int __wseq;
struct
{
unsigned int __low;
unsigned int __high;
} __wseq32;
};
__extension__ union
{
__extension__ unsigned long long int __g1_start;
struct
{
unsigned int __low;
unsigned int __high;
} __g1_start32;
};
unsigned int __g_refs[2] ;
unsigned int __g_size[2];
unsigned int __g1_orig_size;
unsigned int __wrefs;
unsigned int __g_signals[2];
};
# 24 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/pthreadtypes.h" 2 3 4
typedef unsigned long int pthread_t;
typedef union
{
char __size[4];
int __align;
} pthread_mutexattr_t;
typedef union
{
char __size[4];
int __align;
} pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef int pthread_once_t;
union pthread_attr_t
{
char __size[56];
long int __align;
};
typedef union pthread_attr_t pthread_attr_t;
typedef union
{
struct __pthread_mutex_s __data;
char __size[40];
long int __align;
} pthread_mutex_t;
typedef union
{
struct __pthread_cond_s __data;
char __size[48];
__extension__ long long int __align;
} pthread_cond_t;
typedef union
{
struct __pthread_rwlock_arch_t __data;
char __size[56];
long int __align;
} pthread_rwlock_t;
typedef union
{
char __size[8];
long int __align;
} pthread_rwlockattr_t;
typedef volatile int pthread_spinlock_t;
typedef union
{
char __size[32];
long int __align;
} pthread_barrier_t;
typedef union
{
char __size[4];
int __align;
} pthread_barrierattr_t;
# 246 "third_party/grte/v5_x86/release/usr/grte/v5/include/sys/types.h" 2 3 4
}
# 395 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 2 3 4
extern long int random (void) throw ();
extern void srandom (unsigned int __seed) throw ();
extern char *initstate (unsigned int __seed, char *__statebuf,
size_t __statelen) throw () __attribute__ ((__nonnull__ (2)));
extern char *setstate (char *__statebuf) throw () __attribute__ ((__nonnull__ (1)));
struct random_data
{
int32_t *fptr;
int32_t *rptr;
int32_t *state;
int rand_type;
int rand_deg;
int rand_sep;
int32_t *end_ptr;
};
extern int random_r (struct random_data *__restrict __buf,
int32_t *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
extern int srandom_r (unsigned int __seed, struct random_data *__buf)
throw () __attribute__ ((__nonnull__ (2)));
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
size_t __statelen,
struct random_data *__restrict __buf)
throw () __attribute__ ((__nonnull__ (2, 4)));
extern int setstate_r (char *__restrict __statebuf,
struct random_data *__restrict __buf)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern int rand (void) throw ();
extern void srand (unsigned int __seed) throw ();
extern int rand_r (unsigned int *__seed) throw ();
extern double drand48 (void) throw ();
extern double erand48 (unsigned short int __xsubi[3]) throw () __attribute__ ((__nonnull__ (1)));
extern long int lrand48 (void) throw ();
extern long int nrand48 (unsigned short int __xsubi[3])
throw () __attribute__ ((__nonnull__ (1)));
extern long int mrand48 (void) throw ();
extern long int jrand48 (unsigned short int __xsubi[3])
throw () __attribute__ ((__nonnull__ (1)));
extern void srand48 (long int __seedval) throw ();
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
throw () __attribute__ ((__nonnull__ (1)));
extern void lcong48 (unsigned short int __param[7]) throw () __attribute__ ((__nonnull__ (1)));
struct drand48_data
{
unsigned short int __x[3];
unsigned short int __old_x[3];
unsigned short int __c;
unsigned short int __init;
__extension__ unsigned long long int __a;
};
extern int drand48_r (struct drand48_data *__restrict __buffer,
double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
extern int erand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
double *__restrict __result) throw () __attribute__ ((__nonnull__ (1, 2)));
extern int lrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern int nrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern int mrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern int jrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
throw () __attribute__ ((__nonnull__ (2)));
extern int seed48_r (unsigned short int __seed16v[3],
struct drand48_data *__buffer) throw () __attribute__ ((__nonnull__ (1, 2)));
extern int lcong48_r (unsigned short int __param[7],
struct drand48_data *__buffer)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern void *malloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
extern void *calloc (size_t __nmemb, size_t __size)
throw () __attribute__ ((__malloc__)) ;
extern void *realloc (void *__ptr, size_t __size)
throw () __attribute__ ((__warn_unused_result__));
extern void *reallocarray (void *__ptr, size_t __nmemb, size_t __size)
throw () __attribute__ ((__warn_unused_result__));
extern void free (void *__ptr) throw ();
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/alloca.h" 1 3 4
# 24 "third_party/grte/v5_x86/release/usr/grte/v5/include/alloca.h" 3 4
# 1 "/bin/../include/c++/v1/stddef.h" 1 3 4
# 15 "/bin/../include/c++/v1/stddef.h" 3
# 1 "include/stddef.h" 1 3
# 18 "/bin/../include/c++/v1/stddef.h" 2 3
# 25 "third_party/grte/v5_x86/release/usr/grte/v5/include/alloca.h" 2 3 4
extern "C" {
extern void *alloca (size_t __size) throw ();
}
# 567 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 2 3 4
extern void *valloc (size_t __size) throw () __attribute__ ((__malloc__)) ;
extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
throw () __attribute__ ((__nonnull__ (1))) ;
extern void *aligned_alloc (size_t __alignment, size_t __size)
throw () __attribute__ ((__malloc__)) ;
extern void abort (void) throw () __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) throw () __attribute__ ((__nonnull__ (1)));
extern "C++" int at_quick_exit (void (*__func) (void))
throw () __asm ("at_quick_exit") __attribute__ ((__nonnull__ (1)));
# 607 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
throw () __attribute__ ((__nonnull__ (1)));
extern void exit (int __status) throw () __attribute__ ((__noreturn__));
extern void quick_exit (int __status) throw () __attribute__ ((__noreturn__));
extern void _Exit (int __status) throw () __attribute__ ((__noreturn__));
extern char *getenv (const char *__name) throw () __attribute__ ((__nonnull__ (1))) ;
extern char *secure_getenv (const char *__name)
throw () __attribute__ ((__nonnull__ (1))) ;
extern int putenv (char *__string) throw () __attribute__ ((__nonnull__ (1)));
extern int setenv (const char *__name, const char *__value, int __replace)
throw () __attribute__ ((__nonnull__ (2)));
extern int unsetenv (const char *__name) throw () __attribute__ ((__nonnull__ (1)));
extern int clearenv (void) throw ();
# 672 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern char *mktemp (char *__template) throw () __attribute__ ((__nonnull__ (1)));
# 685 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 695 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) ;
# 707 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int mkstemps (char *__template, int __suffixlen) __attribute__ ((__nonnull__ (1))) ;
# 717 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int mkstemps64 (char *__template, int __suffixlen)
__attribute__ ((__nonnull__ (1))) ;
# 728 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern char *mkdtemp (char *__template) throw () __attribute__ ((__nonnull__ (1))) ;
# 739 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
# 749 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) ;
# 759 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int mkostemps (char *__template, int __suffixlen, int __flags)
__attribute__ ((__nonnull__ (1))) ;
# 771 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int mkostemps64 (char *__template, int __suffixlen, int __flags)
__attribute__ ((__nonnull__ (1))) ;
# 781 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int system (const char *__command) ;
extern char *canonicalize_file_name (const char *__name)
throw () __attribute__ ((__nonnull__ (1))) ;
# 797 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern char *realpath (const char *__restrict __name,
char *__restrict __resolved) throw () ;
typedef int (*__compar_fn_t) (const void *, const void *);
typedef __compar_fn_t comparison_fn_t;
typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
extern void *bsearch (const void *__key, const void *__base,
size_t __nmemb, size_t __size, __compar_fn_t __compar)
__attribute__ ((__nonnull__ (1, 2, 5))) ;
extern void qsort (void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
__compar_d_fn_t __compar, void *__arg)
__attribute__ ((__nonnull__ (1, 4)));
extern int abs (int __x) throw () __attribute__ ((__const__)) ;
extern long int labs (long int __x) throw () __attribute__ ((__const__)) ;
__extension__ extern long long int llabs (long long int __x)
throw () __attribute__ ((__const__)) ;
extern div_t div (int __numer, int __denom)
throw () __attribute__ ((__const__)) ;
extern ldiv_t ldiv (long int __numer, long int __denom)
throw () __attribute__ ((__const__)) ;
__extension__ extern lldiv_t lldiv (long long int __numer,
long long int __denom)
throw () __attribute__ ((__const__)) ;
# 869 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) throw () __attribute__ ((__nonnull__ (3, 4))) ;
extern char *gcvt (double __value, int __ndigit, char *__buf)
throw () __attribute__ ((__nonnull__ (3))) ;
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
throw () __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
throw () __attribute__ ((__nonnull__ (3, 4))) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
throw () __attribute__ ((__nonnull__ (3))) ;
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) throw () __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
throw () __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
throw () __attribute__ ((__nonnull__ (3, 4, 5)));
extern int mblen (const char *__s, size_t __n) throw ();
extern int mbtowc (wchar_t *__restrict __pwc,
const char *__restrict __s, size_t __n) throw ();
extern int wctomb (char *__s, wchar_t __wchar) throw ();
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
const char *__restrict __s, size_t __n) throw ();
extern size_t wcstombs (char *__restrict __s,
const wchar_t *__restrict __pwcs, size_t __n)
throw ();
extern int rpmatch (const char *__response) throw () __attribute__ ((__nonnull__ (1))) ;
# 954 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
extern int getsubopt (char **__restrict __optionp,
char *const *__restrict __tokens,
char **__restrict __valuep)
throw () __attribute__ ((__nonnull__ (1, 2, 3))) ;
extern void setkey (const char *__key) throw () __attribute__ ((__nonnull__ (1)));
extern int posix_openpt (int __oflag) ;
extern int grantpt (int __fd) throw ();
extern int unlockpt (int __fd) throw ();
extern char *ptsname (int __fd) throw () ;
extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
throw () __attribute__ ((__nonnull__ (2)));
extern int getpt (void);
extern int getloadavg (double __loadavg[], int __nelem)
throw () __attribute__ ((__nonnull__ (1)));
# 1016 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/stdlib-float.h" 1 3 4
# 1017 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 2 3 4
# 1026 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdlib.h" 3 4
}
# 95 "/bin/../include/c++/v1/stdlib.h" 2 3
extern "C++" {
# 113 "/bin/../include/c++/v1/stdlib.h" 3
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long abs(long __x) noexcept { return __builtin_labs(__x); }
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long long abs(long long __x) noexcept {
return __builtin_llabs(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float abs(float __lcpp_x) noexcept {
return __builtin_fabsf(__lcpp_x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double abs(double __lcpp_x) noexcept {
return __builtin_fabs(__lcpp_x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double abs(long double __lcpp_x) noexcept {
return __builtin_fabsl(__lcpp_x);
}
# 145 "/bin/../include/c++/v1/stdlib.h" 3
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) ldiv_t div(long __x, long __y) noexcept { return ::ldiv(__x, __y); }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) lldiv_t div(long long __x, long long __y) noexcept { return ::lldiv(__x, __y); }
}
# 381 "/bin/../include/c++/v1/math.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __math {
template <class = int>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) int fpclassify(float __x) noexcept {
return __builtin_fpclassify(0, 1, 4, 3, 2, __x);
}
template <class = int>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) int fpclassify(double __x) noexcept {
return __builtin_fpclassify(0, 1, 4, 3, 2, __x);
}
template <class = int>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) int fpclassify(long double __x) noexcept {
return __builtin_fpclassify(0, 1, 4, 3, 2, __x);
}
template <class _A1, std::__enable_if_t<std::is_integral<_A1>::value, int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) int fpclassify(_A1 __x) noexcept {
return __x == 0 ? 2 : 4;
}
}
}}
using std::__math::fpclassify;
using std::__math::signbit;
using std::__math::isfinite;
using std::__math::isgreater;
using std::__math::isgreaterequal;
using std::__math::isinf;
using std::__math::isless;
using std::__math::islessequal;
using std::__math::islessgreater;
using std::__math::isnan;
using std::__math::isnormal;
using std::__math::isunordered;
# 444 "/bin/../include/c++/v1/math.h" 3
using std::__math::acos;
using std::__math::acosh;
using std::__math::asin;
using std::__math::asinh;
using std::__math::atan;
using std::__math::atan2;
using std::__math::atanh;
using std::__math::cbrt;
using std::__math::ceil;
using std::__math::copysign;
using std::__math::cos;
using std::__math::cosh;
using std::__math::erf;
using std::__math::erfc;
using std::__math::exp;
using std::__math::exp2;
using std::__math::expm1;
using std::__math::fabs;
using std::__math::fdim;
using std::__math::floor;
using std::__math::fma;
using std::__math::fmax;
using std::__math::fmin;
using std::__math::fmod;
using std::__math::frexp;
using std::__math::hypot;
using std::__math::ilogb;
using std::__math::ldexp;
using std::__math::lgamma;
using std::__math::llrint;
using std::__math::llround;
using std::__math::log;
using std::__math::log10;
using std::__math::log1p;
using std::__math::log2;
using std::__math::logb;
using std::__math::lrint;
using std::__math::lround;
using std::__math::modf;
using std::__math::nearbyint;
using std::__math::nextafter;
using std::__math::nexttoward;
using std::__math::pow;
using std::__math::remainder;
using std::__math::remquo;
using std::__math::rint;
using std::__math::round;
using std::__math::scalbln;
using std::__math::scalbn;
using std::__math::signbit;
using std::__math::sin;
using std::__math::sinh;
using std::__math::sqrt;
using std::__math::tan;
using std::__math::tanh;
using std::__math::tgamma;
using std::__math::trunc;
}
# 5 "third_party/stl/cxx17/math.h" 2 3
# 19 "third_party/intel_dnnl/src/cpu/x64/jit_uni_layer_normalization.cpp" 2
# 1 "third_party/intel_dnnl/src/common/c_types_map.hpp" 1 3
# 20 "third_party/intel_dnnl/src/common/c_types_map.hpp" 3
# 1 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 1 3
# 24 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
extern "C" {
# 1 "/bin/../include/c++/v1/stddef.h" 1 3
# 43 "/bin/../include/c++/v1/stddef.h" 3
# 1 "include/stddef.h" 1 3
# 72 "include/stddef.h" 3
# 1 "include/__stddef_ptrdiff_t.h" 1 3
# 13 "include/__stddef_ptrdiff_t.h" 3
typedef long int ptrdiff_t;
# 73 "include/stddef.h" 2 3
# 87 "include/stddef.h" 3
# 1 "include/__stddef_wchar_t.h" 1 3
# 88 "include/stddef.h" 2 3
# 1 "include/__stddef_null.h" 1 3
# 93 "include/stddef.h" 2 3
# 1 "include/__stddef_nullptr_t.h" 1 3
# 98 "include/stddef.h" 2 3
# 107 "include/stddef.h" 3
# 1 "include/__stddef_max_align_t.h" 1 3
# 19 "include/__stddef_max_align_t.h" 3
typedef struct {
long long __clang_max_align_nonce1
__attribute__((__aligned__(__alignof__(long long))));
long double __clang_max_align_nonce2
__attribute__((__aligned__(__alignof__(long double))));
} max_align_t;
# 108 "include/stddef.h" 2 3
# 1 "include/__stddef_offsetof.h" 1 3
# 113 "include/stddef.h" 2 3
# 47 "/bin/../include/c++/v1/stddef.h" 2 3
typedef decltype(nullptr) nullptr_t;
# 29 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 2 3
# 1 "/bin/../include/c++/v1/stdint.h" 1 3
# 110 "/bin/../include/c++/v1/stdint.h" 3
# 124 "/bin/../include/c++/v1/stdint.h" 3
# 1 "include/stdint.h" 1 3
# 52 "include/stdint.h" 3
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 1 3 4
# 26 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/libc-header-start.h" 1 3 4
# 27 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wchar.h" 1 3 4
# 29 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wordsize.h" 1 3 4
# 30 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/stdint-uintn.h" 1 3 4
# 24 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/stdint-uintn.h" 3 4
typedef __uint8_t uint8_t;
typedef __uint16_t uint16_t;
typedef __uint32_t uint32_t;
typedef __uint64_t uint64_t;
# 38 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 2 3 4
typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef int int_least32_t;
typedef long int int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;
typedef unsigned long int uint_least64_t;
# 68 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 3 4
typedef signed char int_fast8_t;
typedef long int int_fast16_t;
typedef long int int_fast32_t;
typedef long int int_fast64_t;
# 81 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 3 4
typedef unsigned char uint_fast8_t;
typedef unsigned long int uint_fast16_t;
typedef unsigned long int uint_fast32_t;
typedef unsigned long int uint_fast64_t;
# 97 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 3 4
typedef long int intptr_t;
typedef unsigned long int uintptr_t;
# 111 "third_party/grte/v5_x86/release/usr/grte/v5/include/stdint.h" 3 4
typedef __intmax_t intmax_t;
typedef __uintmax_t uintmax_t;
# 53 "include/stdint.h" 2 3
# 125 "/bin/../include/c++/v1/stdint.h" 2 3
# 30 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 2 3
# 1 "blaze-out/k8-opt/genfiles/third_party/intel_dnnl/include/oneapi/dnnl/dnnl_config.h" 1 3
# 33 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 2 3
# 1 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_common_types.h" 1 3
# 24 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_common_types.h" 3
extern "C" {
# 1 "/bin/../include/c++/v1/stddef.h" 1 3
# 29 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_common_types.h" 2 3
# 45 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_common_types.h" 3
typedef enum {
dnnl_success = 0,
dnnl_out_of_memory = 1,
dnnl_invalid_arguments = 2,
dnnl_unimplemented = 3,
dnnl_last_impl_reached = 4,
dnnl_runtime_error = 5,
dnnl_not_required = 6,
dnnl_invalid_graph = 7,
dnnl_invalid_graph_op = 8,
dnnl_invalid_shape = 9,
dnnl_invalid_data_type = 10,
} dnnl_status_t;
typedef enum {
dnnl_data_type_undef = 0,
dnnl_f16 = 1,
dnnl_bf16 = 2,
dnnl_f32 = 3,
dnnl_s32 = 4,
dnnl_s8 = 5,
dnnl_u8 = 6,
dnnl_f64 = 7,
dnnl_boolean = 8,
dnnl_data_type_max = 0x7fff,
} dnnl_data_type_t;
typedef int64_t dnnl_dim_t;
typedef dnnl_dim_t dnnl_dims_t[12];
typedef enum {
dnnl_fpmath_mode_strict,
dnnl_fpmath_mode_bf16,
dnnl_fpmath_mode_f16,
dnnl_fpmath_mode_any,
dnnl_fpmath_mode_tf32,
} dnnl_fpmath_mode_t;
typedef enum {
dnnl_any_engine,
dnnl_cpu,
dnnl_gpu,
} dnnl_engine_kind_t;
struct dnnl_engine;
typedef struct dnnl_engine *dnnl_engine_t;
# 163 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_common_types.h" 3
typedef enum {
dnnl_stream_in_order = 0x1U,
dnnl_stream_out_of_order = 0x2U,
dnnl_stream_default_flags = dnnl_stream_in_order,
} dnnl_stream_flags_t;
struct dnnl_stream;
typedef struct dnnl_stream *dnnl_stream_t;
typedef const struct dnnl_stream *const_dnnl_stream_t;
# 191 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_common_types.h" 3
typedef struct {
int major;
int minor;
int patch;
const char *hash;
unsigned cpu_runtime;
unsigned gpu_runtime;
} dnnl_version_t;
# 207 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_common_types.h" 3
}
# 35 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 2 3
typedef enum {
dnnl_format_kind_undef = 0,
dnnl_format_kind_any,
dnnl_blocked,
dnnl_format_kind_opaque,
dnnl_format_kind_max = 0x7fff,
} dnnl_format_kind_t;
# 156 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
typedef enum {
dnnl_format_tag_undef = 0,
dnnl_format_tag_any,
dnnl_a,
dnnl_ab,
dnnl_abc,
dnnl_abcd,
dnnl_abcde,
dnnl_abcdef,
dnnl_abcdefg,
dnnl_abcdefgh,
dnnl_abcdefghi,
dnnl_abcdefghij,
dnnl_abcdefghijk,
dnnl_abcdefghijkl,
dnnl_ba,
dnnl_acb,
dnnl_bac,
dnnl_bca,
dnnl_cab,
dnnl_cba,
dnnl_abdc,
dnnl_acbd,
dnnl_acdb,
dnnl_adbc,
dnnl_adcb,
dnnl_bacd,
dnnl_bcda,
dnnl_cdab,
dnnl_cdba,
dnnl_dcab,
dnnl_abced,
dnnl_abdec,
dnnl_acbde,
dnnl_acdeb,
dnnl_adecb,
dnnl_bacde,
dnnl_bcdea,
dnnl_cdeab,
dnnl_cdeba,
dnnl_decab,
dnnl_abcdfe,
dnnl_abdefc,
dnnl_abdfce,
dnnl_acbdef,
dnnl_adefcb,
dnnl_defcab,
dnnl_abcdegf,
dnnl_abcdefhg,
dnnl_abcdefgih,
dnnl_abcdefghji,
dnnl_abcdefghikj,
dnnl_abcdefghijlk,
dnnl_Abc16a,
dnnl_ABc16a16b,
dnnl_ABc32a32b,
dnnl_ABc4a4b,
dnnl_aBc16b,
dnnl_ABc16b16a,
dnnl_Abc4a,
dnnl_aBc32b,
dnnl_aBc4b,
dnnl_ABc4b16a4b,
dnnl_ABc2b8a4b,
dnnl_ABc16b16a4b,
dnnl_ABc16b16a2b,
dnnl_ABc4b4a,
dnnl_ABc8a16b2a,
dnnl_ABc8a8b,
dnnl_ABc8a4b,
dnnl_aBc8b,
dnnl_ABc8b16a2b,
dnnl_BAc8a16b2a,
dnnl_ABc8b8a,
dnnl_Abcd16a,
dnnl_Abcd8a,
dnnl_ABcd16a16b,
dnnl_Abcd32a,
dnnl_ABcd32a32b,
dnnl_aBcd16b,
dnnl_ABcd16b16a,
dnnl_aBCd16b16c,
dnnl_aBCd16c16b,
dnnl_Abcd4a,
dnnl_aBcd32b,
dnnl_aBcd4b,
dnnl_ABcd4b16a4b,
dnnl_ABcd16b16a4b,
dnnl_ABcd16b16a2b,
dnnl_ABcd4b4a,
dnnl_ABcd4a4b,
dnnl_aBCd2c4b2c,
dnnl_aBCd4b8c2b,
dnnl_aBCd4c16b4c,
dnnl_aBCd2c8b4c,
dnnl_aBCd16c16b4c,
dnnl_aBCd16c16b2c,
dnnl_aBCd4c4b,
dnnl_aBCd4b4c,
dnnl_ABcd8a16b2a,
dnnl_ABcd2b8a4b,
dnnl_ABcd8a8b,
dnnl_ABcd8a4b,
dnnl_aBcd8b,
dnnl_aBCd4c8b2c,
dnnl_ABcd8b16a2b,
dnnl_aBCd8b16c2b,
dnnl_BAcd8a16b2a,
dnnl_ABcd8b8a,
dnnl_aBCd8b8c,
dnnl_aBCd8b4c,
dnnl_aBCd8c16b2c,
dnnl_ABcde8a16b2a,
dnnl_aCBd8b16c2b,
dnnl_aBCd8c8b,
dnnl_Abcde16a,
dnnl_Abcde32a,
dnnl_ABcde16a16b,
dnnl_BAcde8a16b2a,
dnnl_aBCd2b4c2b,
dnnl_ABcde4b16a4b,
dnnl_ABcde2b8a4b,
dnnl_aBcde16b,
dnnl_ABcde16b16a,
dnnl_aBCde16b16c,
dnnl_aBCde16c16b,
dnnl_aBCde2c8b4c,
dnnl_Abcde4a,
dnnl_aBcde32b,
dnnl_aBcde4b,
dnnl_ABcde4b4a,
dnnl_ABcde4a4b,
dnnl_aBCde4b4c,
dnnl_aBCde2c4b2c,
dnnl_aBCde4b8c2b,
dnnl_aBCde4c16b4c,
dnnl_aBCde16c16b4c,
dnnl_aBCde16c16b2c,
dnnl_aBCde4c4b,
dnnl_Abcde8a,
dnnl_ABcde8a8b,
dnnl_ABcde8a4b,
dnnl_BAcde16b16a,
dnnl_aBcde8b,
dnnl_ABcde8b16a2b,
dnnl_aBCde8b16c2b,
dnnl_aBCde4c8b2c,
dnnl_aCBde8b16c2b,
dnnl_ABcde8b8a,
dnnl_ABcde32a32b,
dnnl_aBCde8b8c,
dnnl_aBCde8b4c,
dnnl_ABc4a8b8a4b,
dnnl_ABcd4a8b8a4b,
dnnl_ABcde4a8b8a4b,
dnnl_BAc4b8a8b4a,
dnnl_BAcd4b8a8b4a,
dnnl_BAcde4b8a8b4a,
dnnl_ABcd2a8b8a2b,
dnnl_aBCd4b8c8b4c,
dnnl_aBCde4b8c8b4c,
dnnl_aBCde2b8c8b2c,
dnnl_aBCde8c16b2c,
dnnl_aBCde8c8b,
dnnl_aBCde2b4c2b,
dnnl_aBcdef16b,
dnnl_aBCdef16b16c,
dnnl_aBCdef16c16b,
dnnl_aBCdef4c16b4c,
dnnl_aBCdef2c8b4c,
dnnl_aBCdef4c8b2c,
dnnl_aBCdef2b4c2b,
dnnl_aBcdef4b,
dnnl_aBCdef4c4b,
dnnl_aBCdef4b4c,
dnnl_aBCdef2c4b2c,
dnnl_aBCdef4b8c2b,
dnnl_aBCdef8b8c,
dnnl_aBCdef8b4c,
dnnl_aBCdef8c16b2c,
dnnl_aBCdef4b8c8b4c,
dnnl_aBCdef8b16c2b,
dnnl_aCBdef8b16c2b,
dnnl_aBCdef8c8b,
dnnl_aBdc16b,
dnnl_aBdC16b2c,
dnnl_aBdC16b4c,
dnnl_aBdc4b,
dnnl_aBdc8b,
dnnl_aBdec16b,
dnnl_aBdeC16b2c,
dnnl_aBdeC16b4c,
dnnl_aBdec32b,
dnnl_aBdec4b,
dnnl_aBdec8b,
dnnl_aBdefc16b,
dnnl_aBdefC16b2c,
dnnl_aCBdef16c16b,
dnnl_aBdefc4b,
dnnl_aBdefc8b,
dnnl_Abcdef16a,
dnnl_Abcdef32a,
dnnl_aBedc16b,
dnnl_Acb16a,
dnnl_AcB16a2b,
dnnl_AcB16a4b,
dnnl_Acb4a,
dnnl_Acb8a,
dnnl_aCBd16b16c,
dnnl_aCBd16c16b,
dnnl_aCBde16b16c,
dnnl_aCBde16c16b,
dnnl_Acdb16a,
dnnl_AcdB16a2b,
dnnl_AcdB16a4b,
dnnl_Acdb32a,
dnnl_Acdb4a,
dnnl_Acdb8a,
dnnl_Acdeb16a,
dnnl_AcdeB16a2b,
dnnl_Acdeb4a,
dnnl_Acdeb8a,
dnnl_Adcb16a,
dnnl_BAc16a16b,
dnnl_BAc16b16a,
dnnl_BAcd16a16b,
dnnl_BAcd16b16a,
dnnl_aCBd4c8b8c4b,
dnnl_aCBde4c8b8c4b,
dnnl_aCBdef4c8b8c4b,
dnnl_BAcde16a16b,
dnnl_aCBdef16b16c,
dnnl_ABc16b32a,
dnnl_ABc16b64a,
dnnl_ABc4b32a4b,
dnnl_ABc4b64a4b,
dnnl_ABc8b32a2b,
dnnl_ABc8b64a2b,
dnnl_AB16b16a,
dnnl_AB16b32a,
dnnl_AB16b64a,
dnnl_AB8b16a2b,
dnnl_AB8b32a2b,
dnnl_AB8b64a2b,
dnnl_AB4b16a4b,
dnnl_AB4b32a4b,
dnnl_AB4b64a4b,
dnnl_AB16b16a4b,
dnnl_ABcd16b32a,
dnnl_ABcd16b64a,
dnnl_ABcd4b32a4b,
dnnl_ABcd4b64a4b,
dnnl_ABcd8b32a2b,
dnnl_ABcd8b64a2b,
dnnl_ABcde4b32a4b,
dnnl_ABcde4b64a4b,
dnnl_ABcde16b16a4b,
dnnl_ABcde16b16a2b,
dnnl_ABcde16b32a,
dnnl_ABcde16b64a,
dnnl_ABcde8b32a2b,
dnnl_ABcde8b64a2b,
dnnl_aBCdef16c16b4c,
dnnl_aBCdef16c16b2c,
dnnl_AB32a32b8a4b,
dnnl_AB8a4b,
dnnl_AB32a32b8a2b,
dnnl_AB8a2b,
dnnl_abDc32d,
dnnl_abDC32d4c,
dnnl_abdEc32e,
dnnl_abdEC32e2c,
dnnl_abdEC32e4c,
dnnl_aBdefC16b4c,
dnnl_AcdeB16a4b,
dnnl_ABcd16a16b2a,
dnnl_ABc16a16b2a,
dnnl_aBCd16b16c2b,
dnnl_aBCde16b16c2b,
dnnl_Acb32a,
dnnl_AcB32a2b,
dnnl_AcB32a4b,
dnnl_Acb48a,
dnnl_AcB48a2b,
dnnl_AcB48a4b,
dnnl_Acb64a,
dnnl_AcB64a2b,
dnnl_AcB64a4b,
dnnl_cBa2b,
dnnl_cBa4b,
dnnl_aBdc32b,
dnnl_aBdC32b2c,
dnnl_aBdC32b4c,
dnnl_aBdc48b,
dnnl_aBdC48b2c,
dnnl_aBdC48b4c,
dnnl_aBdc64b,
dnnl_aBdC64b2c,
dnnl_aBdC64b4c,
dnnl_adCb2c,
dnnl_adCb4c,
dnnl_AcdB32a2b,
dnnl_AcdB32a4b,
dnnl_Acdb48a,
dnnl_AcdB48a2b,
dnnl_AcdB48a4b,
dnnl_Acdb64a,
dnnl_AcdB64a2b,
dnnl_AcdB64a4b,
dnnl_cdBa2b,
dnnl_cdBa4b,
dnnl_aBdeC32b2c,
dnnl_aBdeC32b4c,
dnnl_aBdec48b,
dnnl_aBdeC48b2c,
dnnl_aBdeC48b4c,
dnnl_aBdec64b,
dnnl_aBdeC64b2c,
dnnl_aBdeC64b4c,
dnnl_adeCb2c,
dnnl_adeCb4c,
dnnl_Acdeb32a,
dnnl_AcdeB32a2b,
dnnl_AcdeB32a4b,
dnnl_Acdeb48a,
dnnl_AcdeB48a2b,
dnnl_AcdeB48a4b,
dnnl_Acdeb64a,
dnnl_AcdeB64a2b,
dnnl_AcdeB64a4b,
dnnl_cdeBa2b,
dnnl_cdeBa4b,
dnnl_aBdefc32b,
dnnl_aBdefC32b2c,
dnnl_aBdefC32b4c,
dnnl_aBdefc48b,
dnnl_aBdefC48b2c,
dnnl_aBdefC48b4c,
dnnl_aBdefc64b,
dnnl_aBdefC64b2c,
dnnl_aBdefC64b4c,
dnnl_adefCb2c,
dnnl_adefCb4c,
dnnl_AB16b32a4b,
dnnl_AB16b48a4b,
dnnl_AB16b64a4b,
dnnl_AB16b16a2b,
dnnl_AB16b32a2b,
dnnl_AB16b48a2b,
dnnl_AB16b64a2b,
dnnl_ABc16b32a4b,
dnnl_ABc16b48a4b,
dnnl_ABc16b64a4b,
dnnl_ABc16b32a2b,
dnnl_ABc16b48a2b,
dnnl_ABc16b64a2b,
dnnl_ABcd16b32a4b,
dnnl_ABcd16b48a4b,
dnnl_ABcd16b64a4b,
dnnl_ABcd16b32a2b,
dnnl_ABcd16b48a2b,
dnnl_ABcd16b64a2b,
dnnl_ABcde16b32a4b,
dnnl_ABcde16b48a4b,
dnnl_ABcde16b64a4b,
dnnl_ABcde16b32a2b,
dnnl_ABcde16b48a2b,
dnnl_ABcde16b64a2b,
dnnl_ABc32a16b,
dnnl_ABcd32a16b,
dnnl_ABcde32a16b,
dnnl_AB48a16b,
dnnl_AB48a32b,
dnnl_ABc40a16b,
dnnl_ABc40a32b,
dnnl_aBC48b16c,
dnnl_aBC48b32c,
dnnl_ABcd40a16b,
dnnl_ABcd40a32b,
dnnl_abCd32c,
dnnl_abdCe32c,
dnnl_abdCE32c2e,
dnnl_BA16a16b2a,
dnnl_BA16a32b2a,
dnnl_BA16a48b2a,
dnnl_BA16a64b2a,
dnnl_BA16a16b4a,
dnnl_BA16a32b4a,
dnnl_BA16a48b4a,
dnnl_BA16a64b4a,
dnnl_ABcd8a2b,
dnnl_aBdeC16c16b2c,
dnnl_aBdeC16c16b4c,
dnnl_aBdefC16c16b2c,
dnnl_AcB16b16a2b,
dnnl_AcB16b16a4b,
dnnl_AcdB16b16a2b,
dnnl_AcdB16b16a4b,
dnnl_AcdeB16b16a2b,
dnnl_aBdefC16c16b4c,
dnnl_AcdeB16b16a4b,
dnnl_AcB16b32a2b,
dnnl_AcB16b32a4b,
dnnl_AcB16b48a2b,
dnnl_AcB16b48a4b,
dnnl_AcB16b64a2b,
dnnl_AcB16b64a4b,
dnnl_aBdC16c16b2c,
dnnl_aBdC16c16b4c,
dnnl_aBdC16c32b2c,
dnnl_aBdC16c32b4c,
dnnl_aBdC16c48b2c,
dnnl_aBdC16c48b4c,
dnnl_aBdC16c64b2c,
dnnl_aBdC16c64b4c,
dnnl_AcdB16b32a2b,
dnnl_AcdB16b32a4b,
dnnl_AcdB16b48a2b,
dnnl_AcdB16b48a4b,
dnnl_AcdB16b64a2b,
dnnl_AcdB16b64a4b,
dnnl_aBdeC16c32b2c,
dnnl_aBdeC16c32b4c,
dnnl_aBdeC16c48b2c,
dnnl_aBdeC16c48b4c,
dnnl_aBdeC16c64b2c,
dnnl_aBdeC16c64b4c,
dnnl_AcdeB16b32a2b,
dnnl_AcdeB16b32a4b,
dnnl_AcdeB16b48a2b,
dnnl_AcdeB16b48a4b,
dnnl_AcdeB16b64a2b,
dnnl_AcdeB16b64a4b,
dnnl_aBdefC16c32b2c,
dnnl_aBdefC16c32b4c,
dnnl_aBdefC16c48b2c,
dnnl_aBdefC16c48b4c,
dnnl_aBdefC16c64b2c,
dnnl_aBdefC16c64b4c,
dnnl_decbA16a,
dnnl_ABc4a2b,
dnnl_ABc8a2b,
dnnl_aBCd8b2c,
dnnl_ABcde4a2b,
dnnl_ABcde8a2b,
dnnl_ABcde40a16b,
dnnl_ABcde40a32b,
dnnl_aBCde8b2c,
dnnl_ABcde4a8b8a2b,
dnnl_ABcd4a8b8a2b,
dnnl_ABc4a8b8a2b,
dnnl_aBCdef4b8c8b2c,
dnnl_aBCde4b8c8b2c,
dnnl_aBCd4b8c8b2c,
dnnl_BAcde4b8a8b2a,
dnnl_BAcd4b8a8b2a,
dnnl_BAc4b8a8b2a,
dnnl_aCBdef4c8b8c2b,
dnnl_aCBde4c8b8c2b,
dnnl_aCBd4c8b8c2b,
dnnl_aBCdef8b2c,
dnnl_AB32a16b,
dnnl_AB32a32b,
dnnl_BA4b8a8b2a,
dnnl_BA4b8a8b4a,
dnnl_aBC32b16c,
dnnl_aBC32b32c,
dnnl_aCB4c8b8c2b,
dnnl_aCB4c8b8c4b,
dnnl_ABcd4a2b,
dnnl_ABc2b8a16b4a,
dnnl_ABcd2b8a16b4a,
dnnl_ABcde2b8a16b4a,
dnnl_ABc2a8b16a4b,
dnnl_ABc2a8b16a2b,
dnnl_ABc2b32a8b,
dnnl_ABcd2a8b16a4b,
dnnl_ABcd2a8b16a2b,
dnnl_aCBd2c8b16c2b,
dnnl_ABcd2b32a8b,
dnnl_aBCd2c8b16c2b,
dnnl_ABcde2a8b16a4b,
dnnl_ABcde2a8b16a2b,
dnnl_aCBde2c8b16c2b,
dnnl_ABcde2b32a8b,
dnnl_aBC2b8c16b2c,
dnnl_aBCd2b8c16b2c,
dnnl_aBCde2b8c16b2c,
dnnl_aBCdef2b8c16b2c,
dnnl_BAcde2b8a16b4a,
dnnl_BAcd2b8a16b4a,
dnnl_BAc2b8a16b4a,
dnnl_BAcde2b8a16b2a,
dnnl_BAcd2b8a16b2a,
dnnl_BAc2b8a16b2a,
dnnl_aBCde2c8b16c2b,
dnnl_aBCdef2c8b16c2b,
dnnl_aCBdef2c8b16c2b,
dnnl_aBCd2b8c16b4c,
dnnl_aBCde2b8c16b4c,
dnnl_BA4b8a16b2a,
dnnl_BA4b8a16b4a,
dnnl_aCB4c8b16c2b,
dnnl_aCB4c8b16c4b,
dnnl_BA16a16b,
dnnl_BA16a32b,
dnnl_BA16a48b,
dnnl_BA16a64b,
dnnl_aCB16c2b,
dnnl_aCB16c4b,
dnnl_BA16b2a,
dnnl_BA16b4a,
dnnl_aBC16b16c,
dnnl_aBC16b32c,
dnnl_AB16a16b,
dnnl_AB16a32b,
dnnl_ABcde16a16b2a,
dnnl_aBCdef16b16c2b,
dnnl_Acedb16a,
dnnl_aBdfec16b,
dnnl_abdEC64e2c,
dnnl_abdEC64e4c,
dnnl_aCB16b16c,
dnnl_aCB16b32c,
dnnl_aCB16b48c,
dnnl_aCB16b64c,
dnnl_aCB16b16c2b,
dnnl_aCB16b32c2b,
dnnl_aCB16b48c2b,
dnnl_aCB16b64c2b,
dnnl_aCB16b16c4b,
dnnl_aCB16b32c4b,
dnnl_aCB16b48c4b,
dnnl_aCB16b64c4b,
dnnl_abCd4c,
dnnl_abCde4c,
dnnl_abCdef4c,
dnnl_abCde32c,
dnnl_abCdef32c,
dnnl_ABcd16a32b,
dnnl_decbA8a,
dnnl_aCdefB16b32c2b,
dnnl_aCdefB16b32c4b,
dnnl_aCdefB16b48c2b,
dnnl_aCdefB16b48c4b,
dnnl_aCdefB16b64c2b,
dnnl_aCdefB16b64c4b,
dnnl_BcdeA16a32b2a,
dnnl_BcdeA16a32b4a,
dnnl_BcdeA16a48b2a,
dnnl_BcdeA16a48b4a,
dnnl_BcdeA16a64b2a,
dnnl_BcdeA16a64b4a,
dnnl_aCdefb32c,
dnnl_aCdefB32c2b,
dnnl_aCdefB32c4b,
dnnl_aCdefb48c,
dnnl_aCdefB48c2b,
dnnl_aCdefB48c4b,
dnnl_aCdefb64c,
dnnl_aCdefB64c2b,
dnnl_aCdefB64c4b,
dnnl_Bcdea32b,
dnnl_BcdeA32b2a,
dnnl_BcdeA32b4a,
dnnl_Bcdea48b,
dnnl_BcdeA48b2a,
dnnl_BcdeA48b4a,
dnnl_Bcdea64b,
dnnl_BcdeA64b2a,
dnnl_BcdeA64b4a,
dnnl_Bca32b,
dnnl_BcA32b2a,
dnnl_BcA32b4a,
dnnl_Bca48b,
dnnl_BcA48b2a,
dnnl_BcA48b4a,
dnnl_Bca64b,
dnnl_BcA64b2a,
dnnl_BcA64b4a,
dnnl_aCdb32c,
dnnl_aCdB32c2b,
dnnl_aCdB32c4b,
dnnl_aCdb48c,
dnnl_aCdB48c2b,
dnnl_aCdB48c4b,
dnnl_aCdb64c,
dnnl_aCdB64c2b,
dnnl_aCdB64c4b,
dnnl_BcA16a16b2a,
dnnl_BcA16a16b4a,
dnnl_BcdA16a16b2a,
dnnl_BcdA16a16b4a,
dnnl_BcdeA16a16b2a,
dnnl_BcdeA16a16b4a,
dnnl_aCdB16b16c2b,
dnnl_aCdB16b16c4b,
dnnl_aCdeB16b16c2b,
dnnl_aCdeB16b16c4b,
dnnl_aCdefB16b16c2b,
dnnl_aCdefB16b16c4b,
dnnl_BcA16a32b2a,
dnnl_BcA16a32b4a,
dnnl_BcA16a48b2a,
dnnl_BcA16a48b4a,
dnnl_BcA16a64b2a,
dnnl_BcA16a64b4a,
dnnl_aCdB16b32c2b,
dnnl_aCdB16b32c4b,
dnnl_aCdB16b48c2b,
dnnl_aCdB16b48c4b,
dnnl_aCdB16b64c2b,
dnnl_aCdB16b64c4b,
dnnl_BcdA16a32b2a,
dnnl_BcdA16a32b4a,
dnnl_BcdA16a48b2a,
dnnl_BcdA16a48b4a,
dnnl_BcdA16a64b2a,
dnnl_BcdA16a64b4a,
dnnl_aCdeB16b32c2b,
dnnl_aCdeB16b32c4b,
dnnl_aCdeB16b48c2b,
dnnl_aCdeB16b48c4b,
dnnl_aCdeB16b64c2b,
dnnl_aCdeB16b64c4b,
dnnl_Bca16b,
dnnl_BcA16b2a,
dnnl_BcA16b4a,
dnnl_Bcda16b,
dnnl_BcdA16b2a,
dnnl_BcdA16b4a,
dnnl_Bcdea16b,
dnnl_BcdeA16b2a,
dnnl_BcdeA16b4a,
dnnl_aCdb16c,
dnnl_aCdB16c2b,
dnnl_aCdB16c4b,
dnnl_aCdeb16c,
dnnl_aCdeB16c2b,
dnnl_aCdeB16c4b,
dnnl_aCdefb16c,
dnnl_aCdefB16c2b,
dnnl_aCdefB16c4b,
dnnl_Bcda32b,
dnnl_BcdA32b2a,
dnnl_BcdA32b4a,
dnnl_Bcda48b,
dnnl_BcdA48b2a,
dnnl_BcdA48b4a,
dnnl_Bcda64b,
dnnl_BcdA64b2a,
dnnl_BcdA64b4a,
dnnl_aCdeb32c,
dnnl_aCdeB32c2b,
dnnl_aCdeB32c4b,
dnnl_aCdeb48c,
dnnl_aCdeB48c2b,
dnnl_aCdeB48c4b,
dnnl_aCdeb64c,
dnnl_aCdeB64c2b,
dnnl_aCdeB64c4b,
dnnl_Acb24a,
dnnl_Acdb24a,
dnnl_Acdeb24a,
dnnl_aBdc24b,
dnnl_aBdec24b,
dnnl_aBdefc24b,
dnnl_abDc16d,
dnnl_abdEc16e,
dnnl_abdCe16c,
dnnl_AcB24a2b,
dnnl_AcdB24a2b,
dnnl_AcdeB24a2b,
dnnl_aBdC24b2c,
dnnl_aBdeC24b2c,
dnnl_aBdefC24b2c,
dnnl_AcB8a2b,
dnnl_AcdB8a2b,
dnnl_AcdeB8a2b,
dnnl_aBdC8b2c,
dnnl_aBdeC8b2c,
dnnl_aBdefC8b2c,
dnnl_AB8b32a,
dnnl_ABc8b32a,
dnnl_ABcd8b32a,
dnnl_ABcde8b32a,
dnnl_AB8b24a,
dnnl_ABc8b24a,
dnnl_ABcd8b24a,
dnnl_ABcde8b24a,
dnnl_AB8b16a,
dnnl_ABc8b16a,
dnnl_ABcd8b16a,
dnnl_ABcde8b16a,
dnnl_AB8b8a,
dnnl_AB4b8a4b,
dnnl_AB4b24a4b,
dnnl_ABc4b8a4b,
dnnl_ABc4b24a4b,
dnnl_ABcd4b8a4b,
dnnl_ABcd4b24a4b,
dnnl_ABcde4b8a4b,
dnnl_ABcde4b24a4b,
dnnl_AB8b24a2b,
dnnl_ABc8b24a2b,
dnnl_ABcd8b24a2b,
dnnl_ABcde8b24a2b,
dnnl_AB8b8a2b,
dnnl_ABc8b8a2b,
dnnl_ABcd8b8a2b,
dnnl_ABcde8b8a2b,
dnnl_AcB24a4b,
dnnl_AcdB24a4b,
dnnl_AcdeB24a4b,
dnnl_aBdC24b4c,
dnnl_aBdeC24b4c,
dnnl_aBdefC24b4c,
dnnl_AcB8a4b,
dnnl_AcdB8a4b,
dnnl_AcdeB8a4b,
dnnl_aBdC8b4c,
dnnl_aBdeC8b4c,
dnnl_aBdefC8b4c,
dnnl_Bca8b,
dnnl_BcA8b2a,
dnnl_Bcda8b,
dnnl_BcdA8b2a,
dnnl_Bcdea8b,
dnnl_BcdeA8b2a,
dnnl_aCdb8c,
dnnl_aCdB8c2b,
dnnl_aCdeb8c,
dnnl_aCdeB8c2b,
dnnl_aCdefb8c,
dnnl_aCdefB8c2b,
dnnl_Bca24b,
dnnl_BcA24b2a,
dnnl_Bcda24b,
dnnl_BcdA24b2a,
dnnl_Bcdea24b,
dnnl_BcdeA24b2a,
dnnl_aCdb24c,
dnnl_aCdB24c2b,
dnnl_aCdeb24c,
dnnl_aCdeB24c2b,
dnnl_aCdefb24c,
dnnl_aCdefB24c2b,
dnnl_BcA8b4a,
dnnl_BcdA8b4a,
dnnl_BcdeA8b4a,
dnnl_aCdB8c4b,
dnnl_aCdeB8c4b,
dnnl_aCdefB8c4b,
dnnl_BcA24b4a,
dnnl_BcdA24b4a,
dnnl_BcdeA24b4a,
dnnl_aCdB24c4b,
dnnl_aCdeB24c4b,
dnnl_aCdefB24c4b,
dnnl_AB16b48a,
dnnl_ABc16b48a,
dnnl_ABcd16b48a,
dnnl_ABcde16b48a,
dnnl_ABc16a4b,
dnnl_ABcd16a4b,
dnnl_ABcde16a4b,
dnnl_defcbA16a,
dnnl_defcbA8a,
dnnl_format_tag_last,
dnnl_x = dnnl_a,
dnnl_nc = dnnl_ab,
dnnl_cn = dnnl_ba,
dnnl_tn = dnnl_ab,
dnnl_nt = dnnl_ba,
dnnl_ncw = dnnl_abc,
dnnl_nwc = dnnl_acb,
dnnl_nchw = dnnl_abcd,
dnnl_nhwc = dnnl_acdb,
dnnl_chwn = dnnl_bcda,
dnnl_ncdhw = dnnl_abcde,
dnnl_ndhwc = dnnl_acdeb,
dnnl_oi = dnnl_ab,
dnnl_io = dnnl_ba,
dnnl_oiw = dnnl_abc,
dnnl_owi = dnnl_acb,
dnnl_wio = dnnl_cba,
dnnl_woi = dnnl_cab,
dnnl_iwo = dnnl_bca,
dnnl_oihw = dnnl_abcd,
dnnl_hwio = dnnl_cdba,
dnnl_hwoi = dnnl_cdab,
dnnl_ohwi = dnnl_acdb,
dnnl_ihwo = dnnl_bcda,
dnnl_iohw = dnnl_bacd,
dnnl_oidhw = dnnl_abcde,
dnnl_iodhw = dnnl_bacde,
dnnl_dhwio = dnnl_cdeba,
dnnl_dhwoi = dnnl_cdeab,
dnnl_odhwi = dnnl_acdeb,
dnnl_idhwo = dnnl_bcdea,
dnnl_goiw = dnnl_abcd,
dnnl_gowi = dnnl_abdc,
dnnl_wigo = dnnl_dcab,
dnnl_goihw = dnnl_abcde,
dnnl_gohwi = dnnl_abdec,
dnnl_hwigo = dnnl_decab,
dnnl_giohw = dnnl_acbde,
dnnl_goidhw = dnnl_abcdef,
dnnl_godhwi = dnnl_abdefc,
dnnl_giodhw = dnnl_acbdef,
dnnl_dhwigo = dnnl_defcab,
dnnl_tnc = dnnl_abc,
dnnl_ntc = dnnl_bac,
dnnl_ldnc = dnnl_abcd,
dnnl_ldigo = dnnl_abcde,
dnnl_ldgoi = dnnl_abdec,
dnnl_ldio = dnnl_abcd,
dnnl_ldoi = dnnl_abdc,
dnnl_ldgo = dnnl_abcd,
dnnl_ldOi16o = dnnl_abDc16d,
dnnl_ldOi32o = dnnl_abDc32d,
dnnl_ldOI32o4i = dnnl_abDC32d4c,
dnnl_ldIo32i = dnnl_abCd32c,
dnnl_ldgOi16o = dnnl_abdEc16e,
dnnl_ldgOi32o = dnnl_abdEc32e,
dnnl_ldgOI32o2i = dnnl_abdEC32e2c,
dnnl_ldgOI32o4i = dnnl_abdEC32e4c,
dnnl_ldgOI64o2i = dnnl_abdEC64e2c,
dnnl_ldgOI64o4i = dnnl_abdEC64e4c,
dnnl_ldgIo16i = dnnl_abdCe16c,
dnnl_ldgIo32i = dnnl_abdCe32c,
dnnl_ldgIO32i2o = dnnl_abdCE32c2e,
dnnl_nCdhw32c = dnnl_aBcde32b,
dnnl_nCdhw16c = dnnl_aBcde16b,
dnnl_nCdhw4c = dnnl_aBcde4b,
dnnl_nCdhw8c = dnnl_aBcde8b,
dnnl_nChw32c = dnnl_aBcd32b,
dnnl_nChw16c = dnnl_aBcd16b,
dnnl_nChw4c = dnnl_aBcd4b,
dnnl_nChw8c = dnnl_aBcd8b,
dnnl_nCw32c = dnnl_aBc32b,
dnnl_nCw16c = dnnl_aBc16b,
dnnl_nCw4c = dnnl_aBc4b,
dnnl_nCw8c = dnnl_aBc8b,
dnnl_NCw16n16c = dnnl_ABc16a16b,
dnnl_NCdhw16n16c = dnnl_ABcde16a16b,
dnnl_NChw16n16c = dnnl_ABcd16a16b,
dnnl_NCw32n16c = dnnl_ABc32a16b,
dnnl_NChw32n16c = dnnl_ABcd32a16b,
dnnl_NChw16n32c = dnnl_ABcd16a32b,
dnnl_NCdhw32n16c = dnnl_ABcde32a16b,
dnnl_NCw32n32c = dnnl_ABc32a32b,
dnnl_NChw32n32c = dnnl_ABcd32a32b,
dnnl_NCdhw32n32c = dnnl_ABcde32a32b,
dnnl_OI16i16o = dnnl_AB16b16a,
dnnl_OI16i32o = dnnl_AB16b32a,
dnnl_OI16i48o = dnnl_AB16b48a,
dnnl_OI16i64o = dnnl_AB16b64a,
dnnl_OI8i8o2i = dnnl_AB8b8a2b,
dnnl_OI8i16o2i = dnnl_AB8b16a2b,
dnnl_OI8i24o2i = dnnl_AB8b24a2b,
dnnl_OI8i32o2i = dnnl_AB8b32a2b,
dnnl_OI8i64o2i = dnnl_AB8b64a2b,
dnnl_OI4i8o4i = dnnl_AB4b8a4b,
dnnl_OI4i16o4i = dnnl_AB4b16a4b,
dnnl_OI4i24o4i = dnnl_AB4b24a4b,
dnnl_OI4i32o4i = dnnl_AB4b32a4b,
dnnl_OI4i64o4i = dnnl_AB4b64a4b,
dnnl_OI16i16o4i = dnnl_AB16b16a4b,
dnnl_OI8i32o = dnnl_AB8b32a,
dnnl_OI8i24o = dnnl_AB8b24a,
dnnl_OI8i16o = dnnl_AB8b16a,
dnnl_OI8i8o = dnnl_AB8b8a,
dnnl_IOw16o16i = dnnl_BAc16a16b,
dnnl_IOw16i16o = dnnl_BAc16b16a,
dnnl_OIw16i16o = dnnl_ABc16b16a,
dnnl_OIw16i32o = dnnl_ABc16b32a,
dnnl_OIw16i48o = dnnl_ABc16b48a,
dnnl_OIw16i64o = dnnl_ABc16b64a,
dnnl_OIw16o16i = dnnl_ABc16a16b,
dnnl_Oiw16o = dnnl_Abc16a,
dnnl_OIw4i8o4i = dnnl_ABc4b8a4b,
dnnl_OIw4i16o4i = dnnl_ABc4b16a4b,
dnnl_OIw4i24o4i = dnnl_ABc4b24a4b,
dnnl_OIw4i32o4i = dnnl_ABc4b32a4b,
dnnl_OIw4i64o4i = dnnl_ABc4b64a4b,
dnnl_OIw2i8o4i = dnnl_ABc2b8a4b,
dnnl_OIw16i16o4i = dnnl_ABc16b16a4b,
dnnl_OIw16i16o2i = dnnl_ABc16b16a2b,
dnnl_OIw16o16i2o = dnnl_ABc16a16b2a,
dnnl_OIw4i4o = dnnl_ABc4b4a,
dnnl_OIw4o4i = dnnl_ABc4a4b,
dnnl_Oiw4o = dnnl_Abc4a,
dnnl_OIw8i8o2i = dnnl_ABc8b8a2b,
dnnl_OIw8i16o2i = dnnl_ABc8b16a2b,
dnnl_OIw8i24o2i = dnnl_ABc8b24a2b,
dnnl_OIw8i32o2i = dnnl_ABc8b32a2b,
dnnl_OIw8i64o2i = dnnl_ABc8b64a2b,
dnnl_OIw8i8o = dnnl_ABc8b8a,
dnnl_OIw8o16i2o = dnnl_ABc8a16b2a,
dnnl_IOw8o16i2o = dnnl_BAc8a16b2a,
dnnl_OIw8o8i = dnnl_ABc8a8b,
dnnl_OIw8o4i = dnnl_ABc8a4b,
dnnl_Owi16o = dnnl_Acb16a,
dnnl_OwI16o2i = dnnl_AcB16a2b,
dnnl_OwI16o4i = dnnl_AcB16a4b,
dnnl_Iwo8i = dnnl_Bca8b,
dnnl_IwO8i2o = dnnl_BcA8b2a,
dnnl_IwO8i4o = dnnl_BcA8b4a,
dnnl_Iwo16i = dnnl_Bca16b,
dnnl_IwO16i2o = dnnl_BcA16b2a,
dnnl_IwO16i4o = dnnl_BcA16b4a,
dnnl_Iwo24i = dnnl_Bca24b,
dnnl_IwO24i2o = dnnl_BcA24b2a,
dnnl_IwO24i4o = dnnl_BcA24b4a,
dnnl_Owi4o = dnnl_Acb4a,
dnnl_Owi8o = dnnl_Acb8a,
dnnl_OwI8o2i = dnnl_AcB8a2b,
dnnl_OIw8i32o = dnnl_ABc8b32a,
dnnl_OIw8i24o = dnnl_ABc8b24a,
dnnl_OIw8i16o = dnnl_ABc8b16a,
dnnl_OwI8o4i = dnnl_AcB8a4b,
dnnl_IOhw16i16o = dnnl_BAcd16b16a,
dnnl_IOhw16o16i = dnnl_BAcd16a16b,
dnnl_Ohwi16o = dnnl_Acdb16a,
dnnl_OhwI16o2i = dnnl_AcdB16a2b,
dnnl_OhwI16o4i = dnnl_AcdB16a4b,
dnnl_Ihwo8i = dnnl_Bcda8b,
dnnl_IhwO8i2o = dnnl_BcdA8b2a,
dnnl_IhwO8i4o = dnnl_BcdA8b4a,
dnnl_Ihwo16i = dnnl_Bcda16b,
dnnl_IhwO16i2o = dnnl_BcdA16b2a,
dnnl_IhwO16i4o = dnnl_BcdA16b4a,
dnnl_Ihwo24i = dnnl_Bcda24b,
dnnl_IhwO24i2o = dnnl_BcdA24b2a,
dnnl_IhwO24i4o = dnnl_BcdA24b4a,
dnnl_Ohwi24o = dnnl_Acdb24a,
dnnl_Ohwi32o = dnnl_Acdb32a,
dnnl_Ohwi4o = dnnl_Acdb4a,
dnnl_Ohwi8o = dnnl_Acdb8a,
dnnl_OhwI8o2i = dnnl_AcdB8a2b,
dnnl_OhwI8o4i = dnnl_AcdB8a4b,
dnnl_OIhw16i16o = dnnl_ABcd16b16a,
dnnl_OIhw16i32o = dnnl_ABcd16b32a,
dnnl_OIhw16i48o = dnnl_ABcd16b48a,
dnnl_OIhw16i64o = dnnl_ABcd16b64a,
dnnl_OIhw16o16i = dnnl_ABcd16a16b,
dnnl_Oihw16o = dnnl_Abcd16a,
dnnl_OIhw4i8o4i = dnnl_ABcd4b8a4b,
dnnl_OIhw4i16o4i = dnnl_ABcd4b16a4b,
dnnl_OIhw4i24o4i = dnnl_ABcd4b24a4b,
dnnl_OIhw4i32o4i = dnnl_ABcd4b32a4b,
dnnl_OIhw4i64o4i = dnnl_ABcd4b64a4b,
dnnl_OIhw16i16o4i = dnnl_ABcd16b16a4b,
dnnl_OIhw16i16o2i = dnnl_ABcd16b16a2b,
dnnl_OIhw16o16i2o = dnnl_ABcd16a16b2a,
dnnl_OIhw4i4o = dnnl_ABcd4b4a,
dnnl_OIhw4o4i = dnnl_ABcd4a4b,
dnnl_Oihw4o = dnnl_Abcd4a,
dnnl_OIhw8i8o2i = dnnl_ABcd8b8a2b,
dnnl_OIhw8i16o2i = dnnl_ABcd8b16a2b,
dnnl_OIhw8i32o2i = dnnl_ABcd8b32a2b,
dnnl_OIhw8i24o2i = dnnl_ABcd8b24a2b,
dnnl_OIhw8i64o2i = dnnl_ABcd8b64a2b,
dnnl_OIhw8i8o = dnnl_ABcd8b8a,
dnnl_OIhw8o16i2o = dnnl_ABcd8a16b2a,
dnnl_OIhw2i8o4i = dnnl_ABcd2b8a4b,
dnnl_IOhw8o16i2o = dnnl_BAcd8a16b2a,
dnnl_OIhw8o8i = dnnl_ABcd8a8b,
dnnl_OIhw8o4i = dnnl_ABcd8a4b,
dnnl_Owhi16o = dnnl_Adcb16a,
dnnl_OIhw8i32o = dnnl_ABcd8b32a,
dnnl_OIhw8i24o = dnnl_ABcd8b24a,
dnnl_OIhw8i16o = dnnl_ABcd8b16a,
dnnl_Odhwi16o = dnnl_Acdeb16a,
dnnl_OdhwI16o2i = dnnl_AcdeB16a2b,
dnnl_OdhwI16o4i = dnnl_AcdeB16a4b,
dnnl_Idhwo8i = dnnl_Bcdea8b,
dnnl_IdhwO8i2o = dnnl_BcdeA8b2a,
dnnl_IdhwO8i4o = dnnl_BcdeA8b4a,
dnnl_Idhwo16i = dnnl_Bcdea16b,
dnnl_IdhwO16i2o = dnnl_BcdeA16b2a,
dnnl_IdhwO16i4o = dnnl_BcdeA16b4a,
dnnl_Idhwo24i = dnnl_Bcdea24b,
dnnl_IdhwO24i2o = dnnl_BcdeA24b2a,
dnnl_IdhwO24i4o = dnnl_BcdeA24b4a,
dnnl_Odhwi4o = dnnl_Acdeb4a,
dnnl_Odhwi8o = dnnl_Acdeb8a,
dnnl_OdhwI8o2i = dnnl_AcdeB8a2b,
dnnl_OdhwI8o4i = dnnl_AcdeB8a4b,
dnnl_Odwhi16o = dnnl_Acedb16a,
dnnl_OIdhw16i16o = dnnl_ABcde16b16a,
dnnl_OIdhw16i32o = dnnl_ABcde16b32a,
dnnl_OIdhw16i48o = dnnl_ABcde16b48a,
dnnl_OIdhw16i64o = dnnl_ABcde16b64a,
dnnl_OIdhw16o16i = dnnl_ABcde16a16b,
dnnl_Oidhw16o = dnnl_Abcde16a,
dnnl_OIdhw4i4o = dnnl_ABcde4b4a,
dnnl_OIdhw4o4i = dnnl_ABcde4a4b,
dnnl_Oidhw4o = dnnl_Abcde4a,
dnnl_OIdhw8i8o2i = dnnl_ABcde8b8a2b,
dnnl_OIdhw8i16o2i = dnnl_ABcde8b16a2b,
dnnl_OIdhw8i32o2i = dnnl_ABcde8b32a2b,
dnnl_OIdhw8i24o2i = dnnl_ABcde8b24a2b,
dnnl_OIdhw8i64o2i = dnnl_ABcde8b64a2b,
dnnl_OIdhw8i8o = dnnl_ABcde8b8a,
dnnl_OIdhw8o16i2o = dnnl_ABcde8a16b2a,
dnnl_IOdhw8o16i2o = dnnl_BAcde8a16b2a,
dnnl_OIdhw4i8o4i = dnnl_ABcde4b8a4b,
dnnl_OIdhw4i16o4i = dnnl_ABcde4b16a4b,
dnnl_OIdhw4i24o4i = dnnl_ABcde4b24a4b,
dnnl_OIdhw4i32o4i = dnnl_ABcde4b32a4b,
dnnl_OIdhw4i64o4i = dnnl_ABcde4b64a4b,
dnnl_OIdhw16i16o4i = dnnl_ABcde16b16a4b,
dnnl_OIdhw16i16o2i = dnnl_ABcde16b16a2b,
dnnl_OIdhw2i8o4i = dnnl_ABcde2b8a4b,
dnnl_OIdhw8o8i = dnnl_ABcde8a8b,
dnnl_OIdhw8o4i = dnnl_ABcde8a4b,
dnnl_IOdhw16i16o = dnnl_BAcde16b16a,
dnnl_OIdhw4o8i8o4i = dnnl_ABcde4a8b8a4b,
dnnl_IOdhw16o16i = dnnl_BAcde16a16b,
dnnl_OIdhw16o16i2o = dnnl_ABcde16a16b2a,
dnnl_OIdhw8i32o = dnnl_ABcde8b32a,
dnnl_OIdhw8i24o = dnnl_ABcde8b24a,
dnnl_OIdhw8i16o = dnnl_ABcde8b16a,
dnnl_Goiw16g = dnnl_Abcd16a,
dnnl_Goiw8g = dnnl_Abcd8a,
dnnl_Goiw4g = dnnl_Abcd4a,
dnnl_gIOw16o16i = dnnl_aCBd16b16c,
dnnl_gIOw16i16o = dnnl_aCBd16c16b,
dnnl_gOIw16i16o = dnnl_aBCd16c16b,
dnnl_gOIw16o16i = dnnl_aBCd16b16c,
dnnl_gOiw16o = dnnl_aBcd16b,
dnnl_gOIw4i16o4i = dnnl_aBCd4c16b4c,
dnnl_gOIw2i8o4i = dnnl_aBCd2c8b4c,
dnnl_gOIw16i16o4i = dnnl_aBCd16c16b4c,
dnnl_gOIw16i16o2i = dnnl_aBCd16c16b2c,
dnnl_gOIw16o16i2o = dnnl_aBCd16b16c2b,
dnnl_gOIw4i4o = dnnl_aBCd4c4b,
dnnl_gOIw4o4i = dnnl_aBCd4b4c,
dnnl_gOiw4o = dnnl_aBcd4b,
dnnl_gOIw8i16o2i = dnnl_aBCd8c16b2c,
dnnl_gOIw8i8o = dnnl_aBCd8c8b,
dnnl_gOIw8o16i2o = dnnl_aBCd8b16c2b,
dnnl_gIOw8o16i2o = dnnl_aCBd8b16c2b,
dnnl_gOIw8o8i = dnnl_aBCd8b8c,
dnnl_gOIw8o4i = dnnl_aBCd8b4c,
dnnl_gOwi16o = dnnl_aBdc16b,
dnnl_gOwI16o2i = dnnl_aBdC16b2c,
dnnl_gOwI16o4i = dnnl_aBdC16b4c,
dnnl_gIwo8i = dnnl_aCdb8c,
dnnl_gIwO8i2o = dnnl_aCdB8c2b,
dnnl_gIwO8i4o = dnnl_aCdB8c4b,
dnnl_gIwo16i = dnnl_aCdb16c,
dnnl_gIwO16i2o = dnnl_aCdB16c2b,
dnnl_gIwO16i4o = dnnl_aCdB16c4b,
dnnl_gIwo24i = dnnl_aCdb24c,
dnnl_gIwO24i2o = dnnl_aCdB24c2b,
dnnl_gIwO24i4o = dnnl_aCdB24c4b,
dnnl_gOwi4o = dnnl_aBdc4b,
dnnl_gOwi8o = dnnl_aBdc8b,
dnnl_gOwI8o2i = dnnl_aBdC8b2c,
dnnl_gOwI8o4i = dnnl_aBdC8b4c,
dnnl_Goiw32g = dnnl_Abcd32a,
dnnl_gOIw2i4o2i = dnnl_aBCd2c4b2c,
dnnl_gOIw2o4i2o = dnnl_aBCd2b4c2b,
dnnl_gOIw4i8o2i = dnnl_aBCd4c8b2c,
dnnl_gOIw4o8i2o = dnnl_aBCd4b8c2b,
dnnl_goIw4i = dnnl_abCd4c,
dnnl_goIw32i = dnnl_abCd32c,
dnnl_gIOhw16i16o = dnnl_aCBde16c16b,
dnnl_gIOhw16o16i = dnnl_aCBde16b16c,
dnnl_gOhwi16o = dnnl_aBdec16b,
dnnl_gOhwI16o2i = dnnl_aBdeC16b2c,
dnnl_gOhwI16o4i = dnnl_aBdeC16b4c,
dnnl_gIhwo8i = dnnl_aCdeb8c,
dnnl_gIhwO8i2o = dnnl_aCdeB8c2b,
dnnl_gIhwO8i4o = dnnl_aCdeB8c4b,
dnnl_gIhwo16i = dnnl_aCdeb16c,
dnnl_gIhwO16i2o = dnnl_aCdeB16c2b,
dnnl_gIhwO16i4o = dnnl_aCdeB16c4b,
dnnl_gIhwo24i = dnnl_aCdeb24c,
dnnl_gIhwO24i2o = dnnl_aCdeB24c2b,
dnnl_gIhwO24i4o = dnnl_aCdeB24c4b,
dnnl_gOhwi32o = dnnl_aBdec32b,
dnnl_gOhwi24o = dnnl_aBdec24b,
dnnl_gOhwI24o2i = dnnl_aBdeC24b2c,
dnnl_gOhwI24o4i = dnnl_aBdeC24b4c,
dnnl_gOhwi4o = dnnl_aBdec4b,
dnnl_gOhwi8o = dnnl_aBdec8b,
dnnl_gOhwI8o2i = dnnl_aBdeC8b2c,
dnnl_gOhwI8o4i = dnnl_aBdeC8b4c,
dnnl_Goihw16g = dnnl_Abcde16a,
dnnl_gOIhw16i16o = dnnl_aBCde16c16b,
dnnl_gOIhw16o16i = dnnl_aBCde16b16c,
dnnl_gOihw16o = dnnl_aBcde16b,
dnnl_gOIhw2i8o4i = dnnl_aBCde2c8b4c,
dnnl_gOIhw4i16o4i = dnnl_aBCde4c16b4c,
dnnl_gOIhw16i16o4i = dnnl_aBCde16c16b4c,
dnnl_gOIhw16i16o2i = dnnl_aBCde16c16b2c,
dnnl_gOIhw16o16i2o = dnnl_aBCde16b16c2b,
dnnl_gOIhw4i4o = dnnl_aBCde4c4b,
dnnl_gOIhw4o4i = dnnl_aBCde4b4c,
dnnl_gOihw4o = dnnl_aBcde4b,
dnnl_Goihw8g = dnnl_Abcde8a,
dnnl_Goihw4g = dnnl_Abcde4a,
dnnl_gOIhw8i16o2i = dnnl_aBCde8c16b2c,
dnnl_gOIhw8i8o = dnnl_aBCde8c8b,
dnnl_gOIhw8o16i2o = dnnl_aBCde8b16c2b,
dnnl_gIOhw8o16i2o = dnnl_aCBde8b16c2b,
dnnl_gOIhw8o8i = dnnl_aBCde8b8c,
dnnl_gOIhw8o4i = dnnl_aBCde8b4c,
dnnl_Goihw32g = dnnl_Abcde32a,
dnnl_gOwhi16o = dnnl_aBedc16b,
dnnl_goIhw4i = dnnl_abCde4c,
dnnl_goIhw32i = dnnl_abCde32c,
dnnl_OIw4o8i8o4i = dnnl_ABc4a8b8a4b,
dnnl_OIhw4o8i8o4i = dnnl_ABcd4a8b8a4b,
dnnl_IOw4i8o8i4o = dnnl_BAc4b8a8b4a,
dnnl_IOhw4i8o8i4o = dnnl_BAcd4b8a8b4a,
dnnl_IOdhw4i8o8i4o = dnnl_BAcde4b8a8b4a,
dnnl_OIhw2o8i8o2i = dnnl_ABcd2a8b8a2b,
dnnl_gOIw4o8i8o4i = dnnl_aBCd4b8c8b4c,
dnnl_gOIhw4o8i8o4i = dnnl_aBCde4b8c8b4c,
dnnl_gOIdhw4o8i8o4i = dnnl_aBCdef4b8c8b4c,
dnnl_gIOw4i8o8i4o = dnnl_aCBd4c8b8c4b,
dnnl_gIOhw4i8o8i4o = dnnl_aCBde4c8b8c4b,
dnnl_gIOdhw4i8o8i4o = dnnl_aCBdef4c8b8c4b,
dnnl_gOIhw2o8i8o2i = dnnl_aBCde2b8c8b2c,
dnnl_gOIhw2i4o2i = dnnl_aBCde2c4b2c,
dnnl_gOIhw2o4i2o = dnnl_aBCde2b4c2b,
dnnl_gOIhw4i8o2i = dnnl_aBCde4c8b2c,
dnnl_gOIhw4o8i2o = dnnl_aBCde4b8c2b,
dnnl_gIOdhw16i16o = dnnl_aCBdef16c16b,
dnnl_gIOdhw16o16i = dnnl_aCBdef16b16c,
dnnl_gOdhwi16o = dnnl_aBdefc16b,
dnnl_gOdhwI16o2i = dnnl_aBdefC16b2c,
dnnl_gOdhwI16o4i = dnnl_aBdefC16b4c,
dnnl_gIdhwo8i = dnnl_aCdefb8c,
dnnl_gIdhwO8i2o = dnnl_aCdefB8c2b,
dnnl_gIdhwO8i4o = dnnl_aCdefB8c4b,
dnnl_gIdhwo16i = dnnl_aCdefb16c,
dnnl_gIdhwO16i2o = dnnl_aCdefB16c2b,
dnnl_gIdhwO16i4o = dnnl_aCdefB16c4b,
dnnl_gIdhwo24i = dnnl_aCdefb24c,
dnnl_gIdhwO24i2o = dnnl_aCdefB24c2b,
dnnl_gIdhwO24i4o = dnnl_aCdefB24c4b,
dnnl_gOdhwi4o = dnnl_aBdefc4b,
dnnl_gOdhwi8o = dnnl_aBdefc8b,
dnnl_gOdhwI8o2i = dnnl_aBdefC8b2c,
dnnl_gOdhwI8o4i = dnnl_aBdefC8b4c,
dnnl_gOdwhi16o = dnnl_aBdfec16b,
dnnl_gOIdhw16i16o = dnnl_aBCdef16c16b,
dnnl_gOIdhw4i16o4i = dnnl_aBCdef4c16b4c,
dnnl_gOIdhw16i16o4i = dnnl_aBCdef16c16b4c,
dnnl_gOIdhw2i8o4i = dnnl_aBCdef2c8b4c,
dnnl_gOIdhw16i16o2i = dnnl_aBCdef16c16b2c,
dnnl_gOIdhw16o16i = dnnl_aBCdef16b16c,
dnnl_gOIdhw16o16i2o = dnnl_aBCdef16b16c2b,
dnnl_gOidhw16o = dnnl_aBcdef16b,
dnnl_gOIdhw4i4o = dnnl_aBCdef4c4b,
dnnl_gOIdhw4o4i = dnnl_aBCdef4b4c,
dnnl_gOidhw4o = dnnl_aBcdef4b,
dnnl_gOIdhw8i16o2i = dnnl_aBCdef8c16b2c,
dnnl_gOIdhw8i8o = dnnl_aBCdef8c8b,
dnnl_gOIdhw8o16i2o = dnnl_aBCdef8b16c2b,
dnnl_gIOdhw8o16i2o = dnnl_aCBdef8b16c2b,
dnnl_gOIdhw8o8i = dnnl_aBCdef8b8c,
dnnl_gOIdhw8o4i = dnnl_aBCdef8b4c,
dnnl_Goidhw16g = dnnl_Abcdef16a,
dnnl_Goidhw32g = dnnl_Abcdef32a,
dnnl_gOIdhw2i4o2i = dnnl_aBCdef2c4b2c,
dnnl_gOIdhw4i8o2i = dnnl_aBCdef4c8b2c,
dnnl_gOIdhw2o4i2o = dnnl_aBCdef2b4c2b,
dnnl_gOIdhw4o8i2o = dnnl_aBCdef4b8c2b,
dnnl_goIdhw4i = dnnl_abCdef4c,
dnnl_goIdhw32i = dnnl_abCdef32c,
dnnl_Owi24o = dnnl_Acb24a,
dnnl_OwI24o2i = dnnl_AcB24a2b,
dnnl_OwI24o4i = dnnl_AcB24a4b,
dnnl_Owi32o = dnnl_Acb32a,
dnnl_OwI32o2i = dnnl_AcB32a2b,
dnnl_OwI32o4i = dnnl_AcB32a4b,
dnnl_Owi48o = dnnl_Acb48a,
dnnl_OwI48o2i = dnnl_AcB48a2b,
dnnl_OwI48o4i = dnnl_AcB48a4b,
dnnl_Owi64o = dnnl_Acb64a,
dnnl_OwI64o2i = dnnl_AcB64a2b,
dnnl_OwI64o4i = dnnl_AcB64a4b,
dnnl_Iwo32i = dnnl_Bca32b,
dnnl_IwO32i2o = dnnl_BcA32b2a,
dnnl_IwO32i4o = dnnl_BcA32b4a,
dnnl_Iwo48i = dnnl_Bca48b,
dnnl_IwO48i2o = dnnl_BcA48b2a,
dnnl_IwO48i4o = dnnl_BcA48b4a,
dnnl_Iwo64i = dnnl_Bca64b,
dnnl_IwO64i2o = dnnl_BcA64b2a,
dnnl_IwO64i4o = dnnl_BcA64b4a,
dnnl_wIo2i = dnnl_cBa2b,
dnnl_wIo4i = dnnl_cBa4b,
dnnl_gOwi24o = dnnl_aBdc24b,
dnnl_gOwI24o2i = dnnl_aBdC24b2c,
dnnl_gOwI24o4i = dnnl_aBdC24b4c,
dnnl_gOwi32o = dnnl_aBdc32b,
dnnl_gOwI32o2i = dnnl_aBdC32b2c,
dnnl_gOwI32o4i = dnnl_aBdC32b4c,
dnnl_gOwi48o = dnnl_aBdc48b,
dnnl_gOwI48o2i = dnnl_aBdC48b2c,
dnnl_gOwI48o4i = dnnl_aBdC48b4c,
dnnl_gOwi64o = dnnl_aBdc64b,
dnnl_gOwI64o2i = dnnl_aBdC64b2c,
dnnl_gOwI64o4i = dnnl_aBdC64b4c,
dnnl_gIwo32i = dnnl_aCdb32c,
dnnl_gIwO32i2o = dnnl_aCdB32c2b,
dnnl_gIwO32i4o = dnnl_aCdB32c4b,
dnnl_gIwo48i = dnnl_aCdb48c,
dnnl_gIwO48i2o = dnnl_aCdB48c2b,
dnnl_gIwO48i4o = dnnl_aCdB48c4b,
dnnl_gIwo64i = dnnl_aCdb64c,
dnnl_gIwO64i2o = dnnl_aCdB64c2b,
dnnl_gIwO64i4o = dnnl_aCdB64c4b,
dnnl_gwio = dnnl_adcb,
dnnl_gwIo2i = dnnl_adCb2c,
dnnl_gwIo4i = dnnl_adCb4c,
dnnl_OhwI24o = dnnl_Acdb24a,
dnnl_OhwI24o2i = dnnl_AcdB24a2b,
dnnl_OhwI24o4i = dnnl_AcdB24a4b,
dnnl_OhwI32o = dnnl_Acdb32a,
dnnl_OhwI32o2i = dnnl_AcdB32a2b,
dnnl_OhwI32o4i = dnnl_AcdB32a4b,
dnnl_Ohwi48o = dnnl_Acdb48a,
dnnl_OhwI48o2i = dnnl_AcdB48a2b,
dnnl_OhwI48o4i = dnnl_AcdB48a4b,
dnnl_Ohwi64o = dnnl_Acdb64a,
dnnl_OhwI64o2i = dnnl_AcdB64a2b,
dnnl_OhwI64o4i = dnnl_AcdB64a4b,
dnnl_Ihwo32i = dnnl_Bcda32b,
dnnl_IhwO32i2o = dnnl_BcdA32b2a,
dnnl_IhwO32i4o = dnnl_BcdA32b4a,
dnnl_Ihwo48i = dnnl_Bcda48b,
dnnl_IhwO48i2o = dnnl_BcdA48b2a,
dnnl_IhwO48i4o = dnnl_BcdA48b4a,
dnnl_Ihwo64i = dnnl_Bcda64b,
dnnl_IhwO64i2o = dnnl_BcdA64b2a,
dnnl_IhwO64i4o = dnnl_BcdA64b4a,
dnnl_hwIo2i = dnnl_cdBa2b,
dnnl_hwIo4i = dnnl_cdBa4b,
dnnl_gOhwI24o = dnnl_aBdec24b,
dnnl_gOhwI32o = dnnl_aBdec32b,
dnnl_gOhwI32o2i = dnnl_aBdeC32b2c,
dnnl_gOhwI32o4i = dnnl_aBdeC32b4c,
dnnl_gOhwi48o = dnnl_aBdec48b,
dnnl_gOhwI48o2i = dnnl_aBdeC48b2c,
dnnl_gOhwI48o4i = dnnl_aBdeC48b4c,
dnnl_gOhwi64o = dnnl_aBdec64b,
dnnl_gOhwI64o2i = dnnl_aBdeC64b2c,
dnnl_gOhwI64o4i = dnnl_aBdeC64b4c,
dnnl_gIhwo32i = dnnl_aCdeb32c,
dnnl_gIhwO32i2o = dnnl_aCdeB32c2b,
dnnl_gIhwO32i4o = dnnl_aCdeB32c4b,
dnnl_gIhwo48i = dnnl_aCdeb48c,
dnnl_gIhwO48i2o = dnnl_aCdeB48c2b,
dnnl_gIhwO48i4o = dnnl_aCdeB48c4b,
dnnl_gIhwo64i = dnnl_aCdeb64c,
dnnl_gIhwO64i2o = dnnl_aCdeB64c2b,
dnnl_gIhwO64i4o = dnnl_aCdeB64c4b,
dnnl_ghwio = dnnl_adecb,
dnnl_ghwIo2i = dnnl_adeCb2c,
dnnl_ghwIo4i = dnnl_adeCb4c,
dnnl_Odhwi24o = dnnl_Acdeb24a,
dnnl_OdhwI24o2i = dnnl_AcdeB24a2b,
dnnl_OdhwI24o4i = dnnl_AcdeB24a4b,
dnnl_Odhwi32o = dnnl_Acdeb32a,
dnnl_OdhwI32o2i = dnnl_AcdeB32a2b,
dnnl_OdhwI32o4i = dnnl_AcdeB32a4b,
dnnl_Odhwi48o = dnnl_Acdeb48a,
dnnl_OdhwI48o2i = dnnl_AcdeB48a2b,
dnnl_OdhwI48o4i = dnnl_AcdeB48a4b,
dnnl_Odhwi64o = dnnl_Acdeb64a,
dnnl_OdhwI64o2i = dnnl_AcdeB64a2b,
dnnl_OdhwI64o4i = dnnl_AcdeB64a4b,
dnnl_Idhwo32i = dnnl_Bcdea32b,
dnnl_IdhwO32i2o = dnnl_BcdeA32b2a,
dnnl_IdhwO32i4o = dnnl_BcdeA32b4a,
dnnl_Idhwo48i = dnnl_Bcdea48b,
dnnl_IdhwO48i2o = dnnl_BcdeA48b2a,
dnnl_IdhwO48i4o = dnnl_BcdeA48b4a,
dnnl_Idhwo64i = dnnl_Bcdea64b,
dnnl_IdhwO64i2o = dnnl_BcdeA64b2a,
dnnl_IdhwO64i4o = dnnl_BcdeA64b4a,
dnnl_dhwIo2i = dnnl_cdeBa2b,
dnnl_dhwIo4i = dnnl_cdeBa4b,
dnnl_gOdhwi24o = dnnl_aBdefc24b,
dnnl_gOdhwI24o2i = dnnl_aBdefC24b2c,
dnnl_gOdhwI24o4i = dnnl_aBdefC24b4c,
dnnl_gOdhwi32o = dnnl_aBdefc32b,
dnnl_gOdhwI32o2i = dnnl_aBdefC32b2c,
dnnl_gOdhwI32o4i = dnnl_aBdefC32b4c,
dnnl_gOdhwi48o = dnnl_aBdefc48b,
dnnl_gOdhwI48o2i = dnnl_aBdefC48b2c,
dnnl_gOdhwI48o4i = dnnl_aBdefC48b4c,
dnnl_gOdhwi64o = dnnl_aBdefc64b,
dnnl_gOdhwI64o2i = dnnl_aBdefC64b2c,
dnnl_gOdhwI64o4i = dnnl_aBdefC64b4c,
dnnl_gIdhwo32i = dnnl_aCdefb32c,
dnnl_gIdhwO32i2o = dnnl_aCdefB32c2b,
dnnl_gIdhwO32i4o = dnnl_aCdefB32c4b,
dnnl_gIdhwo48i = dnnl_aCdefb48c,
dnnl_gIdhwO48i2o = dnnl_aCdefB48c2b,
dnnl_gIdhwO48i4o = dnnl_aCdefB48c4b,
dnnl_gIdhwo64i = dnnl_aCdefb64c,
dnnl_gIdhwO64i2o = dnnl_aCdefB64c2b,
dnnl_gIdhwO64i4o = dnnl_aCdefB64c4b,
dnnl_gdhwio = dnnl_adefcb,
dnnl_gdhwIo2i = dnnl_adefCb2c,
dnnl_gdhwIo4i = dnnl_adefCb4c,
dnnl_OI16i32o4i = dnnl_AB16b32a4b,
dnnl_OI16i48o4i = dnnl_AB16b48a4b,
dnnl_OI16i64o4i = dnnl_AB16b64a4b,
dnnl_OI16i16o2i = dnnl_AB16b16a2b,
dnnl_OI16i32o2i = dnnl_AB16b32a2b,
dnnl_OI16i48o2i = dnnl_AB16b48a2b,
dnnl_OI16i64o2i = dnnl_AB16b64a2b,
dnnl_OIw16i32o4i = dnnl_ABc16b32a4b,
dnnl_OIw16i48o4i = dnnl_ABc16b48a4b,
dnnl_OIw16i64o4i = dnnl_ABc16b64a4b,
dnnl_OIw16i32o2i = dnnl_ABc16b32a2b,
dnnl_OIw16i48o2i = dnnl_ABc16b48a2b,
dnnl_OIw16i64o2i = dnnl_ABc16b64a2b,
dnnl_OIhw16i32o4i = dnnl_ABcd16b32a4b,
dnnl_OIhw16i48o4i = dnnl_ABcd16b48a4b,
dnnl_OIhw16i64o4i = dnnl_ABcd16b64a4b,
dnnl_OIhw16i32o2i = dnnl_ABcd16b32a2b,
dnnl_OIhw16i48o2i = dnnl_ABcd16b48a2b,
dnnl_OIhw16i64o2i = dnnl_ABcd16b64a2b,
dnnl_OIdhw16i32o4i = dnnl_ABcde16b32a4b,
dnnl_OIdhw16i48o4i = dnnl_ABcde16b48a4b,
dnnl_OIdhw16i64o4i = dnnl_ABcde16b64a4b,
dnnl_OIdhw16i32o2i = dnnl_ABcde16b32a2b,
dnnl_OIdhw16i48o2i = dnnl_ABcde16b48a2b,
dnnl_OIdhw16i64o2i = dnnl_ABcde16b64a2b,
dnnl_OwI16i16o2i = dnnl_AcB16b16a2b,
dnnl_OwI16i16o4i = dnnl_AcB16b16a4b,
dnnl_OhwI16i16o2i = dnnl_AcdB16b16a2b,
dnnl_OhwI16i16o4i = dnnl_AcdB16b16a4b,
dnnl_OdhwI16i16o2i = dnnl_AcdeB16b16a2b,
dnnl_OdhwI16i16o4i = dnnl_AcdeB16b16a4b,
dnnl_IwO16o16i2o = dnnl_BcA16a16b2a,
dnnl_IwO16o16i4o = dnnl_BcA16a16b4a,
dnnl_IhwO16o16i2o = dnnl_BcdA16a16b2a,
dnnl_IhwO16o16i4o = dnnl_BcdA16a16b4a,
dnnl_IdhwO16o16i2o = dnnl_BcdeA16a16b2a,
dnnl_IdhwO16o16i4o = dnnl_BcdeA16a16b4a,
dnnl_gOwI16i16o2i = dnnl_aBdC16c16b2c,
dnnl_gOwI16i16o4i = dnnl_aBdC16c16b4c,
dnnl_gOhwI16i16o2i = dnnl_aBdeC16c16b2c,
dnnl_gOhwI16i16o4i = dnnl_aBdeC16c16b4c,
dnnl_gOdhwI16i16o2i = dnnl_aBdefC16c16b2c,
dnnl_gOdhwI16i16o4i = dnnl_aBdefC16c16b4c,
dnnl_gIwO16o16i2o = dnnl_aCdB16b16c2b,
dnnl_gIwO16o16i4o = dnnl_aCdB16b16c4b,
dnnl_gIhwO16o16i2o = dnnl_aCdeB16b16c2b,
dnnl_gIhwO16o16i4o = dnnl_aCdeB16b16c4b,
dnnl_gIdhwO16o16i2o = dnnl_aCdefB16b16c2b,
dnnl_gIdhwO16o16i4o = dnnl_aCdefB16b16c4b,
dnnl_OwI16i32o2i = dnnl_AcB16b32a2b,
dnnl_OwI16i32o4i = dnnl_AcB16b32a4b,
dnnl_OwI16i48o2i = dnnl_AcB16b48a2b,
dnnl_OwI16i48o4i = dnnl_AcB16b48a4b,
dnnl_OwI16i64o2i = dnnl_AcB16b64a2b,
dnnl_OwI16i64o4i = dnnl_AcB16b64a4b,
dnnl_IwO16o32i2o = dnnl_BcA16a32b2a,
dnnl_IwO16o32i4o = dnnl_BcA16a32b4a,
dnnl_IwO16o48i2o = dnnl_BcA16a48b2a,
dnnl_IwO16o48i4o = dnnl_BcA16a48b4a,
dnnl_IwO16o64i2o = dnnl_BcA16a64b2a,
dnnl_IwO16o64i4o = dnnl_BcA16a64b4a,
dnnl_gOwI16i32o2i = dnnl_aBdC16c32b2c,
dnnl_gOwI16i32o4i = dnnl_aBdC16c32b4c,
dnnl_gOwI16i48o2i = dnnl_aBdC16c48b2c,
dnnl_gOwI16i48o4i = dnnl_aBdC16c48b4c,
dnnl_gOwI16i64o2i = dnnl_aBdC16c64b2c,
dnnl_gOwI16i64o4i = dnnl_aBdC16c64b4c,
dnnl_gIwO16o32i2o = dnnl_aCdB16b32c2b,
dnnl_gIwO16o32i4o = dnnl_aCdB16b32c4b,
dnnl_gIwO16o48i2o = dnnl_aCdB16b48c2b,
dnnl_gIwO16o48i4o = dnnl_aCdB16b48c4b,
dnnl_gIwO16o64i2o = dnnl_aCdB16b64c2b,
dnnl_gIwO16o64i4o = dnnl_aCdB16b64c4b,
dnnl_OhwI16i32o2i = dnnl_AcdB16b32a2b,
dnnl_OhwI16i32o4i = dnnl_AcdB16b32a4b,
dnnl_OhwI16i48o2i = dnnl_AcdB16b48a2b,
dnnl_OhwI16i48o4i = dnnl_AcdB16b48a4b,
dnnl_OhwI16i64o2i = dnnl_AcdB16b64a2b,
dnnl_OhwI16i64o4i = dnnl_AcdB16b64a4b,
dnnl_IhwO16o32i2o = dnnl_BcdA16a32b2a,
dnnl_IhwO16o32i4o = dnnl_BcdA16a32b4a,
dnnl_IhwO16o48i2o = dnnl_BcdA16a48b2a,
dnnl_IhwO16o48i4o = dnnl_BcdA16a48b4a,
dnnl_IhwO16o64i2o = dnnl_BcdA16a64b2a,
dnnl_IhwO16o64i4o = dnnl_BcdA16a64b4a,
dnnl_gOhwI16i32o2i = dnnl_aBdeC16c32b2c,
dnnl_gOhwI16i32o4i = dnnl_aBdeC16c32b4c,
dnnl_gOhwI16i48o2i = dnnl_aBdeC16c48b2c,
dnnl_gOhwI16i48o4i = dnnl_aBdeC16c48b4c,
dnnl_gOhwI16i64o2i = dnnl_aBdeC16c64b2c,
dnnl_gOhwI16i64o4i = dnnl_aBdeC16c64b4c,
dnnl_gIhwO16o32i2o = dnnl_aCdeB16b32c2b,
dnnl_gIhwO16o32i4o = dnnl_aCdeB16b32c4b,
dnnl_gIhwO16o48i2o = dnnl_aCdeB16b48c2b,
dnnl_gIhwO16o48i4o = dnnl_aCdeB16b48c4b,
dnnl_gIhwO16o64i2o = dnnl_aCdeB16b64c2b,
dnnl_gIhwO16o64i4o = dnnl_aCdeB16b64c4b,
dnnl_OdhwI16i32o2i = dnnl_AcdeB16b32a2b,
dnnl_OdhwI16i32o4i = dnnl_AcdeB16b32a4b,
dnnl_OdhwI16i48o2i = dnnl_AcdeB16b48a2b,
dnnl_OdhwI16i48o4i = dnnl_AcdeB16b48a4b,
dnnl_OdhwI16i64o2i = dnnl_AcdeB16b64a2b,
dnnl_OdhwI16i64o4i = dnnl_AcdeB16b64a4b,
dnnl_IdhwO16o32i2o = dnnl_BcdeA16a32b2a,
dnnl_IdhwO16o32i4o = dnnl_BcdeA16a32b4a,
dnnl_IdhwO16o48i2o = dnnl_BcdeA16a48b2a,
dnnl_IdhwO16o48i4o = dnnl_BcdeA16a48b4a,
dnnl_IdhwO16o64i2o = dnnl_BcdeA16a64b2a,
dnnl_IdhwO16o64i4o = dnnl_BcdeA16a64b4a,
dnnl_gOdhwI16i32o2i = dnnl_aBdefC16c32b2c,
dnnl_gOdhwI16i32o4i = dnnl_aBdefC16c32b4c,
dnnl_gOdhwI16i48o2i = dnnl_aBdefC16c48b2c,
dnnl_gOdhwI16i48o4i = dnnl_aBdefC16c48b4c,
dnnl_gOdhwI16i64o2i = dnnl_aBdefC16c64b2c,
dnnl_gOdhwI16i64o4i = dnnl_aBdefC16c64b4c,
dnnl_gIdhwO16o32i2o = dnnl_aCdefB16b32c2b,
dnnl_gIdhwO16o32i4o = dnnl_aCdefB16b32c4b,
dnnl_gIdhwO16o48i2o = dnnl_aCdefB16b48c2b,
dnnl_gIdhwO16o48i4o = dnnl_aCdefB16b48c4b,
dnnl_gIdhwO16o64i2o = dnnl_aCdefB16b64c2b,
dnnl_gIdhwO16o64i4o = dnnl_aCdefB16b64c4b,
dnnl_hwioG16g = dnnl_decbA16a,
dnnl_hwioG8g = dnnl_decbA8a,
dnnl_dhwioG16g = dnnl_defcbA16a,
dnnl_dhwioG8g = dnnl_defcbA8a,
dnnl_NCdhw40n16c = dnnl_ABcde40a16b,
dnnl_NCw40n16c = dnnl_ABc40a16b,
dnnl_NChw40n16c = dnnl_ABcd40a16b,
dnnl_NCw40n32c = dnnl_ABc40a32b,
dnnl_NChw40n32c = dnnl_ABcd40a32b,
dnnl_NCdhw40n32c = dnnl_ABcde40a32b,
dnnl_OIdhw4o8i8o2i = dnnl_ABcde4a8b8a2b,
dnnl_OIhw4o8i8o2i = dnnl_ABcd4a8b8a2b,
dnnl_OIw4o8i8o2i = dnnl_ABc4a8b8a2b,
dnnl_gOIdhw4o8i8o2i = dnnl_aBCdef4b8c8b2c,
dnnl_gOIhw4o8i8o2i = dnnl_aBCde4b8c8b2c,
dnnl_gOIw4o8i8o2i = dnnl_aBCd4b8c8b2c,
dnnl_IOdhw4i8o8i2o = dnnl_BAcde4b8a8b2a,
dnnl_IOhw4i8o8i2o = dnnl_BAcd4b8a8b2a,
dnnl_IOw4i8o8i2o = dnnl_BAc4b8a8b2a,
dnnl_gIOdhw4i8o8i2o = dnnl_aCBdef4c8b8c2b,
dnnl_gIOhw4i8o8i2o = dnnl_aCBde4c8b8c2b,
dnnl_gIOw4i8o8i2o = dnnl_aCBd4c8b8c2b,
dnnl_NCw2c32n8c = dnnl_ABc2b32a8b,
dnnl_NChw2c32n8c = dnnl_ABcd2b32a8b,
dnnl_NCdhw2c32n8c = dnnl_ABcde2b32a8b,
dnnl_OIw2i8o16i4o = dnnl_ABc2b8a16b4a,
dnnl_OIhw2i8o16i4o = dnnl_ABcd2b8a16b4a,
dnnl_OIdhw2i8o16i4o = dnnl_ABcde2b8a16b4a,
dnnl_OIw2o8i16o4i = dnnl_ABc2a8b16a4b,
dnnl_OIw2o8i16o2i = dnnl_ABc2a8b16a2b,
dnnl_IOw2i8o16i4o = dnnl_BAc2b8a16b4a,
dnnl_IOw2i8o16i2o = dnnl_BAc2b8a16b2a,
dnnl_OIhw2o8i16o4i = dnnl_ABcd2a8b16a4b,
dnnl_OIhw2o8i16o2i = dnnl_ABcd2a8b16a2b,
dnnl_IOhw2i8o16i4o = dnnl_BAcd2b8a16b4a,
dnnl_IOhw2i8o16i2o = dnnl_BAcd2b8a16b2a,
dnnl_OIdhw2o8i16o4i = dnnl_ABcde2a8b16a4b,
dnnl_OIdhw2o8i16o2i = dnnl_ABcde2a8b16a2b,
dnnl_IOdhw2i8o16i4o = dnnl_BAcde2b8a16b4a,
dnnl_IOdhw2i8o16i2o = dnnl_BAcde2b8a16b2a,
dnnl_gOIw2o8i16o2i = dnnl_aBCd2b8c16b2c,
dnnl_gIOw2i8o16i2o = dnnl_aCBd2c8b16c2b,
dnnl_gIOhw2i8o16i2o = dnnl_aBCde2c8b16c2b,
dnnl_gIOdhw2i8o16i2o = dnnl_aBCdef2c8b16c2b,
dnnl_gOIhw2o8i16o2i = dnnl_aBCde2b8c16b2c,
dnnl_gOIdhw2o8i16o2i = dnnl_aBCdef2b8c16b2c,
dnnl_gOIw2o8i16o4i = dnnl_aBCd2b8c16b4c,
dnnl_gOIhw2o8i16o4i = dnnl_aBCde2b8c16b4c,
} dnnl_format_tag_t;
# 1819 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
typedef enum {
dnnl_prop_kind_undef = 0,
dnnl_forward_training = 64,
dnnl_forward_inference = 96,
dnnl_forward = dnnl_forward_training,
dnnl_backward = 128,
dnnl_backward_data = 160,
dnnl_backward_weights = 192,
dnnl_backward_bias = 193,
} dnnl_prop_kind_t;
typedef enum {
dnnl_undefined_primitive,
dnnl_reorder,
dnnl_shuffle,
dnnl_concat,
dnnl_sum,
dnnl_convolution,
dnnl_deconvolution,
dnnl_eltwise,
dnnl_lrn,
dnnl_batch_normalization,
dnnl_inner_product,
dnnl_rnn,
dnnl_gemm,
dnnl_binary,
dnnl_matmul,
dnnl_resampling,
dnnl_pooling,
dnnl_reduction,
dnnl_prelu,
dnnl_softmax,
dnnl_layer_normalization,
dnnl_group_normalization,
dnnl_primitive_kind_max = 0x7fff,
} dnnl_primitive_kind_t;
typedef enum {
dnnl_alg_kind_undef,
dnnl_convolution_direct = 0x1,
dnnl_convolution_winograd = 0x2,
dnnl_convolution_auto = 0x3,
dnnl_deconvolution_direct = 0xa,
dnnl_deconvolution_winograd = 0xb,
dnnl_eltwise_relu = 0x20,
dnnl_eltwise_tanh,
dnnl_eltwise_elu,
dnnl_eltwise_square,
dnnl_eltwise_abs,
dnnl_eltwise_sqrt,
dnnl_eltwise_linear,
dnnl_eltwise_soft_relu,
dnnl_eltwise_hardsigmoid,
dnnl_eltwise_logistic,
dnnl_eltwise_exp,
dnnl_eltwise_gelu_tanh,
dnnl_eltwise_swish,
dnnl_eltwise_log,
dnnl_eltwise_clip,
dnnl_eltwise_clip_v2,
dnnl_eltwise_pow,
dnnl_eltwise_gelu_erf,
dnnl_eltwise_round,
dnnl_eltwise_mish,
dnnl_eltwise_hardswish,
dnnl_eltwise_relu_use_dst_for_bwd = 0x100,
dnnl_eltwise_tanh_use_dst_for_bwd,
dnnl_eltwise_elu_use_dst_for_bwd,
dnnl_eltwise_sqrt_use_dst_for_bwd,
dnnl_eltwise_logistic_use_dst_for_bwd,
dnnl_eltwise_exp_use_dst_for_bwd,
dnnl_eltwise_clip_v2_use_dst_for_bwd,
dnnl_pooling_max = 0x1ff,
dnnl_pooling_avg_include_padding = 0x2ff,
dnnl_pooling_avg_exclude_padding = 0x3ff,
dnnl_lrn_across_channels = 0xaff,
dnnl_lrn_within_channel = 0xbff,
dnnl_vanilla_rnn = 0x1fff,
dnnl_vanilla_lstm = 0x2fff,
dnnl_vanilla_gru = 0x3fff,
dnnl_lbr_gru = 0x4fff,
dnnl_vanilla_augru = 0x5fff,
dnnl_lbr_augru = 0x6fff,
dnnl_binary_add = 0x1fff0,
dnnl_binary_mul = 0x1fff1,
dnnl_binary_max = 0x1fff2,
dnnl_binary_min = 0x1fff3,
dnnl_binary_div = 0x1fff4,
dnnl_binary_sub = 0x1fff5,
dnnl_binary_ge = 0x1fff6,
dnnl_binary_gt = 0x1fff7,
dnnl_binary_le = 0x1fff8,
dnnl_binary_lt = 0x1fff9,
dnnl_binary_eq = 0x1fffa,
dnnl_binary_ne = 0x1fffb,
dnnl_resampling_nearest = 0x2fff0,
dnnl_resampling_linear = 0x2fff1,
dnnl_reduction_max,
dnnl_reduction_min,
dnnl_reduction_sum,
dnnl_reduction_mul,
dnnl_reduction_mean,
dnnl_reduction_norm_lp_max,
dnnl_reduction_norm_lp_sum,
dnnl_reduction_norm_lp_power_p_max,
dnnl_reduction_norm_lp_power_p_sum,
dnnl_softmax_accurate = 0x30000,
dnnl_softmax_log,
} dnnl_alg_kind_t;
typedef enum {
# 2057 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
dnnl_normalization_flags_none = 0x0U,
# 2070 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
dnnl_use_global_stats = 0x1U,
dnnl_use_scale = 0x2U,
# 2087 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
dnnl_use_shift = 0x4U,
# 2100 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
dnnl_fuse_norm_relu = 0x8U,
# 2114 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
dnnl_fuse_norm_add_relu = 0x10U,
} dnnl_normalization_flags_t;
# 2135 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
static const union {
unsigned u;
float f;
} DNNL_RUNTIME_F32_VAL_REP = {0x7fc000d0};
static const int DNNL_RUNTIME_S32_VAL_REP = (-2147483647-1);
# 2155 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
struct dnnl_memory_desc;
typedef struct dnnl_memory_desc *dnnl_memory_desc_t;
typedef const struct dnnl_memory_desc *const_dnnl_memory_desc_t;
struct dnnl_memory;
typedef struct dnnl_memory *dnnl_memory_t;
typedef const struct dnnl_memory *const_dnnl_memory_t;
# 2190 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
typedef enum {
dnnl_rnn_flags_undef = 0x0,
dnnl_rnn_flags_diff_weights_overwrite = 0x1,
} dnnl_rnn_flags_t;
typedef enum {
dnnl_rnn_direction_undef = 0,
dnnl_unidirectional_left2right,
dnnl_unidirectional_right2left,
dnnl_bidirectional_concat,
dnnl_bidirectional_sum,
} dnnl_rnn_direction_t;
# 2224 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
struct dnnl_primitive_desc;
typedef struct dnnl_primitive_desc *dnnl_primitive_desc_t;
typedef const struct dnnl_primitive_desc *const_dnnl_primitive_desc_t;
typedef enum {
# 2255 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
dnnl_scratchpad_mode_library,
dnnl_scratchpad_mode_user,
} dnnl_scratchpad_mode_t;
struct dnnl_primitive_attr;
typedef struct dnnl_primitive_attr *dnnl_primitive_attr_t;
typedef const struct dnnl_primitive_attr *const_dnnl_primitive_attr_t;
# 2295 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
struct dnnl_post_ops;
typedef struct dnnl_post_ops *dnnl_post_ops_t;
typedef const struct dnnl_post_ops *const_dnnl_post_ops_t;
# 2310 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
struct dnnl_primitive;
typedef struct dnnl_primitive *dnnl_primitive_t;
typedef const struct dnnl_primitive *const_dnnl_primitive_t;
# 2528 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
typedef struct {
int arg;
dnnl_memory_t memory;
} dnnl_exec_arg_t;
# 2585 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
typedef enum {
dnnl_query_undef = 0,
dnnl_query_engine,
dnnl_query_primitive_kind,
dnnl_query_num_of_inputs_s32,
dnnl_query_num_of_outputs_s32,
dnnl_query_time_estimate_f64,
dnnl_query_memory_consumption_s64,
dnnl_query_scratchpad_engine,
dnnl_query_impl_info_str,
dnnl_query_reorder_src_engine,
dnnl_query_reorder_dst_engine,
dnnl_query_prop_kind,
dnnl_query_cache_blob_id_size_s64,
dnnl_query_cache_blob_id,
dnnl_query_strides,
dnnl_query_dilations,
dnnl_query_padding_l,
dnnl_query_padding_r,
dnnl_query_epsilon_f32,
dnnl_query_flags,
dnnl_query_alg_kind,
dnnl_query_alpha_f32,
dnnl_query_beta_f32,
dnnl_query_axis_s32,
dnnl_query_local_size_s64,
dnnl_query_k_f32,
dnnl_query_p_f32,
dnnl_query_factors,
dnnl_query_cell_kind,
dnnl_query_direction,
dnnl_query_activation_kind,
dnnl_query_kernel,
dnnl_query_group_size_s64,
dnnl_query_some_md = 128,
dnnl_query_src_md,
dnnl_query_diff_src_md,
dnnl_query_weights_md,
dnnl_query_diff_weights_md,
dnnl_query_dst_md,
dnnl_query_diff_dst_md,
dnnl_query_workspace_md,
dnnl_query_scratchpad_md,
dnnl_query_exec_arg_md = 255,
dnnl_query_ndims_s32,
dnnl_query_dims,
dnnl_query_data_type,
dnnl_query_submemory_offset_s64,
dnnl_query_padded_dims,
dnnl_query_padded_offsets,
dnnl_query_format_kind,
dnnl_query_inner_nblks_s32,
dnnl_query_inner_blks,
dnnl_query_inner_idxs,
dnnl_query_max = 0x7fff,
} dnnl_query_t;
# 2693 "third_party/intel_dnnl/include/oneapi/dnnl/dnnl_types.h" 3
typedef enum {
dnnl_cpu_isa_default = 0x0,
dnnl_cpu_isa_sse41 = 0x1,
dnnl_cpu_isa_avx = 0x3,
dnnl_cpu_isa_avx2 = 0x7,
dnnl_cpu_isa_avx2_vnni = 0xf,
dnnl_cpu_isa_avx2_vnni_2 = 0x1f,
dnnl_cpu_isa_avx512_core = 0x27,
dnnl_cpu_isa_avx512_core_vnni = 0x67,
dnnl_cpu_isa_avx512_core_bf16 = 0xe7,
dnnl_cpu_isa_avx512_core_fp16 = 0x1ef,
dnnl_cpu_isa_avx512_core_amx = 0xfef,
dnnl_cpu_isa_avx512_core_amx_fp16 = 0x1fef,
} dnnl_cpu_isa_t;
typedef enum {
dnnl_cpu_isa_no_hints = 0x0,
dnnl_cpu_isa_prefer_ymm = 0x1,
} dnnl_cpu_isa_hints_t;
}
# 21 "third_party/intel_dnnl/src/common/c_types_map.hpp" 2 3
using primitive_iface_t = dnnl_primitive;
using primitive_desc_iface_t = dnnl_primitive_desc;
namespace dnnl {
namespace impl {
using dim_t = dnnl_dim_t;
using dims_t = dnnl_dims_t;
using stride_t = dnnl_dim_t;
using strides_t = dnnl_dims_t;
using status_t = dnnl_status_t;
namespace status {
const status_t success = dnnl_success;
const status_t out_of_memory = dnnl_out_of_memory;
const status_t invalid_arguments = dnnl_invalid_arguments;
const status_t unimplemented = dnnl_unimplemented;
const status_t last_impl_reached = dnnl_last_impl_reached;
const status_t runtime_error = dnnl_runtime_error;
const status_t not_required = dnnl_not_required;
}
using prop_kind_t = dnnl_prop_kind_t;
namespace prop_kind {
const prop_kind_t undef = dnnl_prop_kind_undef;
const prop_kind_t forward_training = dnnl_forward_training;
const prop_kind_t forward_inference = dnnl_forward_inference;
const prop_kind_t forward = dnnl_forward;
const prop_kind_t backward = dnnl_backward;
const prop_kind_t backward_data = dnnl_backward_data;
const prop_kind_t backward_weights = dnnl_backward_weights;
const prop_kind_t backward_bias = dnnl_backward_bias;
}
using alg_kind_t = dnnl_alg_kind_t;
namespace alg_kind {
const alg_kind_t undef = dnnl_alg_kind_undef;
const alg_kind_t convolution_auto = dnnl_convolution_auto;
const alg_kind_t convolution_direct = dnnl_convolution_direct;
const alg_kind_t convolution_winograd = dnnl_convolution_winograd;
const alg_kind_t deconvolution_direct = dnnl_deconvolution_direct;
const alg_kind_t deconvolution_winograd = dnnl_deconvolution_winograd;
const alg_kind_t eltwise_relu = dnnl_eltwise_relu;
const alg_kind_t eltwise_tanh = dnnl_eltwise_tanh;
const alg_kind_t eltwise_elu = dnnl_eltwise_elu;
const alg_kind_t eltwise_square = dnnl_eltwise_square;
const alg_kind_t eltwise_abs = dnnl_eltwise_abs;
const alg_kind_t eltwise_sqrt = dnnl_eltwise_sqrt;
const alg_kind_t eltwise_swish = dnnl_eltwise_swish;
const alg_kind_t eltwise_linear = dnnl_eltwise_linear;
const alg_kind_t eltwise_soft_relu = dnnl_eltwise_soft_relu;
const alg_kind_t eltwise_logistic = dnnl_eltwise_logistic;
const alg_kind_t eltwise_mish = dnnl_eltwise_mish;
const alg_kind_t eltwise_exp = dnnl_eltwise_exp;
const alg_kind_t eltwise_log = dnnl_eltwise_log;
const alg_kind_t eltwise_clip = dnnl_eltwise_clip;
const alg_kind_t eltwise_clip_v2 = dnnl_eltwise_clip_v2;
const alg_kind_t eltwise_pow = dnnl_eltwise_pow;
const alg_kind_t eltwise_gelu_tanh = dnnl_eltwise_gelu_tanh;
const alg_kind_t eltwise_gelu_erf = dnnl_eltwise_gelu_erf;
const alg_kind_t eltwise_hardswish = dnnl_eltwise_hardswish;
const alg_kind_t eltwise_hardsigmoid = dnnl_eltwise_hardsigmoid;
const alg_kind_t eltwise_relu_use_dst_for_bwd
= dnnl_eltwise_relu_use_dst_for_bwd;
const alg_kind_t eltwise_tanh_use_dst_for_bwd
= dnnl_eltwise_tanh_use_dst_for_bwd;
const alg_kind_t eltwise_elu_use_dst_for_bwd = dnnl_eltwise_elu_use_dst_for_bwd;
const alg_kind_t eltwise_sqrt_use_dst_for_bwd
= dnnl_eltwise_sqrt_use_dst_for_bwd;
const alg_kind_t eltwise_logistic_use_dst_for_bwd
= dnnl_eltwise_logistic_use_dst_for_bwd;
const alg_kind_t eltwise_exp_use_dst_for_bwd = dnnl_eltwise_exp_use_dst_for_bwd;
const alg_kind_t eltwise_clip_v2_use_dst_for_bwd
= dnnl_eltwise_clip_v2_use_dst_for_bwd;
const alg_kind_t eltwise_round = dnnl_eltwise_round;
const alg_kind_t pooling_max = dnnl_pooling_max;
const alg_kind_t pooling_avg_include_padding = dnnl_pooling_avg_include_padding;
const alg_kind_t pooling_avg_exclude_padding = dnnl_pooling_avg_exclude_padding;
const alg_kind_t lrn_across_channels = dnnl_lrn_across_channels;
const alg_kind_t lrn_within_channel = dnnl_lrn_within_channel;
const alg_kind_t vanilla_rnn = dnnl_vanilla_rnn;
const alg_kind_t vanilla_lstm = dnnl_vanilla_lstm;
const alg_kind_t vanilla_gru = dnnl_vanilla_gru;
const alg_kind_t lbr_gru = dnnl_lbr_gru;
const alg_kind_t vanilla_augru = dnnl_vanilla_augru;
const alg_kind_t lbr_augru = dnnl_lbr_augru;
const alg_kind_t binary_add = dnnl_binary_add;
const alg_kind_t binary_mul = dnnl_binary_mul;
const alg_kind_t binary_max = dnnl_binary_max;
const alg_kind_t binary_min = dnnl_binary_min;
const alg_kind_t binary_div = dnnl_binary_div;
const alg_kind_t binary_sub = dnnl_binary_sub;
const alg_kind_t binary_ge = dnnl_binary_ge;
const alg_kind_t binary_gt = dnnl_binary_gt;
const alg_kind_t binary_le = dnnl_binary_le;
const alg_kind_t binary_lt = dnnl_binary_lt;
const alg_kind_t binary_eq = dnnl_binary_eq;
const alg_kind_t binary_ne = dnnl_binary_ne;
const alg_kind_t resampling_nearest = dnnl_resampling_nearest;
const alg_kind_t resampling_linear = dnnl_resampling_linear;
const alg_kind_t reduction_max = dnnl_reduction_max;
const alg_kind_t reduction_min = dnnl_reduction_min;
const alg_kind_t reduction_sum = dnnl_reduction_sum;
const alg_kind_t reduction_mul = dnnl_reduction_mul;
const alg_kind_t reduction_mean = dnnl_reduction_mean;
const alg_kind_t reduction_norm_lp_max = dnnl_reduction_norm_lp_max;
const alg_kind_t reduction_norm_lp_sum = dnnl_reduction_norm_lp_sum;
const alg_kind_t reduction_norm_lp_power_p_max
= dnnl_reduction_norm_lp_power_p_max;
const alg_kind_t reduction_norm_lp_power_p_sum
= dnnl_reduction_norm_lp_power_p_sum;
const alg_kind_t softmax_accurate = dnnl_softmax_accurate;
const alg_kind_t softmax_log = dnnl_softmax_log;
}
using data_type_t = dnnl_data_type_t;
namespace data_type {
const data_type_t undef = dnnl_data_type_undef;
const data_type_t f16 = dnnl_f16;
const data_type_t bf16 = dnnl_bf16;
const data_type_t f32 = dnnl_f32;
const data_type_t f64 = dnnl_f64;
const data_type_t s32 = dnnl_s32;
const data_type_t s8 = dnnl_s8;
const data_type_t u8 = dnnl_u8;
const data_type_t boolean = dnnl_boolean;
const data_type_t data_type_max = dnnl_data_type_max;
const data_type_t tf32 = static_cast<data_type_t>(1 << 8);
}
using fpmath_mode_t = dnnl_fpmath_mode_t;
namespace fpmath_mode {
const fpmath_mode_t strict = dnnl_fpmath_mode_strict;
const fpmath_mode_t bf16 = dnnl_fpmath_mode_bf16;
const fpmath_mode_t f16 = dnnl_fpmath_mode_f16;
const fpmath_mode_t tf32 = dnnl_fpmath_mode_tf32;
const fpmath_mode_t any = dnnl_fpmath_mode_any;
}
using scratchpad_mode_t = dnnl_scratchpad_mode_t;
namespace scratchpad_mode {
const scratchpad_mode_t library = dnnl_scratchpad_mode_library;
const scratchpad_mode_t user = dnnl_scratchpad_mode_user;
}
# 187 "third_party/intel_dnnl/src/common/c_types_map.hpp" 3
using sparse_encoding_t = int;
namespace sparse_encoding {
const sparse_encoding_t undef = 0;
const sparse_encoding_t csr = 1;
}
using format_kind_t = dnnl_format_kind_t;
namespace format_kind {
const format_kind_t undef = dnnl_format_kind_undef;
const format_kind_t any = dnnl_format_kind_any;
const format_kind_t blocked = dnnl_blocked;
const format_kind_t opaque = dnnl_format_kind_opaque;
const format_kind_t sparse = dnnl_format_kind_undef;
const format_kind_t internal_only_start = (format_kind_t)(1 << 8);
const format_kind_t wino = internal_only_start;
const format_kind_t rnn_packed = (format_kind_t)(internal_only_start + 1);
}
using profiling_data_kind_t = int;
namespace profiling_data_kind {
const profiling_data_kind_t undef = 0;
const profiling_data_kind_t time = 1;
const profiling_data_kind_t internal_only_start
= (profiling_data_kind_t)(1 << 8);
const profiling_data_kind_t cycles
= (profiling_data_kind_t)(internal_only_start + 1);
}
using format_tag_t = dnnl_format_tag_t;
namespace format_tag {
const format_tag_t undef = dnnl_format_tag_undef;
const format_tag_t any = dnnl_format_tag_any;
const format_tag_t a = dnnl_a;
const format_tag_t ab = dnnl_ab;
const format_tag_t abc = dnnl_abc;
const format_tag_t abcd = dnnl_abcd;
const format_tag_t abcde = dnnl_abcde;
const format_tag_t abcdef = dnnl_abcdef;
const format_tag_t abcdefg = dnnl_abcdefg;
const format_tag_t abcdefgh = dnnl_abcdefgh;
const format_tag_t abcdefghi = dnnl_abcdefghi;
const format_tag_t abcdefghij = dnnl_abcdefghij;
const format_tag_t abcdefghijk = dnnl_abcdefghijk;
const format_tag_t abcdefghijkl = dnnl_abcdefghijkl;
const format_tag_t abcdefghijlk = dnnl_abcdefghijlk;
const format_tag_t abcdefghikj = dnnl_abcdefghikj;
const format_tag_t abcdefghji = dnnl_abcdefghji;
const format_tag_t abcdefgih = dnnl_abcdefgih;
const format_tag_t abcdefhg = dnnl_abcdefhg;
const format_tag_t abcdegf = dnnl_abcdegf;
const format_tag_t abcdfe = dnnl_abcdfe;
const format_tag_t abced = dnnl_abced;
const format_tag_t abdc = dnnl_abdc;
const format_tag_t acbd = dnnl_acbd;
const format_tag_t abdec = dnnl_abdec;
const format_tag_t abdfce = dnnl_abdfce;
const format_tag_t acb = dnnl_acb;
const format_tag_t acbde = dnnl_acbde;
const format_tag_t acbdef = dnnl_acbdef;
const format_tag_t abdefc = dnnl_abdefc;
const format_tag_t acdb = dnnl_acdb;
const format_tag_t acdeb = dnnl_acdeb;
const format_tag_t adbc = dnnl_adbc;
const format_tag_t ba = dnnl_ba;
const format_tag_t bac = dnnl_bac;
const format_tag_t bacd = dnnl_bacd;
const format_tag_t bca = dnnl_bca;
const format_tag_t bcda = dnnl_bcda;
const format_tag_t bcdea = dnnl_bcdea;
const format_tag_t bacde = dnnl_bacde;
const format_tag_t cab = dnnl_cab;
const format_tag_t cba = dnnl_cba;
const format_tag_t cdab = dnnl_cdab;
const format_tag_t cdba = dnnl_cdba;
const format_tag_t dcab = dnnl_dcab;
const format_tag_t cdeab = dnnl_cdeab;
const format_tag_t cdeba = dnnl_cdeba;
const format_tag_t decab = dnnl_decab;
const format_tag_t defcab = dnnl_defcab;
const format_tag_t AB16b16a = dnnl_AB16b16a;
const format_tag_t AB16b32a = dnnl_AB16b32a;
const format_tag_t AB16b48a = dnnl_AB16b48a;
const format_tag_t AB16b64a = dnnl_AB16b64a;
const format_tag_t AB8b16a2b = dnnl_AB8b16a2b;
const format_tag_t AB8b32a2b = dnnl_AB8b32a2b;
const format_tag_t AB8b64a2b = dnnl_AB8b64a2b;
const format_tag_t AB4b8a4b = dnnl_AB4b8a4b;
const format_tag_t AB4b16a4b = dnnl_AB4b16a4b;
const format_tag_t AB4b24a4b = dnnl_AB4b24a4b;
const format_tag_t AB4b32a4b = dnnl_AB4b32a4b;
const format_tag_t AB4b64a4b = dnnl_AB4b64a4b;
const format_tag_t AB32a16b = dnnl_AB32a16b;
const format_tag_t AB32a32b = dnnl_AB32a32b;
const format_tag_t AB48a16b = dnnl_AB48a16b;
const format_tag_t AB48a32b = dnnl_AB48a32b;
const format_tag_t BA4b8a8b2a = dnnl_BA4b8a8b2a;
const format_tag_t BA4b8a8b4a = dnnl_BA4b8a8b4a;
const format_tag_t BA4b8a16b2a = dnnl_BA4b8a16b2a;
const format_tag_t BA4b8a16b4a = dnnl_BA4b8a16b4a;
const format_tag_t aBC32b16c = dnnl_aBC32b16c;
const format_tag_t aBC32b32c = dnnl_aBC32b32c;
const format_tag_t aBC48b16c = dnnl_aBC48b16c;
const format_tag_t aBC48b32c = dnnl_aBC48b32c;
const format_tag_t aCB4c8b8c2b = dnnl_aCB4c8b8c2b;
const format_tag_t aCB4c8b8c4b = dnnl_aCB4c8b8c4b;
const format_tag_t aCB4c8b16c2b = dnnl_aCB4c8b16c2b;
const format_tag_t aCB4c8b16c4b = dnnl_aCB4c8b16c4b;
const format_tag_t AB16b16a4b = dnnl_AB16b16a4b;
const format_tag_t AB16b32a4b = dnnl_AB16b32a4b;
const format_tag_t AB16b48a4b = dnnl_AB16b48a4b;
const format_tag_t AB16b64a4b = dnnl_AB16b64a4b;
const format_tag_t AB16b16a2b = dnnl_AB16b16a2b;
const format_tag_t AB16b32a2b = dnnl_AB16b32a2b;
const format_tag_t AB16b48a2b = dnnl_AB16b48a2b;
const format_tag_t AB16b64a2b = dnnl_AB16b64a2b;
const format_tag_t BA16a16b = dnnl_BA16a16b;
const format_tag_t BA16a32b = dnnl_BA16a32b;
const format_tag_t BA16a48b = dnnl_BA16a48b;
const format_tag_t BA16a64b = dnnl_BA16a64b;
const format_tag_t BA16a16b2a = dnnl_BA16a16b2a;
const format_tag_t BA16a32b2a = dnnl_BA16a32b2a;
const format_tag_t BA16a48b2a = dnnl_BA16a48b2a;
const format_tag_t BA16a64b2a = dnnl_BA16a64b2a;
const format_tag_t BA16a16b4a = dnnl_BA16a16b4a;
const format_tag_t BA16a32b4a = dnnl_BA16a32b4a;
const format_tag_t BA16a48b4a = dnnl_BA16a48b4a;
const format_tag_t BA16a64b4a = dnnl_BA16a64b4a;
const format_tag_t aCB16b16c = dnnl_aCB16b16c;
const format_tag_t aCB16b32c = dnnl_aCB16b32c;
const format_tag_t aCB16b48c = dnnl_aCB16b48c;
const format_tag_t aCB16b64c = dnnl_aCB16b64c;
const format_tag_t aCB16b16c2b = dnnl_aCB16b16c2b;
const format_tag_t aCB16b32c2b = dnnl_aCB16b32c2b;
const format_tag_t aCB16b48c2b = dnnl_aCB16b48c2b;
const format_tag_t aCB16b64c2b = dnnl_aCB16b64c2b;
const format_tag_t aCB16b16c4b = dnnl_aCB16b16c4b;
const format_tag_t aCB16b32c4b = dnnl_aCB16b32c4b;
const format_tag_t aCB16b48c4b = dnnl_aCB16b48c4b;
const format_tag_t aCB16b64c4b = dnnl_aCB16b64c4b;
const format_tag_t Abc16a = dnnl_Abc16a;
const format_tag_t ABc16a16b = dnnl_ABc16a16b;
const format_tag_t ABc4a2b = dnnl_ABc4a2b;
const format_tag_t ABc4a4b = dnnl_ABc4a4b;
const format_tag_t aBc16b = dnnl_aBc16b;
const format_tag_t aBc32b = dnnl_aBc32b;
const format_tag_t ABc16b16a = dnnl_ABc16b16a;
const format_tag_t ABc16b32a = dnnl_ABc16b32a;
const format_tag_t ABc16b48a = dnnl_ABc16b48a;
const format_tag_t ABc16b64a = dnnl_ABc16b64a;
const format_tag_t Abc4a = dnnl_Abc4a;
const format_tag_t aBc4b = dnnl_aBc4b;
const format_tag_t ABc4b8a4b = dnnl_ABc4b8a4b;
const format_tag_t ABc4b16a4b = dnnl_ABc4b16a4b;
const format_tag_t ABc4b24a4b = dnnl_ABc4b24a4b;
const format_tag_t ABc4b32a4b = dnnl_ABc4b32a4b;
const format_tag_t ABc4b64a4b = dnnl_ABc4b64a4b;
const format_tag_t ABc2b8a4b = dnnl_ABc2b8a4b;
const format_tag_t ABc16b16a4b = dnnl_ABc16b16a4b;
const format_tag_t ABc16b32a4b = dnnl_ABc16b32a4b;
const format_tag_t ABc16b48a4b = dnnl_ABc16b48a4b;
const format_tag_t ABc16b64a4b = dnnl_ABc16b64a4b;
const format_tag_t ABc16b16a2b = dnnl_ABc16b16a2b;
const format_tag_t ABc16b32a2b = dnnl_ABc16b32a2b;
const format_tag_t ABc16b48a2b = dnnl_ABc16b48a2b;
const format_tag_t ABc16b64a2b = dnnl_ABc16b64a2b;
const format_tag_t ABc16a16b2a = dnnl_ABc16a16b2a;
const format_tag_t ABc4b4a = dnnl_ABc4b4a;
const format_tag_t ABc8a16b2a = dnnl_ABc8a16b2a;
const format_tag_t BAc8a16b2a = dnnl_BAc8a16b2a;
const format_tag_t ABc8a8b = dnnl_ABc8a8b;
const format_tag_t ABc8a2b = dnnl_ABc8a2b;
const format_tag_t ABc8a4b = dnnl_ABc8a4b;
const format_tag_t aBc8b = dnnl_aBc8b;
const format_tag_t ABc8b16a2b = dnnl_ABc8b16a2b;
const format_tag_t ABc8b32a2b = dnnl_ABc8b32a2b;
const format_tag_t ABc8b64a2b = dnnl_ABc8b64a2b;
const format_tag_t ABc8b8a = dnnl_ABc8b8a;
const format_tag_t Abcd16a = dnnl_Abcd16a;
const format_tag_t Abcd8a = dnnl_Abcd8a;
const format_tag_t Abcd32a = dnnl_Abcd32a;
const format_tag_t ABcd16a16b = dnnl_ABcd16a16b;
const format_tag_t aBcd16b = dnnl_aBcd16b;
const format_tag_t aBcd32b = dnnl_aBcd32b;
const format_tag_t ABcd16b16a = dnnl_ABcd16b16a;
const format_tag_t ABcd16b32a = dnnl_ABcd16b32a;
const format_tag_t ABcd16b48a = dnnl_ABcd16b48a;
const format_tag_t ABcd16b64a = dnnl_ABcd16b64a;
const format_tag_t aBCd16b16c = dnnl_aBCd16b16c;
const format_tag_t aBCd16c16b = dnnl_aBCd16c16b;
const format_tag_t Abcd4a = dnnl_Abcd4a;
const format_tag_t aBcd4b = dnnl_aBcd4b;
const format_tag_t ABcd4b8a4b = dnnl_ABcd4b8a4b;
const format_tag_t ABcd4b16a4b = dnnl_ABcd4b16a4b;
const format_tag_t ABcd4b24a4b = dnnl_ABcd4b24a4b;
const format_tag_t ABcd4b32a4b = dnnl_ABcd4b32a4b;
const format_tag_t ABcd4b64a4b = dnnl_ABcd4b64a4b;
const format_tag_t ABcd16b16a4b = dnnl_ABcd16b16a4b;
const format_tag_t ABcd16b32a4b = dnnl_ABcd16b32a4b;
const format_tag_t ABcd16b48a4b = dnnl_ABcd16b48a4b;
const format_tag_t ABcd16b64a4b = dnnl_ABcd16b64a4b;
const format_tag_t ABcd16b16a2b = dnnl_ABcd16b16a2b;
const format_tag_t ABcd16b32a2b = dnnl_ABcd16b32a2b;
const format_tag_t ABcd16b48a2b = dnnl_ABcd16b48a2b;
const format_tag_t ABcd16b64a2b = dnnl_ABcd16b64a2b;
const format_tag_t ABcd16a16b2a = dnnl_ABcd16a16b2a;
const format_tag_t ABcde16a16b2a = dnnl_ABcde16a16b2a;
const format_tag_t ABcd4b4a = dnnl_ABcd4b4a;
const format_tag_t ABcd4a2b = dnnl_ABcd4a2b;
const format_tag_t ABcd4a4b = dnnl_ABcd4a4b;
const format_tag_t aBCd4c16b4c = dnnl_aBCd4c16b4c;
const format_tag_t aBCd2c8b4c = dnnl_aBCd2c8b4c;
const format_tag_t aBCd16c16b4c = dnnl_aBCd16c16b4c;
const format_tag_t aBCd16c16b2c = dnnl_aBCd16c16b2c;
const format_tag_t aBCd16b16c2b = dnnl_aBCd16b16c2b;
const format_tag_t aBCd4c4b = dnnl_aBCd4c4b;
const format_tag_t aBCd4b4c = dnnl_aBCd4b4c;
const format_tag_t ABcd8a16b2a = dnnl_ABcd8a16b2a;
const format_tag_t BAcd8a16b2a = dnnl_BAcd8a16b2a;
const format_tag_t ABcd8a8b = dnnl_ABcd8a8b;
const format_tag_t ABcd8a4b = dnnl_ABcd8a4b;
const format_tag_t ABcd8a2b = dnnl_ABcd8a2b;
const format_tag_t aBcd8b = dnnl_aBcd8b;
const format_tag_t ABcd8b16a2b = dnnl_ABcd8b16a2b;
const format_tag_t ABcd8b32a2b = dnnl_ABcd8b32a2b;
const format_tag_t ABcd8b64a2b = dnnl_ABcd8b64a2b;
const format_tag_t ABcd2b8a4b = dnnl_ABcd2b8a4b;
const format_tag_t aBCd8b16c2b = dnnl_aBCd8b16c2b;
const format_tag_t aCBd8b16c2b = dnnl_aCBd8b16c2b;
const format_tag_t aBCd2c8b16c2b = dnnl_aBCd2c8b16c2b;
const format_tag_t ABcd8b8a = dnnl_ABcd8b8a;
const format_tag_t aBCd8b8c = dnnl_aBCd8b8c;
const format_tag_t aBCd8b2c = dnnl_aBCd8b2c;
const format_tag_t aBCd8b4c = dnnl_aBCd8b4c;
const format_tag_t aBCd8c16b2c = dnnl_aBCd8c16b2c;
const format_tag_t aBCd8c8b = dnnl_aBCd8c8b;
const format_tag_t Abcde16a = dnnl_Abcde16a;
const format_tag_t Abcde32a = dnnl_Abcde32a;
const format_tag_t ABcde16a16b = dnnl_ABcde16a16b;
const format_tag_t aBcde16b = dnnl_aBcde16b;
const format_tag_t aBcde32b = dnnl_aBcde32b;
const format_tag_t ABcde16b16a = dnnl_ABcde16b16a;
const format_tag_t ABcde16b32a = dnnl_ABcde16b32a;
const format_tag_t ABcde16b48a = dnnl_ABcde16b48a;
const format_tag_t ABcde16b64a = dnnl_ABcde16b64a;
const format_tag_t aBCde16b16c = dnnl_aBCde16b16c;
const format_tag_t aBCde16c16b = dnnl_aBCde16c16b;
const format_tag_t aBCde2c8b4c = dnnl_aBCde2c8b4c;
const format_tag_t Abcde4a = dnnl_Abcde4a;
const format_tag_t aBcde4b = dnnl_aBcde4b;
const format_tag_t ABcde4b4a = dnnl_ABcde4b4a;
const format_tag_t ABcde4a2b = dnnl_ABcde4a2b;
const format_tag_t ABcde4a4b = dnnl_ABcde4a4b;
const format_tag_t aBCde4b4c = dnnl_aBCde4b4c;
const format_tag_t aBCde4c16b4c = dnnl_aBCde4c16b4c;
const format_tag_t aBCde16c16b4c = dnnl_aBCde16c16b4c;
const format_tag_t aBCde16c16b2c = dnnl_aBCde16c16b2c;
const format_tag_t aBCde16b16c2b = dnnl_aBCde16b16c2b;
const format_tag_t aBCde4c4b = dnnl_aBCde4c4b;
const format_tag_t Abcde8a = dnnl_Abcde8a;
const format_tag_t ABcde8a8b = dnnl_ABcde8a8b;
const format_tag_t ABcde8a2b = dnnl_ABcde8a2b;
const format_tag_t ABcde8a4b = dnnl_ABcde8a4b;
const format_tag_t aBcde8b = dnnl_aBcde8b;
const format_tag_t ABcde8b16a2b = dnnl_ABcde8b16a2b;
const format_tag_t ABcde8b32a2b = dnnl_ABcde8b32a2b;
const format_tag_t ABcde8b64a2b = dnnl_ABcde8b64a2b;
const format_tag_t ABcde8a16b2a = dnnl_ABcde8a16b2a;
const format_tag_t BAcde8a16b2a = dnnl_BAcde8a16b2a;
const format_tag_t ABcde4b8a4b = dnnl_ABcde4b8a4b;
const format_tag_t ABcde4b16a4b = dnnl_ABcde4b16a4b;
const format_tag_t ABcde4b24a4b = dnnl_ABcde4b24a4b;
const format_tag_t ABcde4b32a4b = dnnl_ABcde4b32a4b;
const format_tag_t ABcde4b64a4b = dnnl_ABcde4b64a4b;
const format_tag_t ABcde16b16a4b = dnnl_ABcde16b16a4b;
const format_tag_t ABcde16b32a4b = dnnl_ABcde16b32a4b;
const format_tag_t ABcde16b48a4b = dnnl_ABcde16b48a4b;
const format_tag_t ABcde16b64a4b = dnnl_ABcde16b64a4b;
const format_tag_t ABcde2b8a4b = dnnl_ABcde2b8a4b;
const format_tag_t aBCde8b16c2b = dnnl_aBCde8b16c2b;
const format_tag_t aCBde8b16c2b = dnnl_aCBde8b16c2b;
const format_tag_t ABcde8b8a = dnnl_ABcde8b8a;
const format_tag_t aBCde8b8c = dnnl_aBCde8b8c;
const format_tag_t aBCde8b2c = dnnl_aBCde8b2c;
const format_tag_t aBCde8b4c = dnnl_aBCde8b4c;
const format_tag_t ABc4a8b8a4b = dnnl_ABc4a8b8a4b;
const format_tag_t ABcd4a8b8a4b = dnnl_ABcd4a8b8a4b;
const format_tag_t ABcde4a8b8a4b = dnnl_ABcde4a8b8a4b;
const format_tag_t ABcd2a8b8a2b = dnnl_ABcd2a8b8a2b;
const format_tag_t ABcde4a8b8a2b = dnnl_ABcde4a8b8a2b;
const format_tag_t ABcd4a8b8a2b = dnnl_ABcd4a8b8a2b;
const format_tag_t ABc4a8b8a2b = dnnl_ABc4a8b8a2b;
const format_tag_t aBCdef4b8c8b2c = dnnl_aBCdef4b8c8b2c;
const format_tag_t aBCde4b8c8b2c = dnnl_aBCde4b8c8b2c;
const format_tag_t aBCd4b8c8b2c = dnnl_aBCd4b8c8b2c;
const format_tag_t BAcde4b8a8b2a = dnnl_BAcde4b8a8b2a;
const format_tag_t BAcd4b8a8b2a = dnnl_BAcd4b8a8b2a;
const format_tag_t BAc4b8a8b2a = dnnl_BAc4b8a8b2a;
const format_tag_t aCBdef4c8b8c2b = dnnl_aCBdef4c8b8c2b;
const format_tag_t aCBde4c8b8c2b = dnnl_aCBde4c8b8c2b;
const format_tag_t aCBd4c8b8c2b = dnnl_aCBd4c8b8c2b;
const format_tag_t aBCd4b8c8b4c = dnnl_aBCd4b8c8b4c;
const format_tag_t aBCde4b8c8b4c = dnnl_aBCde4b8c8b4c;
const format_tag_t aBCdef4b8c8b4c = dnnl_aBCdef4b8c8b4c;
const format_tag_t BAc4b8a8b4a = dnnl_BAc4b8a8b4a;
const format_tag_t BAcd4b8a8b4a = dnnl_BAcd4b8a8b4a;
const format_tag_t BAcde4b8a8b4a = dnnl_BAcde4b8a8b4a;
const format_tag_t aCBd4c8b8c4b = dnnl_aCBd4c8b8c4b;
const format_tag_t aCBde4c8b8c4b = dnnl_aCBde4c8b8c4b;
const format_tag_t aCBdef4c8b8c4b = dnnl_aCBdef4c8b8c4b;
const format_tag_t aBCde2b8c8b2c = dnnl_aBCde2b8c8b2c;
const format_tag_t aBCde8c16b2c = dnnl_aBCde8c16b2c;
const format_tag_t aBCde8c8b = dnnl_aBCde8c8b;
const format_tag_t aBcdef16b = dnnl_aBcdef16b;
const format_tag_t aBCdef16b16c = dnnl_aBCdef16b16c;
const format_tag_t aBCdef16b16c2b = dnnl_aBCdef16b16c2b;
const format_tag_t aBCdef16c16b = dnnl_aBCdef16c16b;
const format_tag_t aBCdef4c16b4c = dnnl_aBCdef4c16b4c;
const format_tag_t aBCdef2c8b4c = dnnl_aBCdef2c8b4c;
const format_tag_t aBcdef4b = dnnl_aBcdef4b;
const format_tag_t aBCdef4c4b = dnnl_aBCdef4c4b;
const format_tag_t aBCdef4b4c = dnnl_aBCdef4b4c;
const format_tag_t aBCdef8b8c = dnnl_aBCdef8b8c;
const format_tag_t aBCdef8b2c = dnnl_aBCdef8b2c;
const format_tag_t aBCdef8b4c = dnnl_aBCdef8b4c;
const format_tag_t aBCdef8c16b2c = dnnl_aBCdef8c16b2c;
const format_tag_t aBCdef8b16c2b = dnnl_aBCdef8b16c2b;
const format_tag_t aCBdef8b16c2b = dnnl_aCBdef8b16c2b;
const format_tag_t aBCdef8c8b = dnnl_aBCdef8c8b;
const format_tag_t aBdc16b = dnnl_aBdc16b;
const format_tag_t aBdC16b2c = dnnl_aBdC16b2c;
const format_tag_t aBdC16b4c = dnnl_aBdC16b4c;
const format_tag_t aBdc4b = dnnl_aBdc4b;
const format_tag_t aBdc8b = dnnl_aBdc8b;
const format_tag_t aBdC8b2c = dnnl_aBdC8b2c;
const format_tag_t aBdC8b4c = dnnl_aBdC8b4c;
const format_tag_t aBdec16b = dnnl_aBdec16b;
const format_tag_t aBdeC16b2c = dnnl_aBdeC16b2c;
const format_tag_t aBdeC16b4c = dnnl_aBdeC16b4c;
const format_tag_t aBdec4b = dnnl_aBdec4b;
const format_tag_t aBdec8b = dnnl_aBdec8b;
const format_tag_t aBdeC8b2c = dnnl_aBdeC8b2c;
const format_tag_t aBdeC8b4c = dnnl_aBdeC8b4c;
const format_tag_t aBdefc16b = dnnl_aBdefc16b;
const format_tag_t aBdefC16b2c = dnnl_aBdefC16b2c;
const format_tag_t aBdefC16b4c = dnnl_aBdefC16b4c;
const format_tag_t aCBdef16c16b = dnnl_aCBdef16c16b;
const format_tag_t aCBdef16b16c = dnnl_aCBdef16b16c;
const format_tag_t aBdefc4b = dnnl_aBdefc4b;
const format_tag_t aBdefc8b = dnnl_aBdefc8b;
const format_tag_t aBdefC8b2c = dnnl_aBdefC8b2c;
const format_tag_t aBdefC8b4c = dnnl_aBdefC8b4c;
const format_tag_t aBdfec16b = dnnl_aBdfec16b;
const format_tag_t aBedc16b = dnnl_aBedc16b;
const format_tag_t Acb16a = dnnl_Acb16a;
const format_tag_t AcB16a2b = dnnl_AcB16a2b;
const format_tag_t AcB16a4b = dnnl_AcB16a4b;
const format_tag_t Acb4a = dnnl_Acb4a;
const format_tag_t Acb8a = dnnl_Acb8a;
const format_tag_t AcB8a2b = dnnl_AcB8a2b;
const format_tag_t AcB8a4b = dnnl_AcB8a4b;
const format_tag_t aCBd16b16c = dnnl_aCBd16b16c;
const format_tag_t aCBd16c16b = dnnl_aCBd16c16b;
const format_tag_t aCBde16b16c = dnnl_aCBde16b16c;
const format_tag_t aCBde16c16b = dnnl_aCBde16c16b;
const format_tag_t Acdb16a = dnnl_Acdb16a;
const format_tag_t AcdB16a2b = dnnl_AcdB16a2b;
const format_tag_t AcdB16a4b = dnnl_AcdB16a4b;
const format_tag_t Acdb4a = dnnl_Acdb4a;
const format_tag_t Acdb8a = dnnl_Acdb8a;
const format_tag_t AcdB8a2b = dnnl_AcdB8a2b;
const format_tag_t AcdB8a4b = dnnl_AcdB8a4b;
const format_tag_t Acdeb16a = dnnl_Acdeb16a;
const format_tag_t AcdeB16a2b = dnnl_AcdeB16a2b;
const format_tag_t AcdeB16a4b = dnnl_AcdeB16a4b;
const format_tag_t Acdeb4a = dnnl_Acdeb4a;
const format_tag_t Acdeb8a = dnnl_Acdeb8a;
const format_tag_t AcdeB8a2b = dnnl_AcdeB8a2b;
const format_tag_t AcdeB8a4b = dnnl_AcdeB8a4b;
const format_tag_t Acedb16a = dnnl_Acedb16a;
const format_tag_t Adcb16a = dnnl_Adcb16a;
const format_tag_t BAc16a16b = dnnl_BAc16a16b;
const format_tag_t BAcd16a16b = dnnl_BAcd16a16b;
const format_tag_t ABc32a16b = dnnl_ABc32a16b;
const format_tag_t ABcd32a16b = dnnl_ABcd32a16b;
const format_tag_t ABcde32a16b = dnnl_ABcde32a16b;
const format_tag_t ABc40a16b = dnnl_ABc40a16b;
const format_tag_t ABcd40a16b = dnnl_ABcd40a16b;
const format_tag_t ABcde40a16b = dnnl_ABcde40a16b;
const format_tag_t ABc32a32b = dnnl_ABc32a32b;
const format_tag_t BAcde16a16b = dnnl_BAcde16a16b;
const format_tag_t ABcd32a32b = dnnl_ABcd32a32b;
const format_tag_t ABcde32a32b = dnnl_ABcde32a32b;
const format_tag_t ABc40a32b = dnnl_ABc40a32b;
const format_tag_t ABcd40a32b = dnnl_ABcd40a32b;
const format_tag_t ABcde40a32b = dnnl_ABcde40a32b;
const format_tag_t BAcde16b16a = dnnl_BAcde16b16a;
const format_tag_t aBdec32b = dnnl_aBdec32b;
const format_tag_t Abcdef16a = dnnl_Abcdef16a;
const format_tag_t Abcdef32a = dnnl_Abcdef32a;
const format_tag_t Acdb32a = dnnl_Acdb32a;
const format_tag_t BAc16b16a = dnnl_BAc16b16a;
const format_tag_t BAcd16b16a = dnnl_BAcd16b16a;
const format_tag_t aBCd2b4c2b = dnnl_aBCd2b4c2b;
const format_tag_t aBCde2b4c2b = dnnl_aBCde2b4c2b;
const format_tag_t aBCdef2b4c2b = dnnl_aBCdef2b4c2b;
const format_tag_t aBCd2c4b2c = dnnl_aBCd2c4b2c;
const format_tag_t aBCde2c4b2c = dnnl_aBCde2c4b2c;
const format_tag_t aBCdef2c4b2c = dnnl_aBCdef2c4b2c;
const format_tag_t aBCd4b8c2b = dnnl_aBCd4b8c2b;
const format_tag_t aBCde4b8c2b = dnnl_aBCde4b8c2b;
const format_tag_t aBCdef4b8c2b = dnnl_aBCdef4b8c2b;
const format_tag_t aBCd4c8b2c = dnnl_aBCd4c8b2c;
const format_tag_t aBCde4c8b2c = dnnl_aBCde4c8b2c;
const format_tag_t aBCdef4c8b2c = dnnl_aBCdef4c8b2c;
const format_tag_t AB32a32b8a4b = dnnl_AB32a32b8a4b;
const format_tag_t AB8a4b = dnnl_AB8a4b;
const format_tag_t AB32a32b8a2b = dnnl_AB32a32b8a2b;
const format_tag_t AB8a2b = dnnl_AB8a2b;
const format_tag_t abDc16d = dnnl_abDc16d;
const format_tag_t abDc32d = dnnl_abDc32d;
const format_tag_t abDC32d4c = dnnl_abDC32d4c;
const format_tag_t abCd4c = dnnl_abCd4c;
const format_tag_t abCde4c = dnnl_abCde4c;
const format_tag_t abCdef4c = dnnl_abCdef4c;
const format_tag_t abCd32c = dnnl_abCd32c;
const format_tag_t abCde32c = dnnl_abCde32c;
const format_tag_t abCdef32c = dnnl_abCdef32c;
const format_tag_t abdEc16e = dnnl_abdEc16e;
const format_tag_t abdEc32e = dnnl_abdEc32e;
const format_tag_t abdEC32e2c = dnnl_abdEC32e2c;
const format_tag_t abdEC32e4c = dnnl_abdEC32e4c;
const format_tag_t abdEC64e2c = dnnl_abdEC64e2c;
const format_tag_t abdEC64e4c = dnnl_abdEC64e4c;
const format_tag_t abdCe16c = dnnl_abdCe16c;
const format_tag_t abdCe32c = dnnl_abdCe32c;
const format_tag_t abdCE32c2e = dnnl_abdCE32c2e;
const format_tag_t aBCdef16c16b4c = dnnl_aBCdef16c16b4c;
const format_tag_t ABcde16b16a2b = dnnl_ABcde16b16a2b;
const format_tag_t ABcde16b32a2b = dnnl_ABcde16b32a2b;
const format_tag_t ABcde16b48a2b = dnnl_ABcde16b48a2b;
const format_tag_t ABcde16b64a2b = dnnl_ABcde16b64a2b;
const format_tag_t aBCdef16c16b2c = dnnl_aBCdef16c16b2c;
const format_tag_t cBa2b = dnnl_cBa2b;
const format_tag_t cBa4b = dnnl_cBa4b;
const format_tag_t adcb = dnnl_adcb;
const format_tag_t adCb2c = dnnl_adCb2c;
const format_tag_t adCb4c = dnnl_adCb4c;
const format_tag_t cdBa2b = dnnl_cdBa2b;
const format_tag_t cdBa4b = dnnl_cdBa4b;
const format_tag_t adecb = dnnl_adecb;
const format_tag_t adeCb2c = dnnl_adeCb2c;
const format_tag_t adeCb4c = dnnl_adeCb4c;
const format_tag_t cdeBa2b = dnnl_cdeBa2b;
const format_tag_t cdeBa4b = dnnl_cdeBa4b;
const format_tag_t adefcb = dnnl_adefcb;
const format_tag_t adefCb2c = dnnl_adefCb2c;
const format_tag_t adefCb4c = dnnl_adefCb4c;
const format_tag_t Acb32a = dnnl_Acb32a;
const format_tag_t AcB32a2b = dnnl_AcB32a2b;
const format_tag_t AcB32a4b = dnnl_AcB32a4b;
const format_tag_t Acb48a = dnnl_Acb48a;
const format_tag_t AcB48a2b = dnnl_AcB48a2b;
const format_tag_t AcB48a4b = dnnl_AcB48a4b;
const format_tag_t Acb64a = dnnl_Acb64a;
const format_tag_t AcB64a2b = dnnl_AcB64a2b;
const format_tag_t AcB64a4b = dnnl_AcB64a4b;
const format_tag_t aBdc32b = dnnl_aBdc32b;
const format_tag_t aBdC32b2c = dnnl_aBdC32b2c;
const format_tag_t aBdC32b4c = dnnl_aBdC32b4c;
const format_tag_t aBdc48b = dnnl_aBdc48b;
const format_tag_t aBdC48b2c = dnnl_aBdC48b2c;
const format_tag_t aBdC48b4c = dnnl_aBdC48b4c;
const format_tag_t aBdc64b = dnnl_aBdc64b;
const format_tag_t aBdC64b2c = dnnl_aBdC64b2c;
const format_tag_t aBdC64b4c = dnnl_aBdC64b4c;
const format_tag_t AcdB32a2b = dnnl_AcdB32a2b;
const format_tag_t AcdB32a4b = dnnl_AcdB32a4b;
const format_tag_t Acdb48a = dnnl_Acdb48a;
const format_tag_t AcdB48a2b = dnnl_AcdB48a2b;
const format_tag_t AcdB48a4b = dnnl_AcdB48a4b;
const format_tag_t Acdb64a = dnnl_Acdb64a;
const format_tag_t AcdB64a2b = dnnl_AcdB64a2b;
const format_tag_t AcdB64a4b = dnnl_AcdB64a4b;
const format_tag_t aBdeC32b2c = dnnl_aBdeC32b2c;
const format_tag_t aBdeC32b4c = dnnl_aBdeC32b4c;
const format_tag_t aBdec48b = dnnl_aBdec48b;
const format_tag_t aBdeC48b2c = dnnl_aBdeC48b2c;
const format_tag_t aBdeC48b4c = dnnl_aBdeC48b4c;
const format_tag_t aBdec64b = dnnl_aBdec64b;
const format_tag_t aBdeC64b2c = dnnl_aBdeC64b2c;
const format_tag_t aBdeC64b4c = dnnl_aBdeC64b4c;
const format_tag_t Acdeb32a = dnnl_Acdeb32a;
const format_tag_t AcdeB32a2b = dnnl_AcdeB32a2b;
const format_tag_t AcdeB32a4b = dnnl_AcdeB32a4b;
const format_tag_t Acdeb48a = dnnl_Acdeb48a;
const format_tag_t AcdeB48a2b = dnnl_AcdeB48a2b;
const format_tag_t AcdeB48a4b = dnnl_AcdeB48a4b;
const format_tag_t Acdeb64a = dnnl_Acdeb64a;
const format_tag_t AcdeB64a2b = dnnl_AcdeB64a2b;
const format_tag_t AcdeB64a4b = dnnl_AcdeB64a4b;
const format_tag_t aBdefc32b = dnnl_aBdefc32b;
const format_tag_t aBdefC32b2c = dnnl_aBdefC32b2c;
const format_tag_t aBdefC32b4c = dnnl_aBdefC32b4c;
const format_tag_t aBdefc48b = dnnl_aBdefc48b;
const format_tag_t aBdefC48b2c = dnnl_aBdefC48b2c;
const format_tag_t aBdefC48b4c = dnnl_aBdefC48b4c;
const format_tag_t aBdefc64b = dnnl_aBdefc64b;
const format_tag_t aBdefC64b2c = dnnl_aBdefC64b2c;
const format_tag_t aBdefC64b4c = dnnl_aBdefC64b4c;
const format_tag_t aBdeC16c16b2c = dnnl_aBdeC16c16b2c;
const format_tag_t aBdeC16c16b4c = dnnl_aBdeC16c16b4c;
const format_tag_t aBdefC16c16b2c = dnnl_aBdefC16c16b2c;
const format_tag_t aBdefC16c16b4c = dnnl_aBdefC16c16b4c;
const format_tag_t AcB16b16a2b = dnnl_AcB16b16a2b;
const format_tag_t AcB16b16a4b = dnnl_AcB16b16a4b;
const format_tag_t aBdC16c16b2c = dnnl_aBdC16c16b2c;
const format_tag_t aBdC16c16b4c = dnnl_aBdC16c16b4c;
const format_tag_t AcdB16b16a2b = dnnl_AcdB16b16a2b;
const format_tag_t AcdB16b16a4b = dnnl_AcdB16b16a4b;
const format_tag_t AcdeB16b16a2b = dnnl_AcdeB16b16a2b;
const format_tag_t AcdeB16b16a4b = dnnl_AcdeB16b16a4b;
const format_tag_t AcB16b32a2b = dnnl_AcB16b32a2b;
const format_tag_t AcB16b32a4b = dnnl_AcB16b32a4b;
const format_tag_t AcB16b48a2b = dnnl_AcB16b48a2b;
const format_tag_t AcB16b48a4b = dnnl_AcB16b48a4b;
const format_tag_t AcB16b64a2b = dnnl_AcB16b64a2b;
const format_tag_t AcB16b64a4b = dnnl_AcB16b64a4b;
const format_tag_t aBdC16c32b2c = dnnl_aBdC16c32b2c;
const format_tag_t aBdC16c32b4c = dnnl_aBdC16c32b4c;
const format_tag_t aBdC16c48b2c = dnnl_aBdC16c48b2c;
const format_tag_t aBdC16c48b4c = dnnl_aBdC16c48b4c;
const format_tag_t aBdC16c64b2c = dnnl_aBdC16c64b2c;
const format_tag_t aBdC16c64b4c = dnnl_aBdC16c64b4c;
const format_tag_t AcdB16b32a2b = dnnl_AcdB16b32a2b;
const format_tag_t AcdB16b32a4b = dnnl_AcdB16b32a4b;
const format_tag_t AcdB16b48a2b = dnnl_AcdB16b48a2b;
const format_tag_t AcdB16b48a4b = dnnl_AcdB16b48a4b;
const format_tag_t AcdB16b64a2b = dnnl_AcdB16b64a2b;
const format_tag_t AcdB16b64a4b = dnnl_AcdB16b64a4b;
const format_tag_t aBdeC16c32b2c = dnnl_aBdeC16c32b2c;
const format_tag_t aBdeC16c32b4c = dnnl_aBdeC16c32b4c;
const format_tag_t aBdeC16c48b2c = dnnl_aBdeC16c48b2c;
const format_tag_t aBdeC16c48b4c = dnnl_aBdeC16c48b4c;
const format_tag_t aBdeC16c64b2c = dnnl_aBdeC16c64b2c;
const format_tag_t aBdeC16c64b4c = dnnl_aBdeC16c64b4c;
const format_tag_t AcdeB16b32a2b = dnnl_AcdeB16b32a2b;
const format_tag_t AcdeB16b32a4b = dnnl_AcdeB16b32a4b;
const format_tag_t AcdeB16b48a2b = dnnl_AcdeB16b48a2b;
const format_tag_t AcdeB16b48a4b = dnnl_AcdeB16b48a4b;
const format_tag_t AcdeB16b64a2b = dnnl_AcdeB16b64a2b;
const format_tag_t AcdeB16b64a4b = dnnl_AcdeB16b64a4b;
const format_tag_t aBdefC16c32b2c = dnnl_aBdefC16c32b2c;
const format_tag_t aBdefC16c32b4c = dnnl_aBdefC16c32b4c;
const format_tag_t aBdefC16c48b2c = dnnl_aBdefC16c48b2c;
const format_tag_t aBdefC16c48b4c = dnnl_aBdefC16c48b4c;
const format_tag_t aBdefC16c64b2c = dnnl_aBdefC16c64b2c;
const format_tag_t aBdefC16c64b4c = dnnl_aBdefC16c64b4c;
const format_tag_t decbA16a = dnnl_decbA16a;
const format_tag_t decbA8a = dnnl_decbA8a;
const format_tag_t defcbA16a = dnnl_defcbA16a;
const format_tag_t defcbA8a = dnnl_defcbA8a;
const format_tag_t aCB16c2b = dnnl_aCB16c2b;
const format_tag_t aCB16c4b = dnnl_aCB16c4b;
const format_tag_t BA16b2a = dnnl_BA16b2a;
const format_tag_t BA16b4a = dnnl_BA16b4a;
const format_tag_t aBC16b16c = dnnl_aBC16b16c;
const format_tag_t aBC16b32c = dnnl_aBC16b32c;
const format_tag_t AB16a16b = dnnl_AB16a16b;
const format_tag_t AB16a32b = dnnl_AB16a32b;
const format_tag_t ABcd16a32b = dnnl_ABcd16a32b;
const format_tag_t aCdefB16b32c2b = dnnl_aCdefB16b32c2b;
const format_tag_t aCdefB16b32c4b = dnnl_aCdefB16b32c4b;
const format_tag_t aCdefB16b48c2b = dnnl_aCdefB16b48c2b;
const format_tag_t aCdefB16b48c4b = dnnl_aCdefB16b48c4b;
const format_tag_t aCdefB16b64c2b = dnnl_aCdefB16b64c2b;
const format_tag_t aCdefB16b64c4b = dnnl_aCdefB16b64c4b;
const format_tag_t BcdeA16a32b2a = dnnl_BcdeA16a32b2a;
const format_tag_t BcdeA16a32b4a = dnnl_BcdeA16a32b4a;
const format_tag_t BcdeA16a48b2a = dnnl_BcdeA16a48b2a;
const format_tag_t BcdeA16a48b4a = dnnl_BcdeA16a48b4a;
const format_tag_t BcdeA16a64b2a = dnnl_BcdeA16a64b2a;
const format_tag_t BcdeA16a64b4a = dnnl_BcdeA16a64b4a;
const format_tag_t aCdefb32c = dnnl_aCdefb32c;
const format_tag_t aCdefB32c2b = dnnl_aCdefB32c2b;
const format_tag_t aCdefB32c4b = dnnl_aCdefB32c4b;
const format_tag_t aCdefb48c = dnnl_aCdefb48c;
const format_tag_t aCdefB48c2b = dnnl_aCdefB48c2b;
const format_tag_t aCdefB48c4b = dnnl_aCdefB48c4b;
const format_tag_t aCdefb64c = dnnl_aCdefb64c;
const format_tag_t aCdefB64c2b = dnnl_aCdefB64c2b;
const format_tag_t aCdefB64c4b = dnnl_aCdefB64c4b;
const format_tag_t Bcdea32b = dnnl_Bcdea32b;
const format_tag_t BcdeA32b2a = dnnl_BcdeA32b2a;
const format_tag_t BcdeA32b4a = dnnl_BcdeA32b4a;
const format_tag_t Bcdea48b = dnnl_Bcdea48b;
const format_tag_t BcdeA48b2a = dnnl_BcdeA48b2a;
const format_tag_t BcdeA48b4a = dnnl_BcdeA48b4a;
const format_tag_t Bcdea64b = dnnl_Bcdea64b;
const format_tag_t BcdeA64b2a = dnnl_BcdeA64b2a;
const format_tag_t BcdeA64b4a = dnnl_BcdeA64b4a;
const format_tag_t Bca32b = dnnl_Bca32b;
const format_tag_t BcA32b2a = dnnl_BcA32b2a;
const format_tag_t BcA32b4a = dnnl_BcA32b4a;
const format_tag_t Bca48b = dnnl_Bca48b;
const format_tag_t BcA48b2a = dnnl_BcA48b2a;
const format_tag_t BcA48b4a = dnnl_BcA48b4a;
const format_tag_t Bca64b = dnnl_Bca64b;
const format_tag_t BcA64b2a = dnnl_BcA64b2a;
const format_tag_t BcA64b4a = dnnl_BcA64b4a;
const format_tag_t aCdb32c = dnnl_aCdb32c;
const format_tag_t aCdB32c2b = dnnl_aCdB32c2b;
const format_tag_t aCdB32c4b = dnnl_aCdB32c4b;
const format_tag_t aCdb48c = dnnl_aCdb48c;
const format_tag_t aCdB48c2b = dnnl_aCdB48c2b;
const format_tag_t aCdB48c4b = dnnl_aCdB48c4b;
const format_tag_t aCdb64c = dnnl_aCdb64c;
const format_tag_t aCdB64c2b = dnnl_aCdB64c2b;
const format_tag_t aCdB64c4b = dnnl_aCdB64c4b;
const format_tag_t BcA16a16b2a = dnnl_BcA16a16b2a;
const format_tag_t BcA16a16b4a = dnnl_BcA16a16b4a;
const format_tag_t BcdA16a16b2a = dnnl_BcdA16a16b2a;
const format_tag_t BcdA16a16b4a = dnnl_BcdA16a16b4a;
const format_tag_t BcdeA16a16b2a = dnnl_BcdeA16a16b2a;
const format_tag_t BcdeA16a16b4a = dnnl_BcdeA16a16b4a;
const format_tag_t aCdB16b16c2b = dnnl_aCdB16b16c2b;
const format_tag_t aCdB16b16c4b = dnnl_aCdB16b16c4b;
const format_tag_t aCdeB16b16c2b = dnnl_aCdeB16b16c2b;
const format_tag_t aCdeB16b16c4b = dnnl_aCdeB16b16c4b;
const format_tag_t aCdefB16b16c2b = dnnl_aCdefB16b16c2b;
const format_tag_t aCdefB16b16c4b = dnnl_aCdefB16b16c4b;
const format_tag_t BcA16a32b2a = dnnl_BcA16a32b2a;
const format_tag_t BcA16a32b4a = dnnl_BcA16a32b4a;
const format_tag_t BcA16a48b2a = dnnl_BcA16a48b2a;
const format_tag_t BcA16a48b4a = dnnl_BcA16a48b4a;
const format_tag_t BcA16a64b2a = dnnl_BcA16a64b2a;
const format_tag_t BcA16a64b4a = dnnl_BcA16a64b4a;
const format_tag_t aCdB16b32c2b = dnnl_aCdB16b32c2b;
const format_tag_t aCdB16b32c4b = dnnl_aCdB16b32c4b;
const format_tag_t aCdB16b48c2b = dnnl_aCdB16b48c2b;
const format_tag_t aCdB16b48c4b = dnnl_aCdB16b48c4b;
const format_tag_t aCdB16b64c2b = dnnl_aCdB16b64c2b;
const format_tag_t aCdB16b64c4b = dnnl_aCdB16b64c4b;
const format_tag_t BcdA16a32b2a = dnnl_BcdA16a32b2a;
const format_tag_t BcdA16a32b4a = dnnl_BcdA16a32b4a;
const format_tag_t BcdA16a48b2a = dnnl_BcdA16a48b2a;
const format_tag_t BcdA16a48b4a = dnnl_BcdA16a48b4a;
const format_tag_t BcdA16a64b2a = dnnl_BcdA16a64b2a;
const format_tag_t BcdA16a64b4a = dnnl_BcdA16a64b4a;
const format_tag_t aCdeB16b32c2b = dnnl_aCdeB16b32c2b;
const format_tag_t aCdeB16b32c4b = dnnl_aCdeB16b32c4b;
const format_tag_t aCdeB16b48c2b = dnnl_aCdeB16b48c2b;
const format_tag_t aCdeB16b48c4b = dnnl_aCdeB16b48c4b;
const format_tag_t aCdeB16b64c2b = dnnl_aCdeB16b64c2b;
const format_tag_t aCdeB16b64c4b = dnnl_aCdeB16b64c4b;
const format_tag_t Bca8b = dnnl_Bca8b;
const format_tag_t BcA8b2a = dnnl_BcA8b2a;
const format_tag_t BcA8b4a = dnnl_BcA8b4a;
const format_tag_t Bcda8b = dnnl_Bcda8b;
const format_tag_t BcdA8b2a = dnnl_BcdA8b2a;
const format_tag_t BcdA8b4a = dnnl_BcdA8b4a;
const format_tag_t Bcdea8b = dnnl_Bcdea8b;
const format_tag_t BcdeA8b2a = dnnl_BcdeA8b2a;
const format_tag_t BcdeA8b4a = dnnl_BcdeA8b4a;
const format_tag_t aCdb8c = dnnl_aCdb8c;
const format_tag_t aCdB8c2b = dnnl_aCdB8c2b;
const format_tag_t aCdB8c4b = dnnl_aCdB8c4b;
const format_tag_t aCdeb8c = dnnl_aCdeb8c;
const format_tag_t aCdeB8c2b = dnnl_aCdeB8c2b;
const format_tag_t aCdeB8c4b = dnnl_aCdeB8c4b;
const format_tag_t aCdefb8c = dnnl_aCdefb8c;
const format_tag_t aCdefB8c2b = dnnl_aCdefB8c2b;
const format_tag_t aCdefB8c4b = dnnl_aCdefB8c4b;
const format_tag_t Bca16b = dnnl_Bca16b;
const format_tag_t BcA16b2a = dnnl_BcA16b2a;
const format_tag_t BcA16b4a = dnnl_BcA16b4a;
const format_tag_t Bcda16b = dnnl_Bcda16b;
const format_tag_t BcdA16b2a = dnnl_BcdA16b2a;
const format_tag_t BcdA16b4a = dnnl_BcdA16b4a;
const format_tag_t Bcdea16b = dnnl_Bcdea16b;
const format_tag_t BcdeA16b2a = dnnl_BcdeA16b2a;
const format_tag_t BcdeA16b4a = dnnl_BcdeA16b4a;
const format_tag_t aCdb16c = dnnl_aCdb16c;
const format_tag_t aCdB16c2b = dnnl_aCdB16c2b;
const format_tag_t aCdB16c4b = dnnl_aCdB16c4b;
const format_tag_t aCdeb16c = dnnl_aCdeb16c;
const format_tag_t aCdeB16c2b = dnnl_aCdeB16c2b;
const format_tag_t aCdeB16c4b = dnnl_aCdeB16c4b;
const format_tag_t aCdefb16c = dnnl_aCdefb16c;
const format_tag_t aCdefB16c2b = dnnl_aCdefB16c2b;
const format_tag_t aCdefB16c4b = dnnl_aCdefB16c4b;
const format_tag_t Bca24b = dnnl_Bca24b;
const format_tag_t BcA24b2a = dnnl_BcA24b2a;
const format_tag_t BcA24b4a = dnnl_BcA24b4a;
const format_tag_t Bcda24b = dnnl_Bcda24b;
const format_tag_t BcdA24b2a = dnnl_BcdA24b2a;
const format_tag_t BcdA24b4a = dnnl_BcdA24b4a;
const format_tag_t Bcdea24b = dnnl_Bcdea24b;
const format_tag_t BcdeA24b2a = dnnl_BcdeA24b2a;
const format_tag_t BcdeA24b4a = dnnl_BcdeA24b4a;
const format_tag_t aCdb24c = dnnl_aCdb24c;
const format_tag_t aCdB24c2b = dnnl_aCdB24c2b;
const format_tag_t aCdB24c4b = dnnl_aCdB24c4b;
const format_tag_t aCdeb24c = dnnl_aCdeb24c;
const format_tag_t aCdeB24c2b = dnnl_aCdeB24c2b;
const format_tag_t aCdeB24c4b = dnnl_aCdeB24c4b;
const format_tag_t aCdefb24c = dnnl_aCdefb24c;
const format_tag_t aCdefB24c2b = dnnl_aCdefB24c2b;
const format_tag_t aCdefB24c4b = dnnl_aCdefB24c4b;
const format_tag_t Bcda32b = dnnl_Bcda32b;
const format_tag_t BcdA32b2a = dnnl_BcdA32b2a;
const format_tag_t BcdA32b4a = dnnl_BcdA32b4a;
const format_tag_t Bcda48b = dnnl_Bcda48b;
const format_tag_t BcdA48b2a = dnnl_BcdA48b2a;
const format_tag_t BcdA48b4a = dnnl_BcdA48b4a;
const format_tag_t Bcda64b = dnnl_Bcda64b;
const format_tag_t BcdA64b2a = dnnl_BcdA64b2a;
const format_tag_t BcdA64b4a = dnnl_BcdA64b4a;
const format_tag_t aCdeb32c = dnnl_aCdeb32c;
const format_tag_t aCdeB32c2b = dnnl_aCdeB32c2b;
const format_tag_t aCdeB32c4b = dnnl_aCdeB32c4b;
const format_tag_t aCdeb48c = dnnl_aCdeb48c;
const format_tag_t aCdeB48c2b = dnnl_aCdeB48c2b;
const format_tag_t aCdeB48c4b = dnnl_aCdeB48c4b;
const format_tag_t aCdeb64c = dnnl_aCdeb64c;
const format_tag_t aCdeB64c2b = dnnl_aCdeB64c2b;
const format_tag_t aCdeB64c4b = dnnl_aCdeB64c4b;
const format_tag_t Acb24a = dnnl_Acb24a;
const format_tag_t Acdb24a = dnnl_Acdb24a;
const format_tag_t Acdeb24a = dnnl_Acdeb24a;
const format_tag_t aBdc24b = dnnl_aBdc24b;
const format_tag_t aBdec24b = dnnl_aBdec24b;
const format_tag_t aBdefc24b = dnnl_aBdefc24b;
const format_tag_t AcB24a2b = dnnl_AcB24a2b;
const format_tag_t AcdB24a2b = dnnl_AcdB24a2b;
const format_tag_t AcdeB24a2b = dnnl_AcdeB24a2b;
const format_tag_t aBdC24b2c = dnnl_aBdC24b2c;
const format_tag_t aBdeC24b2c = dnnl_aBdeC24b2c;
const format_tag_t aBdefC24b2c = dnnl_aBdefC24b2c;
const format_tag_t AB8b32a = dnnl_AB8b32a;
const format_tag_t ABc8b32a = dnnl_ABc8b32a;
const format_tag_t ABcd8b32a = dnnl_ABcd8b32a;
const format_tag_t ABcde8b32a = dnnl_ABcde8b32a;
const format_tag_t AB8b24a = dnnl_AB8b24a;
const format_tag_t ABc8b24a = dnnl_ABc8b24a;
const format_tag_t ABcd8b24a = dnnl_ABcd8b24a;
const format_tag_t ABcde8b24a = dnnl_ABcde8b24a;
const format_tag_t AB8b16a = dnnl_AB8b16a;
const format_tag_t ABc8b16a = dnnl_ABc8b16a;
const format_tag_t ABcd8b16a = dnnl_ABcd8b16a;
const format_tag_t ABcde8b16a = dnnl_ABcde8b16a;
const format_tag_t AB8b8a = dnnl_AB8b8a;
const format_tag_t AcB24a4b = dnnl_AcB24a4b;
const format_tag_t AcdB24a4b = dnnl_AcdB24a4b;
const format_tag_t AcdeB24a4b = dnnl_AcdeB24a4b;
const format_tag_t aBdC24b4c = dnnl_aBdC24b4c;
const format_tag_t aBdeC24b4c = dnnl_aBdeC24b4c;
const format_tag_t aBdefC24b4c = dnnl_aBdefC24b4c;
const format_tag_t AB8b8a2b = dnnl_AB8b8a2b;
const format_tag_t ABc8b8a2b = dnnl_ABc8b8a2b;
const format_tag_t ABcd8b8a2b = dnnl_ABcd8b8a2b;
const format_tag_t ABcde8b8a2b = dnnl_ABcde8b8a2b;
const format_tag_t AB8b24a2b = dnnl_AB8b24a2b;
const format_tag_t ABc8b24a2b = dnnl_ABc8b24a2b;
const format_tag_t ABcd8b24a2b = dnnl_ABcd8b24a2b;
const format_tag_t ABcde8b24a2b = dnnl_ABcde8b24a2b;
const format_tag_t last = dnnl_format_tag_last;
const format_tag_t x = dnnl_x;
const format_tag_t nc = dnnl_nc;
const format_tag_t cn = dnnl_cn;
const format_tag_t ncw = dnnl_ncw;
const format_tag_t nwc = dnnl_nwc;
const format_tag_t nchw = dnnl_nchw;
const format_tag_t nhwc = dnnl_nhwc;
const format_tag_t chwn = dnnl_chwn;
const format_tag_t ncdhw = dnnl_ncdhw;
const format_tag_t ndhwc = dnnl_ndhwc;
const format_tag_t oi = dnnl_oi;
const format_tag_t io = dnnl_io;
const format_tag_t oiw = dnnl_oiw;
const format_tag_t wio = dnnl_wio;
const format_tag_t woi = dnnl_woi;
const format_tag_t owi = dnnl_owi;
const format_tag_t iwo = dnnl_iwo;
const format_tag_t oihw = dnnl_oihw;
const format_tag_t hwio = dnnl_hwio;
const format_tag_t hwoi = dnnl_hwoi;
const format_tag_t ohwi = dnnl_ohwi;
const format_tag_t ihwo = dnnl_ihwo;
const format_tag_t iohw = dnnl_iohw;
const format_tag_t oidhw = dnnl_oidhw;
const format_tag_t dhwio = dnnl_dhwio;
const format_tag_t dhwoi = dnnl_dhwoi;
const format_tag_t odhwi = dnnl_odhwi;
const format_tag_t idhwo = dnnl_idhwo;
const format_tag_t iodhw = dnnl_iodhw;
const format_tag_t goiw = dnnl_goiw;
const format_tag_t goihw = dnnl_goihw;
const format_tag_t wigo = dnnl_wigo;
const format_tag_t hwigo = dnnl_hwigo;
const format_tag_t dhwigo = dnnl_dhwigo;
const format_tag_t giohw = dnnl_giohw;
const format_tag_t goidhw = dnnl_goidhw;
const format_tag_t giodhw = dnnl_giodhw;
const format_tag_t gowi = dnnl_gowi;
const format_tag_t gohwi = dnnl_gohwi;
const format_tag_t godhwi = dnnl_godhwi;
const format_tag_t tnc = dnnl_tnc;
const format_tag_t ntc = dnnl_ntc;
const format_tag_t ldnc = dnnl_ldnc;
const format_tag_t ldigo = dnnl_ldigo;
const format_tag_t ldgoi = dnnl_ldgoi;
const format_tag_t ldio = dnnl_ldio;
const format_tag_t ldoi = dnnl_ldoi;
const format_tag_t ldgo = dnnl_ldgo;
const format_tag_t nCdhw32c = dnnl_nCdhw32c;
const format_tag_t nCdhw16c = dnnl_nCdhw16c;
const format_tag_t nCdhw4c = dnnl_nCdhw4c;
const format_tag_t nCdhw8c = dnnl_nCdhw8c;
const format_tag_t nChw32c = dnnl_nChw32c;
const format_tag_t nChw16c = dnnl_nChw16c;
const format_tag_t nChw4c = dnnl_nChw4c;
const format_tag_t nChw8c = dnnl_nChw8c;
const format_tag_t nCw32c = dnnl_nCw32c;
const format_tag_t nCw16c = dnnl_nCw16c;
const format_tag_t nCw4c = dnnl_nCw4c;
const format_tag_t nCw8c = dnnl_nCw8c;
const format_tag_t NCw16n16c = dnnl_NCw16n16c;
const format_tag_t NChw16n16c = dnnl_NChw16n16c;
const format_tag_t NCdhw16n16c = dnnl_NCdhw16n16c;
const format_tag_t NCw32n16c = dnnl_NCw32n16c;
const format_tag_t NChw32n16c = dnnl_NChw32n16c;
const format_tag_t NCdhw32n16c = dnnl_NCdhw32n16c;
const format_tag_t NCw40n16c = dnnl_NCw40n16c;
const format_tag_t NChw40n16c = dnnl_NChw40n16c;
const format_tag_t NCdhw40n16c = dnnl_NCdhw40n16c;
const format_tag_t NCw32n32c = dnnl_NCw32n32c;
const format_tag_t NChw32n32c = dnnl_NChw32n32c;
const format_tag_t NCdhw32n32c = dnnl_NCdhw32n32c;
const format_tag_t NCw40n32c = dnnl_NCw40n32c;
const format_tag_t NChw40n32c = dnnl_NChw40n32c;
const format_tag_t NCdhw40n32c = dnnl_NCdhw40n32c;
const format_tag_t OI16i16o = dnnl_OI16i16o;
const format_tag_t OI16i32o = dnnl_OI16i32o;
const format_tag_t OI16i48o = dnnl_OI16i48o;
const format_tag_t OI16i64o = dnnl_OI16i64o;
const format_tag_t OI8i16o2i = dnnl_OI8i16o2i;
const format_tag_t OI8i32o2i = dnnl_OI8i32o2i;
const format_tag_t OI8i64o2i = dnnl_OI8i64o2i;
const format_tag_t OI4i8o4i = dnnl_OI4i8o4i;
const format_tag_t OI4i16o4i = dnnl_OI4i16o4i;
const format_tag_t OI4i24o4i = dnnl_OI4i24o4i;
const format_tag_t OI4i32o4i = dnnl_OI4i32o4i;
const format_tag_t OI4i64o4i = dnnl_OI4i64o4i;
const format_tag_t OI16i16o4i = dnnl_OI16i16o4i;
const format_tag_t OI16i32o4i = dnnl_OI16i32o4i;
const format_tag_t OI16i48o4i = dnnl_OI16i48o4i;
const format_tag_t OI16i64o4i = dnnl_OI16i64o4i;
const format_tag_t OI16i16o2i = dnnl_OI16i16o2i;
const format_tag_t OI16i32o2i = dnnl_OI16i32o2i;
const format_tag_t OI16i48o2i = dnnl_OI16i48o2i;
const format_tag_t OI16i64o2i = dnnl_OI16i64o2i;
const format_tag_t IOdhw16i16o = dnnl_IOdhw16i16o;
const format_tag_t IOhw16i16o = dnnl_IOhw16i16o;
const format_tag_t Ohwi32o = dnnl_Ohwi32o;
const format_tag_t gIOhw16i16o = dnnl_gIOhw16i16o;
const format_tag_t gOhwi32o = dnnl_gOhwi32o;
const format_tag_t Goidhw16g = dnnl_Goidhw16g;
const format_tag_t IOw16o16i = dnnl_IOw16o16i;
const format_tag_t IOw16i16o = dnnl_IOw16i16o;
const format_tag_t gIOw16i16o = dnnl_gIOw16i16o;
const format_tag_t OIw16i16o = dnnl_OIw16i16o;
const format_tag_t OIw16i32o = dnnl_OIw16i32o;
const format_tag_t OIw16i48o = dnnl_OIw16i48o;
const format_tag_t OIw16i64o = dnnl_OIw16i64o;
const format_tag_t OIw16o16i = dnnl_OIw16o16i;
const format_tag_t Oiw16o = dnnl_Oiw16o;
const format_tag_t OIw4i8o4i = dnnl_OIw4i8o4i;
const format_tag_t OIw4i16o4i = dnnl_OIw4i16o4i;
const format_tag_t OIw4i24o4i = dnnl_OIw4i24o4i;
const format_tag_t OIw4i32o4i = dnnl_OIw4i32o4i;
const format_tag_t OIw4i64o4i = dnnl_OIw4i64o4i;
const format_tag_t OIw2i8o4i = dnnl_OIw2i8o4i;
const format_tag_t OIw16i16o4i = dnnl_OIw16i16o4i;
const format_tag_t OIw16i32o4i = dnnl_OIw16i32o4i;
const format_tag_t OIw16i48o4i = dnnl_OIw16i48o4i;
const format_tag_t OIw16i64o4i = dnnl_OIw16i64o4i;
const format_tag_t OIw16i16o2i = dnnl_OIw16i16o2i;
const format_tag_t OIw16i32o2i = dnnl_OIw16i32o2i;
const format_tag_t OIw16i48o2i = dnnl_OIw16i48o2i;
const format_tag_t OIw16i64o2i = dnnl_OIw16i64o2i;
const format_tag_t OIw16o16i2o = dnnl_OIw16o16i2o;
const format_tag_t OIw4i4o = dnnl_OIw4i4o;
const format_tag_t OIw4o4i = dnnl_OIw4o4i;
const format_tag_t Oiw4o = dnnl_Oiw4o;
const format_tag_t OIw8i16o2i = dnnl_OIw8i16o2i;
const format_tag_t OIw8i32o2i = dnnl_OIw8i32o2i;
const format_tag_t OIw8i64o2i = dnnl_OIw8i64o2i;
const format_tag_t OIw8i8o = dnnl_OIw8i8o;
const format_tag_t OIw8o16i2o = dnnl_OIw8o16i2o;
const format_tag_t IOw8o16i2o = dnnl_IOw8o16i2o;
const format_tag_t OIw8o8i = dnnl_OIw8o8i;
const format_tag_t OIw8o4i = dnnl_OIw8o4i;
const format_tag_t Owi16o = dnnl_Owi16o;
const format_tag_t OwI16o2i = dnnl_OwI16o2i;
const format_tag_t OwI16o4i = dnnl_OwI16o4i;
const format_tag_t Owi4o = dnnl_Owi4o;
const format_tag_t Owi8o = dnnl_Owi8o;
const format_tag_t OwI8o2i = dnnl_OwI8o2i;
const format_tag_t OwI8o4i = dnnl_OwI8o4i;
const format_tag_t IOdhw16o16i = dnnl_IOdhw16o16i;
const format_tag_t IOhw16o16i = dnnl_IOhw16o16i;
const format_tag_t Ohwi16o = dnnl_Ohwi16o;
const format_tag_t OhwI16o2i = dnnl_OhwI16o2i;
const format_tag_t OhwI16o4i = dnnl_OhwI16o4i;
const format_tag_t Ohwi4o = dnnl_Ohwi4o;
const format_tag_t Ohwi8o = dnnl_Ohwi8o;
const format_tag_t OhwI8o2i = dnnl_OhwI8o2i;
const format_tag_t OhwI8o4i = dnnl_OhwI8o4i;
const format_tag_t OIhw16i16o = dnnl_OIhw16i16o;
const format_tag_t OIhw16i32o = dnnl_OIhw16i32o;
const format_tag_t OIhw16i48o = dnnl_OIhw16i48o;
const format_tag_t OIhw16i64o = dnnl_OIhw16i64o;
const format_tag_t OIhw16o16i = dnnl_OIhw16o16i;
const format_tag_t Oihw16o = dnnl_Oihw16o;
const format_tag_t OIhw4i8o4i = dnnl_OIhw4i8o4i;
const format_tag_t OIhw4i16o4i = dnnl_OIhw4i16o4i;
const format_tag_t OIhw4i24o4i = dnnl_OIhw4i24o4i;
const format_tag_t OIhw4i32o4i = dnnl_OIhw4i32o4i;
const format_tag_t OIhw4i64o4i = dnnl_OIhw4i64o4i;
const format_tag_t OIhw16i16o4i = dnnl_OIhw16i16o4i;
const format_tag_t OIhw16i32o4i = dnnl_OIhw16i32o4i;
const format_tag_t OIhw16i48o4i = dnnl_OIhw16i48o4i;
const format_tag_t OIhw16i64o4i = dnnl_OIhw16i64o4i;
const format_tag_t OIhw16i16o2i = dnnl_OIhw16i16o2i;
const format_tag_t OIhw16i32o2i = dnnl_OIhw16i32o2i;
const format_tag_t OIhw16i48o2i = dnnl_OIhw16i48o2i;
const format_tag_t OIhw16i64o2i = dnnl_OIhw16i64o2i;
const format_tag_t OIhw16o16i2o = dnnl_OIhw16o16i2o;
const format_tag_t OIhw4i4o = dnnl_OIhw4i4o;
const format_tag_t OIhw4o4i = dnnl_OIhw4o4i;
const format_tag_t Oihw4o = dnnl_Oihw4o;
const format_tag_t OIhw8i16o2i = dnnl_OIhw8i16o2i;
const format_tag_t OIhw8i32o2i = dnnl_OIhw8i32o2i;
const format_tag_t OIhw8i64o2i = dnnl_OIhw8i64o2i;
const format_tag_t OIhw2i8o4i = dnnl_OIhw2i8o4i;
const format_tag_t OIhw8i8o = dnnl_OIhw8i8o;
const format_tag_t OIhw8o16i2o = dnnl_OIhw8o16i2o;
const format_tag_t IOhw8o16i2o = dnnl_IOhw8o16i2o;
const format_tag_t OIhw8o8i = dnnl_OIhw8o8i;
const format_tag_t OIhw8o4i = dnnl_OIhw8o4i;
const format_tag_t Owhi16o = dnnl_Owhi16o;
const format_tag_t Odwhi16o = dnnl_Odwhi16o;
const format_tag_t Odhwi16o = dnnl_Odhwi16o;
const format_tag_t OdhwI16o2i = dnnl_OdhwI16o2i;
const format_tag_t OdhwI16o4i = dnnl_OdhwI16o4i;
const format_tag_t Odhwi4o = dnnl_Odhwi4o;
const format_tag_t Odhwi8o = dnnl_Odhwi8o;
const format_tag_t OdhwI8o2i = dnnl_OdhwI8o2i;
const format_tag_t OdhwI8o4i = dnnl_OdhwI8o4i;
const format_tag_t OIdhw16i16o = dnnl_OIdhw16i16o;
const format_tag_t OIdhw16i32o = dnnl_OIdhw16i32o;
const format_tag_t OIdhw16i48o = dnnl_OIdhw16i48o;
const format_tag_t OIdhw16i64o = dnnl_OIdhw16i64o;
const format_tag_t OIdhw16o16i = dnnl_OIdhw16o16i;
const format_tag_t OIdhw16o16i2o = dnnl_OIdhw16o16i2o;
const format_tag_t Oidhw16o = dnnl_Oidhw16o;
const format_tag_t OIdhw4i4o = dnnl_OIdhw4i4o;
const format_tag_t OIdhw4o4i = dnnl_OIdhw4o4i;
const format_tag_t Oidhw4o = dnnl_Oidhw4o;
const format_tag_t OIdhw8i16o2i = dnnl_OIdhw8i16o2i;
const format_tag_t OIdhw8i32o2i = dnnl_OIdhw8i32o2i;
const format_tag_t OIdhw8i64o2i = dnnl_OIdhw8i64o2i;
const format_tag_t OIdhw4i8o4i = dnnl_OIdhw4i8o4i;
const format_tag_t OIdhw4i16o4i = dnnl_OIdhw4i16o4i;
const format_tag_t OIdhw4i24o4i = dnnl_OIdhw4i24o4i;
const format_tag_t OIdhw4i32o4i = dnnl_OIdhw4i32o4i;
const format_tag_t OIdhw4i64o4i = dnnl_OIdhw4i64o4i;
const format_tag_t OIdhw16i16o4i = dnnl_OIdhw16i16o4i;
const format_tag_t OIdhw16i32o4i = dnnl_OIdhw16i32o4i;
const format_tag_t OIdhw16i48o4i = dnnl_OIdhw16i48o4i;
const format_tag_t OIdhw16i64o4i = dnnl_OIdhw16i64o4i;
const format_tag_t OIdhw16i16o2i = dnnl_OIdhw16i16o2i;
const format_tag_t OIdhw16i32o2i = dnnl_OIdhw16i32o2i;
const format_tag_t OIdhw16i48o2i = dnnl_OIdhw16i48o2i;
const format_tag_t OIdhw16i64o2i = dnnl_OIdhw16i64o2i;
const format_tag_t OIdhw2i8o4i = dnnl_OIdhw2i8o4i;
const format_tag_t OIdhw8o16i2o = dnnl_OIdhw8o16i2o;
const format_tag_t IOdhw8o16i2o = dnnl_IOdhw8o16i2o;
const format_tag_t OIdhw8i8o = dnnl_OIdhw8i8o;
const format_tag_t OIdhw8o8i = dnnl_OIdhw8o8i;
const format_tag_t OIdhw8o4i = dnnl_OIdhw8o4i;
const format_tag_t gIOw16o16i = dnnl_gIOw16o16i;
const format_tag_t Goiw16g = dnnl_Goiw16g;
const format_tag_t Goiw8g = dnnl_Goiw8g;
const format_tag_t Goiw4g = dnnl_Goiw4g;
const format_tag_t gOIw16i16o = dnnl_gOIw16i16o;
const format_tag_t gOIw16o16i = dnnl_gOIw16o16i;
const format_tag_t gOiw16o = dnnl_gOiw16o;
const format_tag_t gOIw4i16o4i = dnnl_gOIw4i16o4i;
const format_tag_t gOIw2i8o4i = dnnl_gOIw2i8o4i;
const format_tag_t gOIw16i16o4i = dnnl_gOIw16i16o4i;
const format_tag_t gOIw16i16o2i = dnnl_gOIw16i16o2i;
const format_tag_t gOIw16o16i2o = dnnl_gOIw16o16i2o;
const format_tag_t gOIw4i4o = dnnl_gOIw4i4o;
const format_tag_t gOIw4o4i = dnnl_gOIw4o4i;
const format_tag_t gOiw4o = dnnl_gOiw4o;
const format_tag_t gOIw8i16o2i = dnnl_gOIw8i16o2i;
const format_tag_t gOIw8i8o = dnnl_gOIw8i8o;
const format_tag_t gOIw8o16i2o = dnnl_gOIw8o16i2o;
const format_tag_t gIOw8o16i2o = dnnl_gIOw8o16i2o;
const format_tag_t gOIw8o8i = dnnl_gOIw8o8i;
const format_tag_t gOIw8o4i = dnnl_gOIw8o4i;
const format_tag_t gOwi16o = dnnl_gOwi16o;
const format_tag_t gOwI16o2i = dnnl_gOwI16o2i;
const format_tag_t gOwI16o4i = dnnl_gOwI16o4i;
const format_tag_t gOwi4o = dnnl_gOwi4o;
const format_tag_t gOwi8o = dnnl_gOwi8o;
const format_tag_t gOwI8o2i = dnnl_gOwI8o2i;
const format_tag_t gOwI8o4i = dnnl_gOwI8o4i;
const format_tag_t gIOdhw16o16i = dnnl_gIOdhw16o16i;
const format_tag_t gIOhw16o16i = dnnl_gIOhw16o16i;
const format_tag_t gOhwi16o = dnnl_gOhwi16o;
const format_tag_t gOhwI16o2i = dnnl_gOhwI16o2i;
const format_tag_t gOhwI16o4i = dnnl_gOhwI16o4i;
const format_tag_t gOhwi4o = dnnl_gOhwi4o;
const format_tag_t gOhwi8o = dnnl_gOhwi8o;
const format_tag_t gOhwI8o2i = dnnl_gOhwI8o2i;
const format_tag_t gOhwI8o4i = dnnl_gOhwI8o4i;
const format_tag_t Goihw16g = dnnl_Goihw16g;
const format_tag_t gOIhw16i16o = dnnl_gOIhw16i16o;
const format_tag_t gOIhw16o16i = dnnl_gOIhw16o16i;
const format_tag_t gOihw16o = dnnl_gOihw16o;
const format_tag_t gOIhw2i8o4i = dnnl_gOIhw2i8o4i;
const format_tag_t gOIhw4i16o4i = dnnl_gOIhw4i16o4i;
const format_tag_t gOIhw16i16o4i = dnnl_gOIhw16i16o4i;
const format_tag_t gOIhw16i16o2i = dnnl_gOIhw16i16o2i;
const format_tag_t gOIhw16o16i2o = dnnl_gOIhw16o16i2o;
const format_tag_t gOIhw4i4o = dnnl_gOIhw4i4o;
const format_tag_t gOIhw4o4i = dnnl_gOIhw4o4i;
const format_tag_t gOihw4o = dnnl_gOihw4o;
const format_tag_t Goihw8g = dnnl_Goihw8g;
const format_tag_t Goihw4g = dnnl_Goihw4g;
const format_tag_t gOIhw8i16o2i = dnnl_gOIhw8i16o2i;
const format_tag_t gOIhw8i8o = dnnl_gOIhw8i8o;
const format_tag_t gOIhw8o16i2o = dnnl_gOIhw8o16i2o;
const format_tag_t OIw4o8i8o4i = dnnl_OIw4o8i8o4i;
const format_tag_t gIOhw8o16i2o = dnnl_gIOhw8o16i2o;
const format_tag_t OIhw4o8i8o4i = dnnl_OIhw4o8i8o4i;
const format_tag_t OIdhw4o8i8o4i = dnnl_OIdhw4o8i8o4i;
const format_tag_t IOw4i8o8i4o = dnnl_IOw4i8o8i4o;
const format_tag_t IOhw4i8o8i4o = dnnl_IOhw4i8o8i4o;
const format_tag_t IOdhw4i8o8i4o = dnnl_IOdhw4i8o8i4o;
const format_tag_t gIOw4i8o8i4o = dnnl_gIOw4i8o8i4o;
const format_tag_t gIOhw4i8o8i4o = dnnl_gIOhw4i8o8i4o;
const format_tag_t gIOdhw4i8o8i4o = dnnl_gIOdhw4i8o8i4o;
const format_tag_t OIhw2o8i8o2i = dnnl_OIhw2o8i8o2i;
const format_tag_t gOIw4o8i8o4i = dnnl_gOIw4o8i8o4i;
const format_tag_t gOIhw4o8i8o4i = dnnl_gOIhw4o8i8o4i;
const format_tag_t gOIdhw4o8i8o4i = dnnl_gOIdhw4o8i8o4i;
const format_tag_t gOIhw2o8i8o2i = dnnl_gOIhw2o8i8o2i;
const format_tag_t gOIhw8o8i = dnnl_gOIhw8o8i;
const format_tag_t gOIhw8o4i = dnnl_gOIhw8o4i;
const format_tag_t gOwhi16o = dnnl_gOwhi16o;
const format_tag_t gOdwhi16o = dnnl_gOdwhi16o;
const format_tag_t gIOdhw16i16o = dnnl_gIOdhw16i16o;
const format_tag_t gOdhwi16o = dnnl_gOdhwi16o;
const format_tag_t gOdhwI16o2i = dnnl_gOdhwI16o2i;
const format_tag_t gOdhwI16o4i = dnnl_gOdhwI16o4i;
const format_tag_t gOdhwi4o = dnnl_gOdhwi4o;
const format_tag_t gOdhwi8o = dnnl_gOdhwi8o;
const format_tag_t gOdhwI8o2i = dnnl_gOdhwI8o2i;
const format_tag_t gOdhwI8o4i = dnnl_gOdhwI8o4i;
const format_tag_t gOIdhw16i16o = dnnl_gOIdhw16i16o;
const format_tag_t gOIdhw16o16i = dnnl_gOIdhw16o16i;
const format_tag_t gOIdhw16o16i2o = dnnl_gOIdhw16o16i2o;
const format_tag_t gOidhw16o = dnnl_gOidhw16o;
const format_tag_t gOIdhw4i4o = dnnl_gOIdhw4i4o;
const format_tag_t gOIdhw4o4i = dnnl_gOIdhw4o4i;
const format_tag_t gOidhw4o = dnnl_gOidhw4o;
const format_tag_t gOIdhw8i16o2i = dnnl_gOIdhw8i16o2i;
const format_tag_t gOIdhw4i16o4i = dnnl_gOIdhw4i16o4i;
const format_tag_t gOIdhw16i16o4i = dnnl_gOIdhw16i16o4i;
const format_tag_t gOIdhw2i8o4i = dnnl_gOIdhw2i8o4i;
const format_tag_t gOIdhw16i16o2i = dnnl_gOIdhw16i16o2i;
const format_tag_t gOIdhw8o16i2o = dnnl_gOIdhw8o16i2o;
const format_tag_t gIOdhw8o16i2o = dnnl_gIOdhw8o16i2o;
const format_tag_t gOIdhw8i8o = dnnl_gOIdhw8i8o;
const format_tag_t gOIdhw8o8i = dnnl_gOIdhw8o8i;
const format_tag_t gOIdhw8o4i = dnnl_gOIdhw8o4i;
const format_tag_t Goiw32g = dnnl_Goiw32g;
const format_tag_t Goihw32g = dnnl_Goihw32g;
const format_tag_t Goidhw32g = dnnl_Goidhw32g;
const format_tag_t OIdhw4o8i8o2i = dnnl_OIdhw4o8i8o2i;
const format_tag_t OIhw4o8i8o2i = dnnl_OIhw4o8i8o2i;
const format_tag_t OIw4o8i8o2i = dnnl_OIw4o8i8o2i;
const format_tag_t gOIdhw4o8i8o2i = dnnl_gOIdhw4o8i8o2i;
const format_tag_t gOIhw4o8i8o2i = dnnl_gOIhw4o8i8o2i;
const format_tag_t gOIw4o8i8o2i = dnnl_gOIw4o8i8o2i;
const format_tag_t IOdhw4i8o8i2o = dnnl_IOdhw4i8o8i2o;
const format_tag_t IOhw4i8o8i2o = dnnl_IOhw4i8o8i2o;
const format_tag_t IOw4i8o8i2o = dnnl_IOw4i8o8i2o;
const format_tag_t gIOdhw4i8o8i2o = dnnl_gIOdhw4i8o8i2o;
const format_tag_t gIOhw4i8o8i2o = dnnl_gIOhw4i8o8i2o;
const format_tag_t gIOw4i8o8i2o = dnnl_gIOw4i8o8i2o;
const format_tag_t gOIw2i4o2i = dnnl_gOIw2i4o2i;
const format_tag_t gOIhw2i4o2i = dnnl_gOIhw2i4o2i;
const format_tag_t gOIdhw2i4o2i = dnnl_gOIdhw2i4o2i;
const format_tag_t gOIw2o4i2o = dnnl_gOIw2o4i2o;
const format_tag_t gOIhw2o4i2o = dnnl_gOIhw2o4i2o;
const format_tag_t gOIdhw2o4i2o = dnnl_gOIdhw2o4i2o;
const format_tag_t gOIw4i8o2i = dnnl_gOIw4i8o2i;
const format_tag_t gOIhw4i8o2i = dnnl_gOIhw4i8o2i;
const format_tag_t gOIdhw4i8o2i = dnnl_gOIdhw4i8o2i;
const format_tag_t gOIw4o8i2o = dnnl_gOIw4o8i2o;
const format_tag_t gOIhw4o8i2o = dnnl_gOIhw4o8i2o;
const format_tag_t gOIdhw4o8i2o = dnnl_gOIdhw4o8i2o;
const format_tag_t ldOi16o = dnnl_ldOi16o;
const format_tag_t ldOi32o = dnnl_ldOi32o;
const format_tag_t ldOI32o4i = dnnl_ldOI32o4i;
const format_tag_t ldIo32i = dnnl_ldIo32i;
const format_tag_t ldgOi16o = dnnl_ldgOi16o;
const format_tag_t ldgOi32o = dnnl_ldgOi32o;
const format_tag_t ldgOI32o2i = dnnl_ldgOI32o2i;
const format_tag_t ldgOI32o4i = dnnl_ldgOI32o4i;
const format_tag_t ldgOI64o2i = dnnl_ldgOI64o2i;
const format_tag_t ldgOI64o4i = dnnl_ldgOI64o4i;
const format_tag_t ldgIo16i = dnnl_ldgIo16i;
const format_tag_t ldgIo32i = dnnl_ldgIo32i;
const format_tag_t ldgIO32i2o = dnnl_ldgIO32i2o;
const format_tag_t wIo2i = dnnl_wIo2i;
const format_tag_t wIo4i = dnnl_wIo4i;
const format_tag_t gwio = dnnl_gwio;
const format_tag_t gwIo2i = dnnl_gwIo2i;
const format_tag_t gwIo4i = dnnl_gwIo4i;
const format_tag_t hwIo2i = dnnl_hwIo2i;
const format_tag_t hwIo4i = dnnl_hwIo4i;
const format_tag_t ghwio = dnnl_ghwio;
const format_tag_t ghwIo2i = dnnl_ghwIo2i;
const format_tag_t ghwIo4i = dnnl_ghwIo4i;
const format_tag_t dhwIo2i = dnnl_dhwIo2i;
const format_tag_t dhwIo4i = dnnl_dhwIo4i;
const format_tag_t gdhwio = dnnl_gdhwio;
const format_tag_t gdhwIo2i = dnnl_gdhwIo2i;
const format_tag_t gdhwIo4i = dnnl_gdhwIo4i;
const format_tag_t Owi32o = dnnl_Owi32o;
const format_tag_t OwI32o2i = dnnl_OwI32o2i;
const format_tag_t OwI32o4i = dnnl_OwI32o4i;
const format_tag_t Owi48o = dnnl_Owi48o;
const format_tag_t OwI48o2i = dnnl_OwI48o2i;
const format_tag_t OwI48o4i = dnnl_OwI48o4i;
const format_tag_t Owi64o = dnnl_Owi64o;
const format_tag_t OwI64o2i = dnnl_OwI64o2i;
const format_tag_t OwI64o4i = dnnl_OwI64o4i;
const format_tag_t OhwI32o2i = dnnl_OhwI32o2i;
const format_tag_t OhwI32o4i = dnnl_OhwI32o4i;
const format_tag_t Ohwi48o = dnnl_Ohwi48o;
const format_tag_t OhwI48o2i = dnnl_OhwI48o2i;
const format_tag_t OhwI48o4i = dnnl_OhwI48o4i;
const format_tag_t Ohwi64o = dnnl_Ohwi64o;
const format_tag_t OhwI64o2i = dnnl_OhwI64o2i;
const format_tag_t OhwI64o4i = dnnl_OhwI64o4i;
const format_tag_t Odhwi32o = dnnl_Odhwi32o;
const format_tag_t OdhwI32o2i = dnnl_OdhwI32o2i;
const format_tag_t OdhwI32o4i = dnnl_OdhwI32o4i;
const format_tag_t Odhwi48o = dnnl_Odhwi48o;
const format_tag_t OdhwI48o2i = dnnl_OdhwI48o2i;
const format_tag_t OdhwI48o4i = dnnl_OdhwI48o4i;
const format_tag_t Odhwi64o = dnnl_Odhwi64o;
const format_tag_t OdhwI64o2i = dnnl_OdhwI64o2i;
const format_tag_t OdhwI64o4i = dnnl_OdhwI64o4i;
const format_tag_t gOwi32o = dnnl_gOwi32o;
const format_tag_t gOwI32o2i = dnnl_gOwI32o2i;
const format_tag_t gOwI32o4i = dnnl_gOwI32o4i;
const format_tag_t gOwi48o = dnnl_gOwi48o;
const format_tag_t gOwI48o2i = dnnl_gOwI48o2i;
const format_tag_t gOwI48o4i = dnnl_gOwI48o4i;
const format_tag_t gOwi64o = dnnl_gOwi64o;
const format_tag_t gOwI64o2i = dnnl_gOwI64o2i;
const format_tag_t gOwI64o4i = dnnl_gOwI64o4i;
const format_tag_t gOhwI32o2i = dnnl_gOhwI32o2i;
const format_tag_t gOhwI32o4i = dnnl_gOhwI32o4i;
const format_tag_t gOhwi48o = dnnl_gOhwi48o;
const format_tag_t gOhwI48o2i = dnnl_gOhwI48o2i;
const format_tag_t gOhwI48o4i = dnnl_gOhwI48o4i;
const format_tag_t gOhwi64o = dnnl_gOhwi64o;
const format_tag_t gOhwI64o2i = dnnl_gOhwI64o2i;
const format_tag_t gOhwI64o4i = dnnl_gOhwI64o4i;
const format_tag_t gOdhwi32o = dnnl_gOdhwi32o;
const format_tag_t gOdhwI32o2i = dnnl_gOdhwI32o2i;
const format_tag_t gOdhwI32o4i = dnnl_gOdhwI32o4i;
const format_tag_t gOdhwi48o = dnnl_gOdhwi48o;
const format_tag_t gOdhwI48o2i = dnnl_gOdhwI48o2i;
const format_tag_t gOdhwI48o4i = dnnl_gOdhwI48o4i;
const format_tag_t gOdhwi64o = dnnl_gOdhwi64o;
const format_tag_t gOdhwI64o2i = dnnl_gOdhwI64o2i;
const format_tag_t gOdhwI64o4i = dnnl_gOdhwI64o4i;
const format_tag_t ABc2b8a16b4a = dnnl_ABc2b8a16b4a;
const format_tag_t ABcd2b8a16b4a = dnnl_ABcd2b8a16b4a;
const format_tag_t ABcde2b8a16b4a = dnnl_ABcde2b8a16b4a;
const format_tag_t ABc2a8b16a4b = dnnl_ABc2a8b16a4b;
const format_tag_t ABcd2a8b16a4b = dnnl_ABcd2a8b16a4b;
const format_tag_t ABcde2a8b16a4b = dnnl_ABcde2a8b16a4b;
const format_tag_t ABc2a8b16a2b = dnnl_ABc2a8b16a2b;
const format_tag_t ABcd2a8b16a2b = dnnl_ABcd2a8b16a2b;
const format_tag_t ABcde2a8b16a2b = dnnl_ABcde2a8b16a2b;
const format_tag_t aBCd2b8c16b2c = dnnl_aBCd2b8c16b2c;
const format_tag_t aBCde2b8c16b2c = dnnl_aBCde2b8c16b2c;
const format_tag_t aBCdef2b8c16b2c = dnnl_aBCdef2b8c16b2c;
const format_tag_t aBCd2b8c16b4c = dnnl_aBCd2b8c16b4c;
const format_tag_t aBCde2b8c16b4c = dnnl_aBCde2b8c16b4c;
const format_tag_t BAc2b8a16b2a = dnnl_BAc2b8a16b2a;
const format_tag_t aBCde2c8b16c2b = dnnl_aBCde2c8b16c2b;
const format_tag_t aBCdef2c8b16c2b = dnnl_aBCdef2c8b16c2b;
const format_tag_t BAcd2b8a16b2a = dnnl_BAcd2b8a16b2a;
const format_tag_t BAcde2b8a16b2a = dnnl_BAcde2b8a16b2a;
const format_tag_t aCBd2c8b16c2b = dnnl_aCBd2c8b16c2b;
const format_tag_t aCBde2c8b16c2b = dnnl_aCBde2c8b16c2b;
const format_tag_t aCBdef2c8b16c2b = dnnl_aCBdef2c8b16c2b;
const format_tag_t BAc2b8a16b4a = dnnl_BAc2b8a16b4a;
const format_tag_t BAcd2b8a16b4a = dnnl_BAcd2b8a16b4a;
const format_tag_t BAcde2b8a16b4a = dnnl_BAcde2b8a16b4a;
const format_tag_t ABc2b32a8b = dnnl_ABc2b32a8b;
const format_tag_t ABcd2b32a8b = dnnl_ABcd2b32a8b;
const format_tag_t ABcde2b32a8b = dnnl_ABcde2b32a8b;
const format_tag_t aBC2b8c16b2c = dnnl_aBC2b8c16b2c;
const format_tag_t ABc16a4b = dnnl_ABc16a4b;
const format_tag_t ABcd16a4b = dnnl_ABcd16a4b;
const format_tag_t ABcde16a4b = dnnl_ABcde16a4b;
const format_tag_t NCw2c32n8c = dnnl_NCw2c32n8c;
const format_tag_t NChw2c32n8c = dnnl_NChw2c32n8c;
const format_tag_t NCdhw2c32n8c = dnnl_NCdhw2c32n8c;
const format_tag_t OIw2i8o16i4o = dnnl_OIw2i8o16i4o;
const format_tag_t OIhw2i8o16i4o = dnnl_OIhw2i8o16i4o;
const format_tag_t OIdhw2i8o16i4o = dnnl_OIdhw2i8o16i4o;
const format_tag_t OIw2o8i16o4i = dnnl_OIw2o8i16o4i;
const format_tag_t OIhw2o8i16o4i = dnnl_OIhw2o8i16o4i;
const format_tag_t OIdhw2o8i16o4i = dnnl_OIdhw2o8i16o4i;
const format_tag_t OIw2o8i16o2i = dnnl_OIw2o8i16o2i;
const format_tag_t OIhw2o8i16o2i = dnnl_OIhw2o8i16o2i;
const format_tag_t OIdhw2o8i16o2i = dnnl_OIdhw2o8i16o2i;
const format_tag_t IOw2i8o16i4o = dnnl_IOw2i8o16i4o;
const format_tag_t IOhw2i8o16i4o = dnnl_IOhw2i8o16i4o;
const format_tag_t IOdhw2i8o16i4o = dnnl_IOdhw2i8o16i4o;
const format_tag_t IOw2i8o16i2o = dnnl_IOw2i8o16i2o;
const format_tag_t IOhw2i8o16i2o = dnnl_IOhw2i8o16i2o;
const format_tag_t IOdhw2i8o16i2o = dnnl_IOdhw2i8o16i2o;
const format_tag_t gOIw2o8i16o2i = dnnl_gOIw2o8i16o2i;
const format_tag_t gOIhw2o8i16o2i = dnnl_gOIhw2o8i16o2i;
const format_tag_t gOIdhw2o8i16o2i = dnnl_gOIdhw2o8i16o2i;
const format_tag_t gOIw2o8i16o4i = dnnl_gOIw2o8i16o4i;
const format_tag_t gOIhw2o8i16o4i = dnnl_gOIhw2o8i16o4i;
const format_tag_t gIOw2i8o16i2o = dnnl_gIOw2i8o16i2o;
const format_tag_t gIOhw2i8o16i2o = dnnl_gIOhw2i8o16i2o;
const format_tag_t gIOdhw2i8o16i2o = dnnl_gIOdhw2i8o16i2o;
const format_tag_t OwI16i16o2i = dnnl_OwI16i16o2i;
const format_tag_t OwI16i16o4i = dnnl_OwI16i16o4i;
const format_tag_t OhwI16i16o2i = dnnl_OhwI16i16o2i;
const format_tag_t OhwI16i16o4i = dnnl_OhwI16i16o4i;
const format_tag_t OdhwI16i16o2i = dnnl_OdhwI16i16o2i;
const format_tag_t OdhwI16i16o4i = dnnl_OdhwI16i16o4i;
const format_tag_t gOwI16i16o2i = dnnl_gOwI16i16o2i;
const format_tag_t gOwI16i16o4i = dnnl_gOwI16i16o4i;
const format_tag_t gOhwI16i16o2i = dnnl_gOhwI16i16o2i;
const format_tag_t gOhwI16i16o4i = dnnl_gOhwI16i16o4i;
const format_tag_t gOdhwI16i16o2i = dnnl_gOdhwI16i16o2i;
const format_tag_t gOdhwI16i16o4i = dnnl_gOdhwI16i16o4i;
const format_tag_t OwI16i32o2i = dnnl_OwI16i32o2i;
const format_tag_t OwI16i32o4i = dnnl_OwI16i32o4i;
const format_tag_t OwI16i48o2i = dnnl_OwI16i48o2i;
const format_tag_t OwI16i48o4i = dnnl_OwI16i48o4i;
const format_tag_t OwI16i64o2i = dnnl_OwI16i64o2i;
const format_tag_t OwI16i64o4i = dnnl_OwI16i64o4i;
const format_tag_t OhwI16i32o2i = dnnl_OhwI16i32o2i;
const format_tag_t OhwI16i32o4i = dnnl_OhwI16i32o4i;
const format_tag_t OhwI16i48o2i = dnnl_OhwI16i48o2i;
const format_tag_t OhwI16i48o4i = dnnl_OhwI16i48o4i;
const format_tag_t OhwI16i64o2i = dnnl_OhwI16i64o2i;
const format_tag_t OhwI16i64o4i = dnnl_OhwI16i64o4i;
const format_tag_t OdhwI16i32o2i = dnnl_OdhwI16i32o2i;
const format_tag_t OdhwI16i32o4i = dnnl_OdhwI16i32o4i;
const format_tag_t OdhwI16i48o2i = dnnl_OdhwI16i48o2i;
const format_tag_t OdhwI16i48o4i = dnnl_OdhwI16i48o4i;
const format_tag_t OdhwI16i64o2i = dnnl_OdhwI16i64o2i;
const format_tag_t OdhwI16i64o4i = dnnl_OdhwI16i64o4i;
const format_tag_t IdhwO16o32i2o = dnnl_IdhwO16o32i2o;
const format_tag_t IdhwO16o32i4o = dnnl_IdhwO16o32i4o;
const format_tag_t IdhwO16o48i2o = dnnl_IdhwO16o48i2o;
const format_tag_t IdhwO16o48i4o = dnnl_IdhwO16o48i4o;
const format_tag_t IdhwO16o64i2o = dnnl_IdhwO16o64i2o;
const format_tag_t IdhwO16o64i4o = dnnl_IdhwO16o64i4o;
const format_tag_t gOwI16i32o2i = dnnl_gOwI16i32o2i;
const format_tag_t gOwI16i32o4i = dnnl_gOwI16i32o4i;
const format_tag_t gOwI16i48o2i = dnnl_gOwI16i48o2i;
const format_tag_t gOwI16i48o4i = dnnl_gOwI16i48o4i;
const format_tag_t gOwI16i64o2i = dnnl_gOwI16i64o2i;
const format_tag_t gOwI16i64o4i = dnnl_gOwI16i64o4i;
const format_tag_t gOhwI16i32o2i = dnnl_gOhwI16i32o2i;
const format_tag_t gOhwI16i32o4i = dnnl_gOhwI16i32o4i;
const format_tag_t gOhwI16i48o2i = dnnl_gOhwI16i48o2i;
const format_tag_t gOhwI16i48o4i = dnnl_gOhwI16i48o4i;
const format_tag_t gOhwI16i64o2i = dnnl_gOhwI16i64o2i;
const format_tag_t gOhwI16i64o4i = dnnl_gOhwI16i64o4i;
const format_tag_t gOdhwI16i32o2i = dnnl_gOdhwI16i32o2i;
const format_tag_t gOdhwI16i32o4i = dnnl_gOdhwI16i32o4i;
const format_tag_t gOdhwI16i48o2i = dnnl_gOdhwI16i48o2i;
const format_tag_t gOdhwI16i48o4i = dnnl_gOdhwI16i48o4i;
const format_tag_t gOdhwI16i64o2i = dnnl_gOdhwI16i64o2i;
const format_tag_t gOdhwI16i64o4i = dnnl_gOdhwI16i64o4i;
const format_tag_t gIdhwO16o32i2o = dnnl_gIdhwO16o32i2o;
const format_tag_t gIdhwO16o32i4o = dnnl_gIdhwO16o32i4o;
const format_tag_t gIdhwO16o48i2o = dnnl_gIdhwO16o48i2o;
const format_tag_t gIdhwO16o48i4o = dnnl_gIdhwO16o48i4o;
const format_tag_t gIdhwO16o64i2o = dnnl_gIdhwO16o64i2o;
const format_tag_t gIdhwO16o64i4o = dnnl_gIdhwO16o64i4o;
const format_tag_t Idhwo32i = dnnl_Idhwo32i;
const format_tag_t IdhwO32i2o = dnnl_IdhwO32i2o;
const format_tag_t IdhwO32i4o = dnnl_IdhwO32i4o;
const format_tag_t Idhwo48i = dnnl_Idhwo48i;
const format_tag_t IdhwO48i2o = dnnl_IdhwO48i2o;
const format_tag_t IdhwO48i4o = dnnl_IdhwO48i4o;
const format_tag_t Idhwo64i = dnnl_Idhwo64i;
const format_tag_t IdhwO64i2o = dnnl_IdhwO64i2o;
const format_tag_t IdhwO64i4o = dnnl_IdhwO64i4o;
const format_tag_t gIdhwo32i = dnnl_gIdhwo32i;
const format_tag_t gIdhwO32i2o = dnnl_gIdhwO32i2o;
const format_tag_t gIdhwO32i4o = dnnl_gIdhwO32i4o;
const format_tag_t gIdhwo48i = dnnl_gIdhwo48i;
const format_tag_t gIdhwO48i2o = dnnl_gIdhwO48i2o;
const format_tag_t gIdhwO48i4o = dnnl_gIdhwO48i4o;
const format_tag_t gIdhwo64i = dnnl_gIdhwo64i;
const format_tag_t gIdhwO64i2o = dnnl_gIdhwO64i2o;
const format_tag_t gIdhwO64i4o = dnnl_gIdhwO64i4o;
const format_tag_t Iwo32i = dnnl_Iwo32i;
const format_tag_t IwO32i2o = dnnl_IwO32i2o;
const format_tag_t IwO32i4o = dnnl_IwO32i4o;
const format_tag_t Iwo48i = dnnl_Iwo48i;
const format_tag_t IwO48i2o = dnnl_IwO48i2o;
const format_tag_t IwO48i4o = dnnl_IwO48i4o;
const format_tag_t Iwo64i = dnnl_Iwo64i;
const format_tag_t IwO64i2o = dnnl_IwO64i2o;
const format_tag_t IwO64i4o = dnnl_IwO64i4o;
const format_tag_t gIwo32i = dnnl_gIwo32i;
const format_tag_t gIwO32i2o = dnnl_gIwO32i2o;
const format_tag_t gIwO32i4o = dnnl_gIwO32i4o;
const format_tag_t gIwo48i = dnnl_gIwo48i;
const format_tag_t gIwO48i2o = dnnl_gIwO48i2o;
const format_tag_t gIwO48i4o = dnnl_gIwO48i4o;
const format_tag_t gIwo64i = dnnl_gIwo64i;
const format_tag_t gIwO64i2o = dnnl_gIwO64i2o;
const format_tag_t gIwO64i4o = dnnl_gIwO64i4o;
const format_tag_t IwO16o16i2o = dnnl_IwO16o16i2o;
const format_tag_t IwO16o16i4o = dnnl_IwO16o16i4o;
const format_tag_t IhwO16o16i2o = dnnl_IhwO16o16i2o;
const format_tag_t IhwO16o16i4o = dnnl_IhwO16o16i4o;
const format_tag_t IdhwO16o16i2o = dnnl_IdhwO16o16i2o;
const format_tag_t IdhwO16o16i4o = dnnl_IdhwO16o16i4o;
const format_tag_t gIwO16o16i2o = dnnl_gIwO16o16i2o;
const format_tag_t gIwO16o16i4o = dnnl_gIwO16o16i4o;
const format_tag_t gIhwO16o16i2o = dnnl_gIhwO16o16i2o;
const format_tag_t gIhwO16o16i4o = dnnl_gIhwO16o16i4o;
const format_tag_t gIdhwO16o16i2o = dnnl_gIdhwO16o16i2o;
const format_tag_t gIdhwO16o16i4o = dnnl_gIdhwO16o16i4o;
const format_tag_t IwO16o32i2o = dnnl_IwO16o32i2o;
const format_tag_t IwO16o32i4o = dnnl_IwO16o32i4o;
const format_tag_t IwO16o48i2o = dnnl_IwO16o48i2o;
const format_tag_t IwO16o48i4o = dnnl_IwO16o48i4o;
const format_tag_t IwO16o64i2o = dnnl_IwO16o64i2o;
const format_tag_t IwO16o64i4o = dnnl_IwO16o64i4o;
const format_tag_t gIwO16o32i2o = dnnl_gIwO16o32i2o;
const format_tag_t gIwO16o32i4o = dnnl_gIwO16o32i4o;
const format_tag_t gIwO16o48i2o = dnnl_gIwO16o48i2o;
const format_tag_t gIwO16o48i4o = dnnl_gIwO16o48i4o;
const format_tag_t gIwO16o64i2o = dnnl_gIwO16o64i2o;
const format_tag_t gIwO16o64i4o = dnnl_gIwO16o64i4o;
const format_tag_t IhwO16o32i2o = dnnl_IhwO16o32i2o;
const format_tag_t IhwO16o32i4o = dnnl_IhwO16o32i4o;
const format_tag_t IhwO16o48i2o = dnnl_IhwO16o48i2o;
const format_tag_t IhwO16o48i4o = dnnl_IhwO16o48i4o;
const format_tag_t IhwO16o64i2o = dnnl_IhwO16o64i2o;
const format_tag_t IhwO16o64i4o = dnnl_IhwO16o64i4o;
const format_tag_t gIhwO16o32i2o = dnnl_gIhwO16o32i2o;
const format_tag_t gIhwO16o32i4o = dnnl_gIhwO16o32i4o;
const format_tag_t gIhwO16o48i2o = dnnl_gIhwO16o48i2o;
const format_tag_t gIhwO16o48i4o = dnnl_gIhwO16o48i4o;
const format_tag_t gIhwO16o64i2o = dnnl_gIhwO16o64i2o;
const format_tag_t gIhwO16o64i4o = dnnl_gIhwO16o64i4o;
const format_tag_t Ihwo32i = dnnl_Ihwo32i;
const format_tag_t IhwO32i2o = dnnl_IhwO32i2o;
const format_tag_t IhwO32i4o = dnnl_IhwO32i4o;
const format_tag_t Ihwo48i = dnnl_Ihwo48i;
const format_tag_t IhwO48i2o = dnnl_IhwO48i2o;
const format_tag_t IhwO48i4o = dnnl_IhwO48i4o;
const format_tag_t Ihwo64i = dnnl_Ihwo64i;
const format_tag_t IhwO64i2o = dnnl_IhwO64i2o;
const format_tag_t IhwO64i4o = dnnl_IhwO64i4o;
const format_tag_t gIhwo32i = dnnl_gIhwo32i;
const format_tag_t gIhwO32i2o = dnnl_gIhwO32i2o;
const format_tag_t gIhwO32i4o = dnnl_gIhwO32i4o;
const format_tag_t gIhwo48i = dnnl_gIhwo48i;
const format_tag_t gIhwO48i2o = dnnl_gIhwO48i2o;
const format_tag_t gIhwO48i4o = dnnl_gIhwO48i4o;
const format_tag_t gIhwo64i = dnnl_gIhwo64i;
const format_tag_t gIhwO64i2o = dnnl_gIhwO64i2o;
const format_tag_t gIhwO64i4o = dnnl_gIhwO64i4o;
const format_tag_t Iwo8i = dnnl_Iwo8i;
const format_tag_t IwO8i2o = dnnl_IwO8i2o;
const format_tag_t IwO8i4o = dnnl_IwO8i4o;
const format_tag_t Ihwo8i = dnnl_Ihwo8i;
const format_tag_t IhwO8i2o = dnnl_IhwO8i2o;
const format_tag_t IhwO8i4o = dnnl_IhwO8i4o;
const format_tag_t Idhwo8i = dnnl_Idhwo8i;
const format_tag_t IdhwO8i2o = dnnl_IdhwO8i2o;
const format_tag_t IdhwO8i4o = dnnl_IdhwO8i4o;
const format_tag_t Iwo16i = dnnl_Iwo16i;
const format_tag_t IwO16i2o = dnnl_IwO16i2o;
const format_tag_t IwO16i4o = dnnl_IwO16i4o;
const format_tag_t Ihwo16i = dnnl_Ihwo16i;
const format_tag_t IhwO16i2o = dnnl_IhwO16i2o;
const format_tag_t IhwO16i4o = dnnl_IhwO16i4o;
const format_tag_t Idhwo16i = dnnl_Idhwo16i;
const format_tag_t IdhwO16i2o = dnnl_IdhwO16i2o;
const format_tag_t IdhwO16i4o = dnnl_IdhwO16i4o;
const format_tag_t Iwo24i = dnnl_Iwo24i;
const format_tag_t IwO24i2o = dnnl_IwO24i2o;
const format_tag_t IwO24i4o = dnnl_IwO24i4o;
const format_tag_t Ihwo24i = dnnl_Ihwo24i;
const format_tag_t IhwO24i2o = dnnl_IhwO24i2o;
const format_tag_t IhwO24i4o = dnnl_IhwO24i4o;
const format_tag_t Idhwo24i = dnnl_Idhwo24i;
const format_tag_t IdhwO24i2o = dnnl_IdhwO24i2o;
const format_tag_t IdhwO24i4o = dnnl_IdhwO24i4o;
const format_tag_t gIwo8i = dnnl_gIwo8i;
const format_tag_t gIwO8i2o = dnnl_gIwO8i2o;
const format_tag_t gIwO8i4o = dnnl_gIwO8i4o;
const format_tag_t gIhwo8i = dnnl_gIhwo8i;
const format_tag_t gIhwO8i2o = dnnl_gIhwO8i2o;
const format_tag_t gIhwO8i4o = dnnl_gIhwO8i4o;
const format_tag_t gIdhwo8i = dnnl_gIdhwo8i;
const format_tag_t gIdhwO8i2o = dnnl_gIdhwO8i2o;
const format_tag_t gIdhwO8i4o = dnnl_gIdhwO8i4o;
const format_tag_t gIwo16i = dnnl_gIwo16i;
const format_tag_t gIwO16i2o = dnnl_gIwO16i2o;
const format_tag_t gIwO16i4o = dnnl_gIwO16i4o;
const format_tag_t gIhwo16i = dnnl_gIhwo16i;
const format_tag_t gIhwO16i2o = dnnl_gIhwO16i2o;
const format_tag_t gIhwO16i4o = dnnl_gIhwO16i4o;
const format_tag_t gIdhwo16i = dnnl_gIdhwo16i;
const format_tag_t gIdhwO16i2o = dnnl_gIdhwO16i2o;
const format_tag_t gIdhwO16i4o = dnnl_gIdhwO16i4o;
const format_tag_t gIwo24i = dnnl_gIwo24i;
const format_tag_t gIwO24i2o = dnnl_gIwO24i2o;
const format_tag_t gIwO24i4o = dnnl_gIwO24i4o;
const format_tag_t gIhwo24i = dnnl_gIhwo24i;
const format_tag_t gIhwO24i2o = dnnl_gIhwO24i2o;
const format_tag_t gIhwO24i4o = dnnl_gIhwO24i4o;
const format_tag_t gIdhwo24i = dnnl_gIdhwo24i;
const format_tag_t gIdhwO24i2o = dnnl_gIdhwO24i2o;
const format_tag_t gIdhwO24i4o = dnnl_gIdhwO24i4o;
const format_tag_t hwioG16g = dnnl_hwioG16g;
const format_tag_t hwioG8g = dnnl_hwioG8g;
const format_tag_t dhwioG16g = dnnl_dhwioG16g;
const format_tag_t dhwioG8g = dnnl_dhwioG8g;
const format_tag_t Owi24o = dnnl_Owi24o;
const format_tag_t Ohwi24o = dnnl_Ohwi24o;
const format_tag_t Odhwi24o = dnnl_Odhwi24o;
const format_tag_t gOwi24o = dnnl_gOwi24o;
const format_tag_t gOhwi24o = dnnl_gOhwi24o;
const format_tag_t gOdhwi24o = dnnl_gOdhwi24o;
const format_tag_t OwI24o2i = dnnl_OwI24o2i;
const format_tag_t OhwI24o2i = dnnl_OhwI24o2i;
const format_tag_t OdhwI24o2i = dnnl_OdhwI24o2i;
const format_tag_t gOwI24o2i = dnnl_gOwI24o2i;
const format_tag_t gOhwI24o2i = dnnl_gOhwI24o2i;
const format_tag_t gOdhwI24o2i = dnnl_gOdhwI24o2i;
const format_tag_t OwI24o4i = dnnl_OwI24o4i;
const format_tag_t OhwI24o4i = dnnl_OhwI24o4i;
const format_tag_t OdhwI24o4i = dnnl_OdhwI24o4i;
const format_tag_t gOwI24o4i = dnnl_gOwI24o4i;
const format_tag_t gOhwI24o4i = dnnl_gOhwI24o4i;
const format_tag_t gOdhwI24o4i = dnnl_gOdhwI24o4i;
const format_tag_t OI8i32o = dnnl_OI8i32o;
const format_tag_t OIw8i32o = dnnl_OIw8i32o;
const format_tag_t OIhw8i32o = dnnl_OIhw8i32o;
const format_tag_t OIdhw8i32o = dnnl_OIdhw8i32o;
const format_tag_t OI8i24o = dnnl_OI8i24o;
const format_tag_t OIw8i24o = dnnl_OIw8i24o;
const format_tag_t OIhw8i24o = dnnl_OIhw8i24o;
const format_tag_t OIdhw8i24o = dnnl_OIdhw8i24o;
const format_tag_t OI8i16o = dnnl_OI8i16o;
const format_tag_t OIw8i16o = dnnl_OIw8i16o;
const format_tag_t OIhw8i16o = dnnl_OIhw8i16o;
const format_tag_t OIdhw8i16o = dnnl_OIdhw8i16o;
const format_tag_t OI8i8o = dnnl_OI8i8o;
const format_tag_t OI8i8o2i = dnnl_OI8i8o2i;
const format_tag_t OIw8i8o2i = dnnl_OIw8i8o2i;
const format_tag_t OIhw8i8o2i = dnnl_OIhw8i8o2i;
const format_tag_t OIdhw8i8o2i = dnnl_OIdhw8i8o2i;
const format_tag_t OI8i24o2i = dnnl_OI8i24o2i;
const format_tag_t OIw8i24o2i = dnnl_OIw8i24o2i;
const format_tag_t OIhw8i24o2i = dnnl_OIhw8i24o2i;
const format_tag_t OIdhw8i24o2i = dnnl_OIdhw8i24o2i;
}
using normalization_flags_t = dnnl_normalization_flags_t;
namespace normalization_flags {
const normalization_flags_t none = dnnl_normalization_flags_none;
const normalization_flags_t use_global_stats = dnnl_use_global_stats;
const normalization_flags_t use_scale = dnnl_use_scale;
const normalization_flags_t use_shift = dnnl_use_shift;
const normalization_flags_t fuse_norm_relu = dnnl_fuse_norm_relu;
const normalization_flags_t fuse_norm_add_relu = dnnl_fuse_norm_add_relu;
}
using rnn_flags_t = dnnl_rnn_flags_t;
namespace rnn_flags {
const rnn_flags_t undef = dnnl_rnn_flags_undef;
const rnn_flags_t diff_weights_overwrite
= dnnl_rnn_flags_diff_weights_overwrite;
}
using engine_kind_t = dnnl_engine_kind_t;
namespace engine_kind {
const engine_kind_t any_engine = dnnl_any_engine;
const engine_kind_t cpu = dnnl_cpu;
const engine_kind_t gpu = dnnl_gpu;
}
enum runtime_kind_t {
dnnl_runtime_none,
dnnl_runtime_seq,
dnnl_runtime_omp,
dnnl_runtime_tbb,
dnnl_runtime_threadpool,
dnnl_runtime_ocl,
dnnl_runtime_sycl,
};
namespace runtime_kind {
const runtime_kind_t none = dnnl_runtime_none;
const runtime_kind_t seq = dnnl_runtime_seq;
const runtime_kind_t omp = dnnl_runtime_omp;
const runtime_kind_t tbb = dnnl_runtime_tbb;
const runtime_kind_t threadpool = dnnl_runtime_threadpool;
const runtime_kind_t ocl = dnnl_runtime_ocl;
const runtime_kind_t sycl = dnnl_runtime_sycl;
}
using primitive_kind_t = dnnl_primitive_kind_t;
namespace primitive_kind {
const primitive_kind_t undefined = dnnl_undefined_primitive;
const primitive_kind_t reorder = dnnl_reorder;
const primitive_kind_t concat = dnnl_concat;
const primitive_kind_t sum = dnnl_sum;
const primitive_kind_t convolution = dnnl_convolution;
const primitive_kind_t deconvolution = dnnl_deconvolution;
const primitive_kind_t shuffle = dnnl_shuffle;
const primitive_kind_t eltwise = dnnl_eltwise;
const primitive_kind_t pooling = dnnl_pooling;
const primitive_kind_t prelu = dnnl_prelu;
const primitive_kind_t lrn = dnnl_lrn;
const primitive_kind_t batch_normalization = dnnl_batch_normalization;
const primitive_kind_t inner_product = dnnl_inner_product;
const primitive_kind_t rnn = dnnl_rnn;
const primitive_kind_t gemm = dnnl_gemm;
const primitive_kind_t binary = dnnl_binary;
const primitive_kind_t matmul = dnnl_matmul;
const primitive_kind_t resampling = dnnl_resampling;
const primitive_kind_t reduction = dnnl_reduction;
const primitive_kind_t softmax = dnnl_softmax;
const primitive_kind_t layer_normalization = dnnl_layer_normalization;
const primitive_kind_t group_normalization = dnnl_group_normalization;
const primitive_kind_t internal_only_start = (primitive_kind_t)(1 << 12);
const primitive_kind_t zero_pad = internal_only_start;
}
using query_t = dnnl_query_t;
namespace query {
const query_t undef = dnnl_query_undef;
const query_t engine = dnnl_query_engine;
const query_t primitive_kind = dnnl_query_primitive_kind;
const query_t num_of_inputs_s32 = dnnl_query_num_of_inputs_s32;
const query_t num_of_outputs_s32 = dnnl_query_num_of_outputs_s32;
const query_t time_estimate_f64 = dnnl_query_time_estimate_f64;
const query_t memory_consumption_s64 = dnnl_query_memory_consumption_s64;
const query_t scratchpad_engine = dnnl_query_scratchpad_engine;
const query_t impl_info_str = dnnl_query_impl_info_str;
const query_t reorder_src_engine = dnnl_query_reorder_src_engine;
const query_t reorder_dst_engine = dnnl_query_reorder_dst_engine;
const query_t prop_kind = dnnl_query_prop_kind;
const query_t cache_blob_id_size_s64 = dnnl_query_cache_blob_id_size_s64;
const query_t cache_blob_id = dnnl_query_cache_blob_id;
const query_t strides = dnnl_query_strides;
const query_t dilations = dnnl_query_dilations;
const query_t padding_l = dnnl_query_padding_l;
const query_t padding_r = dnnl_query_padding_r;
const query_t epsilon_f32 = dnnl_query_epsilon_f32;
const query_t flags = dnnl_query_flags;
const query_t alg_kind = dnnl_query_alg_kind;
const query_t alpha_f32 = dnnl_query_alpha_f32;
const query_t beta_f32 = dnnl_query_beta_f32;
const query_t axis_s32 = dnnl_query_axis_s32;
const query_t local_size_s64 = dnnl_query_local_size_s64;
const query_t k_f32 = dnnl_query_k_f32;
const query_t p_f32 = dnnl_query_p_f32;
const query_t factors = dnnl_query_factors;
const query_t cell_kind = dnnl_query_cell_kind;
const query_t direction = dnnl_query_direction;
const query_t activation_kind = dnnl_query_activation_kind;
const query_t kernel = dnnl_query_kernel;
const query_t group_size_s64 = dnnl_query_group_size_s64;
const query_t some_md = dnnl_query_some_md;
const query_t src_md = dnnl_query_src_md;
const query_t diff_src_md = dnnl_query_diff_src_md;
const query_t weights_md = dnnl_query_weights_md;
const query_t diff_weights_md = dnnl_query_diff_weights_md;
const query_t dst_md = dnnl_query_dst_md;
const query_t diff_dst_md = dnnl_query_diff_dst_md;
const query_t exec_arg_md = dnnl_query_exec_arg_md;
const query_t workspace_md = dnnl_query_workspace_md;
const query_t scratchpad_md = dnnl_query_scratchpad_md;
const query_t ndims_s32 = dnnl_query_ndims_s32;
const query_t dims = dnnl_query_dims;
const query_t data_type = dnnl_query_data_type;
const query_t submemory_offset_s64 = dnnl_query_submemory_offset_s64;
const query_t padded_dims = dnnl_query_padded_dims;
const query_t padded_offsets = dnnl_query_padded_offsets;
const query_t format_kind = dnnl_query_format_kind;
const query_t inner_nblks_s32 = dnnl_query_inner_nblks_s32;
const query_t inner_blks = dnnl_query_inner_blks;
const query_t inner_idxs = dnnl_query_inner_idxs;
const query_t sparse_encoding = dnnl_query_undef;
const query_t nnz_s64 = dnnl_query_undef;
const query_t num_handles_s32 = dnnl_query_undef;
const query_t internal_only_start = (query_t)(1 << 12);
const query_t zero_pad_d = internal_only_start;
const query_t preferred_gpu_threads_per_eu = (query_t)(internal_only_start + 1);
}
using rnn_direction_t = dnnl_rnn_direction_t;
using engine_t = dnnl_engine;
using primitive_attr_t = dnnl_primitive_attr;
using post_ops_t = dnnl_post_ops;
using memory_desc_t = dnnl_memory_desc;
using memory_t = dnnl_memory;
using stream_flags_t = dnnl_stream_flags_t;
namespace stream_flags {
const stream_flags_t in_order = dnnl_stream_in_order;
const stream_flags_t out_of_order = dnnl_stream_out_of_order;
const stream_flags_t default_flags = dnnl_stream_default_flags;
const stream_flags_t profiling = static_cast<stream_flags_t>(1 << 2);
}
using stream_t = dnnl_stream;
struct memory_storage_t;
struct batch_normalization_bwd_pd_t;
struct batch_normalization_fwd_pd_t;
struct batch_normalization_pd_t;
struct binary_pd_t;
struct concat_pd_t;
struct convolution_bwd_data_pd_t;
struct convolution_bwd_weights_pd_t;
struct convolution_fwd_pd_t;
struct convolution_pd_t;
struct deconvolution_bwd_data_pd_t;
struct deconvolution_bwd_weights_pd_t;
struct deconvolution_fwd_pd_t;
struct deconvolution_pd_t;
struct eltwise_bwd_pd_t;
struct eltwise_fwd_pd_t;
struct eltwise_pd_t;
struct gemm_pd_t;
struct group_normalization_bwd_pd_t;
struct group_normalization_fwd_pd_t;
struct group_normalization_pd_t;
struct inner_product_bwd_data_pd_t;
struct inner_product_bwd_weights_pd_t;
struct inner_product_fwd_pd_t;
struct inner_product_pd_t;
struct layer_normalization_bwd_pd_t;
struct layer_normalization_fwd_pd_t;
struct layer_normalization_pd_t;
struct lrn_bwd_pd_t;
struct lrn_fwd_pd_t;
struct lrn_pd_t;
struct matmul_pd_t;
struct pooling_bwd_pd_t;
struct pooling_fwd_pd_t;
struct pooling_pd_t;
struct prelu_pd_t;
struct reduction_pd_t;
struct reorder_pd_t;
struct resampling_pd_t;
struct rnn_bwd_pd_t;
struct rnn_fwd_pd_t;
struct rnn_pd_t;
struct shuffle_pd_t;
struct softmax_bwd_pd_t;
struct softmax_fwd_pd_t;
struct softmax_pd_t;
struct sum_pd_t;
}
}
# 21 "third_party/intel_dnnl/src/cpu/x64/jit_uni_layer_normalization.cpp" 2
# 1 "third_party/intel_dnnl/src/common/dnnl_thread.hpp" 1 3
# 20 "third_party/intel_dnnl/src/common/dnnl_thread.hpp" 3
# 1 "third_party/stl/cxx17/algorithm" 1 3
# 1 "/bin/../include/c++/v1/algorithm" 1 3
# 1787 "/bin/../include/c++/v1/algorithm" 3
# 1 "/bin/../include/c++/v1/__algorithm/adjacent_find.h" 1 3
# 13 "/bin/../include/c++/v1/__algorithm/adjacent_find.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/comp.h" 1 3
# 14 "/bin/../include/c++/v1/__algorithm/comp.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/operation_traits.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/operation_traits.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
struct __equal_tag {};
struct __plus_tag {};
# 35 "/bin/../include/c++/v1/__type_traits/operation_traits.h" 3
template <class _CanonicalTag, class _Operation, class... _Args>
struct __desugars_to : false_type {};
}}
# 15 "/bin/../include/c++/v1/__algorithm/comp.h" 2 3
# 18 "/bin/../include/c++/v1/__algorithm/comp.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
struct __equal_to {
template <class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _T1& __x, const _T2& __y) const {
return __x == __y;
}
};
template <class _Tp, class _Up>
struct __desugars_to<__equal_tag, __equal_to, _Tp, _Up> : true_type {};
template <class _T1 = void, class _T2 = _T1>
struct __less {};
template <>
struct __less<void, void> {
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool operator()(const _Tp& __lhs, const _Up& __rhs) const {
return __lhs < __rhs;
}
};
}}
# 14 "/bin/../include/c++/v1/__algorithm/adjacent_find.h" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 1 3
# 12 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/iter_swap.h" 1 3
# 14 "/bin/../include/c++/v1/__algorithm/iter_swap.h" 3
# 1 "/bin/../include/c++/v1/__utility/swap.h" 1 3
# 13 "/bin/../include/c++/v1/__utility/swap.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_move_assignable.h" 1 3
# 13 "/bin/../include/c++/v1/__type_traits/is_move_assignable.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/add_lvalue_reference.h" 1 3
# 13 "/bin/../include/c++/v1/__type_traits/add_lvalue_reference.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_referenceable.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_referenceable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __libcpp_is_referenceable : integral_constant<bool, __is_referenceable(_Tp)> {};
# 39 "/bin/../include/c++/v1/__type_traits/is_referenceable.h" 3
}}
# 14 "/bin/../include/c++/v1/__type_traits/add_lvalue_reference.h" 2 3
# 17 "/bin/../include/c++/v1/__type_traits/add_lvalue_reference.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __add_lvalue_reference_t = __add_lvalue_reference(_Tp);
# 42 "/bin/../include/c++/v1/__type_traits/add_lvalue_reference.h" 3
template <class _Tp>
struct add_lvalue_reference {
using type __attribute__((__nodebug__)) = __add_lvalue_reference_t<_Tp>;
};
template <class _Tp>
using add_lvalue_reference_t = __add_lvalue_reference_t<_Tp>;
}}
# 14 "/bin/../include/c++/v1/__type_traits/is_move_assignable.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/add_rvalue_reference.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/add_rvalue_reference.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __add_rvalue_reference_t = __add_rvalue_reference(_Tp);
# 42 "/bin/../include/c++/v1/__type_traits/add_rvalue_reference.h" 3
template <class _Tp>
struct add_rvalue_reference {
using type = __add_rvalue_reference_t<_Tp>;
};
template <class _Tp>
using add_rvalue_reference_t = __add_rvalue_reference_t<_Tp>;
}}
# 15 "/bin/../include/c++/v1/__type_traits/is_move_assignable.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/is_move_assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_move_assignable
: public integral_constant<bool, __is_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> {};
template <class _Tp>
inline constexpr bool is_move_assignable_v = is_move_assignable<_Tp>::value;
}}
# 14 "/bin/../include/c++/v1/__utility/swap.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_move_constructible.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_move_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_move_constructible
: public integral_constant<bool, __is_constructible(_Tp, __add_rvalue_reference_t<_Tp>)> {};
template <class _Tp>
inline constexpr bool is_move_constructible_v = is_move_constructible<_Tp>::value;
}}
# 15 "/bin/../include/c++/v1/__utility/swap.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_nothrow_move_assignable.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/is_nothrow_move_assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_nothrow_move_assignable
: public integral_constant<bool,
__is_nothrow_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> {
};
template <class _Tp>
inline constexpr bool is_nothrow_move_assignable_v = is_nothrow_move_assignable<_Tp>::value;
}}
# 16 "/bin/../include/c++/v1/__utility/swap.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_nothrow_move_constructible.h" 1 3
# 15 "/bin/../include/c++/v1/__type_traits/is_nothrow_move_constructible.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_nothrow_constructible.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/is_nothrow_constructible.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_constructible.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class... _Args>
struct is_constructible : public integral_constant<bool, __is_constructible(_Tp, _Args...)> {};
template <class _Tp, class... _Args>
inline constexpr bool is_constructible_v = __is_constructible(_Tp, _Args...);
}}
# 15 "/bin/../include/c++/v1/__type_traits/is_nothrow_constructible.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_reference.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_reference.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_lvalue_reference : _BoolConstant<__is_lvalue_reference(_Tp)> {};
template <class _Tp>
struct is_rvalue_reference : _BoolConstant<__is_rvalue_reference(_Tp)> {};
template <class _Tp>
struct is_reference : _BoolConstant<__is_reference(_Tp)> {};
template <class _Tp>
inline constexpr bool is_reference_v = __is_reference(_Tp);
template <class _Tp>
inline constexpr bool is_lvalue_reference_v = __is_lvalue_reference(_Tp);
template <class _Tp>
inline constexpr bool is_rvalue_reference_v = __is_rvalue_reference(_Tp);
# 73 "/bin/../include/c++/v1/__type_traits/is_reference.h" 3
}}
# 16 "/bin/../include/c++/v1/__type_traits/is_nothrow_constructible.h" 2 3
# 1 "third_party/stl/cxx17/cstddef" 1 3
# 1 "/bin/../include/c++/v1/cstddef" 1 3
# 43 "/bin/../include/c++/v1/cstddef" 3
# 1 "/bin/../include/c++/v1/stddef.h" 1 3
# 44 "/bin/../include/c++/v1/cstddef" 2 3
# 55 "/bin/../include/c++/v1/cstddef" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
using ::nullptr_t;
using ::ptrdiff_t __attribute__((__using_if_exists__));
using ::size_t __attribute__((__using_if_exists__));
using ::max_align_t __attribute__((__using_if_exists__));
}}
namespace std
{
enum class byte : unsigned char {};
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr byte operator|(byte __lhs, byte __rhs) noexcept {
return static_cast<byte>(
static_cast<unsigned char>(static_cast<unsigned int>(__lhs) | static_cast<unsigned int>(__rhs)));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr byte& operator|=(byte& __lhs, byte __rhs) noexcept {
return __lhs = __lhs | __rhs;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr byte operator&(byte __lhs, byte __rhs) noexcept {
return static_cast<byte>(
static_cast<unsigned char>(static_cast<unsigned int>(__lhs) & static_cast<unsigned int>(__rhs)));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr byte& operator&=(byte& __lhs, byte __rhs) noexcept {
return __lhs = __lhs & __rhs;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr byte operator^(byte __lhs, byte __rhs) noexcept {
return static_cast<byte>(
static_cast<unsigned char>(static_cast<unsigned int>(__lhs) ^ static_cast<unsigned int>(__rhs)));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr byte& operator^=(byte& __lhs, byte __rhs) noexcept {
return __lhs = __lhs ^ __rhs;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr byte operator~(byte __b) noexcept {
return static_cast<byte>(static_cast<unsigned char>(~static_cast<unsigned int>(__b)));
}
template <class _Integer, __enable_if_t<is_integral<_Integer>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr byte& operator<<=(byte& __lhs, _Integer __shift) noexcept {
return __lhs = __lhs << __shift;
}
template <class _Integer, __enable_if_t<is_integral<_Integer>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr byte operator<<(byte __lhs, _Integer __shift) noexcept {
return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(__lhs) << __shift));
}
template <class _Integer, __enable_if_t<is_integral<_Integer>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr byte& operator>>=(byte& __lhs, _Integer __shift) noexcept {
return __lhs = __lhs >> __shift;
}
template <class _Integer, __enable_if_t<is_integral<_Integer>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr byte operator>>(byte __lhs, _Integer __shift) noexcept {
return static_cast<byte>(static_cast<unsigned char>(static_cast<unsigned int>(__lhs) >> __shift));
}
template <class _Integer, __enable_if_t<is_integral<_Integer>::value, int> = 0>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Integer to_integer(byte __b) noexcept {
return static_cast<_Integer>(__b);
}
}
# 5 "third_party/stl/cxx17/cstddef" 2 3
# 18 "/bin/../include/c++/v1/__type_traits/is_nothrow_constructible.h" 2 3
# 21 "/bin/../include/c++/v1/__type_traits/is_nothrow_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template < class _Tp, class... _Args>
struct is_nothrow_constructible
: public integral_constant<bool, __is_nothrow_constructible(_Tp, _Args...)> {};
# 65 "/bin/../include/c++/v1/__type_traits/is_nothrow_constructible.h" 3
template <class _Tp, class... _Args>
inline constexpr bool is_nothrow_constructible_v = is_nothrow_constructible<_Tp, _Args...>::value;
}}
# 16 "/bin/../include/c++/v1/__type_traits/is_nothrow_move_constructible.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/is_nothrow_move_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_nothrow_move_constructible
: public integral_constant<bool, __is_nothrow_constructible(_Tp, __add_rvalue_reference_t<_Tp>)> {};
# 39 "/bin/../include/c++/v1/__type_traits/is_nothrow_move_constructible.h" 3
template <class _Tp>
inline constexpr bool is_nothrow_move_constructible_v = is_nothrow_move_constructible<_Tp>::value;
}}
# 17 "/bin/../include/c++/v1/__utility/swap.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_swappable.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/is_swappable.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/conditional.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/conditional.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <bool>
struct _IfImpl;
template <>
struct _IfImpl<true> {
template <class _IfRes, class _ElseRes>
using _Select __attribute__((__nodebug__)) = _IfRes;
};
template <>
struct _IfImpl<false> {
template <class _IfRes, class _ElseRes>
using _Select __attribute__((__nodebug__)) = _ElseRes;
};
template <bool _Cond, class _IfRes, class _ElseRes>
using _If __attribute__((__nodebug__)) = typename _IfImpl<_Cond>::template _Select<_IfRes, _ElseRes>;
template <bool _Bp, class _If, class _Then>
struct conditional {
using type __attribute__((__nodebug__)) = _If;
};
template <class _If, class _Then>
struct conditional<false, _If, _Then> {
using type __attribute__((__nodebug__)) = _Then;
};
template <bool _Bp, class _IfRes, class _ElseRes>
using conditional_t __attribute__((__nodebug__)) = typename conditional<_Bp, _IfRes, _ElseRes>::type;
template <bool _Bp, class _If, class _Then>
using __conditional_t __attribute__((__nodebug__)) = typename conditional<_Bp, _If, _Then>::type;
}}
# 15 "/bin/../include/c++/v1/__type_traits/is_swappable.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_void.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/is_void.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_void : _BoolConstant<__is_void(_Tp)> {};
template <class _Tp>
inline constexpr bool is_void_v = __is_void(_Tp);
# 45 "/bin/../include/c++/v1/__type_traits/is_void.h" 3
}}
# 23 "/bin/../include/c++/v1/__type_traits/is_swappable.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/nat.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/nat.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
struct __nat {
__nat() = delete;
__nat(const __nat&) = delete;
__nat& operator=(const __nat&) = delete;
~__nat() = delete;
};
}}
# 24 "/bin/../include/c++/v1/__type_traits/is_swappable.h" 2 3
# 29 "/bin/../include/c++/v1/__type_traits/is_swappable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __is_swappable;
template <class _Tp>
struct __is_nothrow_swappable;
template <class _Tp>
using __swap_result_t = __enable_if_t<is_move_constructible<_Tp>::value && is_move_assignable<_Tp>::value>;
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __swap_result_t<_Tp> swap(_Tp& __x, _Tp& __y)
noexcept(is_nothrow_move_constructible<_Tp>::value&& is_nothrow_move_assignable<_Tp>::value);
template <class _Tp, size_t _Np, __enable_if_t<__is_swappable<_Tp>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np])
noexcept(__is_nothrow_swappable<_Tp>::value);
namespace __detail {
template <class _Tp, class _Up = _Tp, bool _NotVoid = !is_void<_Tp>::value && !is_void<_Up>::value>
struct __swappable_with {
template <class _LHS, class _RHS>
static decltype(swap(std::declval<_LHS>(), std::declval<_RHS>())) __test_swap(int);
template <class, class>
static __nat __test_swap(long);
typedef decltype((__test_swap<_Tp, _Up>(0))) __swap1;
typedef decltype((__test_swap<_Up, _Tp>(0))) __swap2;
static const bool value = _IsNotSame<__swap1, __nat>::value && _IsNotSame<__swap2, __nat>::value;
};
template <class _Tp, class _Up>
struct __swappable_with<_Tp, _Up, false> : false_type {};
template <class _Tp, class _Up = _Tp, bool _Swappable = __swappable_with<_Tp, _Up>::value>
struct __nothrow_swappable_with {
static const bool value =
noexcept(swap(std::declval<_Tp>(), std::declval<_Up>()))&& noexcept(
swap(std::declval<_Up>(), std::declval<_Tp>()));
};
template <class _Tp, class _Up>
struct __nothrow_swappable_with<_Tp, _Up, false> : false_type {};
}
template <class _Tp>
struct __is_swappable : public integral_constant<bool, __detail::__swappable_with<_Tp&>::value> {};
template <class _Tp>
struct __is_nothrow_swappable : public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp&>::value> {};
template <class _Tp, class _Up>
struct is_swappable_with
: public integral_constant<bool, __detail::__swappable_with<_Tp, _Up>::value> {};
template <class _Tp>
struct is_swappable
: public __conditional_t<__libcpp_is_referenceable<_Tp>::value,
is_swappable_with<__add_lvalue_reference_t<_Tp>, __add_lvalue_reference_t<_Tp> >,
false_type> {};
template <class _Tp, class _Up>
struct is_nothrow_swappable_with
: public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp, _Up>::value> {};
template <class _Tp>
struct is_nothrow_swappable
: public __conditional_t<__libcpp_is_referenceable<_Tp>::value,
is_nothrow_swappable_with<__add_lvalue_reference_t<_Tp>, __add_lvalue_reference_t<_Tp> >,
false_type> {};
template <class _Tp, class _Up>
inline constexpr bool is_swappable_with_v = is_swappable_with<_Tp, _Up>::value;
template <class _Tp>
inline constexpr bool is_swappable_v = is_swappable<_Tp>::value;
template <class _Tp, class _Up>
inline constexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with<_Tp, _Up>::value;
template <class _Tp>
inline constexpr bool is_nothrow_swappable_v = is_nothrow_swappable<_Tp>::value;
}}
# 18 "/bin/../include/c++/v1/__utility/swap.h" 2 3
# 1 "/bin/../include/c++/v1/__utility/move.h" 1 3
# 15 "/bin/../include/c++/v1/__utility/move.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_copy_constructible.h" 1 3
# 13 "/bin/../include/c++/v1/__type_traits/is_copy_constructible.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/add_const.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/add_const.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct add_const {
typedef __attribute__((__nodebug__)) const _Tp type;
};
template <class _Tp>
using add_const_t = typename add_const<_Tp>::type;
}}
# 14 "/bin/../include/c++/v1/__type_traits/is_copy_constructible.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/is_copy_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_copy_constructible
: public integral_constant<bool, __is_constructible(_Tp, __add_lvalue_reference_t<typename add_const<_Tp>::type>)> {
};
template <class _Tp>
inline constexpr bool is_copy_constructible_v = is_copy_constructible<_Tp>::value;
}}
# 16 "/bin/../include/c++/v1/__utility/move.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/remove_reference.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/remove_reference.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct remove_reference {
using type __attribute__((__nodebug__)) = __remove_reference_t(_Tp);
};
template <class _Tp>
using __libcpp_remove_reference_t = __remove_reference_t(_Tp);
# 41 "/bin/../include/c++/v1/__type_traits/remove_reference.h" 3
template <class _Tp>
using remove_reference_t = __libcpp_remove_reference_t<_Tp>;
}}
# 18 "/bin/../include/c++/v1/__utility/move.h" 2 3
# 21 "/bin/../include/c++/v1/__utility/move.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 25 "/bin/../include/c++/v1/__utility/move.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __libcpp_remove_reference_t<_Tp>&&
move([[_Clang::__lifetimebound__]] _Tp&& __t) noexcept {
typedef __attribute__((__nodebug__)) __libcpp_remove_reference_t<_Tp> _Up;
return static_cast<_Up&&>(__t);
}
template <class _Tp>
using __move_if_noexcept_result_t =
__conditional_t<!is_nothrow_move_constructible<_Tp>::value && is_copy_constructible<_Tp>::value, const _Tp&, _Tp&&>;
template <class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __move_if_noexcept_result_t<_Tp>
move_if_noexcept([[_Clang::__lifetimebound__]] _Tp& __x) noexcept {
return std::move(__x);
}
}}
# 20 "/bin/../include/c++/v1/__utility/swap.h" 2 3
# 24 "/bin/../include/c++/v1/__utility/swap.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 28 "/bin/../include/c++/v1/__utility/swap.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __swap_result_t = __enable_if_t<is_move_constructible<_Tp>::value && is_move_assignable<_Tp>::value>;
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __swap_result_t<_Tp> constexpr swap(_Tp& __x, _Tp& __y)
noexcept(is_nothrow_move_constructible<_Tp>::value&& is_nothrow_move_assignable<_Tp>::value) {
_Tp __t(std::move(__x));
__x = std::move(__y);
__y = std::move(__t);
}
template <class _Tp, size_t _Np, __enable_if_t<__is_swappable<_Tp>::value, int> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void swap(_Tp (&__a)[_Np], _Tp (&__b)[_Np])
noexcept(__is_nothrow_swappable<_Tp>::value) {
for (size_t __i = 0; __i != _Np; ++__i) {
swap(__a[__i], __b[__i]);
}
}
}}
# 15 "/bin/../include/c++/v1/__algorithm/iter_swap.h" 2 3
# 18 "/bin/../include/c++/v1/__algorithm/iter_swap.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _ForwardIterator1, class _ForwardIterator2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void iter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)
noexcept(noexcept(swap(*std::declval<_ForwardIterator1>(), *std::declval<_ForwardIterator2>()))) {
swap(*__a, *__b);
}
}}
# 13 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/ranges_iterator_concept.h" 1 3
# 13 "/bin/../include/c++/v1/__algorithm/ranges_iterator_concept.h" 3
# 1 "/bin/../include/c++/v1/__iterator/concepts.h" 1 3
# 13 "/bin/../include/c++/v1/__iterator/concepts.h" 3
# 1 "/bin/../include/c++/v1/__concepts/arithmetic.h" 1 3
# 16 "/bin/../include/c++/v1/__concepts/arithmetic.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_signed_integer.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_signed_integer.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp> struct __libcpp_is_signed_integer : public false_type {};
template <> struct __libcpp_is_signed_integer<signed char> : public true_type {};
template <> struct __libcpp_is_signed_integer<signed short> : public true_type {};
template <> struct __libcpp_is_signed_integer<signed int> : public true_type {};
template <> struct __libcpp_is_signed_integer<signed long> : public true_type {};
template <> struct __libcpp_is_signed_integer<signed long long> : public true_type {};
template <> struct __libcpp_is_signed_integer<__int128_t> : public true_type {};
}}
# 17 "/bin/../include/c++/v1/__concepts/arithmetic.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_unsigned_integer.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_unsigned_integer.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp> struct __libcpp_is_unsigned_integer : public false_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned char> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned short> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned int> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned long> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<unsigned long long> : public true_type {};
template <> struct __libcpp_is_unsigned_integer<__uint128_t> : public true_type {};
}}
# 18 "/bin/../include/c++/v1/__concepts/arithmetic.h" 2 3
# 21 "/bin/../include/c++/v1/__concepts/arithmetic.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
concept integral = is_integral_v<_Tp>;
template <class _Tp>
concept signed_integral = integral<_Tp> && is_signed_v<_Tp>;
template <class _Tp>
concept unsigned_integral = integral<_Tp> && !signed_integral<_Tp>;
template <class _Tp>
concept floating_point = is_floating_point_v<_Tp>;
template <class _Tp>
concept __libcpp_unsigned_integer = __libcpp_is_unsigned_integer<_Tp>::value;
template <class _Tp>
concept __libcpp_signed_integer = __libcpp_is_signed_integer<_Tp>::value;
template <class _Tp>
concept __libcpp_integer = __libcpp_unsigned_integer<_Tp> || __libcpp_signed_integer<_Tp>;
}}
# 14 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/assignable.h" 1 3
# 12 "/bin/../include/c++/v1/__concepts/assignable.h" 3
# 1 "/bin/../include/c++/v1/__concepts/common_reference_with.h" 1 3
# 12 "/bin/../include/c++/v1/__concepts/common_reference_with.h" 3
# 1 "/bin/../include/c++/v1/__concepts/convertible_to.h" 1 3
# 13 "/bin/../include/c++/v1/__concepts/convertible_to.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_convertible.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/is_convertible.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_array.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_array.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
# 36 "/bin/../include/c++/v1/__type_traits/is_array.h" 3
template <class _Tp>
struct is_array : public false_type {};
template <class _Tp>
struct is_array<_Tp[]> : public true_type {};
template <class _Tp, size_t _Np>
struct is_array<_Tp[_Np]> : public true_type {};
template <class _Tp>
inline constexpr bool is_array_v = is_array<_Tp>::value;
}}
# 15 "/bin/../include/c++/v1/__type_traits/is_convertible.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_function.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/is_function.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_const.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_const.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_const : _BoolConstant<__is_const(_Tp)> {};
template <class _Tp>
inline constexpr bool is_const_v = __is_const(_Tp);
# 45 "/bin/../include/c++/v1/__type_traits/is_const.h" 3
}}
# 15 "/bin/../include/c++/v1/__type_traits/is_function.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/is_function.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_function : integral_constant<bool, __is_function(_Tp)> {};
# 37 "/bin/../include/c++/v1/__type_traits/is_function.h" 3
template <class _Tp>
inline constexpr bool is_function_v = is_function<_Tp>::value;
}}
# 16 "/bin/../include/c++/v1/__type_traits/is_convertible.h" 2 3
# 23 "/bin/../include/c++/v1/__type_traits/is_convertible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _T1, class _T2>
struct is_convertible : public integral_constant<bool, __is_convertible(_T1, _T2)> {};
template <class _From, class _To>
inline constexpr bool is_convertible_v = __is_convertible(_From, _To);
}}
# 14 "/bin/../include/c++/v1/__concepts/convertible_to.h" 2 3
# 18 "/bin/../include/c++/v1/__concepts/convertible_to.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _From, class _To>
concept convertible_to = is_convertible_v<_From, _To> && requires { static_cast<_To>(std::declval<_From>()); };
}}
# 13 "/bin/../include/c++/v1/__concepts/common_reference_with.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/same_as.h" 1 3
# 17 "/bin/../include/c++/v1/__concepts/same_as.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up>
concept __same_as_impl = _IsSame<_Tp, _Up>::value;
template <class _Tp, class _Up>
concept same_as = __same_as_impl<_Tp, _Up> && __same_as_impl<_Up, _Tp>;
}}
# 14 "/bin/../include/c++/v1/__concepts/common_reference_with.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/common_reference.h" 1 3
# 13 "/bin/../include/c++/v1/__type_traits/common_reference.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/common_type.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/common_type.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/decay.h" 1 3
# 13 "/bin/../include/c++/v1/__type_traits/decay.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/add_pointer.h" 1 3
# 21 "/bin/../include/c++/v1/__type_traits/add_pointer.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __add_pointer_t = __add_pointer(_Tp);
# 45 "/bin/../include/c++/v1/__type_traits/add_pointer.h" 3
template <class _Tp>
struct add_pointer {
using type __attribute__((__nodebug__)) = __add_pointer_t<_Tp>;
};
template <class _Tp>
using add_pointer_t = __add_pointer_t<_Tp>;
}}
# 14 "/bin/../include/c++/v1/__type_traits/decay.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/remove_extent.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/remove_extent.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct remove_extent {
using type __attribute__((__nodebug__)) = __remove_extent(_Tp);
};
template <class _Tp>
using __remove_extent_t = __remove_extent(_Tp);
# 48 "/bin/../include/c++/v1/__type_traits/remove_extent.h" 3
template <class _Tp>
using remove_extent_t = __remove_extent_t<_Tp>;
}}
# 20 "/bin/../include/c++/v1/__type_traits/decay.h" 2 3
# 24 "/bin/../include/c++/v1/__type_traits/decay.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __decay_t __attribute__((__nodebug__)) = __decay(_Tp);
template <class _Tp>
struct decay {
using type __attribute__((__nodebug__)) = __decay_t<_Tp>;
};
# 67 "/bin/../include/c++/v1/__type_traits/decay.h" 3
template <class _Tp>
using decay_t = __decay_t<_Tp>;
}}
# 15 "/bin/../include/c++/v1/__type_traits/common_type.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/remove_cvref.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/remove_cvref.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __remove_cvref_t __attribute__((__nodebug__)) = __remove_cvref(_Tp);
template <class _Tp, class _Up>
struct __is_same_uncvref : _IsSame<__remove_cvref_t<_Tp>, __remove_cvref_t<_Up> > {};
template <class _Tp>
struct remove_cvref {
using type __attribute__((__nodebug__)) = __remove_cvref_t<_Tp>;
};
template <class _Tp>
using remove_cvref_t = __remove_cvref_t<_Tp>;
}}
# 17 "/bin/../include/c++/v1/__type_traits/common_type.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/void_t.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/void_t.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class...>
using void_t = void;
template <class...>
using __void_t = void;
}}
# 18 "/bin/../include/c++/v1/__type_traits/common_type.h" 2 3
# 22 "/bin/../include/c++/v1/__type_traits/common_type.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up>
using __cond_type = decltype(false ? std::declval<_Tp>() : std::declval<_Up>());
template <class _Tp, class _Up, class = void>
struct __common_type3 {};
template <class _Tp, class _Up>
struct __common_type3<_Tp, _Up, void_t<__cond_type<const _Tp&, const _Up&>>> {
using type = remove_cvref_t<__cond_type<const _Tp&, const _Up&>>;
};
template <class _Tp, class _Up, class = void>
struct __common_type2_imp : __common_type3<_Tp, _Up> {};
template <class _Tp, class _Up>
struct __common_type2_imp<_Tp, _Up, __void_t<decltype(true ? std::declval<_Tp>() : std::declval<_Up>())> > {
typedef __attribute__((__nodebug__)) __decay_t<decltype(true ? std::declval<_Tp>() : std::declval<_Up>())> type;
};
template <class, class = void>
struct __common_type_impl {};
template <class... _Tp>
struct __common_types;
template <class... _Tp>
struct common_type;
template <class _Tp, class _Up>
struct __common_type_impl< __common_types<_Tp, _Up>, __void_t<typename common_type<_Tp, _Up>::type> > {
typedef typename common_type<_Tp, _Up>::type type;
};
template <class _Tp, class _Up, class _Vp, class... _Rest>
struct __common_type_impl<__common_types<_Tp, _Up, _Vp, _Rest...>, __void_t<typename common_type<_Tp, _Up>::type> >
: __common_type_impl<__common_types<typename common_type<_Tp, _Up>::type, _Vp, _Rest...> > {};
template <>
struct common_type<> {};
template <class _Tp>
struct common_type<_Tp> : public common_type<_Tp, _Tp> {};
template <class _Tp, class _Up>
struct common_type<_Tp, _Up>
: conditional<_IsSame<_Tp, __decay_t<_Tp> >::value && _IsSame<_Up, __decay_t<_Up> >::value,
__common_type2_imp<_Tp, _Up>,
common_type<__decay_t<_Tp>, __decay_t<_Up> > >::type {};
template <class _Tp, class _Up, class _Vp, class... _Rest>
struct common_type<_Tp, _Up, _Vp, _Rest...>
: __common_type_impl<__common_types<_Tp, _Up, _Vp, _Rest...> > {};
template <class... _Tp>
using common_type_t = typename common_type<_Tp...>::type;
}}
# 14 "/bin/../include/c++/v1/__type_traits/common_reference.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/copy_cv.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/copy_cv.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/add_cv.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/add_cv.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct add_cv {
typedef __attribute__((__nodebug__)) const volatile _Tp type;
};
template <class _Tp>
using add_cv_t = typename add_cv<_Tp>::type;
}}
# 15 "/bin/../include/c++/v1/__type_traits/copy_cv.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/add_volatile.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/add_volatile.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct add_volatile {
typedef __attribute__((__nodebug__)) volatile _Tp type;
};
template <class _Tp>
using add_volatile_t = typename add_volatile<_Tp>::type;
}}
# 16 "/bin/../include/c++/v1/__type_traits/copy_cv.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/copy_cv.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _From, class _To>
struct __copy_cv {
using type = _To;
};
template <class _From, class _To>
struct __copy_cv<const _From, _To> {
using type = typename add_const<_To>::type;
};
template <class _From, class _To>
struct __copy_cv<volatile _From, _To> {
using type = typename add_volatile<_To>::type;
};
template <class _From, class _To>
struct __copy_cv<const volatile _From, _To> {
using type = typename add_cv<_To>::type;
};
template <class _From, class _To>
using __copy_cv_t = typename __copy_cv<_From, _To>::type;
}}
# 15 "/bin/../include/c++/v1/__type_traits/common_reference.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/copy_cvref.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/copy_cvref.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _From, class _To>
struct __copy_cvref {
using type = __copy_cv_t<_From, _To>;
};
template <class _From, class _To>
struct __copy_cvref<_From&, _To> {
using type = __add_lvalue_reference_t<__copy_cv_t<_From, _To> >;
};
template <class _From, class _To>
struct __copy_cvref<_From&&, _To> {
using type = __add_rvalue_reference_t<__copy_cv_t<_From, _To> >;
};
template <class _From, class _To>
using __copy_cvref_t = typename __copy_cvref<_From, _To>::type;
}}
# 16 "/bin/../include/c++/v1/__type_traits/common_reference.h" 2 3
# 25 "/bin/../include/c++/v1/__type_traits/common_reference.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Xp, class _Yp>
using __cond_res = decltype(false ? std::declval<_Xp (&)()>()() : std::declval<_Yp (&)()>()());
template <class _Tp>
struct __xref {
template <class _Up>
using __apply = __copy_cvref_t<_Tp, _Up>;
};
template <class _Ap, class _Bp, class _Xp = remove_reference_t<_Ap>, class _Yp = remove_reference_t<_Bp>>
struct __common_ref;
template <class _Xp, class _Yp>
using __common_ref_t = typename __common_ref<_Xp, _Yp>::__type;
template <class _Xp, class _Yp>
using __cv_cond_res = __cond_res<__copy_cv_t<_Xp, _Yp>&, __copy_cv_t<_Yp, _Xp>&>;
template <class _Ap, class _Bp, class _Xp, class _Yp>
requires
requires { typename __cv_cond_res<_Xp, _Yp>; } &&
is_reference_v<__cv_cond_res<_Xp, _Yp>>
struct __common_ref<_Ap&, _Bp&, _Xp, _Yp> {
using __type = __cv_cond_res<_Xp, _Yp>;
};
template <class _Xp, class _Yp>
using __common_ref_C = remove_reference_t<__common_ref_t<_Xp&, _Yp&>>&&;
template <class _Ap, class _Bp, class _Xp, class _Yp>
requires
requires { typename __common_ref_C<_Xp, _Yp>; } &&
is_convertible_v<_Ap&&, __common_ref_C<_Xp, _Yp>> &&
is_convertible_v<_Bp&&, __common_ref_C<_Xp, _Yp>>
struct __common_ref<_Ap&&, _Bp&&, _Xp, _Yp> {
using __type = __common_ref_C<_Xp, _Yp>;
};
template <class _Tp, class _Up>
using __common_ref_D = __common_ref_t<const _Tp&, _Up&>;
template <class _Ap, class _Bp, class _Xp, class _Yp>
requires
requires { typename __common_ref_D<_Xp, _Yp>; } &&
is_convertible_v<_Ap&&, __common_ref_D<_Xp, _Yp>>
struct __common_ref<_Ap&&, _Bp&, _Xp, _Yp> {
using __type = __common_ref_D<_Xp, _Yp>;
};
template <class _Ap, class _Bp, class _Xp, class _Yp>
struct __common_ref<_Ap&, _Bp&&, _Xp, _Yp> : __common_ref<_Bp&&, _Ap&> {};
template <class _Ap, class _Bp, class _Xp, class _Yp>
struct __common_ref {};
template <class...>
struct common_reference;
template <class... _Types>
using common_reference_t = typename common_reference<_Types...>::type;
template <>
struct common_reference<> {};
template <class _Tp>
struct common_reference<_Tp> {
using type = _Tp;
};
template <class _Tp, class _Up>
struct __common_reference_sub_bullet3;
template <class _Tp, class _Up>
struct __common_reference_sub_bullet2 : __common_reference_sub_bullet3<_Tp, _Up> {};
template <class _Tp, class _Up>
struct __common_reference_sub_bullet1 : __common_reference_sub_bullet2<_Tp, _Up> {};
template <class _Tp, class _Up>
struct common_reference<_Tp, _Up> : __common_reference_sub_bullet1<_Tp, _Up> {};
template <class _Tp, class _Up>
requires is_reference_v<_Tp> && is_reference_v<_Up> && requires { typename __common_ref_t<_Tp, _Up>; }
struct __common_reference_sub_bullet1<_Tp, _Up> {
using type = __common_ref_t<_Tp, _Up>;
};
template <class, class, template <class> class, template <class> class>
struct basic_common_reference {};
template <class _Tp, class _Up>
using __basic_common_reference_t =
typename basic_common_reference<remove_cvref_t<_Tp>,
remove_cvref_t<_Up>,
__xref<_Tp>::template __apply,
__xref<_Up>::template __apply>::type;
template <class _Tp, class _Up>
requires requires { typename __basic_common_reference_t<_Tp, _Up>; }
struct __common_reference_sub_bullet2<_Tp, _Up> {
using type = __basic_common_reference_t<_Tp, _Up>;
};
template <class _Tp, class _Up>
requires requires { typename __cond_res<_Tp, _Up>; }
struct __common_reference_sub_bullet3<_Tp, _Up> {
using type = __cond_res<_Tp, _Up>;
};
template <class _Tp, class _Up>
struct __common_reference_sub_bullet3 : common_type<_Tp, _Up> {};
template <class _Tp, class _Up, class _Vp, class... _Rest>
requires requires { typename common_reference_t<_Tp, _Up>; }
struct common_reference<_Tp, _Up, _Vp, _Rest...> : common_reference<common_reference_t<_Tp, _Up>, _Vp, _Rest...> {};
template <class...>
struct common_reference {};
}}
# 16 "/bin/../include/c++/v1/__concepts/common_reference_with.h" 2 3
# 19 "/bin/../include/c++/v1/__concepts/common_reference_with.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up>
concept common_reference_with =
same_as<common_reference_t<_Tp, _Up>, common_reference_t<_Up, _Tp>> &&
convertible_to<_Tp, common_reference_t<_Tp, _Up>> && convertible_to<_Up, common_reference_t<_Tp, _Up>>;
}}
# 13 "/bin/../include/c++/v1/__concepts/assignable.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/make_const_lvalue_ref.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/make_const_lvalue_ref.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __make_const_lvalue_ref = const __libcpp_remove_reference_t<_Tp>&;
}}
# 17 "/bin/../include/c++/v1/__concepts/assignable.h" 2 3
# 1 "/bin/../include/c++/v1/__utility/forward.h" 1 3
# 19 "/bin/../include/c++/v1/__utility/forward.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp&&
forward([[_Clang::__lifetimebound__]] __libcpp_remove_reference_t<_Tp>& __t) noexcept {
return static_cast<_Tp&&>(__t);
}
template <class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp&&
forward([[_Clang::__lifetimebound__]] __libcpp_remove_reference_t<_Tp>&& __t) noexcept {
static_assert(!is_lvalue_reference<_Tp>::value, "cannot forward an rvalue as an lvalue");
return static_cast<_Tp&&>(__t);
}
}}
# 18 "/bin/../include/c++/v1/__concepts/assignable.h" 2 3
# 21 "/bin/../include/c++/v1/__concepts/assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Lhs, class _Rhs>
concept assignable_from =
is_lvalue_reference_v<_Lhs> &&
common_reference_with<__make_const_lvalue_ref<_Lhs>, __make_const_lvalue_ref<_Rhs>> &&
requires(_Lhs __lhs, _Rhs&& __rhs) {
{ __lhs = std::forward<_Rhs>(__rhs) } -> same_as<_Lhs>;
};
}}
# 15 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/constructible.h" 1 3
# 13 "/bin/../include/c++/v1/__concepts/constructible.h" 3
# 1 "/bin/../include/c++/v1/__concepts/destructible.h" 1 3
# 13 "/bin/../include/c++/v1/__concepts/destructible.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_nothrow_destructible.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/is_nothrow_destructible.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_destructible.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/is_destructible.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/remove_all_extents.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/remove_all_extents.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct remove_all_extents {
using type __attribute__((__nodebug__)) = __remove_all_extents(_Tp);
};
template <class _Tp>
using __remove_all_extents_t = __remove_all_extents(_Tp);
# 48 "/bin/../include/c++/v1/__type_traits/remove_all_extents.h" 3
template <class _Tp>
using remove_all_extents_t = __remove_all_extents_t<_Tp>;
}}
# 17 "/bin/../include/c++/v1/__type_traits/is_destructible.h" 2 3
# 21 "/bin/../include/c++/v1/__type_traits/is_destructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_destructible : _BoolConstant<__is_destructible(_Tp)> {};
template <class _Tp>
inline constexpr bool is_destructible_v = __is_destructible(_Tp);
# 95 "/bin/../include/c++/v1/__type_traits/is_destructible.h" 3
}}
# 15 "/bin/../include/c++/v1/__type_traits/is_nothrow_destructible.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_scalar.h" 1 3
# 15 "/bin/../include/c++/v1/__type_traits/is_scalar.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_enum.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_enum.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_enum : public integral_constant<bool, __is_enum(_Tp)> {};
template <class _Tp>
inline constexpr bool is_enum_v = __is_enum(_Tp);
}}
# 16 "/bin/../include/c++/v1/__type_traits/is_scalar.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_member_pointer.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/is_member_pointer.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_member_function_pointer.h" 1 3
# 20 "/bin/../include/c++/v1/__type_traits/is_member_function_pointer.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __libcpp_is_member_pointer {
enum { __is_member = false, __is_func = false, __is_obj = false };
};
template <class _Tp, class _Up>
struct __libcpp_is_member_pointer<_Tp _Up::*> {
enum {
__is_member = true,
__is_func = is_function<_Tp>::value,
__is_obj = !__is_func,
};
};
template <class _Tp>
struct is_member_function_pointer : _BoolConstant<__is_member_function_pointer(_Tp)> {};
template <class _Tp>
inline constexpr bool is_member_function_pointer_v = __is_member_function_pointer(_Tp);
# 60 "/bin/../include/c++/v1/__type_traits/is_member_function_pointer.h" 3
}}
# 15 "/bin/../include/c++/v1/__type_traits/is_member_pointer.h" 2 3
# 18 "/bin/../include/c++/v1/__type_traits/is_member_pointer.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_member_pointer : _BoolConstant<__is_member_pointer(_Tp)> {};
template <class _Tp>
inline constexpr bool is_member_pointer_v = __is_member_pointer(_Tp);
# 45 "/bin/../include/c++/v1/__type_traits/is_member_pointer.h" 3
}}
# 17 "/bin/../include/c++/v1/__type_traits/is_scalar.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_null_pointer.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/is_null_pointer.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __is_nullptr_t_impl : public false_type {};
template <>
struct __is_nullptr_t_impl<nullptr_t> : public true_type {};
template <class _Tp>
struct __is_nullptr_t : public __is_nullptr_t_impl<__remove_cv_t<_Tp> > {};
template <class _Tp>
struct is_null_pointer : public __is_nullptr_t_impl<__remove_cv_t<_Tp> > {};
template <class _Tp>
inline constexpr bool is_null_pointer_v = is_null_pointer<_Tp>::value;
}}
# 18 "/bin/../include/c++/v1/__type_traits/is_scalar.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_pointer.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_pointer.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_pointer : _BoolConstant<__is_pointer(_Tp)> {};
template <class _Tp>
inline constexpr bool is_pointer_v = __is_pointer(_Tp);
# 63 "/bin/../include/c++/v1/__type_traits/is_pointer.h" 3
}}
# 19 "/bin/../include/c++/v1/__type_traits/is_scalar.h" 2 3
# 22 "/bin/../include/c++/v1/__type_traits/is_scalar.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_scalar : _BoolConstant<__is_scalar(_Tp)> {};
template <class _Tp>
inline constexpr bool is_scalar_v = __is_scalar(_Tp);
# 67 "/bin/../include/c++/v1/__type_traits/is_scalar.h" 3
}}
# 17 "/bin/../include/c++/v1/__type_traits/is_nothrow_destructible.h" 2 3
# 23 "/bin/../include/c++/v1/__type_traits/is_nothrow_destructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <bool, class _Tp>
struct __libcpp_is_nothrow_destructible;
template <class _Tp>
struct __libcpp_is_nothrow_destructible<false, _Tp> : public false_type {};
template <class _Tp>
struct __libcpp_is_nothrow_destructible<true, _Tp>
: public integral_constant<bool, noexcept(std::declval<_Tp>().~_Tp()) > {};
template <class _Tp>
struct is_nothrow_destructible
: public __libcpp_is_nothrow_destructible<is_destructible<_Tp>::value, _Tp> {};
template <class _Tp, size_t _Ns>
struct is_nothrow_destructible<_Tp[_Ns]> : public is_nothrow_destructible<_Tp> {};
template <class _Tp>
struct is_nothrow_destructible<_Tp&> : public true_type {};
template <class _Tp>
struct is_nothrow_destructible<_Tp&&> : public true_type {};
# 68 "/bin/../include/c++/v1/__type_traits/is_nothrow_destructible.h" 3
template <class _Tp>
inline constexpr bool is_nothrow_destructible_v = is_nothrow_destructible<_Tp>::value;
}}
# 14 "/bin/../include/c++/v1/__concepts/destructible.h" 2 3
# 17 "/bin/../include/c++/v1/__concepts/destructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
concept destructible = is_nothrow_destructible_v<_Tp>;
}}
# 14 "/bin/../include/c++/v1/__concepts/constructible.h" 2 3
# 19 "/bin/../include/c++/v1/__concepts/constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class... _Args>
concept constructible_from = destructible<_Tp> && is_constructible_v<_Tp, _Args...>;
template <class _Tp>
concept __default_initializable = requires { ::new _Tp; };
template <class _Tp>
concept default_initializable = constructible_from<_Tp> && requires { _Tp{}; } && __default_initializable<_Tp>;
template <class _Tp>
concept move_constructible = constructible_from<_Tp, _Tp> && convertible_to<_Tp, _Tp>;
template <class _Tp>
concept copy_constructible =
move_constructible<_Tp> &&
constructible_from<_Tp, _Tp&> && convertible_to<_Tp&, _Tp> &&
constructible_from<_Tp, const _Tp&> && convertible_to<const _Tp&, _Tp> &&
constructible_from<_Tp, const _Tp> && convertible_to<const _Tp, _Tp>;
}}
# 17 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/copyable.h" 1 3
# 14 "/bin/../include/c++/v1/__concepts/copyable.h" 3
# 1 "/bin/../include/c++/v1/__concepts/movable.h" 1 3
# 14 "/bin/../include/c++/v1/__concepts/movable.h" 3
# 1 "/bin/../include/c++/v1/__concepts/swappable.h" 1 3
# 13 "/bin/../include/c++/v1/__concepts/swappable.h" 3
# 1 "/bin/../include/c++/v1/__concepts/class_or_enum.h" 1 3
# 13 "/bin/../include/c++/v1/__concepts/class_or_enum.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_class.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_class.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_class : public integral_constant<bool, __is_class(_Tp)> {};
template <class _Tp>
inline constexpr bool is_class_v = __is_class(_Tp);
}}
# 14 "/bin/../include/c++/v1/__concepts/class_or_enum.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_union.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_union.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_union : public integral_constant<bool, __is_union(_Tp)> {};
template <class _Tp>
inline constexpr bool is_union_v = __is_union(_Tp);
}}
# 16 "/bin/../include/c++/v1/__concepts/class_or_enum.h" 2 3
# 20 "/bin/../include/c++/v1/__concepts/class_or_enum.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
concept __class_or_enum = is_class_v<_Tp> || is_union_v<_Tp> || is_enum_v<_Tp>;
template <class _Tp>
concept __workaround_52970 = is_class_v<__remove_cvref_t<_Tp>> || is_union_v<__remove_cvref_t<_Tp>>;
}}
# 14 "/bin/../include/c++/v1/__concepts/swappable.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/extent.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/extent.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, size_t _Dim = 0>
struct extent : integral_constant<size_t, __array_extent(_Tp, _Dim)> {};
template <class _Tp, unsigned _Ip = 0>
inline constexpr size_t extent_v = __array_extent(_Tp, _Ip);
# 52 "/bin/../include/c++/v1/__type_traits/extent.h" 3
}}
# 18 "/bin/../include/c++/v1/__concepts/swappable.h" 2 3
# 1 "/bin/../include/c++/v1/__utility/exchange.h" 1 3
# 13 "/bin/../include/c++/v1/__utility/exchange.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_nothrow_assignable.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_nothrow_assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Arg>
struct is_nothrow_assignable : public integral_constant<bool, __is_nothrow_assignable(_Tp, _Arg)> {
};
template <class _Tp, class _Arg>
inline constexpr bool is_nothrow_assignable_v = __is_nothrow_assignable(_Tp, _Arg);
}}
# 14 "/bin/../include/c++/v1/__utility/exchange.h" 2 3
# 20 "/bin/../include/c++/v1/__utility/exchange.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 24 "/bin/../include/c++/v1/__utility/exchange.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _T1, class _T2 = _T1>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1 exchange(_T1& __obj, _T2&& __new_value) noexcept(
is_nothrow_move_constructible<_T1>::value && is_nothrow_assignable<_T1&, _T2>::value) {
_T1 __old_value = std::move(__obj);
__obj = std::forward<_T2>(__new_value);
return __old_value;
}
}}
# 22 "/bin/../include/c++/v1/__concepts/swappable.h" 2 3
# 29 "/bin/../include/c++/v1/__concepts/swappable.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 33 "/bin/../include/c++/v1/__concepts/swappable.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
namespace __swap {
template <class _Tp>
void swap(_Tp&, _Tp&) = delete;
template <class _Tp, class _Up>
concept __unqualified_swappable_with =
(__class_or_enum<remove_cvref_t<_Tp>> || __class_or_enum<remove_cvref_t<_Up>>) &&
requires(_Tp&& __t, _Up&& __u) {
swap(std::forward<_Tp>(__t), std::forward<_Up>(__u));
};
struct __fn;
template <class _Tp, class _Up, size_t _Size>
concept __swappable_arrays =
!__unqualified_swappable_with<_Tp (&)[_Size], _Up (&)[_Size]> &&
extent_v<_Tp> == extent_v<_Up> &&
requires(_Tp (&__t)[_Size], _Up (&__u)[_Size], const __fn& __swap) {
__swap(__t[0], __u[0]);
};
template <class _Tp>
concept __exchangeable =
!__unqualified_swappable_with<_Tp&, _Tp&> && move_constructible<_Tp> && assignable_from<_Tp&, _Tp>;
struct __fn {
template <class _Tp, class _Up>
requires __unqualified_swappable_with<_Tp, _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void operator()(_Tp&& __t, _Up&& __u) const
noexcept(noexcept(swap(std::forward<_Tp>(__t), std::forward<_Up>(__u)))) {
swap(std::forward<_Tp>(__t), std::forward<_Up>(__u));
}
template <class _Tp, class _Up, size_t _Size>
requires __swappable_arrays<_Tp, _Up, _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void operator()(_Tp (&__t)[_Size], _Up (&__u)[_Size]) const
noexcept(noexcept((*this)(*__t, *__u))) {
for (size_t __i = 0; __i < _Size; ++__i) {
(*this)(__t[__i], __u[__i]);
}
}
template <__exchangeable _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void operator()(_Tp& __x, _Tp& __y) const
noexcept(is_nothrow_move_constructible_v<_Tp> && is_nothrow_move_assignable_v<_Tp>) {
__y = std::exchange(__x, std::move(__y));
}
};
}
inline namespace __cpo {
inline constexpr auto swap = __swap::__fn{};
}
}
template <class _Tp>
concept swappable = requires(_Tp& __a, _Tp& __b) { ranges::swap(__a, __b); };
template <class _Tp, class _Up>
concept swappable_with = common_reference_with<_Tp, _Up> && requires(_Tp&& __t, _Up&& __u) {
ranges::swap(std::forward<_Tp>(__t), std::forward<_Tp>(__t));
ranges::swap(std::forward<_Up>(__u), std::forward<_Up>(__u));
ranges::swap(std::forward<_Tp>(__t), std::forward<_Up>(__u));
ranges::swap(std::forward<_Up>(__u), std::forward<_Tp>(__t));
};
}}
# 15 "/bin/../include/c++/v1/__concepts/movable.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_object.h" 1 3
# 21 "/bin/../include/c++/v1/__type_traits/is_object.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_object : _BoolConstant<__is_object(_Tp)> {};
template <class _Tp>
inline constexpr bool is_object_v = __is_object(_Tp);
# 50 "/bin/../include/c++/v1/__type_traits/is_object.h" 3
}}
# 17 "/bin/../include/c++/v1/__concepts/movable.h" 2 3
# 20 "/bin/../include/c++/v1/__concepts/movable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
concept movable = is_object_v<_Tp> && move_constructible<_Tp> && assignable_from<_Tp&, _Tp> && swappable<_Tp>;
}}
# 15 "/bin/../include/c++/v1/__concepts/copyable.h" 2 3
# 19 "/bin/../include/c++/v1/__concepts/copyable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
concept copyable =
copy_constructible<_Tp> &&
movable<_Tp> &&
assignable_from<_Tp&, _Tp&> &&
assignable_from<_Tp&, const _Tp&> &&
assignable_from<_Tp&, const _Tp>;
}}
# 18 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/derived_from.h" 1 3
# 13 "/bin/../include/c++/v1/__concepts/derived_from.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_base_of.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_base_of.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Bp, class _Dp>
struct is_base_of : public integral_constant<bool, __is_base_of(_Bp, _Dp)> {};
template <class _Bp, class _Dp>
inline constexpr bool is_base_of_v = __is_base_of(_Bp, _Dp);
}}
# 14 "/bin/../include/c++/v1/__concepts/derived_from.h" 2 3
# 18 "/bin/../include/c++/v1/__concepts/derived_from.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Dp, class _Bp>
concept derived_from = is_base_of_v<_Bp, _Dp> && is_convertible_v<const volatile _Dp*, const volatile _Bp*>;
}}
# 19 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/equality_comparable.h" 1 3
# 12 "/bin/../include/c++/v1/__concepts/equality_comparable.h" 3
# 1 "/bin/../include/c++/v1/__concepts/boolean_testable.h" 1 3
# 18 "/bin/../include/c++/v1/__concepts/boolean_testable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
concept __boolean_testable_impl = convertible_to<_Tp, bool>;
template <class _Tp>
concept __boolean_testable = __boolean_testable_impl<_Tp> && requires(_Tp&& __t) {
{ !std::forward<_Tp>(__t) } -> __boolean_testable_impl;
};
}}
# 13 "/bin/../include/c++/v1/__concepts/equality_comparable.h" 2 3
# 20 "/bin/../include/c++/v1/__concepts/equality_comparable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up>
concept __weakly_equality_comparable_with =
requires(__make_const_lvalue_ref<_Tp> __t, __make_const_lvalue_ref<_Up> __u) {
{ __t == __u } -> __boolean_testable;
{ __t != __u } -> __boolean_testable;
{ __u == __t } -> __boolean_testable;
{ __u != __t } -> __boolean_testable;
};
template <class _Tp>
concept equality_comparable = __weakly_equality_comparable_with<_Tp, _Tp>;
template <class _Tp, class _Up>
concept equality_comparable_with =
equality_comparable<_Tp> && equality_comparable<_Up> &&
common_reference_with<__make_const_lvalue_ref<_Tp>, __make_const_lvalue_ref<_Up>> &&
equality_comparable<
common_reference_t<
__make_const_lvalue_ref<_Tp>,
__make_const_lvalue_ref<_Up>>> &&
__weakly_equality_comparable_with<_Tp, _Up>;
}}
# 20 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/invocable.h" 1 3
# 13 "/bin/../include/c++/v1/__concepts/invocable.h" 3
# 1 "/bin/../include/c++/v1/__functional/invoke.h" 1 3
# 14 "/bin/../include/c++/v1/__functional/invoke.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/invoke.h" 1 3
# 15 "/bin/../include/c++/v1/__type_traits/invoke.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/apply_cv.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/apply_cv.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_volatile.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_volatile.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_volatile : _BoolConstant<__is_volatile(_Tp)> {};
template <class _Tp>
inline constexpr bool is_volatile_v = __is_volatile(_Tp);
# 45 "/bin/../include/c++/v1/__type_traits/is_volatile.h" 3
}}
# 15 "/bin/../include/c++/v1/__type_traits/apply_cv.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/apply_cv.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp,
bool = is_const<__libcpp_remove_reference_t<_Tp> >::value,
bool = is_volatile<__libcpp_remove_reference_t<_Tp> >::value>
struct __apply_cv_impl {
template <class _Up>
using __apply __attribute__((__nodebug__)) = _Up;
};
template <class _Tp>
struct __apply_cv_impl<_Tp, true, false> {
template <class _Up>
using __apply __attribute__((__nodebug__)) = const _Up;
};
template <class _Tp>
struct __apply_cv_impl<_Tp, false, true> {
template <class _Up>
using __apply __attribute__((__nodebug__)) = volatile _Up;
};
template <class _Tp>
struct __apply_cv_impl<_Tp, true, true> {
template <class _Up>
using __apply __attribute__((__nodebug__)) = const volatile _Up;
};
template <class _Tp>
struct __apply_cv_impl<_Tp&, false, false> {
template <class _Up>
using __apply __attribute__((__nodebug__)) = _Up&;
};
template <class _Tp>
struct __apply_cv_impl<_Tp&, true, false> {
template <class _Up>
using __apply __attribute__((__nodebug__)) = const _Up&;
};
template <class _Tp>
struct __apply_cv_impl<_Tp&, false, true> {
template <class _Up>
using __apply __attribute__((__nodebug__)) = volatile _Up&;
};
template <class _Tp>
struct __apply_cv_impl<_Tp&, true, true> {
template <class _Up>
using __apply __attribute__((__nodebug__)) = const volatile _Up&;
};
template <class _Tp, class _Up>
using __apply_cv_t __attribute__((__nodebug__)) = typename __apply_cv_impl<_Tp>::template __apply<_Up>;
}}
# 16 "/bin/../include/c++/v1/__type_traits/invoke.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_core_convertible.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_core_convertible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up, class = void>
struct __is_core_convertible : public false_type {};
template <class _Tp, class _Up>
struct __is_core_convertible<_Tp, _Up, decltype(static_cast<void (*)(_Up)>(0)(static_cast<_Tp (*)()>(0)()))>
: public true_type {};
}}
# 22 "/bin/../include/c++/v1/__type_traits/invoke.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_member_object_pointer.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_member_object_pointer.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_member_object_pointer : _BoolConstant<__is_member_object_pointer(_Tp)> {};
template <class _Tp>
inline constexpr bool is_member_object_pointer_v = __is_member_object_pointer(_Tp);
# 44 "/bin/../include/c++/v1/__type_traits/is_member_object_pointer.h" 3
}}
# 24 "/bin/../include/c++/v1/__type_traits/invoke.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_reference_wrapper.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_reference_wrapper.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
class reference_wrapper;
template <class _Tp>
struct __is_reference_wrapper_impl : public false_type {};
template <class _Tp>
struct __is_reference_wrapper_impl<reference_wrapper<_Tp> > : public true_type {};
template <class _Tp>
struct __is_reference_wrapper : public __is_reference_wrapper_impl<__remove_cv_t<_Tp> > {};
}}
# 25 "/bin/../include/c++/v1/__type_traits/invoke.h" 2 3
# 34 "/bin/../include/c++/v1/__type_traits/invoke.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
struct __any {
__any(...);
};
template <class _MP, bool _IsMemberFunctionPtr, bool _IsMemberObjectPtr>
struct __member_pointer_traits_imp {};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...), true, false> {
typedef _Class _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...), true, false> {
typedef _Class _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const, true, false> {
typedef _Class const _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const, true, false> {
typedef _Class const _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile, true, false> {
typedef _Class volatile _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile, true, false> {
typedef _Class volatile _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile, true, false> {
typedef _Class const volatile _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile, true, false> {
typedef _Class const volatile _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...)&, true, false> {
typedef _Class& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...)&, true, false> {
typedef _Class& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&, true, false> {
typedef _Class const& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&, true, false> {
typedef _Class const& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&, true, false> {
typedef _Class volatile& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&, true, false> {
typedef _Class volatile& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&, true, false> {
typedef _Class const volatile& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&, true, false> {
typedef _Class const volatile& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...)&&, true, false> {
typedef _Class&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...)&&, true, false> {
typedef _Class&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&&, true, false> {
typedef _Class const&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&&, true, false> {
typedef _Class const&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&&, true, false> {
typedef _Class volatile&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&&, true, false> {
typedef _Class volatile&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&&, true, false> {
typedef _Class const volatile&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param...);
};
template <class _Rp, class _Class, class... _Param>
struct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&&, true, false> {
typedef _Class const volatile&& _ClassType;
typedef _Rp _ReturnType;
typedef _Rp(_FnType)(_Param..., ...);
};
template <class _Rp, class _Class>
struct __member_pointer_traits_imp<_Rp _Class::*, false, true> {
typedef _Class _ClassType;
typedef _Rp _ReturnType;
};
template <class _MP>
struct __member_pointer_traits
: public __member_pointer_traits_imp<__remove_cv_t<_MP>,
is_member_function_pointer<_MP>::value,
is_member_object_pointer<_MP>::value> {
};
template <class _DecayedFp>
struct __member_pointer_class_type {};
template <class _Ret, class _ClassType>
struct __member_pointer_class_type<_Ret _ClassType::*> {
typedef _ClassType type;
};
template <class _Fp,
class _A0,
class _DecayFp = __decay_t<_Fp>,
class _DecayA0 = __decay_t<_A0>,
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>
using __enable_if_bullet1 =
__enable_if_t<is_member_function_pointer<_DecayFp>::value &&
(is_same<_ClassT, _DecayA0>::value || is_base_of<_ClassT, _DecayA0>::value)>;
template <class _Fp, class _A0, class _DecayFp = __decay_t<_Fp>, class _DecayA0 = __decay_t<_A0> >
using __enable_if_bullet2 =
__enable_if_t<is_member_function_pointer<_DecayFp>::value && __is_reference_wrapper<_DecayA0>::value>;
template <class _Fp,
class _A0,
class _DecayFp = __decay_t<_Fp>,
class _DecayA0 = __decay_t<_A0>,
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>
using __enable_if_bullet3 =
__enable_if_t<is_member_function_pointer<_DecayFp>::value &&
!(is_same<_ClassT, _DecayA0>::value || is_base_of<_ClassT, _DecayA0>::value) &&
!__is_reference_wrapper<_DecayA0>::value>;
template <class _Fp,
class _A0,
class _DecayFp = __decay_t<_Fp>,
class _DecayA0 = __decay_t<_A0>,
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>
using __enable_if_bullet4 =
__enable_if_t<is_member_object_pointer<_DecayFp>::value &&
(is_same<_ClassT, _DecayA0>::value || is_base_of<_ClassT, _DecayA0>::value)>;
template <class _Fp, class _A0, class _DecayFp = __decay_t<_Fp>, class _DecayA0 = __decay_t<_A0> >
using __enable_if_bullet5 =
__enable_if_t<is_member_object_pointer<_DecayFp>::value && __is_reference_wrapper<_DecayA0>::value>;
template <class _Fp,
class _A0,
class _DecayFp = __decay_t<_Fp>,
class _DecayA0 = __decay_t<_A0>,
class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>
using __enable_if_bullet6 =
__enable_if_t<is_member_object_pointer<_DecayFp>::value &&
!(is_same<_ClassT, _DecayA0>::value || is_base_of<_ClassT, _DecayA0>::value) &&
!__is_reference_wrapper<_DecayA0>::value>;
template <class... _Args>
__nat __invoke(__any, _Args&&... __args);
template <class _Fp, class _A0, class... _Args, class = __enable_if_bullet1<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
decltype((std::declval<_A0>().*std::declval<_Fp>())(std::declval<_Args>()...))
__invoke(_Fp&& __f, _A0&& __a0, _Args&&... __args)
noexcept(noexcept((static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...)))
{ return (static_cast<_A0&&>(__a0).*__f)(static_cast<_Args&&>(__args)...); }
template <class _Fp, class _A0, class... _Args, class = __enable_if_bullet2<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
decltype((std::declval<_A0>().get().*std::declval<_Fp>())(std::declval<_Args>()...))
__invoke(_Fp&& __f, _A0&& __a0, _Args&&... __args)
noexcept(noexcept((__a0.get().*__f)(static_cast<_Args&&>(__args)...)))
{ return (__a0.get().*__f)(static_cast<_Args&&>(__args)...); }
template <class _Fp, class _A0, class... _Args, class = __enable_if_bullet3<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
decltype(((*std::declval<_A0>()).*std::declval<_Fp>())(std::declval<_Args>()...))
__invoke(_Fp&& __f, _A0&& __a0, _Args&&... __args)
noexcept(noexcept(((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...)))
{ return ((*static_cast<_A0&&>(__a0)).*__f)(static_cast<_Args&&>(__args)...); }
template <class _Fp, class _A0, class = __enable_if_bullet4<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
decltype(std::declval<_A0>().*std::declval<_Fp>())
__invoke(_Fp&& __f, _A0&& __a0)
noexcept(noexcept(static_cast<_A0&&>(__a0).*__f))
{ return static_cast<_A0&&>(__a0).*__f; }
template <class _Fp, class _A0, class = __enable_if_bullet5<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
decltype(std::declval<_A0>().get().*std::declval<_Fp>())
__invoke(_Fp&& __f, _A0&& __a0)
noexcept(noexcept(__a0.get().*__f))
{ return __a0.get().*__f; }
template <class _Fp, class _A0, class = __enable_if_bullet6<_Fp, _A0> >
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
decltype((*std::declval<_A0>()).*std::declval<_Fp>())
__invoke(_Fp&& __f, _A0&& __a0)
noexcept(noexcept((*static_cast<_A0&&>(__a0)).*__f))
{ return (*static_cast<_A0&&>(__a0)).*__f; }
template <class _Fp, class... _Args>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
decltype(std::declval<_Fp>()(std::declval<_Args>()...))
__invoke(_Fp&& __f, _Args&&... __args)
noexcept(noexcept(static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...)))
{ return static_cast<_Fp&&>(__f)(static_cast<_Args&&>(__args)...); }
template <class _Ret, class _Fp, class... _Args>
struct __invokable_r {
template <class _XFp, class... _XArgs>
static decltype(std::__invoke(std::declval<_XFp>(), std::declval<_XArgs>()...)) __try_call(int);
template <class _XFp, class... _XArgs>
static __nat __try_call(...);
using _Result = decltype(__try_call<_Fp, _Args...>(0));
using type = __conditional_t<_IsNotSame<_Result, __nat>::value,
__conditional_t<is_void<_Ret>::value, true_type, __is_core_convertible<_Result, _Ret> >,
false_type>;
static const bool value = type::value;
};
template <class _Fp, class... _Args>
using __invokable = __invokable_r<void, _Fp, _Args...>;
template <bool _IsInvokable, bool _IsCVVoid, class _Ret, class _Fp, class... _Args>
struct __nothrow_invokable_r_imp {
static const bool value = false;
};
template <class _Ret, class _Fp, class... _Args>
struct __nothrow_invokable_r_imp<true, false, _Ret, _Fp, _Args...> {
typedef __nothrow_invokable_r_imp _ThisT;
template <class _Tp>
static void __test_noexcept(_Tp) noexcept;
static const bool value =
noexcept(_ThisT::__test_noexcept<_Ret>(std::__invoke(std::declval<_Fp>(), std::declval<_Args>()...)));
};
template <class _Ret, class _Fp, class... _Args>
struct __nothrow_invokable_r_imp<true, true, _Ret, _Fp, _Args...> {
static const bool value = noexcept(std::__invoke(std::declval<_Fp>(), std::declval<_Args>()...));
};
template <class _Ret, class _Fp, class... _Args>
using __nothrow_invokable_r =
__nothrow_invokable_r_imp<__invokable_r<_Ret, _Fp, _Args...>::value, is_void<_Ret>::value, _Ret, _Fp, _Args...>;
template <class _Fp, class... _Args>
using __nothrow_invokable = __nothrow_invokable_r_imp<__invokable<_Fp, _Args...>::value, true, void, _Fp, _Args...>;
template <class _Fp, class... _Args>
struct __invoke_of
: public enable_if<__invokable<_Fp, _Args...>::value, typename __invokable_r<void, _Fp, _Args...>::_Result> {};
template <class _Ret, bool = is_void<_Ret>::value>
struct __invoke_void_return_wrapper {
template <class... _Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static _Ret __call(_Args&&... __args) {
return std::__invoke(std::forward<_Args>(__args)...);
}
};
template <class _Ret>
struct __invoke_void_return_wrapper<_Ret, true> {
template <class... _Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static void __call(_Args&&... __args) {
std::__invoke(std::forward<_Args>(__args)...);
}
};
template <class _Fn, class... _Args>
struct is_invocable : integral_constant<bool, __invokable<_Fn, _Args...>::value> {};
template <class _Ret, class _Fn, class... _Args>
struct is_invocable_r : integral_constant<bool, __invokable_r<_Ret, _Fn, _Args...>::value> {};
template <class _Fn, class... _Args>
inline constexpr bool is_invocable_v = is_invocable<_Fn, _Args...>::value;
template <class _Ret, class _Fn, class... _Args>
inline constexpr bool is_invocable_r_v = is_invocable_r<_Ret, _Fn, _Args...>::value;
template <class _Fn, class... _Args>
struct is_nothrow_invocable : integral_constant<bool, __nothrow_invokable<_Fn, _Args...>::value> {
};
template <class _Ret, class _Fn, class... _Args>
struct is_nothrow_invocable_r
: integral_constant<bool, __nothrow_invokable_r<_Ret, _Fn, _Args...>::value> {};
template <class _Fn, class... _Args>
inline constexpr bool is_nothrow_invocable_v = is_nothrow_invocable<_Fn, _Args...>::value;
template <class _Ret, class _Fn, class... _Args>
inline constexpr bool is_nothrow_invocable_r_v = is_nothrow_invocable_r<_Ret, _Fn, _Args...>::value;
template <class _Fn, class... _Args>
struct invoke_result : __invoke_of<_Fn, _Args...> {};
template <class _Fn, class... _Args>
using invoke_result_t = typename invoke_result<_Fn, _Args...>::type;
}}
# 15 "/bin/../include/c++/v1/__functional/invoke.h" 2 3
# 19 "/bin/../include/c++/v1/__functional/invoke.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Fn, class... _Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr invoke_result_t<_Fn, _Args...>
invoke(_Fn&& __f, _Args&&... __args) noexcept(is_nothrow_invocable_v<_Fn, _Args...>) {
return std::__invoke(std::forward<_Fn>(__f), std::forward<_Args>(__args)...);
}
# 52 "/bin/../include/c++/v1/__functional/invoke.h" 3
}}
# 14 "/bin/../include/c++/v1/__concepts/invocable.h" 2 3
# 18 "/bin/../include/c++/v1/__concepts/invocable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Fn, class... _Args>
concept invocable = requires(_Fn&& __fn, _Args&&... __args) {
std::invoke(std::forward<_Fn>(__fn), std::forward<_Args>(__args)...);
};
template <class _Fn, class... _Args>
concept regular_invocable = invocable<_Fn, _Args...>;
}}
# 21 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/predicate.h" 1 3
# 19 "/bin/../include/c++/v1/__concepts/predicate.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Fn, class... _Args>
concept predicate = regular_invocable<_Fn, _Args...> && __boolean_testable<invoke_result_t<_Fn, _Args...>>;
}}
# 23 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/regular.h" 1 3
# 13 "/bin/../include/c++/v1/__concepts/regular.h" 3
# 1 "/bin/../include/c++/v1/__concepts/semiregular.h" 1 3
# 18 "/bin/../include/c++/v1/__concepts/semiregular.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
concept semiregular = copyable<_Tp> && default_initializable<_Tp>;
}}
# 14 "/bin/../include/c++/v1/__concepts/regular.h" 2 3
# 18 "/bin/../include/c++/v1/__concepts/regular.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
concept regular = semiregular<_Tp> && equality_comparable<_Tp>;
}}
# 24 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/relation.h" 1 3
# 17 "/bin/../include/c++/v1/__concepts/relation.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Rp, class _Tp, class _Up>
concept relation =
predicate<_Rp, _Tp, _Tp> && predicate<_Rp, _Up, _Up> && predicate<_Rp, _Tp, _Up> && predicate<_Rp, _Up, _Tp>;
template <class _Rp, class _Tp, class _Up>
concept equivalence_relation = relation<_Rp, _Tp, _Up>;
template <class _Rp, class _Tp, class _Up>
concept strict_weak_order = relation<_Rp, _Tp, _Up>;
}}
# 25 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/totally_ordered.h" 1 3
# 20 "/bin/../include/c++/v1/__concepts/totally_ordered.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up>
concept __partially_ordered_with = requires(__make_const_lvalue_ref<_Tp> __t, __make_const_lvalue_ref<_Up> __u) {
{ __t < __u } -> __boolean_testable;
{ __t > __u } -> __boolean_testable;
{ __t <= __u } -> __boolean_testable;
{ __t >= __u } -> __boolean_testable;
{ __u < __t } -> __boolean_testable;
{ __u > __t } -> __boolean_testable;
{ __u <= __t } -> __boolean_testable;
{ __u >= __t } -> __boolean_testable;
};
template <class _Tp>
concept totally_ordered = equality_comparable<_Tp> && __partially_ordered_with<_Tp, _Tp>;
template <class _Tp, class _Up>
concept totally_ordered_with =
totally_ordered<_Tp> && totally_ordered<_Up> &&
equality_comparable_with<_Tp, _Up> &&
totally_ordered<
common_reference_t<
__make_const_lvalue_ref<_Tp>,
__make_const_lvalue_ref<_Up>>> &&
__partially_ordered_with<_Tp, _Up>;
}}
# 28 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/incrementable_traits.h" 1 3
# 17 "/bin/../include/c++/v1/__iterator/incrementable_traits.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_primary_template.h" 1 3
# 15 "/bin/../include/c++/v1/__type_traits/is_primary_template.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_valid_expansion.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_valid_expansion.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <template <class...> class _Templ, class... _Args, class = _Templ<_Args...> >
true_type __sfinae_test_impl(int);
template <template <class...> class, class...>
false_type __sfinae_test_impl(...);
template <template <class...> class _Templ, class... _Args>
using _IsValidExpansion __attribute__((__nodebug__)) = decltype(std::__sfinae_test_impl<_Templ, _Args...>(0));
}}
# 16 "/bin/../include/c++/v1/__type_traits/is_primary_template.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/is_primary_template.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __test_for_primary_template = __enable_if_t<_IsSame<_Tp, typename _Tp::__primary_template>::value>;
template <class _Tp>
using __is_primary_template = _IsValidExpansion<__test_for_primary_template, _Tp>;
}}
# 18 "/bin/../include/c++/v1/__iterator/incrementable_traits.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/make_signed.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/make_signed.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/type_list.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/type_list.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Hp, class _Tp>
struct __type_list {
typedef _Hp _Head;
typedef _Tp _Tail;
};
template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)>
struct __find_first;
template <class _Hp, class _Tp, size_t _Size>
struct __find_first<__type_list<_Hp, _Tp>, _Size, true> {
typedef __attribute__((__nodebug__)) _Hp type;
};
template <class _Hp, class _Tp, size_t _Size>
struct __find_first<__type_list<_Hp, _Tp>, _Size, false> {
typedef __attribute__((__nodebug__)) typename __find_first<_Tp, _Size>::type type;
};
}}
# 19 "/bin/../include/c++/v1/__type_traits/make_signed.h" 2 3
# 22 "/bin/../include/c++/v1/__type_traits/make_signed.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __make_signed_t = __make_signed(_Tp);
# 77 "/bin/../include/c++/v1/__type_traits/make_signed.h" 3
template <class _Tp>
struct make_signed {
using type __attribute__((__nodebug__)) = __make_signed_t<_Tp>;
};
template <class _Tp>
using make_signed_t = __make_signed_t<_Tp>;
}}
# 19 "/bin/../include/c++/v1/__iterator/incrementable_traits.h" 2 3
# 25 "/bin/../include/c++/v1/__iterator/incrementable_traits.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class>
struct incrementable_traits {};
template <class _Tp>
requires is_object_v<_Tp>
struct incrementable_traits<_Tp*> {
using difference_type = ptrdiff_t;
};
template <class _Ip>
struct incrementable_traits<const _Ip> : incrementable_traits<_Ip> {};
template <class _Tp>
concept __has_member_difference_type = requires { typename _Tp::difference_type; };
template <__has_member_difference_type _Tp>
struct incrementable_traits<_Tp> {
using difference_type = typename _Tp::difference_type;
};
template <class _Tp>
concept __has_integral_minus = requires(const _Tp& __x, const _Tp& __y) {
{ __x - __y } -> integral;
};
template <__has_integral_minus _Tp>
requires(!__has_member_difference_type<_Tp>)
struct incrementable_traits<_Tp> {
using difference_type = make_signed_t<decltype(std::declval<_Tp>() - std::declval<_Tp>())>;
};
template <class>
struct iterator_traits;
template <class _Ip>
using iter_difference_t =
typename conditional_t<__is_primary_template<iterator_traits<remove_cvref_t<_Ip> > >::value,
incrementable_traits<remove_cvref_t<_Ip> >,
iterator_traits<remove_cvref_t<_Ip> > >::difference_type;
}}
# 31 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/iter_move.h" 1 3
# 15 "/bin/../include/c++/v1/__iterator/iter_move.h" 3
# 1 "/bin/../include/c++/v1/__iterator/iterator_traits.h" 1 3
# 21 "/bin/../include/c++/v1/__iterator/iterator_traits.h" 3
# 1 "/bin/../include/c++/v1/__fwd/pair.h" 1 3
# 16 "/bin/../include/c++/v1/__fwd/pair.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class, class>
struct pair;
}}
# 22 "/bin/../include/c++/v1/__iterator/iterator_traits.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/readable_traits.h" 1 3
# 25 "/bin/../include/c++/v1/__iterator/readable_traits.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class>
struct __cond_value_type {};
template <class _Tp>
requires is_object_v<_Tp>
struct __cond_value_type<_Tp> {
using value_type = remove_cv_t<_Tp>;
};
template <class _Tp>
concept __has_member_value_type = requires { typename _Tp::value_type; };
template <class _Tp>
concept __has_member_element_type = requires { typename _Tp::element_type; };
template <class>
struct indirectly_readable_traits {};
template <class _Ip>
requires is_array_v<_Ip>
struct indirectly_readable_traits<_Ip> {
using value_type = remove_cv_t<remove_extent_t<_Ip>>;
};
template <class _Ip>
struct indirectly_readable_traits<const _Ip> : indirectly_readable_traits<_Ip> {};
template <class _Tp>
struct indirectly_readable_traits<_Tp*> : __cond_value_type<_Tp> {};
template <__has_member_value_type _Tp>
struct indirectly_readable_traits<_Tp> : __cond_value_type<typename _Tp::value_type> {};
template <__has_member_element_type _Tp>
struct indirectly_readable_traits<_Tp> : __cond_value_type<typename _Tp::element_type> {};
template <__has_member_value_type _Tp>
requires __has_member_element_type<_Tp>
struct indirectly_readable_traits<_Tp> {};
template <__has_member_value_type _Tp>
requires __has_member_element_type<_Tp> &&
same_as<remove_cv_t<typename _Tp::element_type>, remove_cv_t<typename _Tp::value_type>>
struct indirectly_readable_traits<_Tp> : __cond_value_type<typename _Tp::value_type> {};
}}
# 24 "/bin/../include/c++/v1/__iterator/iterator_traits.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/disjunction.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/disjunction.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <bool>
struct _OrImpl;
template <>
struct _OrImpl<true> {
template <class _Res, class _First, class... _Rest>
using _Result __attribute__((__nodebug__)) =
typename _OrImpl<!bool(_First::value) && sizeof...(_Rest) != 0>::template _Result<_First, _Rest...>;
};
template <>
struct _OrImpl<false> {
template <class _Res, class...>
using _Result = _Res;
};
template <class... _Args>
using _Or __attribute__((__nodebug__)) = typename _OrImpl<sizeof...(_Args) != 0>::template _Result<false_type, _Args...>;
template <class... _Args>
struct disjunction : _Or<_Args...> {};
template <class... _Args>
inline constexpr bool disjunction_v = _Or<_Args...>::value;
}}
# 28 "/bin/../include/c++/v1/__iterator/iterator_traits.h" 2 3
# 42 "/bin/../include/c++/v1/__iterator/iterator_traits.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __with_reference = _Tp&;
template <class _Tp>
concept __can_reference = requires { typename __with_reference<_Tp>; };
template <class _Tp>
concept __dereferenceable = requires(_Tp& __t) {
{ *__t } -> __can_reference;
};
template <__dereferenceable _Tp>
using iter_reference_t = decltype(*std::declval<_Tp&>());
template <class _Iter>
struct iterator_traits;
struct input_iterator_tag {};
struct output_iterator_tag {};
struct forward_iterator_tag : public input_iterator_tag {};
struct bidirectional_iterator_tag : public forward_iterator_tag {};
struct random_access_iterator_tag : public bidirectional_iterator_tag {};
struct contiguous_iterator_tag : public random_access_iterator_tag {};
template <class _Iter>
struct __iter_traits_cache {
using type = _If< __is_primary_template<iterator_traits<_Iter> >::value, _Iter, iterator_traits<_Iter> >;
};
template <class _Iter>
using _ITER_TRAITS = typename __iter_traits_cache<_Iter>::type;
struct __iter_concept_concept_test {
template <class _Iter>
using _Apply = typename _ITER_TRAITS<_Iter>::iterator_concept;
};
struct __iter_concept_category_test {
template <class _Iter>
using _Apply = typename _ITER_TRAITS<_Iter>::iterator_category;
};
struct __iter_concept_random_fallback {
template <class _Iter>
using _Apply = __enable_if_t< __is_primary_template<iterator_traits<_Iter> >::value, random_access_iterator_tag >;
};
template <class _Iter, class _Tester>
struct __test_iter_concept : _IsValidExpansion<_Tester::template _Apply, _Iter>, _Tester {};
template <class _Iter>
struct __iter_concept_cache {
using type = _Or< __test_iter_concept<_Iter, __iter_concept_concept_test>,
__test_iter_concept<_Iter, __iter_concept_category_test>,
__test_iter_concept<_Iter, __iter_concept_random_fallback> >;
};
template <class _Iter>
using _ITER_CONCEPT = typename __iter_concept_cache<_Iter>::type::template _Apply<_Iter>;
template <class _Tp>
struct __has_iterator_typedefs {
private:
template <class _Up>
static false_type __test(...);
template <class _Up>
static true_type
__test(__void_t<typename _Up::iterator_category>* = nullptr,
__void_t<typename _Up::difference_type>* = nullptr,
__void_t<typename _Up::value_type>* = nullptr,
__void_t<typename _Up::reference>* = nullptr,
__void_t<typename _Up::pointer>* = nullptr);
public:
static const bool value = decltype(__test<_Tp>(nullptr, nullptr, nullptr, nullptr, nullptr))::value;
};
template <class _Tp>
struct __has_iterator_category {
private:
template <class _Up>
static false_type __test(...);
template <class _Up>
static true_type __test(typename _Up::iterator_category* = nullptr);
public:
static const bool value = decltype(__test<_Tp>(nullptr))::value;
};
template <class _Tp>
struct __has_iterator_concept {
private:
template <class _Up>
static false_type __test(...);
template <class _Up>
static true_type __test(typename _Up::iterator_concept* = nullptr);
public:
static const bool value = decltype(__test<_Tp>(nullptr))::value;
};
namespace __iterator_traits_detail {
template <class _Ip>
concept __cpp17_iterator = requires(_Ip __i) {
{ *__i } -> __can_reference;
{ ++__i } -> same_as<_Ip&>;
{ *__i++ } -> __can_reference;
} && copyable<_Ip>;
template <class _Ip>
concept __cpp17_input_iterator = __cpp17_iterator<_Ip> && equality_comparable<_Ip> && requires(_Ip __i) {
typename incrementable_traits<_Ip>::difference_type;
typename indirectly_readable_traits<_Ip>::value_type;
typename common_reference_t<iter_reference_t<_Ip>&&, typename indirectly_readable_traits<_Ip>::value_type&>;
typename common_reference_t<decltype(*__i++)&&, typename indirectly_readable_traits<_Ip>::value_type&>;
requires signed_integral<typename incrementable_traits<_Ip>::difference_type>;
};
template <class _Ip>
concept __cpp17_forward_iterator =
__cpp17_input_iterator<_Ip> && constructible_from<_Ip> && is_reference_v<iter_reference_t<_Ip>> &&
same_as<remove_cvref_t<iter_reference_t<_Ip>>, typename indirectly_readable_traits<_Ip>::value_type> &&
requires(_Ip __i) {
{ __i++ } -> convertible_to<_Ip const&>;
{ *__i++ } -> same_as<iter_reference_t<_Ip>>;
};
template <class _Ip>
concept __cpp17_bidirectional_iterator = __cpp17_forward_iterator<_Ip> && requires(_Ip __i) {
{ --__i } -> same_as<_Ip&>;
{ __i-- } -> convertible_to<_Ip const&>;
{ *__i-- } -> same_as<iter_reference_t<_Ip>>;
};
template <class _Ip>
concept __cpp17_random_access_iterator =
__cpp17_bidirectional_iterator<_Ip> && totally_ordered<_Ip> &&
requires(_Ip __i, typename incrementable_traits<_Ip>::difference_type __n) {
{ __i += __n } -> same_as<_Ip&>;
{ __i -= __n } -> same_as<_Ip&>;
{ __i + __n } -> same_as<_Ip>;
{ __n + __i } -> same_as<_Ip>;
{ __i - __n } -> same_as<_Ip>;
{ __i - __i } -> same_as<decltype(__n)>;
{ __i[__n] } -> convertible_to<iter_reference_t<_Ip>>;
};
}
template <class _Ip>
concept __has_member_reference = requires { typename _Ip::reference; };
template <class _Ip>
concept __has_member_pointer = requires { typename _Ip::pointer; };
template <class _Ip>
concept __has_member_iterator_category = requires { typename _Ip::iterator_category; };
template <class _Ip>
concept __specifies_members = requires {
typename _Ip::value_type;
typename _Ip::difference_type;
requires __has_member_reference<_Ip>;
requires __has_member_iterator_category<_Ip>;
};
template <class>
struct __iterator_traits_member_pointer_or_void {
using type = void;
};
template <__has_member_pointer _Tp>
struct __iterator_traits_member_pointer_or_void<_Tp> {
using type = typename _Tp::pointer;
};
template <class _Tp>
concept __cpp17_iterator_missing_members = !__specifies_members<_Tp> && __iterator_traits_detail::__cpp17_iterator<_Tp>;
template <class _Tp>
concept __cpp17_input_iterator_missing_members =
__cpp17_iterator_missing_members<_Tp> && __iterator_traits_detail::__cpp17_input_iterator<_Tp>;
template <class>
struct __iterator_traits_member_pointer_or_arrow_or_void {
using type = void;
};
template <__has_member_pointer _Ip>
struct __iterator_traits_member_pointer_or_arrow_or_void<_Ip> {
using type = typename _Ip::pointer;
};
template <class _Ip>
requires requires(_Ip& __i) { __i.operator->(); } && (!__has_member_pointer<_Ip>)
struct __iterator_traits_member_pointer_or_arrow_or_void<_Ip> {
using type = decltype(std::declval<_Ip&>().operator->());
};
template <class _Ip>
struct __iterator_traits_member_reference {
using type = iter_reference_t<_Ip>;
};
template <__has_member_reference _Ip>
struct __iterator_traits_member_reference<_Ip> {
using type = typename _Ip::reference;
};
template <class _Ip>
struct __deduce_iterator_category {
using type = input_iterator_tag;
};
template <__iterator_traits_detail::__cpp17_random_access_iterator _Ip>
struct __deduce_iterator_category<_Ip> {
using type = random_access_iterator_tag;
};
template <__iterator_traits_detail::__cpp17_bidirectional_iterator _Ip>
struct __deduce_iterator_category<_Ip> {
using type = bidirectional_iterator_tag;
};
template <__iterator_traits_detail::__cpp17_forward_iterator _Ip>
struct __deduce_iterator_category<_Ip> {
using type = forward_iterator_tag;
};
template <class _Ip>
struct __iterator_traits_iterator_category : __deduce_iterator_category<_Ip> {};
template <__has_member_iterator_category _Ip>
struct __iterator_traits_iterator_category<_Ip> {
using type = typename _Ip::iterator_category;
};
template <class>
struct __iterator_traits_difference_type {
using type = void;
};
template <class _Ip>
requires requires { typename incrementable_traits<_Ip>::difference_type; }
struct __iterator_traits_difference_type<_Ip> {
using type = typename incrementable_traits<_Ip>::difference_type;
};
template <class>
struct __iterator_traits {};
template <__specifies_members _Ip>
struct __iterator_traits<_Ip> {
using iterator_category = typename _Ip::iterator_category;
using value_type = typename _Ip::value_type;
using difference_type = typename _Ip::difference_type;
using pointer = typename __iterator_traits_member_pointer_or_void<_Ip>::type;
using reference = typename _Ip::reference;
};
template <__cpp17_input_iterator_missing_members _Ip>
struct __iterator_traits<_Ip> {
using iterator_category = typename __iterator_traits_iterator_category<_Ip>::type;
using value_type = typename indirectly_readable_traits<_Ip>::value_type;
using difference_type = typename incrementable_traits<_Ip>::difference_type;
using pointer = typename __iterator_traits_member_pointer_or_arrow_or_void<_Ip>::type;
using reference = typename __iterator_traits_member_reference<_Ip>::type;
};
template <__cpp17_iterator_missing_members _Ip>
struct __iterator_traits<_Ip> {
using iterator_category = output_iterator_tag;
using value_type = void;
using difference_type = typename __iterator_traits_difference_type<_Ip>::type;
using pointer = void;
using reference = void;
};
template <class _Ip>
struct iterator_traits : __iterator_traits<_Ip> {
using __primary_template = iterator_traits;
};
# 403 "/bin/../include/c++/v1/__iterator/iterator_traits.h" 3
template <class _Tp>
requires is_object_v<_Tp>
struct iterator_traits<_Tp*> {
typedef ptrdiff_t difference_type;
typedef __remove_cv_t<_Tp> value_type;
typedef _Tp* pointer;
typedef _Tp& reference;
typedef random_access_iterator_tag iterator_category;
typedef contiguous_iterator_tag iterator_concept;
};
template <class _Tp, class _Up, bool = __has_iterator_category<iterator_traits<_Tp> >::value>
struct __has_iterator_category_convertible_to : is_convertible<typename iterator_traits<_Tp>::iterator_category, _Up> {
};
template <class _Tp, class _Up>
struct __has_iterator_category_convertible_to<_Tp, _Up, false> : false_type {};
template <class _Tp, class _Up, bool = __has_iterator_concept<_Tp>::value>
struct __has_iterator_concept_convertible_to : is_convertible<typename _Tp::iterator_concept, _Up> {};
template <class _Tp, class _Up>
struct __has_iterator_concept_convertible_to<_Tp, _Up, false> : false_type {};
template <class _Tp>
using __has_input_iterator_category = __has_iterator_category_convertible_to<_Tp, input_iterator_tag>;
template <class _Tp>
using __has_forward_iterator_category = __has_iterator_category_convertible_to<_Tp, forward_iterator_tag>;
template <class _Tp>
using __has_bidirectional_iterator_category = __has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag>;
template <class _Tp>
using __has_random_access_iterator_category = __has_iterator_category_convertible_to<_Tp, random_access_iterator_tag>;
# 451 "/bin/../include/c++/v1/__iterator/iterator_traits.h" 3
template <class _Tp>
struct __libcpp_is_contiguous_iterator
: _Or< __has_iterator_category_convertible_to<_Tp, contiguous_iterator_tag>,
__has_iterator_concept_convertible_to<_Tp, contiguous_iterator_tag> > {};
template <class _Up>
struct __libcpp_is_contiguous_iterator<_Up*> : true_type {};
template <class _Iter>
class __wrap_iter;
template <class _Tp>
using __has_exactly_input_iterator_category =
integral_constant<bool,
__has_iterator_category_convertible_to<_Tp, input_iterator_tag>::value &&
!__has_iterator_category_convertible_to<_Tp, forward_iterator_tag>::value>;
template <class _Tp>
using __has_exactly_forward_iterator_category =
integral_constant<bool,
__has_iterator_category_convertible_to<_Tp, forward_iterator_tag>::value &&
!__has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag>::value>;
template <class _Tp>
using __has_exactly_bidirectional_iterator_category =
integral_constant<bool,
__has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag>::value &&
!__has_iterator_category_convertible_to<_Tp, random_access_iterator_tag>::value>;
template <class _InputIterator>
using __iter_value_type = typename iterator_traits<_InputIterator>::value_type;
template <class _InputIterator>
using __iter_key_type = __remove_const_t<typename iterator_traits<_InputIterator>::value_type::first_type>;
template <class _InputIterator>
using __iter_mapped_type = typename iterator_traits<_InputIterator>::value_type::second_type;
template <class _InputIterator>
using __iter_to_alloc_type =
pair< typename add_const<typename iterator_traits<_InputIterator>::value_type::first_type>::type,
typename iterator_traits<_InputIterator>::value_type::second_type>;
template <class _Iter>
using __iterator_category_type = typename iterator_traits<_Iter>::iterator_category;
template <class _Iter>
using __iterator_pointer_type = typename iterator_traits<_Iter>::pointer;
template <class _Iter>
using __iter_diff_t = typename iterator_traits<_Iter>::difference_type;
template <class _Iter>
using __iter_reference = typename iterator_traits<_Iter>::reference;
# 519 "/bin/../include/c++/v1/__iterator/iterator_traits.h" 3
template <class _Ip>
using iter_value_t =
typename conditional_t<__is_primary_template<iterator_traits<remove_cvref_t<_Ip> > >::value,
indirectly_readable_traits<remove_cvref_t<_Ip> >,
iterator_traits<remove_cvref_t<_Ip> > >::value_type;
}}
# 16 "/bin/../include/c++/v1/__iterator/iter_move.h" 2 3
# 24 "/bin/../include/c++/v1/__iterator/iter_move.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 28 "/bin/../include/c++/v1/__iterator/iter_move.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
namespace __iter_move {
void iter_move();
template <class _Tp>
concept __unqualified_iter_move = __class_or_enum<remove_cvref_t<_Tp>> && requires(_Tp&& __t) {
iter_move(std::forward<_Tp>(__t));
};
template <class _Tp>
concept __move_deref = !__unqualified_iter_move<_Tp> && requires(_Tp&& __t) {
*__t;
requires is_lvalue_reference_v<decltype(*__t)>;
};
template <class _Tp>
concept __just_deref = !__unqualified_iter_move<_Tp> && !__move_deref<_Tp> && requires(_Tp&& __t) {
*__t;
requires(!is_lvalue_reference_v<decltype(*__t)>);
};
struct __fn {
template <class _Ip>
requires __unqualified_iter_move<_Ip>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) operator()(_Ip&& __i) const
noexcept(noexcept(iter_move(std::forward<_Ip>(__i)))) {
return iter_move(std::forward<_Ip>(__i));
}
template <class _Ip>
requires __move_deref<_Ip>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Ip&& __i) const
noexcept(noexcept(std::move(*std::forward<_Ip>(__i)))) -> decltype(std::move(*std::forward<_Ip>(__i))) {
return std::move(*std::forward<_Ip>(__i));
}
template <class _Ip>
requires __just_deref<_Ip>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Ip&& __i) const
noexcept(noexcept(*std::forward<_Ip>(__i))) -> decltype(*std::forward<_Ip>(__i)) {
return *std::forward<_Ip>(__i);
}
};
}
inline namespace __cpo {
inline constexpr auto iter_move = __iter_move::__fn{};
}
}
template <__dereferenceable _Tp>
requires requires(_Tp& __t) {
{ ranges::iter_move(__t) } -> __can_reference;
}
using iter_rvalue_reference_t = decltype(ranges::iter_move(std::declval<_Tp&>()));
}}
# 32 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__memory/pointer_traits.h" 1 3
# 14 "/bin/../include/c++/v1/__memory/pointer_traits.h" 3
# 1 "/bin/../include/c++/v1/__memory/addressof.h" 1 3
# 17 "/bin/../include/c++/v1/__memory/addressof.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
inline constexpr __attribute__((__no_sanitize__("cfi"))) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) _Tp* addressof(_Tp& __x) noexcept {
return __builtin_addressof(__x);
}
# 55 "/bin/../include/c++/v1/__memory/addressof.h" 3
template <class _Tp>
_Tp* addressof(const _Tp&&) noexcept = delete;
}}
# 15 "/bin/../include/c++/v1/__memory/pointer_traits.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/conjunction.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/conjunction.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class...>
using __expand_to_true = true_type;
template <class... _Pred>
__expand_to_true<__enable_if_t<_Pred::value>...> __and_helper(int);
template <class...>
false_type __and_helper(...);
template <class... _Pred>
using _And __attribute__((__nodebug__)) = decltype(std::__and_helper<_Pred...>(0));
template <class...>
struct conjunction : true_type {};
template <class _Arg>
struct conjunction<_Arg> : _Arg {};
template <class _Arg, class... _Args>
struct conjunction<_Arg, _Args...> : conditional_t<!bool(_Arg::value), _Arg, conjunction<_Args...>> {};
template <class... _Args>
inline constexpr bool conjunction_v = conjunction<_Args...>::value;
}}
# 17 "/bin/../include/c++/v1/__memory/pointer_traits.h" 2 3
# 27 "/bin/../include/c++/v1/__memory/pointer_traits.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class = void>
struct __has_element_type : false_type {};
template <class _Tp>
struct __has_element_type<_Tp, __void_t<typename _Tp::element_type> > : true_type {};
template <class _Ptr, bool = __has_element_type<_Ptr>::value>
struct __pointer_traits_element_type {};
template <class _Ptr>
struct __pointer_traits_element_type<_Ptr, true> {
typedef __attribute__((__nodebug__)) typename _Ptr::element_type type;
};
template <template <class, class...> class _Sp, class _Tp, class... _Args>
struct __pointer_traits_element_type<_Sp<_Tp, _Args...>, true> {
typedef __attribute__((__nodebug__)) typename _Sp<_Tp, _Args...>::element_type type;
};
template <template <class, class...> class _Sp, class _Tp, class... _Args>
struct __pointer_traits_element_type<_Sp<_Tp, _Args...>, false> {
typedef __attribute__((__nodebug__)) _Tp type;
};
template <class _Tp, class = void>
struct __has_difference_type : false_type {};
template <class _Tp>
struct __has_difference_type<_Tp, __void_t<typename _Tp::difference_type> > : true_type {};
template <class _Ptr, bool = __has_difference_type<_Ptr>::value>
struct __pointer_traits_difference_type {
typedef __attribute__((__nodebug__)) ptrdiff_t type;
};
template <class _Ptr>
struct __pointer_traits_difference_type<_Ptr, true> {
typedef __attribute__((__nodebug__)) typename _Ptr::difference_type type;
};
template <class _Tp, class _Up>
struct __has_rebind {
private:
template <class _Xp>
static false_type __test(...);
#pragma GCC diagnostic push
# 76 "/bin/../include/c++/v1/__memory/pointer_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 76 "/bin/../include/c++/v1/__memory/pointer_traits.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <class _Xp>
static true_type __test(typename _Xp::template rebind<_Up>* = 0);
#pragma GCC diagnostic pop
public:
static const bool value = decltype(__test<_Tp>(0))::value;
};
template <class _Tp, class _Up, bool = __has_rebind<_Tp, _Up>::value>
struct __pointer_traits_rebind {
typedef __attribute__((__nodebug__)) typename _Tp::template rebind<_Up> type;
};
template <template <class, class...> class _Sp, class _Tp, class... _Args, class _Up>
struct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, true> {
typedef __attribute__((__nodebug__)) typename _Sp<_Tp, _Args...>::template rebind<_Up> type;
};
template <template <class, class...> class _Sp, class _Tp, class... _Args, class _Up>
struct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, false> {
typedef _Sp<_Up, _Args...> type;
};
template <class _Ptr, class = void>
struct __pointer_traits_impl {};
template <class _Ptr>
struct __pointer_traits_impl<_Ptr, __void_t<typename __pointer_traits_element_type<_Ptr>::type> > {
typedef _Ptr pointer;
typedef typename __pointer_traits_element_type<pointer>::type element_type;
typedef typename __pointer_traits_difference_type<pointer>::type difference_type;
template <class _Up>
using rebind = typename __pointer_traits_rebind<pointer, _Up>::type;
private:
struct __nat {};
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static pointer
pointer_to(__conditional_t<is_void<element_type>::value, __nat, element_type>& __r) {
return pointer::pointer_to(__r);
}
};
template <class _Ptr>
struct pointer_traits : __pointer_traits_impl<_Ptr> {};
template <class _Tp>
struct pointer_traits<_Tp*> {
typedef _Tp* pointer;
typedef _Tp element_type;
typedef ptrdiff_t difference_type;
template <class _Up>
using rebind = _Up*;
private:
struct __nat {};
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static pointer
pointer_to(__conditional_t<is_void<element_type>::value, __nat, element_type>& __r) noexcept {
return std::addressof(__r);
}
};
template <class _From, class _To>
using __rebind_pointer_t = typename pointer_traits<_From>::template rebind<_To>;
template <class _Pointer, class = void>
struct __to_address_helper;
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp* __to_address(_Tp* __p) noexcept {
static_assert(!is_function<_Tp>::value, "_Tp is a function type");
return __p;
}
template <class _Pointer, class = void>
struct _HasToAddress : false_type {};
template <class _Pointer>
struct _HasToAddress<_Pointer, decltype((void)pointer_traits<_Pointer>::to_address(std::declval<const _Pointer&>())) >
: true_type {};
template <class _Pointer, class = void>
struct _HasArrow : false_type {};
template <class _Pointer>
struct _HasArrow<_Pointer, decltype((void)std::declval<const _Pointer&>().operator->()) > : true_type {};
template <class _Pointer>
struct _IsFancyPointer {
static const bool value = _HasArrow<_Pointer>::value || _HasToAddress<_Pointer>::value;
};
template <class _Pointer, class = __enable_if_t< _And<is_class<_Pointer>, _IsFancyPointer<_Pointer> >::value > >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
__decay_t<decltype(__to_address_helper<_Pointer>::__call(std::declval<const _Pointer&>()))>
__to_address(const _Pointer& __p) noexcept {
return __to_address_helper<_Pointer>::__call(__p);
}
template <class _Pointer, class>
struct __to_address_helper {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static decltype(std::__to_address(
std::declval<const _Pointer&>().operator->()))
__call(const _Pointer& __p) noexcept {
return std::__to_address(__p.operator->());
}
};
template <class _Pointer>
struct __to_address_helper<_Pointer,
decltype((void)pointer_traits<_Pointer>::to_address(std::declval<const _Pointer&>()))> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static decltype(pointer_traits<_Pointer>::to_address(
std::declval<const _Pointer&>()))
__call(const _Pointer& __p) noexcept {
return pointer_traits<_Pointer>::to_address(__p);
}
};
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto to_address(_Tp* __p) noexcept {
return std::__to_address(__p);
}
template <class _Pointer>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto to_address(const _Pointer& __p) noexcept
-> decltype(std::__to_address(__p)) {
return std::__to_address(__p);
}
}}
# 35 "/bin/../include/c++/v1/__iterator/concepts.h" 2 3
# 45 "/bin/../include/c++/v1/__iterator/concepts.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _In>
concept __indirectly_readable_impl =
requires(const _In __i) {
typename iter_value_t<_In>;
typename iter_reference_t<_In>;
typename iter_rvalue_reference_t<_In>;
{ *__i } -> same_as<iter_reference_t<_In>>;
{ ranges::iter_move(__i) } -> same_as<iter_rvalue_reference_t<_In>>;
} && common_reference_with<iter_reference_t<_In>&&, iter_value_t<_In>&> &&
common_reference_with<iter_reference_t<_In>&&, iter_rvalue_reference_t<_In>&&> &&
common_reference_with<iter_rvalue_reference_t<_In>&&, const iter_value_t<_In>&>;
template <class _In>
concept indirectly_readable = __indirectly_readable_impl<remove_cvref_t<_In>>;
template <indirectly_readable _Tp>
using iter_common_reference_t = common_reference_t<iter_reference_t<_Tp>, iter_value_t<_Tp>&>;
template <class _Out, class _Tp>
concept indirectly_writable = requires(_Out&& __o, _Tp&& __t) {
*__o = std::forward<_Tp>(__t);
*std::forward<_Out>(__o) = std::forward<_Tp>(__t);
const_cast<const iter_reference_t<_Out>&&>(*__o) = std::forward<_Tp>(__t);
const_cast<const iter_reference_t<_Out>&&>(*std::forward<_Out>(__o)) =
std::forward<_Tp>(__t);
};
template <class _Tp>
concept __integer_like = integral<_Tp> && !same_as<_Tp, bool>;
template <class _Tp>
concept __signed_integer_like = signed_integral<_Tp>;
template <class _Ip>
concept weakly_incrementable =
!same_as<_Ip, bool> &&
movable<_Ip> && requires(_Ip __i) {
typename iter_difference_t<_Ip>;
requires __signed_integer_like<iter_difference_t<_Ip>>;
{ ++__i } -> same_as<_Ip&>;
__i++;
};
template <class _Ip>
concept incrementable = regular<_Ip> && weakly_incrementable<_Ip> && requires(_Ip __i) {
{ __i++ } -> same_as<_Ip>;
};
template <class _Ip>
concept input_or_output_iterator = requires(_Ip __i) {
{ *__i } -> __can_reference;
} && weakly_incrementable<_Ip>;
template <class _Sp, class _Ip>
concept sentinel_for = semiregular<_Sp> && input_or_output_iterator<_Ip> && __weakly_equality_comparable_with<_Sp, _Ip>;
template <class, class>
inline constexpr bool disable_sized_sentinel_for = false;
template <class _Sp, class _Ip>
concept sized_sentinel_for =
sentinel_for<_Sp, _Ip> && !disable_sized_sentinel_for<remove_cv_t<_Sp>, remove_cv_t<_Ip>> &&
requires(const _Ip& __i, const _Sp& __s) {
{ __s - __i } -> same_as<iter_difference_t<_Ip>>;
{ __i - __s } -> same_as<iter_difference_t<_Ip>>;
};
template <class _Ip>
concept input_iterator = input_or_output_iterator<_Ip> && indirectly_readable<_Ip> && requires {
typename _ITER_CONCEPT<_Ip>;
} && derived_from<_ITER_CONCEPT<_Ip>, input_iterator_tag>;
template <class _Ip, class _Tp>
concept output_iterator =
input_or_output_iterator<_Ip> && indirectly_writable<_Ip, _Tp> && requires(_Ip __it, _Tp&& __t) {
*__it++ = std::forward<_Tp>(__t);
};
template <class _Ip>
concept forward_iterator =
input_iterator<_Ip> && derived_from<_ITER_CONCEPT<_Ip>, forward_iterator_tag> && incrementable<_Ip> &&
sentinel_for<_Ip, _Ip>;
template <class _Ip>
concept bidirectional_iterator =
forward_iterator<_Ip> && derived_from<_ITER_CONCEPT<_Ip>, bidirectional_iterator_tag> && requires(_Ip __i) {
{ --__i } -> same_as<_Ip&>;
{ __i-- } -> same_as<_Ip>;
};
template <class _Ip>
concept random_access_iterator =
bidirectional_iterator<_Ip> && derived_from<_ITER_CONCEPT<_Ip>, random_access_iterator_tag> &&
totally_ordered<_Ip> && sized_sentinel_for<_Ip, _Ip> &&
requires(_Ip __i, const _Ip __j, const iter_difference_t<_Ip> __n) {
{ __i += __n } -> same_as<_Ip&>;
{ __j + __n } -> same_as<_Ip>;
{ __n + __j } -> same_as<_Ip>;
{ __i -= __n } -> same_as<_Ip&>;
{ __j - __n } -> same_as<_Ip>;
{ __j[__n] } -> same_as<iter_reference_t<_Ip>>;
};
template <class _Ip>
concept contiguous_iterator =
random_access_iterator<_Ip> && derived_from<_ITER_CONCEPT<_Ip>, contiguous_iterator_tag> &&
is_lvalue_reference_v<iter_reference_t<_Ip>> && same_as<iter_value_t<_Ip>, remove_cvref_t<iter_reference_t<_Ip>>> &&
requires(const _Ip& __i) {
{ std::to_address(__i) } -> same_as<add_pointer_t<iter_reference_t<_Ip>>>;
};
template <class _Ip>
concept __has_arrow = input_iterator<_Ip> && (is_pointer_v<_Ip> || requires(_Ip __i) { __i.operator->(); });
template <class _Fp, class _It>
concept indirectly_unary_invocable =
indirectly_readable<_It> && copy_constructible<_Fp> && invocable<_Fp&, iter_value_t<_It>&> &&
invocable<_Fp&, iter_reference_t<_It>> && invocable<_Fp&, iter_common_reference_t<_It>> &&
common_reference_with< invoke_result_t<_Fp&, iter_value_t<_It>&>, invoke_result_t<_Fp&, iter_reference_t<_It>>>;
template <class _Fp, class _It>
concept indirectly_regular_unary_invocable =
indirectly_readable<_It> && copy_constructible<_Fp> && regular_invocable<_Fp&, iter_value_t<_It>&> &&
regular_invocable<_Fp&, iter_reference_t<_It>> && regular_invocable<_Fp&, iter_common_reference_t<_It>> &&
common_reference_with< invoke_result_t<_Fp&, iter_value_t<_It>&>, invoke_result_t<_Fp&, iter_reference_t<_It>>>;
template <class _Fp, class _It>
concept indirect_unary_predicate =
indirectly_readable<_It> && copy_constructible<_Fp> && predicate<_Fp&, iter_value_t<_It>&> &&
predicate<_Fp&, iter_reference_t<_It>> && predicate<_Fp&, iter_common_reference_t<_It>>;
template <class _Fp, class _It1, class _It2>
concept indirect_binary_predicate =
indirectly_readable<_It1> && indirectly_readable<_It2> && copy_constructible<_Fp> &&
predicate<_Fp&, iter_value_t<_It1>&, iter_value_t<_It2>&> &&
predicate<_Fp&, iter_value_t<_It1>&, iter_reference_t<_It2>> &&
predicate<_Fp&, iter_reference_t<_It1>, iter_value_t<_It2>&> &&
predicate<_Fp&, iter_reference_t<_It1>, iter_reference_t<_It2>> &&
predicate<_Fp&, iter_common_reference_t<_It1>, iter_common_reference_t<_It2>>;
template <class _Fp, class _It1, class _It2 = _It1>
concept indirect_equivalence_relation =
indirectly_readable<_It1> && indirectly_readable<_It2> && copy_constructible<_Fp> &&
equivalence_relation<_Fp&, iter_value_t<_It1>&, iter_value_t<_It2>&> &&
equivalence_relation<_Fp&, iter_value_t<_It1>&, iter_reference_t<_It2>> &&
equivalence_relation<_Fp&, iter_reference_t<_It1>, iter_value_t<_It2>&> &&
equivalence_relation<_Fp&, iter_reference_t<_It1>, iter_reference_t<_It2>> &&
equivalence_relation<_Fp&, iter_common_reference_t<_It1>, iter_common_reference_t<_It2>>;
template <class _Fp, class _It1, class _It2 = _It1>
concept indirect_strict_weak_order =
indirectly_readable<_It1> && indirectly_readable<_It2> && copy_constructible<_Fp> &&
strict_weak_order<_Fp&, iter_value_t<_It1>&, iter_value_t<_It2>&> &&
strict_weak_order<_Fp&, iter_value_t<_It1>&, iter_reference_t<_It2>> &&
strict_weak_order<_Fp&, iter_reference_t<_It1>, iter_value_t<_It2>&> &&
strict_weak_order<_Fp&, iter_reference_t<_It1>, iter_reference_t<_It2>> &&
strict_weak_order<_Fp&, iter_common_reference_t<_It1>, iter_common_reference_t<_It2>>;
template <class _Fp, class... _Its>
requires(indirectly_readable<_Its> && ...) && invocable<_Fp, iter_reference_t<_Its>...>
using indirect_result_t = invoke_result_t<_Fp, iter_reference_t<_Its>...>;
template <class _In, class _Out>
concept indirectly_movable = indirectly_readable<_In> && indirectly_writable<_Out, iter_rvalue_reference_t<_In>>;
template <class _In, class _Out>
concept indirectly_movable_storable =
indirectly_movable<_In, _Out> && indirectly_writable<_Out, iter_value_t<_In>> && movable<iter_value_t<_In>> &&
constructible_from<iter_value_t<_In>, iter_rvalue_reference_t<_In>> &&
assignable_from<iter_value_t<_In>&, iter_rvalue_reference_t<_In>>;
template <class _In, class _Out>
concept indirectly_copyable = indirectly_readable<_In> && indirectly_writable<_Out, iter_reference_t<_In>>;
template <class _In, class _Out>
concept indirectly_copyable_storable =
indirectly_copyable<_In, _Out> && indirectly_writable<_Out, iter_value_t<_In>&> &&
indirectly_writable<_Out, const iter_value_t<_In>&> && indirectly_writable<_Out, iter_value_t<_In>&&> &&
indirectly_writable<_Out, const iter_value_t<_In>&&> && copyable<iter_value_t<_In>> &&
constructible_from<iter_value_t<_In>, iter_reference_t<_In>> &&
assignable_from<iter_value_t<_In>&, iter_reference_t<_In>>;
template <class _Tp>
using __has_random_access_iterator_category_or_concept
= integral_constant<bool, random_access_iterator<_Tp>>;
}}
# 14 "/bin/../include/c++/v1/__algorithm/ranges_iterator_concept.h" 2 3
# 19 "/bin/../include/c++/v1/__algorithm/ranges_iterator_concept.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 23 "/bin/../include/c++/v1/__algorithm/ranges_iterator_concept.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
template <class _IterMaybeQualified>
consteval auto __get_iterator_concept() {
using _Iter = __remove_cvref_t<_IterMaybeQualified>;
if constexpr (contiguous_iterator<_Iter>)
return contiguous_iterator_tag();
else if constexpr (random_access_iterator<_Iter>)
return random_access_iterator_tag();
else if constexpr (bidirectional_iterator<_Iter>)
return bidirectional_iterator_tag();
else if constexpr (forward_iterator<_Iter>)
return forward_iterator_tag();
else if constexpr (input_iterator<_Iter>)
return input_iterator_tag();
}
template <class _Iter>
using __iterator_concept = decltype(__get_iterator_concept<_Iter>());
}
}}
# 14 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/advance.h" 1 3
# 22 "/bin/../include/c++/v1/__iterator/advance.h" 3
# 1 "/bin/../include/c++/v1/__utility/convert_to_integral.h" 1 3
# 16 "/bin/../include/c++/v1/__utility/convert_to_integral.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/underlying_type.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/underlying_type.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, bool = is_enum<_Tp>::value>
struct __underlying_type_impl;
template <class _Tp>
struct __underlying_type_impl<_Tp, false> {};
template <class _Tp>
struct __underlying_type_impl<_Tp, true> {
typedef __underlying_type(_Tp) type;
};
template <class _Tp>
struct underlying_type : __underlying_type_impl<_Tp, is_enum<_Tp>::value> {};
template <class _Tp>
using underlying_type_t = typename underlying_type<_Tp>::type;
}}
# 17 "/bin/../include/c++/v1/__utility/convert_to_integral.h" 2 3
# 20 "/bin/../include/c++/v1/__utility/convert_to_integral.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int __convert_to_integral(int __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr unsigned __convert_to_integral(unsigned __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr long __convert_to_integral(long __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr unsigned long __convert_to_integral(unsigned long __val) {
return __val;
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr long long __convert_to_integral(long long __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr unsigned long long __convert_to_integral(unsigned long long __val) {
return __val;
}
template <typename _Fp, __enable_if_t<is_floating_point<_Fp>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr long long __convert_to_integral(_Fp __val) {
return __val;
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __int128_t __convert_to_integral(__int128_t __val) { return __val; }
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __uint128_t __convert_to_integral(__uint128_t __val) { return __val; }
template <class _Tp, bool = is_enum<_Tp>::value>
struct __sfinae_underlying_type {
typedef typename underlying_type<_Tp>::type type;
typedef decltype(((type)1) + 0) __promoted_type;
};
template <class _Tp>
struct __sfinae_underlying_type<_Tp, false> {};
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename __sfinae_underlying_type<_Tp>::__promoted_type
__convert_to_integral(_Tp __val) {
return __val;
}
}}
# 23 "/bin/../include/c++/v1/__iterator/advance.h" 2 3
# 1 "/bin/../include/c++/v1/__utility/unreachable.h" 1 3
# 17 "/bin/../include/c++/v1/__utility/unreachable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
[[noreturn]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline void __libcpp_unreachable() {
((void)0);
__builtin_unreachable();
}
}}
# 26 "/bin/../include/c++/v1/__iterator/advance.h" 2 3
# 30 "/bin/../include/c++/v1/__iterator/advance.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 34 "/bin/../include/c++/v1/__iterator/advance.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void
__advance(_InputIter& __i, typename iterator_traits<_InputIter>::difference_type __n, input_iterator_tag) {
for (; __n > 0; --__n)
++__i;
}
template <class _BiDirIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void
__advance(_BiDirIter& __i, typename iterator_traits<_BiDirIter>::difference_type __n, bidirectional_iterator_tag) {
if (__n >= 0)
for (; __n > 0; --__n)
++__i;
else
for (; __n < 0; ++__n)
--__i;
}
template <class _RandIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void
__advance(_RandIter& __i, typename iterator_traits<_RandIter>::difference_type __n, random_access_iterator_tag) {
__i += __n;
}
template < class _InputIter,
class _Distance,
class _IntegralDistance = decltype(std::__convert_to_integral(std::declval<_Distance>())),
class = __enable_if_t<is_integral<_IntegralDistance>::value> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void advance(_InputIter& __i, _Distance __orig_n) {
typedef typename iterator_traits<_InputIter>::difference_type _Difference;
_Difference __n = static_cast<_Difference>(std::__convert_to_integral(__orig_n));
((void)0);
std::__advance(__i, __n, typename iterator_traits<_InputIter>::iterator_category());
}
namespace ranges {
namespace __advance {
struct __fn {
private:
template <class _Ip>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr void __advance_forward(_Ip& __i, iter_difference_t<_Ip> __n) {
while (__n > 0) {
--__n;
++__i;
}
}
template <class _Ip>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr void __advance_backward(_Ip& __i, iter_difference_t<_Ip> __n) {
while (__n < 0) {
++__n;
--__i;
}
}
public:
template <input_or_output_iterator _Ip>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void operator()(_Ip& __i, iter_difference_t<_Ip> __n) const {
((void)0);
if constexpr (random_access_iterator<_Ip>) {
__i += __n;
return;
} else if constexpr (bidirectional_iterator<_Ip>) {
__advance_forward(__i, __n);
__advance_backward(__i, __n);
return;
} else {
__advance_forward(__i, __n);
return;
}
}
template <input_or_output_iterator _Ip, sentinel_for<_Ip> _Sp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void operator()(_Ip& __i, _Sp __bound_sentinel) const {
if constexpr (assignable_from<_Ip&, _Sp>) {
__i = std::move(__bound_sentinel);
}
else if constexpr (sized_sentinel_for<_Sp, _Ip>) {
(*this)(__i, __bound_sentinel - __i);
}
else {
while (__i != __bound_sentinel) {
++__i;
}
}
}
template <input_or_output_iterator _Ip, sentinel_for<_Ip> _Sp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr iter_difference_t<_Ip>
operator()(_Ip& __i, iter_difference_t<_Ip> __n, _Sp __bound_sentinel) const {
((void)0);
if constexpr (sized_sentinel_for<_Sp, _Ip>) {
auto __magnitude_geq = [](auto __a, auto __b) { return __a == 0 ? __b == 0 : __a > 0 ? __a >= __b : __a <= __b; };
if (const auto __m = __bound_sentinel - __i; __magnitude_geq(__n, __m)) {
(*this)(__i, __bound_sentinel);
return __n - __m;
}
(*this)(__i, __n);
return 0;
} else {
while (__i != __bound_sentinel && __n > 0) {
++__i;
--__n;
}
if constexpr (bidirectional_iterator<_Ip> && same_as<_Ip, _Sp>) {
while (__i != __bound_sentinel && __n < 0) {
--__i;
++__n;
}
}
return __n;
}
__libcpp_unreachable();
}
};
}
inline namespace __cpo {
inline constexpr auto advance = __advance::__fn{};
}
}
}}
# 16 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/distance.h" 1 3
# 17 "/bin/../include/c++/v1/__iterator/distance.h" 3
# 1 "/bin/../include/c++/v1/__ranges/access.h" 1 3
# 17 "/bin/../include/c++/v1/__ranges/access.h" 3
# 1 "/bin/../include/c++/v1/__ranges/enable_borrowed_range.h" 1 3
# 21 "/bin/../include/c++/v1/__ranges/enable_borrowed_range.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
template <class>
inline constexpr bool enable_borrowed_range = false;
}
}}
# 18 "/bin/../include/c++/v1/__ranges/access.h" 2 3
# 1 "/bin/../include/c++/v1/__utility/auto_cast.h" 1 3
# 18 "/bin/../include/c++/v1/__utility/auto_cast.h" 3
# 23 "/bin/../include/c++/v1/__ranges/access.h" 2 3
# 28 "/bin/../include/c++/v1/__ranges/access.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
template <class _Tp>
concept __can_borrow = is_lvalue_reference_v<_Tp> || enable_borrowed_range<remove_cvref_t<_Tp>>;
}
namespace ranges {
namespace __begin {
template <class _Tp>
concept __member_begin = __can_borrow<_Tp> && __workaround_52970<_Tp> && requires(_Tp&& __t) {
{ static_cast<::std::__decay_t<decltype((__t.begin()))> >(__t.begin()) } -> input_or_output_iterator;
};
void begin(auto&) = delete;
void begin(const auto&) = delete;
template <class _Tp>
concept __unqualified_begin =
!__member_begin<_Tp> && __can_borrow<_Tp> && __class_or_enum<remove_cvref_t<_Tp>> && requires(_Tp&& __t) {
{ static_cast<::std::__decay_t<decltype((begin(__t)))> >(begin(__t)) } -> input_or_output_iterator;
};
struct __fn {
template <class _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp (&__t)[]) const noexcept
requires(sizeof(_Tp) >= 0)
{
return __t + 0;
}
template <class _Tp, size_t _Np>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp (&__t)[_Np]) const noexcept
requires(sizeof(_Tp) >= 0)
{
return __t + 0;
}
template <class _Tp>
requires __member_begin<_Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(static_cast<::std::__decay_t<decltype((__t.begin()))> >(__t.begin()))) {
return static_cast<::std::__decay_t<decltype((__t.begin()))> >(__t.begin());
}
template <class _Tp>
requires __unqualified_begin<_Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(static_cast<::std::__decay_t<decltype((begin(__t)))> >(begin(__t)))) {
return static_cast<::std::__decay_t<decltype((begin(__t)))> >(begin(__t));
}
void operator()(auto&&) const = delete;
};
}
inline namespace __cpo {
inline constexpr auto begin = __begin::__fn{};
}
}
namespace ranges {
template <class _Tp>
using iterator_t = decltype(ranges::begin(std::declval<_Tp&>()));
}
namespace ranges {
namespace __end {
template <class _Tp>
concept __member_end = __can_borrow<_Tp> && __workaround_52970<_Tp> && requires(_Tp&& __t) {
typename iterator_t<_Tp>;
{ static_cast<::std::__decay_t<decltype((__t.end()))> >(__t.end()) } -> sentinel_for<iterator_t<_Tp>>;
};
void end(auto&) = delete;
void end(const auto&) = delete;
template <class _Tp>
concept __unqualified_end =
!__member_end<_Tp> && __can_borrow<_Tp> && __class_or_enum<remove_cvref_t<_Tp>> && requires(_Tp&& __t) {
typename iterator_t<_Tp>;
{ static_cast<::std::__decay_t<decltype((end(__t)))> >(end(__t)) } -> sentinel_for<iterator_t<_Tp>>;
};
struct __fn {
template <class _Tp, size_t _Np>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp (&__t)[_Np]) const noexcept
requires(sizeof(_Tp) >= 0)
{
return __t + _Np;
}
template <class _Tp>
requires __member_end<_Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(static_cast<::std::__decay_t<decltype((__t.end()))> >(__t.end()))) {
return static_cast<::std::__decay_t<decltype((__t.end()))> >(__t.end());
}
template <class _Tp>
requires __unqualified_end<_Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(static_cast<::std::__decay_t<decltype((end(__t)))> >(end(__t)))) {
return static_cast<::std::__decay_t<decltype((end(__t)))> >(end(__t));
}
void operator()(auto&&) const = delete;
};
}
inline namespace __cpo {
inline constexpr auto end = __end::__fn{};
}
}
namespace ranges {
namespace __cbegin {
struct __fn {
template <class _Tp>
requires is_lvalue_reference_v<_Tp&&>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(ranges::begin(static_cast<const remove_reference_t<_Tp>&>(__t))))
-> decltype(ranges::begin(static_cast<const remove_reference_t<_Tp>&>(__t))) {
return ranges::begin(static_cast<const remove_reference_t<_Tp>&>(__t));
}
template <class _Tp>
requires is_rvalue_reference_v<_Tp&&>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(ranges::begin(static_cast<const _Tp&&>(__t))))
-> decltype(ranges::begin(static_cast<const _Tp&&>(__t))) {
return ranges::begin(static_cast<const _Tp&&>(__t));
}
};
}
inline namespace __cpo {
inline constexpr auto cbegin = __cbegin::__fn{};
}
}
namespace ranges {
namespace __cend {
struct __fn {
template <class _Tp>
requires is_lvalue_reference_v<_Tp&&>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(ranges::end(static_cast<const remove_reference_t<_Tp>&>(__t))))
-> decltype(ranges::end(static_cast<const remove_reference_t<_Tp>&>(__t))) {
return ranges::end(static_cast<const remove_reference_t<_Tp>&>(__t));
}
template <class _Tp>
requires is_rvalue_reference_v<_Tp&&>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(ranges::end(static_cast<const _Tp&&>(__t))))
-> decltype(ranges::end(static_cast<const _Tp&&>(__t))) {
return ranges::end(static_cast<const _Tp&&>(__t));
}
};
}
inline namespace __cpo {
inline constexpr auto cend = __cend::__fn{};
}
}
}}
# 18 "/bin/../include/c++/v1/__iterator/distance.h" 2 3
# 1 "/bin/../include/c++/v1/__ranges/concepts.h" 1 3
# 23 "/bin/../include/c++/v1/__ranges/concepts.h" 3
# 1 "/bin/../include/c++/v1/__ranges/data.h" 1 3
# 23 "/bin/../include/c++/v1/__ranges/data.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/remove_pointer.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/remove_pointer.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct remove_pointer {
using type __attribute__((__nodebug__)) = __remove_pointer(_Tp);
};
template <class _Tp>
using __remove_pointer_t = __remove_pointer(_Tp);
# 42 "/bin/../include/c++/v1/__type_traits/remove_pointer.h" 3
template <class _Tp>
using remove_pointer_t = __remove_pointer_t<_Tp>;
}}
# 24 "/bin/../include/c++/v1/__ranges/data.h" 2 3
# 29 "/bin/../include/c++/v1/__ranges/data.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
namespace __data {
template <class _Tp>
concept __ptr_to_object = is_pointer_v<_Tp> && is_object_v<remove_pointer_t<_Tp>>;
template <class _Tp>
concept __member_data = __can_borrow<_Tp> && __workaround_52970<_Tp> && requires(_Tp&& __t) {
{ static_cast<::std::__decay_t<decltype((__t.data()))> >(__t.data()) } -> __ptr_to_object;
};
template <class _Tp>
concept __ranges_begin_invocable = !__member_data<_Tp> && __can_borrow<_Tp> && requires(_Tp&& __t) {
{ ranges::begin(__t) } -> contiguous_iterator;
};
struct __fn {
template <__member_data _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const noexcept(noexcept(__t.data())) {
return __t.data();
}
template <__ranges_begin_invocable _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(std::to_address(ranges::begin(__t)))) {
return std::to_address(ranges::begin(__t));
}
};
}
inline namespace __cpo {
inline constexpr auto data = __data::__fn{};
}
}
namespace ranges {
namespace __cdata {
struct __fn {
template <class _Tp>
requires is_lvalue_reference_v<_Tp&&>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(ranges::data(static_cast<const remove_reference_t<_Tp>&>(__t))))
-> decltype(ranges::data(static_cast<const remove_reference_t<_Tp>&>(__t))) {
return ranges::data(static_cast<const remove_reference_t<_Tp>&>(__t));
}
template <class _Tp>
requires is_rvalue_reference_v<_Tp&&>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(ranges::data(static_cast<const _Tp&&>(__t))))
-> decltype(ranges::data(static_cast<const _Tp&&>(__t))) {
return ranges::data(static_cast<const _Tp&&>(__t));
}
};
}
inline namespace __cpo {
inline constexpr auto cdata = __cdata::__fn{};
}
}
}}
# 24 "/bin/../include/c++/v1/__ranges/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__ranges/enable_view.h" 1 3
# 22 "/bin/../include/c++/v1/__ranges/enable_view.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
struct view_base {};
template <class _Derived>
requires is_class_v<_Derived> && same_as<_Derived, remove_cv_t<_Derived>>
class view_interface;
template <class _Op, class _Yp>
requires is_convertible_v<_Op*, view_interface<_Yp>*>
void __is_derived_from_view_interface(const _Op*, const view_interface<_Yp>*);
template <class _Tp>
inline constexpr bool enable_view = derived_from<_Tp, view_base> || requires {
ranges::__is_derived_from_view_interface((_Tp*)nullptr, (_Tp*)nullptr);
};
}
}}
# 26 "/bin/../include/c++/v1/__ranges/concepts.h" 2 3
# 1 "/bin/../include/c++/v1/__ranges/size.h" 1 3
# 21 "/bin/../include/c++/v1/__ranges/size.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/make_unsigned.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/make_unsigned.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_unsigned.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/is_unsigned.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_unsigned : _BoolConstant<__is_unsigned(_Tp)> {};
template <class _Tp>
inline constexpr bool is_unsigned_v = __is_unsigned(_Tp);
# 57 "/bin/../include/c++/v1/__type_traits/is_unsigned.h" 3
}}
# 18 "/bin/../include/c++/v1/__type_traits/make_unsigned.h" 2 3
# 24 "/bin/../include/c++/v1/__type_traits/make_unsigned.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
using __make_unsigned_t = __make_unsigned(_Tp);
# 79 "/bin/../include/c++/v1/__type_traits/make_unsigned.h" 3
template <class _Tp>
struct make_unsigned {
using type __attribute__((__nodebug__)) = __make_unsigned_t<_Tp>;
};
template <class _Tp>
using make_unsigned_t = __make_unsigned_t<_Tp>;
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __make_unsigned_t<_Tp> __to_unsigned_like(_Tp __x) noexcept {
return static_cast<__make_unsigned_t<_Tp> >(__x);
}
template <class _Tp, class _Up>
using __copy_unsigned_t = __conditional_t<is_unsigned<_Tp>::value, __make_unsigned_t<_Up>, _Up>;
}}
# 22 "/bin/../include/c++/v1/__ranges/size.h" 2 3
# 29 "/bin/../include/c++/v1/__ranges/size.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
template <class>
inline constexpr bool disable_sized_range = false;
}
namespace ranges {
namespace __size {
void size(auto&) = delete;
void size(const auto&) = delete;
template <class _Tp>
concept __size_enabled = !disable_sized_range<remove_cvref_t<_Tp>>;
template <class _Tp>
concept __member_size = __size_enabled<_Tp> && __workaround_52970<_Tp> && requires(_Tp&& __t) {
{ static_cast<::std::__decay_t<decltype((__t.size()))> >(__t.size()) } -> __integer_like;
};
template <class _Tp>
concept __unqualified_size =
__size_enabled<_Tp> && !__member_size<_Tp> && __class_or_enum<remove_cvref_t<_Tp>> && requires(_Tp&& __t) {
{ static_cast<::std::__decay_t<decltype((size(__t)))> >(size(__t)) } -> __integer_like;
};
template <class _Tp>
concept __difference =
!__member_size<_Tp> && !__unqualified_size<_Tp> && __class_or_enum<remove_cvref_t<_Tp>> && requires(_Tp&& __t) {
{ ranges::begin(__t) } -> forward_iterator;
{ ranges::end(__t) } -> sized_sentinel_for<decltype(ranges::begin(std::declval<_Tp>()))>;
};
struct __fn {
template <class _Tp, size_t _Sz>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr size_t operator()(_Tp (&&)[_Sz]) const noexcept {
return _Sz;
}
template <class _Tp, size_t _Sz>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr size_t operator()(_Tp (&)[_Sz]) const noexcept {
return _Sz;
}
template <__member_size _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __integer_like auto operator()(_Tp&& __t) const
noexcept(noexcept(static_cast<::std::__decay_t<decltype((__t.size()))> >(__t.size()))) {
return static_cast<::std::__decay_t<decltype((__t.size()))> >(__t.size());
}
template <__unqualified_size _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __integer_like auto operator()(_Tp&& __t) const
noexcept(noexcept(static_cast<::std::__decay_t<decltype((size(__t)))> >(size(__t)))) {
return static_cast<::std::__decay_t<decltype((size(__t)))> >(size(__t));
}
template <__difference _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t) const
noexcept(noexcept(std::__to_unsigned_like(ranges::end(__t) - ranges::begin(__t))))
-> decltype(std::__to_unsigned_like(ranges::end(__t) - ranges::begin(__t))) {
return std::__to_unsigned_like(ranges::end(__t) - ranges::begin(__t));
}
};
}
inline namespace __cpo {
inline constexpr auto size = __size::__fn{};
}
}
namespace ranges {
namespace __ssize {
struct __fn {
template <class _Tp>
requires requires(_Tp&& __t) { ranges::size(__t); }
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr integral auto operator()(_Tp&& __t) const
noexcept(noexcept(ranges::size(__t))) {
using _Signed = make_signed_t<decltype(ranges::size(__t))>;
if constexpr (sizeof(ptrdiff_t) > sizeof(_Signed))
return static_cast<ptrdiff_t>(ranges::size(__t));
else
return static_cast<_Signed>(ranges::size(__t));
}
};
}
inline namespace __cpo {
inline constexpr auto ssize = __ssize::__fn{};
}
}
}}
# 27 "/bin/../include/c++/v1/__ranges/concepts.h" 2 3
# 1 "third_party/stl/cxx17/initializer_list" 1 3
# 1 "/bin/../include/c++/v1/initializer_list" 1 3
# 51 "/bin/../include/c++/v1/initializer_list" 3
namespace std
{
template <class _Ep>
class initializer_list {
const _Ep* __begin_;
size_t __size_;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr initializer_list(const _Ep* __b, size_t __s) noexcept
: __begin_(__b),
__size_(__s) {}
public:
typedef _Ep value_type;
typedef const _Ep& reference;
typedef const _Ep& const_reference;
typedef size_t size_type;
typedef const _Ep* iterator;
typedef const _Ep* const_iterator;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr initializer_list() noexcept : __begin_(nullptr), __size_(0) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr size_t size() const noexcept { return __size_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Ep* begin() const noexcept { return __begin_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Ep* end() const noexcept { return __begin_ + __size_; }
};
template <class _Ep>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Ep* begin(initializer_list<_Ep> __il) noexcept {
return __il.begin();
}
template <class _Ep>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Ep* end(initializer_list<_Ep> __il) noexcept {
return __il.end();
}
}
# 5 "third_party/stl/cxx17/initializer_list" 2 3
# 33 "/bin/../include/c++/v1/__ranges/concepts.h" 2 3
# 36 "/bin/../include/c++/v1/__ranges/concepts.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
template <class _Tp>
concept range = requires(_Tp& __t) {
ranges::begin(__t);
ranges::end(__t);
};
template <class _Tp>
concept input_range = range<_Tp> && input_iterator<iterator_t<_Tp>>;
template <class _Range>
concept borrowed_range =
range<_Range> && (is_lvalue_reference_v<_Range> || enable_borrowed_range<remove_cvref_t<_Range>>);
template <range _Rp>
using sentinel_t = decltype(ranges::end(std::declval<_Rp&>()));
template <range _Rp>
using range_difference_t = iter_difference_t<iterator_t<_Rp>>;
template <range _Rp>
using range_value_t = iter_value_t<iterator_t<_Rp>>;
template <range _Rp>
using range_reference_t = iter_reference_t<iterator_t<_Rp>>;
template <range _Rp>
using range_rvalue_reference_t = iter_rvalue_reference_t<iterator_t<_Rp>>;
template <range _Rp>
using range_common_reference_t = iter_common_reference_t<iterator_t<_Rp>>;
template <class _Tp>
concept sized_range = range<_Tp> && requires(_Tp& __t) { ranges::size(__t); };
template <sized_range _Rp>
using range_size_t = decltype(ranges::size(std::declval<_Rp&>()));
# 93 "/bin/../include/c++/v1/__ranges/concepts.h" 3
template <class _Tp>
concept view = range<_Tp> && movable<_Tp> && enable_view<_Tp>;
template <class _Range>
concept __simple_view =
view<_Range> && range<const _Range> && same_as<iterator_t<_Range>, iterator_t<const _Range>> &&
same_as<sentinel_t<_Range>, sentinel_t<const _Range>>;
template <class _Rp, class _Tp>
concept output_range = range<_Rp> && output_iterator<iterator_t<_Rp>, _Tp>;
template <class _Tp>
concept forward_range = input_range<_Tp> && forward_iterator<iterator_t<_Tp>>;
template <class _Tp>
concept bidirectional_range = forward_range<_Tp> && bidirectional_iterator<iterator_t<_Tp>>;
template <class _Tp>
concept random_access_range = bidirectional_range<_Tp> && random_access_iterator<iterator_t<_Tp>>;
template <class _Tp>
concept contiguous_range = random_access_range<_Tp> && contiguous_iterator<iterator_t<_Tp>> && requires(_Tp& __t) {
{ ranges::data(__t) } -> same_as<add_pointer_t<range_reference_t<_Tp>>>;
};
template <class _Tp>
concept common_range = range<_Tp> && same_as<iterator_t<_Tp>, sentinel_t<_Tp>>;
template <class _Tp>
inline constexpr bool __is_std_initializer_list = false;
template <class _Ep>
inline constexpr bool __is_std_initializer_list<initializer_list<_Ep>> = true;
template <class _Tp>
concept viewable_range =
range<_Tp> &&
((view<remove_cvref_t<_Tp>> && constructible_from<remove_cvref_t<_Tp>, _Tp>) ||
(!view<remove_cvref_t<_Tp>> &&
(is_lvalue_reference_v<_Tp> ||
(movable<remove_reference_t<_Tp>> && !__is_std_initializer_list<remove_cvref_t<_Tp>>))));
}
}}
# 19 "/bin/../include/c++/v1/__iterator/distance.h" 2 3
# 25 "/bin/../include/c++/v1/__iterator/distance.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename iterator_traits<_InputIter>::difference_type
__distance(_InputIter __first, _InputIter __last, input_iterator_tag) {
typename iterator_traits<_InputIter>::difference_type __r(0);
for (; __first != __last; ++__first)
++__r;
return __r;
}
template <class _RandIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename iterator_traits<_RandIter>::difference_type
__distance(_RandIter __first, _RandIter __last, random_access_iterator_tag) {
return __last - __first;
}
template <class _InputIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename iterator_traits<_InputIter>::difference_type
distance(_InputIter __first, _InputIter __last) {
return std::__distance(__first, __last, typename iterator_traits<_InputIter>::iterator_category());
}
namespace ranges {
namespace __distance {
struct __fn {
template <class _Ip, sentinel_for<_Ip> _Sp>
requires(!sized_sentinel_for<_Sp, _Ip>)
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr iter_difference_t<_Ip> operator()(_Ip __first, _Sp __last) const {
iter_difference_t<_Ip> __n = 0;
while (__first != __last) {
++__first;
++__n;
}
return __n;
}
template <class _Ip, sized_sentinel_for<decay_t<_Ip>> _Sp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr iter_difference_t<_Ip> operator()(_Ip&& __first, _Sp __last) const {
if constexpr (sized_sentinel_for<_Sp, __remove_cvref_t<_Ip>>) {
return __last - __first;
} else {
return __last - decay_t<_Ip>(__first);
}
}
template <range _Rp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr range_difference_t<_Rp> operator()(_Rp&& __r) const {
if constexpr (sized_range<_Rp>) {
return static_cast<range_difference_t<_Rp>>(ranges::size(__r));
} else {
return operator()(ranges::begin(__r), ranges::end(__r));
}
}
};
}
inline namespace __cpo {
inline constexpr auto distance = __distance::__fn{};
}
}
}}
# 17 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/iter_swap.h" 1 3
# 27 "/bin/../include/c++/v1/__iterator/iter_swap.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 31 "/bin/../include/c++/v1/__iterator/iter_swap.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
namespace __iter_swap {
template <class _I1, class _I2>
void iter_swap(_I1, _I2) = delete;
template <class _T1, class _T2>
concept __unqualified_iter_swap =
(__class_or_enum<remove_cvref_t<_T1>> || __class_or_enum<remove_cvref_t<_T2>>)&&requires(_T1&& __x, _T2&& __y) {
iter_swap(std::forward<_T1>(__x), std::forward<_T2>(__y));
};
template <class _T1, class _T2>
concept __readable_swappable =
indirectly_readable<_T1> && indirectly_readable<_T2> &&
swappable_with<iter_reference_t<_T1>, iter_reference_t<_T2>>;
struct __fn {
template <class _T1, class _T2>
requires __unqualified_iter_swap<_T1, _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void operator()(_T1&& __x, _T2&& __y) const
noexcept(noexcept(iter_swap(std::forward<_T1>(__x), std::forward<_T2>(__y)))) {
(void)iter_swap(std::forward<_T1>(__x), std::forward<_T2>(__y));
}
template <class _T1, class _T2>
requires(!__unqualified_iter_swap<_T1, _T2>) && __readable_swappable<_T1, _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void operator()(_T1&& __x, _T2&& __y) const
noexcept(noexcept(ranges::swap(*std::forward<_T1>(__x), *std::forward<_T2>(__y)))) {
ranges::swap(*std::forward<_T1>(__x), *std::forward<_T2>(__y));
}
template <class _T1, class _T2>
requires(!__unqualified_iter_swap<_T1, _T2> &&
!__readable_swappable<_T1, _T2>) &&
indirectly_movable_storable<_T1, _T2> &&
indirectly_movable_storable<_T2, _T1>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void operator()(_T1&& __x, _T2&& __y) const
noexcept(noexcept(iter_value_t<_T2>(ranges::iter_move(__y))) &&
noexcept(*__y = ranges::iter_move(__x)) &&
noexcept(*std::forward<_T1>(__x) = std::declval<iter_value_t<_T2>>())) {
iter_value_t<_T2> __old(ranges::iter_move(__y));
*__y = ranges::iter_move(__x);
*std::forward<_T1>(__x) = std::move(__old);
}
};
}
inline namespace __cpo {
inline constexpr auto iter_swap = __iter_swap::__fn{};
}
}
template <class _I1, class _I2 = _I1>
concept indirectly_swappable =
indirectly_readable<_I1> && indirectly_readable<_I2> && requires(const _I1 __i1, const _I2 __i2) {
ranges::iter_swap(__i1, __i1);
ranges::iter_swap(__i2, __i2);
ranges::iter_swap(__i1, __i2);
ranges::iter_swap(__i2, __i1);
};
}}
# 20 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/next.h" 1 3
# 23 "/bin/../include/c++/v1/__iterator/next.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIter, __enable_if_t<__has_input_iterator_category<_InputIter>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _InputIter
next(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) {
((void)0);
std::advance(__x, __n);
return __x;
}
namespace ranges {
namespace __next {
struct __fn {
template <input_or_output_iterator _Ip>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Ip operator()(_Ip __x) const {
++__x;
return __x;
}
template <input_or_output_iterator _Ip>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Ip operator()(_Ip __x, iter_difference_t<_Ip> __n) const {
ranges::advance(__x, __n);
return __x;
}
template <input_or_output_iterator _Ip, sentinel_for<_Ip> _Sp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Ip operator()(_Ip __x, _Sp __bound_sentinel) const {
ranges::advance(__x, __bound_sentinel);
return __x;
}
template <input_or_output_iterator _Ip, sentinel_for<_Ip> _Sp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Ip operator()(_Ip __x, iter_difference_t<_Ip> __n, _Sp __bound_sentinel) const {
ranges::advance(__x, __n, __bound_sentinel);
return __x;
}
};
}
inline namespace __cpo {
inline constexpr auto next = __next::__fn{};
}
}
}}
# 22 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/prev.h" 1 3
# 23 "/bin/../include/c++/v1/__iterator/prev.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIter, __enable_if_t<__has_input_iterator_category<_InputIter>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _InputIter
prev(_InputIter __x, typename iterator_traits<_InputIter>::difference_type __n = 1) {
((void)0);
std::advance(__x, -__n);
return __x;
}
namespace ranges {
namespace __prev {
struct __fn {
template <bidirectional_iterator _Ip>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Ip operator()(_Ip __x) const {
--__x;
return __x;
}
template <bidirectional_iterator _Ip>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Ip operator()(_Ip __x, iter_difference_t<_Ip> __n) const {
ranges::advance(__x, -__n);
return __x;
}
template <bidirectional_iterator _Ip>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Ip operator()(_Ip __x, iter_difference_t<_Ip> __n, _Ip __bound_iter) const {
ranges::advance(__x, -__n, __bound_iter);
return __x;
}
};
}
inline namespace __cpo {
inline constexpr auto prev = __prev::__fn{};
}
}
}}
# 23 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 2 3
# 34 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 38 "/bin/../include/c++/v1/__algorithm/iterator_operations.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _AlgPolicy>
struct _IterOps;
struct _RangeAlgPolicy {};
template <>
struct _IterOps<_RangeAlgPolicy> {
template <class _Iter>
using __value_type = iter_value_t<_Iter>;
template <class _Iter>
using __iterator_category = ranges::__iterator_concept<_Iter>;
template <class _Iter>
using __difference_type = iter_difference_t<_Iter>;
static constexpr auto advance = ranges::advance;
static constexpr auto distance = ranges::distance;
static constexpr auto __iter_move = ranges::iter_move;
static constexpr auto iter_swap = ranges::iter_swap;
static constexpr auto next = ranges::next;
static constexpr auto prev = ranges::prev;
static constexpr auto __advance_to = ranges::advance;
};
struct _ClassicAlgPolicy {};
template <>
struct _IterOps<_ClassicAlgPolicy> {
template <class _Iter>
using __value_type = typename iterator_traits<_Iter>::value_type;
template <class _Iter>
using __iterator_category = typename iterator_traits<_Iter>::iterator_category;
template <class _Iter>
using __difference_type = typename iterator_traits<_Iter>::difference_type;
template <class _Iter, class _Distance>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static void advance(_Iter& __iter, _Distance __count) {
std::advance(__iter, __count);
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static typename iterator_traits<_Iter>::difference_type
distance(_Iter __first, _Iter __last) {
return std::distance(__first, __last);
}
template <class _Iter>
using __deref_t = decltype(*std::declval<_Iter&>());
template <class _Iter>
using __move_t = decltype(std::move(*std::declval<_Iter&>()));
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static void __validate_iter_reference() {
static_assert(
is_same<__deref_t<_Iter>, typename iterator_traits<__remove_cvref_t<_Iter> >::reference>::value,
"It looks like your iterator's `iterator_traits<It>::reference` does not match the return type of "
"dereferencing the iterator, i.e., calling `*it`. This is undefined behavior according to [input.iterators] "
"and can lead to dangling reference issues at runtime, so we are flagging this.");
}
template <class _Iter, __enable_if_t<is_reference<__deref_t<_Iter> >::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static
__move_t<_Iter>
__iter_move(_Iter&& __i) {
__validate_iter_reference<_Iter>();
return std::move(*std::forward<_Iter>(__i));
}
template <class _Iter, __enable_if_t<!is_reference<__deref_t<_Iter> >::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static
__deref_t<_Iter>
__iter_move(_Iter&& __i) {
__validate_iter_reference<_Iter>();
return *std::forward<_Iter>(__i);
}
template <class _Iter1, class _Iter2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr static void iter_swap(_Iter1&& __a, _Iter2&& __b) {
std::iter_swap(std::forward<_Iter1>(__a), std::forward<_Iter2>(__b));
}
template <class _Iterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr _Iterator next(_Iterator, _Iterator __last) {
return __last;
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr __remove_cvref_t<_Iter>
next(_Iter&& __it, typename iterator_traits<__remove_cvref_t<_Iter> >::difference_type __n = 1) {
return std::next(std::forward<_Iter>(__it), __n);
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr __remove_cvref_t<_Iter>
prev(_Iter&& __iter, typename iterator_traits<__remove_cvref_t<_Iter> >::difference_type __n = 1) {
return std::prev(std::forward<_Iter>(__iter), __n);
}
template <class _Iter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr void __advance_to(_Iter& __first, _Iter __last) {
__first = __last;
}
};
}}
# 15 "/bin/../include/c++/v1/__algorithm/adjacent_find.h" 2 3
# 21 "/bin/../include/c++/v1/__algorithm/adjacent_find.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 25 "/bin/../include/c++/v1/__algorithm/adjacent_find.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Iter, class _Sent, class _BinaryPredicate>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter
__adjacent_find(_Iter __first, _Sent __last, _BinaryPredicate&& __pred) {
if (__first == __last)
return __first;
_Iter __i = __first;
while (++__i != __last) {
if (__pred(*__first, *__i))
return __first;
__first = __i;
}
return __i;
}
template <class _ForwardIterator, class _BinaryPredicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
adjacent_find(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred) {
return std::__adjacent_find(std::move(__first), std::move(__last), __pred);
}
template <class _ForwardIterator>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
adjacent_find(_ForwardIterator __first, _ForwardIterator __last) {
return std::adjacent_find(std::move(__first), std::move(__last), __equal_to());
}
}}
# 1788 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/all_of.h" 1 3
# 17 "/bin/../include/c++/v1/__algorithm/all_of.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIterator, class _Predicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
all_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) {
for (; __first != __last; ++__first)
if (!__pred(*__first))
return false;
return true;
}
}}
# 1789 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/any_of.h" 1 3
# 17 "/bin/../include/c++/v1/__algorithm/any_of.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIterator, class _Predicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
any_of(_InputIterator __first, _InputIterator __last, _Predicate __pred) {
for (; __first != __last; ++__first)
if (__pred(*__first))
return true;
return false;
}
}}
# 1790 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/binary_search.h" 1 3
# 13 "/bin/../include/c++/v1/__algorithm/binary_search.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/comp_ref_type.h" 1 3
# 18 "/bin/../include/c++/v1/__algorithm/comp_ref_type.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Compare>
struct __debug_less {
_Compare& __comp_;
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __debug_less(_Compare& __c) : __comp_(__c) {}
template <class _Tp, class _Up>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool operator()(const _Tp& __x, const _Up& __y) {
bool __r = __comp_(__x, __y);
if (__r)
__do_compare_assert(0, __y, __x);
return __r;
}
template <class _Tp, class _Up>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool operator()(_Tp& __x, _Up& __y) {
bool __r = __comp_(__x, __y);
if (__r)
__do_compare_assert(0, __y, __x);
return __r;
}
template <class _LHS, class _RHS>
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) decltype((void)std::declval<_Compare&>()(
std::declval<_LHS&>(), std::declval<_RHS&>()))
__do_compare_assert(int, _LHS& __l, _RHS& __r) {
((void)0);
(void)__l;
(void)__r;
}
template <class _LHS, class _RHS>
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void __do_compare_assert(long, _LHS&, _RHS&) {}
};
template <class _Comp>
using __comp_ref_type = _Comp&;
}}
# 14 "/bin/../include/c++/v1/__algorithm/binary_search.h" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/lower_bound.h" 1 3
# 13 "/bin/../include/c++/v1/__algorithm/lower_bound.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/half_positive.h" 1 3
# 19 "/bin/../include/c++/v1/__algorithm/half_positive.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <typename _Integral, __enable_if_t<is_integral<_Integral>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Integral __half_positive(_Integral __value) {
return static_cast<_Integral>(static_cast<__make_unsigned_t<_Integral> >(__value) / 2);
}
template <typename _Tp, __enable_if_t<!is_integral<_Tp>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp __half_positive(_Tp __value) {
return __value / 2;
}
}}
# 14 "/bin/../include/c++/v1/__algorithm/lower_bound.h" 2 3
# 1 "/bin/../include/c++/v1/__functional/identity.h" 1 3
# 14 "/bin/../include/c++/v1/__functional/identity.h" 3
# 1 "/bin/../include/c++/v1/__functional/reference_wrapper.h" 1 3
# 15 "/bin/../include/c++/v1/__functional/reference_wrapper.h" 3
# 1 "/bin/../include/c++/v1/__functional/weak_result_type.h" 1 3
# 14 "/bin/../include/c++/v1/__functional/weak_result_type.h" 3
# 1 "/bin/../include/c++/v1/__functional/binary_function.h" 1 3
# 17 "/bin/../include/c++/v1/__functional/binary_function.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Arg1, class _Arg2, class _Result>
struct __attribute__((__deprecated__)) binary_function {
typedef _Arg1 first_argument_type;
typedef _Arg2 second_argument_type;
typedef _Result result_type;
};
template <class _Arg1, class _Arg2, class _Result>
struct __binary_function_keep_layout_base {
using first_argument_type __attribute__((__deprecated__)) = _Arg1;
using second_argument_type __attribute__((__deprecated__)) = _Arg2;
using result_type __attribute__((__deprecated__)) = _Result;
};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
template <class _Arg1, class _Arg2, class _Result>
using __binary_function = binary_function<_Arg1, _Arg2, _Result>;
#pragma clang diagnostic pop
}}
# 15 "/bin/../include/c++/v1/__functional/weak_result_type.h" 2 3
# 1 "/bin/../include/c++/v1/__functional/unary_function.h" 1 3
# 16 "/bin/../include/c++/v1/__functional/unary_function.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Arg, class _Result>
struct __attribute__((__deprecated__)) unary_function {
typedef _Arg argument_type;
typedef _Result result_type;
};
template <class _Arg, class _Result>
struct __unary_function_keep_layout_base {
using argument_type __attribute__((__deprecated__)) = _Arg;
using result_type __attribute__((__deprecated__)) = _Result;
};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
template <class _Arg, class _Result>
using __unary_function = unary_function<_Arg, _Result>;
#pragma clang diagnostic pop
}}
# 17 "/bin/../include/c++/v1/__functional/weak_result_type.h" 2 3
# 23 "/bin/../include/c++/v1/__functional/weak_result_type.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __has_result_type {
private:
template <class _Up>
static false_type __test(...);
template <class _Up>
static true_type __test(typename _Up::result_type* = 0);
public:
static const bool value = decltype(__test<_Tp>(0))::value;
};
template <class _Tp>
struct __derives_from_unary_function {
private:
struct __two {
char __lx;
char __lxx;
};
static __two __test(...);
template <class _Ap, class _Rp>
static __unary_function<_Ap, _Rp> __test(const volatile __unary_function<_Ap, _Rp>*);
public:
static const bool value = !is_same<decltype(__test((_Tp*)0)), __two>::value;
typedef decltype(__test((_Tp*)0)) type;
};
template <class _Tp>
struct __derives_from_binary_function {
private:
struct __two {
char __lx;
char __lxx;
};
static __two __test(...);
template <class _A1, class _A2, class _Rp>
static __binary_function<_A1, _A2, _Rp> __test(const volatile __binary_function<_A1, _A2, _Rp>*);
public:
static const bool value = !is_same<decltype(__test((_Tp*)0)), __two>::value;
typedef decltype(__test((_Tp*)0)) type;
};
template <class _Tp, bool = __derives_from_unary_function<_Tp>::value>
struct __maybe_derive_from_unary_function
: public __derives_from_unary_function<_Tp>::type {};
template <class _Tp>
struct __maybe_derive_from_unary_function<_Tp, false> {};
template <class _Tp, bool = __derives_from_binary_function<_Tp>::value>
struct __maybe_derive_from_binary_function
: public __derives_from_binary_function<_Tp>::type {};
template <class _Tp>
struct __maybe_derive_from_binary_function<_Tp, false> {};
template <class _Tp, bool = __has_result_type<_Tp>::value>
struct __weak_result_type_imp
: public __maybe_derive_from_unary_function<_Tp>,
public __maybe_derive_from_binary_function<_Tp> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = typename _Tp::result_type;
};
template <class _Tp>
struct __weak_result_type_imp<_Tp, false>
: public __maybe_derive_from_unary_function<_Tp>, public __maybe_derive_from_binary_function<_Tp> {};
template <class _Tp>
struct __weak_result_type : public __weak_result_type_imp<_Tp> {};
template <class _Rp>
struct __weak_result_type<_Rp()> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp>
struct __weak_result_type<_Rp (&)()> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp>
struct __weak_result_type<_Rp (*)()> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _A1>
struct __weak_result_type<_Rp(_A1)> : public __unary_function<_A1, _Rp> {};
template <class _Rp, class _A1>
struct __weak_result_type<_Rp (&)(_A1)> : public __unary_function<_A1, _Rp> {};
template <class _Rp, class _A1>
struct __weak_result_type<_Rp (*)(_A1)> : public __unary_function<_A1, _Rp> {};
template <class _Rp, class _Cp>
struct __weak_result_type<_Rp (_Cp::*)()> : public __unary_function<_Cp*, _Rp> {};
template <class _Rp, class _Cp>
struct __weak_result_type<_Rp (_Cp::*)() const> : public __unary_function<const _Cp*, _Rp> {};
template <class _Rp, class _Cp>
struct __weak_result_type<_Rp (_Cp::*)() volatile> : public __unary_function<volatile _Cp*, _Rp> {};
template <class _Rp, class _Cp>
struct __weak_result_type<_Rp (_Cp::*)() const volatile> : public __unary_function<const volatile _Cp*, _Rp> {};
template <class _Rp, class _A1, class _A2>
struct __weak_result_type<_Rp(_A1, _A2)> : public __binary_function<_A1, _A2, _Rp> {};
template <class _Rp, class _A1, class _A2>
struct __weak_result_type<_Rp (*)(_A1, _A2)> : public __binary_function<_A1, _A2, _Rp> {};
template <class _Rp, class _A1, class _A2>
struct __weak_result_type<_Rp (&)(_A1, _A2)> : public __binary_function<_A1, _A2, _Rp> {};
template <class _Rp, class _Cp, class _A1>
struct __weak_result_type<_Rp (_Cp::*)(_A1)> : public __binary_function<_Cp*, _A1, _Rp> {};
template <class _Rp, class _Cp, class _A1>
struct __weak_result_type<_Rp (_Cp::*)(_A1) const> : public __binary_function<const _Cp*, _A1, _Rp> {};
template <class _Rp, class _Cp, class _A1>
struct __weak_result_type<_Rp (_Cp::*)(_A1) volatile> : public __binary_function<volatile _Cp*, _A1, _Rp> {};
template <class _Rp, class _Cp, class _A1>
struct __weak_result_type<_Rp (_Cp::*)(_A1) const volatile> : public __binary_function<const volatile _Cp*, _A1, _Rp> {
};
template <class _Rp, class _A1, class _A2, class _A3, class... _A4>
struct __weak_result_type<_Rp(_A1, _A2, _A3, _A4...)> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _A1, class _A2, class _A3, class... _A4>
struct __weak_result_type<_Rp (&)(_A1, _A2, _A3, _A4...)> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _A1, class _A2, class _A3, class... _A4>
struct __weak_result_type<_Rp (*)(_A1, _A2, _A3, _A4...)> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _Cp, class _A1, class _A2, class... _A3>
struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...)> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _Cp, class _A1, class _A2, class... _A3>
struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _Cp, class _A1, class _A2, class... _A3>
struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) volatile> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Rp, class _Cp, class _A1, class _A2, class... _A3>
struct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const volatile> {
using result_type __attribute__((__nodebug__)) __attribute__((__deprecated__)) = _Rp;
};
template <class _Tp, class... _Args>
struct __invoke_return {
typedef decltype(std::__invoke(std::declval<_Tp>(), std::declval<_Args>()...)) type;
};
}}
# 16 "/bin/../include/c++/v1/__functional/reference_wrapper.h" 2 3
# 24 "/bin/../include/c++/v1/__functional/reference_wrapper.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
class reference_wrapper : public __weak_result_type<_Tp> {
public:
typedef _Tp type;
private:
type* __f_;
static void __fun(_Tp&) noexcept;
static void __fun(_Tp&&) = delete;
public:
template <
class _Up,
class = __enable_if_t<!__is_same_uncvref<_Up, reference_wrapper>::value, decltype(__fun(std::declval<_Up>())) > >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reference_wrapper(_Up&& __u)
noexcept(noexcept(__fun(std::declval<_Up>()))) {
type& __f = static_cast<_Up&&>(__u);
__f_ = std::addressof(__f);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr operator type&() const noexcept { return *__f_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr type& get() const noexcept { return *__f_; }
template <class... _ArgTypes>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename __invoke_of<type&, _ArgTypes...>::type
operator()(_ArgTypes&&... __args) const
noexcept(is_nothrow_invocable_v<_Tp&, _ArgTypes...>)
{
return std::__invoke(get(), std::forward<_ArgTypes>(__args)...);
}
};
template <class _Tp>
reference_wrapper(_Tp&) -> reference_wrapper<_Tp>;
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reference_wrapper<_Tp> ref(_Tp& __t) noexcept {
return reference_wrapper<_Tp>(__t);
}
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reference_wrapper<_Tp>
ref(reference_wrapper<_Tp> __t) noexcept {
return __t;
}
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reference_wrapper<const _Tp> cref(const _Tp& __t) noexcept {
return reference_wrapper<const _Tp>(__t);
}
template <class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reference_wrapper<const _Tp>
cref(reference_wrapper<_Tp> __t) noexcept {
return __t;
}
template <class _Tp>
void ref(const _Tp&&) = delete;
template <class _Tp>
void cref(const _Tp&&) = delete;
}}
# 15 "/bin/../include/c++/v1/__functional/identity.h" 2 3
# 20 "/bin/../include/c++/v1/__functional/identity.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __is_identity : false_type {};
struct __identity {
template <class _Tp>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp&& operator()(_Tp&& __t) const noexcept {
return std::forward<_Tp>(__t);
}
using is_transparent = void;
};
template <>
struct __is_identity<__identity> : true_type {};
template <>
struct __is_identity<reference_wrapper<__identity> > : true_type {};
template <>
struct __is_identity<reference_wrapper<const __identity> > : true_type {};
struct identity {
template <class _Tp>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp&& operator()(_Tp&& __t) const noexcept {
return std::forward<_Tp>(__t);
}
using is_transparent = void;
};
template <>
struct __is_identity<identity> : true_type {};
template <>
struct __is_identity<reference_wrapper<identity> > : true_type {};
template <>
struct __is_identity<reference_wrapper<const identity> > : true_type {};
}}
# 17 "/bin/../include/c++/v1/__algorithm/lower_bound.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_callable.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_callable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Func, class... _Args, class = decltype(std::declval<_Func>()(std::declval<_Args>()...))>
true_type __is_callable_helper(int);
template <class...>
false_type __is_callable_helper(...);
template <class _Func, class... _Args>
struct __is_callable : decltype(std::__is_callable_helper<_Func, _Args...>(0)) {};
}}
# 22 "/bin/../include/c++/v1/__algorithm/lower_bound.h" 2 3
# 26 "/bin/../include/c++/v1/__algorithm/lower_bound.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _AlgPolicy, class _Iter, class _Sent, class _Type, class _Proj, class _Comp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter
__lower_bound(_Iter __first, _Sent __last, const _Type& __value, _Comp& __comp, _Proj& __proj) {
auto __len = _IterOps<_AlgPolicy>::distance(__first, __last);
while (__len != 0) {
auto __l2 = std::__half_positive(__len);
_Iter __m = __first;
_IterOps<_AlgPolicy>::advance(__m, __l2);
if (std::__invoke(__comp, std::__invoke(__proj, *__m), __value)) {
__first = ++__m;
__len -= __l2 + 1;
} else {
__len = __l2;
}
}
return __first;
}
template <class _ForwardIterator, class _Tp, class _Compare>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Compare __comp) {
static_assert(__is_callable<_Compare, decltype(*__first), const _Tp&>::value, "The comparator has to be callable");
auto __proj = std::__identity();
return std::__lower_bound<_ClassicAlgPolicy>(__first, __last, __value, __comp, __proj);
}
template <class _ForwardIterator, class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) {
return std::lower_bound(__first, __last, __value, __less<>());
}
}}
# 15 "/bin/../include/c++/v1/__algorithm/binary_search.h" 2 3
# 20 "/bin/../include/c++/v1/__algorithm/binary_search.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _ForwardIterator, class _Tp, class _Compare>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Compare __comp) {
__first = std::lower_bound<_ForwardIterator, _Tp, __comp_ref_type<_Compare> >(__first, __last, __value, __comp);
return __first != __last && !__comp(__value, *__first);
}
template <class _ForwardIterator, class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) {
return std::binary_search(__first, __last, __value, __less<>());
}
}}
# 1791 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/clamp.h" 1 3
# 18 "/bin/../include/c++/v1/__algorithm/clamp.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Compare>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Tp&
clamp([[_Clang::__lifetimebound__]] const _Tp& __v,
[[_Clang::__lifetimebound__]] const _Tp& __lo,
[[_Clang::__lifetimebound__]] const _Tp& __hi,
_Compare __comp) {
((void)0);
return __comp(__v, __lo) ? __lo : __comp(__hi, __v) ? __hi : __v;
}
template <class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Tp&
clamp([[_Clang::__lifetimebound__]] const _Tp& __v,
[[_Clang::__lifetimebound__]] const _Tp& __lo,
[[_Clang::__lifetimebound__]] const _Tp& __hi) {
return std::clamp(__v, __lo, __hi, __less<>());
}
}}
# 1792 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/copy.h" 1 3
# 12 "/bin/../include/c++/v1/__algorithm/copy.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/copy_move_common.h" 1 3
# 13 "/bin/../include/c++/v1/__algorithm/copy_move_common.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/unwrap_iter.h" 1 3
# 22 "/bin/../include/c++/v1/__algorithm/unwrap_iter.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 26 "/bin/../include/c++/v1/__algorithm/unwrap_iter.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
# 37 "/bin/../include/c++/v1/__algorithm/unwrap_iter.h" 3
template <class _Iter, bool = __libcpp_is_contiguous_iterator<_Iter>::value>
struct __unwrap_iter_impl {
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter __rewrap(_Iter, _Iter __iter) { return __iter; }
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter __unwrap(_Iter __i) noexcept { return __i; }
};
template <class _Iter>
struct __unwrap_iter_impl<_Iter, true> {
using _ToAddressT = decltype(std::__to_address(std::declval<_Iter>()));
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter __rewrap(_Iter __orig_iter, _ToAddressT __unwrapped_iter) {
return __orig_iter + (__unwrapped_iter - std::__to_address(__orig_iter));
}
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ToAddressT __unwrap(_Iter __i) noexcept {
return std::__to_address(__i);
}
};
template <class _Iter,
class _Impl = __unwrap_iter_impl<_Iter>,
__enable_if_t<is_copy_constructible<_Iter>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr decltype(_Impl::__unwrap(std::declval<_Iter>()))
__unwrap_iter(_Iter __i) noexcept {
return _Impl::__unwrap(__i);
}
template <class _Iter, __enable_if_t<!is_copy_constructible<_Iter>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter __unwrap_iter(_Iter __i) noexcept {
return __i;
}
template <class _OrigIter, class _Iter, class _Impl = __unwrap_iter_impl<_OrigIter> >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _OrigIter __rewrap_iter(_OrigIter __orig_iter, _Iter __iter) noexcept {
return _Impl::__rewrap(std::move(__orig_iter), std::move(__iter));
}
}}
# 14 "/bin/../include/c++/v1/__algorithm/copy_move_common.h" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/unwrap_range.h" 1 3
# 19 "/bin/../include/c++/v1/__algorithm/unwrap_range.h" 3
# 1 "/bin/../include/c++/v1/__utility/pair.h" 1 3
# 12 "/bin/../include/c++/v1/__utility/pair.h" 3
# 1 "/bin/../include/c++/v1/__compare/common_comparison_category.h" 1 3
# 12 "/bin/../include/c++/v1/__compare/common_comparison_category.h" 3
# 1 "/bin/../include/c++/v1/__compare/ordering.h" 1 3
# 18 "/bin/../include/c++/v1/__compare/ordering.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
enum class _OrdResult : signed char { __less = -1, __equiv = 0, __greater = 1 };
enum class _NCmpResult : signed char { __unordered = -127 };
class partial_ordering;
class weak_ordering;
class strong_ordering;
template <class _Tp, class... _Args>
inline constexpr bool __one_of_v = (is_same_v<_Tp, _Args> || ...);
struct _CmpUnspecifiedParam {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _CmpUnspecifiedParam(int _CmpUnspecifiedParam::*) noexcept {}
template <class _Tp, class = enable_if_t<!__one_of_v<_Tp, int, partial_ordering, weak_ordering, strong_ordering>>>
_CmpUnspecifiedParam(_Tp) = delete;
};
class partial_ordering {
using _ValueT = signed char;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) explicit constexpr partial_ordering(_OrdResult __v) noexcept : __value_(_ValueT(__v)) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) explicit constexpr partial_ordering(_NCmpResult __v) noexcept : __value_(_ValueT(__v)) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __is_ordered() const noexcept {
return __value_ != _ValueT(_NCmpResult::__unordered);
}
public:
static const partial_ordering less;
static const partial_ordering equivalent;
static const partial_ordering greater;
static const partial_ordering unordered;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator==(partial_ordering, partial_ordering) noexcept = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator==(partial_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__is_ordered() && __v.__value_ == 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<(partial_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__is_ordered() && __v.__value_ < 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<=(partial_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__is_ordered() && __v.__value_ <= 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>(partial_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__is_ordered() && __v.__value_ > 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>=(partial_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__is_ordered() && __v.__value_ >= 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<(_CmpUnspecifiedParam, partial_ordering __v) noexcept {
return __v.__is_ordered() && 0 < __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<=(_CmpUnspecifiedParam, partial_ordering __v) noexcept {
return __v.__is_ordered() && 0 <= __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>(_CmpUnspecifiedParam, partial_ordering __v) noexcept {
return __v.__is_ordered() && 0 > __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>=(_CmpUnspecifiedParam, partial_ordering __v) noexcept {
return __v.__is_ordered() && 0 >= __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr partial_ordering
operator<=>(partial_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr partial_ordering
operator<=>(_CmpUnspecifiedParam, partial_ordering __v) noexcept {
return __v < 0 ? partial_ordering::greater : (__v > 0 ? partial_ordering::less : __v);
}
private:
_ValueT __value_;
};
inline constexpr partial_ordering partial_ordering::less(_OrdResult::__less);
inline constexpr partial_ordering partial_ordering::equivalent(_OrdResult::__equiv);
inline constexpr partial_ordering partial_ordering::greater(_OrdResult::__greater);
inline constexpr partial_ordering partial_ordering::unordered(_NCmpResult ::__unordered);
class weak_ordering {
using _ValueT = signed char;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) explicit constexpr weak_ordering(_OrdResult __v) noexcept : __value_(_ValueT(__v)) {}
public:
static const weak_ordering less;
static const weak_ordering equivalent;
static const weak_ordering greater;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr operator partial_ordering() const noexcept {
return __value_ == 0 ? partial_ordering::equivalent
: (__value_ < 0 ? partial_ordering::less : partial_ordering::greater);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator==(weak_ordering, weak_ordering) noexcept = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator==(weak_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ == 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<(weak_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ < 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<=(weak_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ <= 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>(weak_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ > 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>=(weak_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ >= 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<(_CmpUnspecifiedParam, weak_ordering __v) noexcept {
return 0 < __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<=(_CmpUnspecifiedParam, weak_ordering __v) noexcept {
return 0 <= __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>(_CmpUnspecifiedParam, weak_ordering __v) noexcept {
return 0 > __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>=(_CmpUnspecifiedParam, weak_ordering __v) noexcept {
return 0 >= __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr weak_ordering operator<=>(weak_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr weak_ordering operator<=>(_CmpUnspecifiedParam, weak_ordering __v) noexcept {
return __v < 0 ? weak_ordering::greater : (__v > 0 ? weak_ordering::less : __v);
}
private:
_ValueT __value_;
};
inline constexpr weak_ordering weak_ordering::less(_OrdResult::__less);
inline constexpr weak_ordering weak_ordering::equivalent(_OrdResult::__equiv);
inline constexpr weak_ordering weak_ordering::greater(_OrdResult::__greater);
class strong_ordering {
using _ValueT = signed char;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) explicit constexpr strong_ordering(_OrdResult __v) noexcept : __value_(_ValueT(__v)) {}
public:
static const strong_ordering less;
static const strong_ordering equal;
static const strong_ordering equivalent;
static const strong_ordering greater;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr operator partial_ordering() const noexcept {
return __value_ == 0 ? partial_ordering::equivalent
: (__value_ < 0 ? partial_ordering::less : partial_ordering::greater);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr operator weak_ordering() const noexcept {
return __value_ == 0 ? weak_ordering::equivalent : (__value_ < 0 ? weak_ordering::less : weak_ordering::greater);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator==(strong_ordering, strong_ordering) noexcept = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator==(strong_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ == 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<(strong_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ < 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<=(strong_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ <= 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>(strong_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ > 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>=(strong_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v.__value_ >= 0;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<(_CmpUnspecifiedParam, strong_ordering __v) noexcept {
return 0 < __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator<=(_CmpUnspecifiedParam, strong_ordering __v) noexcept {
return 0 <= __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>(_CmpUnspecifiedParam, strong_ordering __v) noexcept {
return 0 > __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool operator>=(_CmpUnspecifiedParam, strong_ordering __v) noexcept {
return 0 >= __v.__value_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr strong_ordering
operator<=>(strong_ordering __v, _CmpUnspecifiedParam) noexcept {
return __v;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr strong_ordering
operator<=>(_CmpUnspecifiedParam, strong_ordering __v) noexcept {
return __v < 0 ? strong_ordering::greater : (__v > 0 ? strong_ordering::less : __v);
}
private:
_ValueT __value_;
};
inline constexpr strong_ordering strong_ordering::less(_OrdResult::__less);
inline constexpr strong_ordering strong_ordering::equal(_OrdResult::__equiv);
inline constexpr strong_ordering strong_ordering::equivalent(_OrdResult::__equiv);
inline constexpr strong_ordering strong_ordering::greater(_OrdResult::__greater);
template <class _Tp>
concept __comparison_category = __one_of_v<_Tp, partial_ordering, weak_ordering, strong_ordering>;
}}
# 13 "/bin/../include/c++/v1/__compare/common_comparison_category.h" 2 3
# 19 "/bin/../include/c++/v1/__compare/common_comparison_category.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __comp_detail {
enum _ClassifyCompCategory : unsigned { _None, _PartialOrd, _WeakOrd, _StrongOrd, _CCC_Size };
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ClassifyCompCategory __type_to_enum() noexcept {
if (is_same_v<_Tp, partial_ordering>)
return _PartialOrd;
if (is_same_v<_Tp, weak_ordering>)
return _WeakOrd;
if (is_same_v<_Tp, strong_ordering>)
return _StrongOrd;
return _None;
}
template <size_t _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ClassifyCompCategory
__compute_comp_type(const _ClassifyCompCategory (&__types)[_Size]) {
int __seen[_CCC_Size] = {};
for (auto __type : __types)
++__seen[__type];
if (__seen[_None])
return _None;
if (__seen[_PartialOrd])
return _PartialOrd;
if (__seen[_WeakOrd])
return _WeakOrd;
return _StrongOrd;
}
template <class... _Ts, bool _False = false>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto __get_comp_type() {
using _CCC = _ClassifyCompCategory;
constexpr _CCC __type_kinds[] = {_StrongOrd, __type_to_enum<_Ts>()...};
constexpr _CCC __cat = __comp_detail::__compute_comp_type(__type_kinds);
if constexpr (__cat == _None)
return void();
else if constexpr (__cat == _PartialOrd)
return partial_ordering::equivalent;
else if constexpr (__cat == _WeakOrd)
return weak_ordering::equivalent;
else if constexpr (__cat == _StrongOrd)
return strong_ordering::equivalent;
else
static_assert(_False, "unhandled case");
}
}
template <class... _Ts>
struct common_comparison_category {
using type = decltype(__comp_detail::__get_comp_type<_Ts...>());
};
template <class... _Ts>
using common_comparison_category_t = typename common_comparison_category<_Ts...>::type;
}}
# 13 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "third_party/stl/cxx17/__compare/synth_three_way.h" 1 3
# 1 "/bin/../include/c++/v1/__compare/synth_three_way.h" 1 3
# 13 "/bin/../include/c++/v1/__compare/synth_three_way.h" 3
# 1 "third_party/stl/cxx17/__compare/three_way_comparable.h" 1 3
# 1 "/bin/../include/c++/v1/__compare/three_way_comparable.h" 1 3
# 24 "/bin/../include/c++/v1/__compare/three_way_comparable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Cat>
concept __compares_as = same_as<common_comparison_category_t<_Tp, _Cat>, _Cat>;
template <class _Tp, class _Cat = partial_ordering>
concept three_way_comparable =
__weakly_equality_comparable_with<_Tp, _Tp> && __partially_ordered_with<_Tp, _Tp> &&
requires(__make_const_lvalue_ref<_Tp> __a, __make_const_lvalue_ref<_Tp> __b) {
{ __a <=> __b } -> __compares_as<_Cat>;
};
template <class _Tp, class _Up, class _Cat = partial_ordering>
concept three_way_comparable_with =
three_way_comparable<_Tp, _Cat> && three_way_comparable<_Up, _Cat> &&
common_reference_with<__make_const_lvalue_ref<_Tp>, __make_const_lvalue_ref<_Up>> &&
three_way_comparable<common_reference_t<__make_const_lvalue_ref<_Tp>, __make_const_lvalue_ref<_Up>>, _Cat> &&
__weakly_equality_comparable_with<_Tp, _Up> && __partially_ordered_with<_Tp, _Up> &&
requires(__make_const_lvalue_ref<_Tp> __t, __make_const_lvalue_ref<_Up> __u) {
{ __t <=> __u } -> __compares_as<_Cat>;
{ __u <=> __t } -> __compares_as<_Cat>;
};
}}
# 8 "third_party/stl/cxx17/__compare/three_way_comparable.h" 2 3
# 14 "/bin/../include/c++/v1/__compare/synth_three_way.h" 2 3
# 20 "/bin/../include/c++/v1/__compare/synth_three_way.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
# 32 "/bin/../include/c++/v1/__compare/synth_three_way.h" 3
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto __synth_three_way(const _Tp& __t, const _Up& __u)
requires requires {
{ __t < __u } -> __boolean_testable;
{ __u < __t } -> __boolean_testable;
}
{
if constexpr (three_way_comparable_with<_Tp, _Up>) {
return __t <=> __u;
} else {
if (__t < __u)
return weak_ordering::less;
if (__u < __t)
return weak_ordering::greater;
return weak_ordering::equivalent;
}
}
template <class _Tp, class _Up = _Tp>
using __synth_three_way_result = decltype(std::__synth_three_way(std::declval<_Tp&>(), std::declval<_Up&>()));
}}
# 8 "third_party/stl/cxx17/__compare/synth_three_way.h" 2 3
# 14 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__concepts/different_from.h" 1 3
# 18 "/bin/../include/c++/v1/__concepts/different_from.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up>
concept __different_from = !same_as<remove_cvref_t<_Tp>, remove_cvref_t<_Up>>;
}}
# 15 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__fwd/array.h" 1 3
# 17 "/bin/../include/c++/v1/__fwd/array.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, size_t _Size>
struct array;
}}
# 17 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__fwd/get.h" 1 3
# 16 "/bin/../include/c++/v1/__fwd/get.h" 3
# 1 "/bin/../include/c++/v1/__fwd/subrange.h" 1 3
# 16 "/bin/../include/c++/v1/__fwd/subrange.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
enum class subrange_kind : bool { unsized, sized };
template <input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent, subrange_kind _Kind>
requires(_Kind == subrange_kind::sized || !sized_sentinel_for<_Sent, _Iter>)
class subrange;
}
}}
# 17 "/bin/../include/c++/v1/__fwd/get.h" 2 3
# 1 "/bin/../include/c++/v1/__fwd/tuple.h" 1 3
# 16 "/bin/../include/c++/v1/__fwd/tuple.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class...>
class tuple;
}}
# 18 "/bin/../include/c++/v1/__fwd/get.h" 2 3
# 1 "/bin/../include/c++/v1/__tuple/tuple_element.h" 1 3
# 13 "/bin/../include/c++/v1/__tuple/tuple_element.h" 3
# 1 "/bin/../include/c++/v1/__tuple/tuple_indices.h" 1 3
# 13 "/bin/../include/c++/v1/__tuple/tuple_indices.h" 3
# 1 "/bin/../include/c++/v1/__utility/integer_sequence.h" 1 3
# 18 "/bin/../include/c++/v1/__utility/integer_sequence.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <size_t...>
struct __tuple_indices;
template <class _IdxType, _IdxType... _Values>
struct __integer_sequence {
template <template <class _OIdxType, _OIdxType...> class _ToIndexSeq, class _ToIndexType>
using __convert = _ToIndexSeq<_ToIndexType, _Values...>;
template <size_t _Sp>
using __to_tuple_indices = __tuple_indices<(_Values + _Sp)...>;
};
# 86 "/bin/../include/c++/v1/__utility/integer_sequence.h" 3
template <size_t _Ep, size_t _Sp>
using __make_indices_imp =
typename __make_integer_seq<__integer_sequence, size_t, _Ep - _Sp>::template __to_tuple_indices<_Sp>;
# 97 "/bin/../include/c++/v1/__utility/integer_sequence.h" 3
template <class _Tp, _Tp... _Ip>
struct integer_sequence {
typedef _Tp value_type;
static_assert(is_integral<_Tp>::value, "std::integer_sequence can only be instantiated with an integral type");
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr size_t size() noexcept { return sizeof...(_Ip); }
};
template <size_t... _Ip>
using index_sequence = integer_sequence<size_t, _Ip...>;
template <class _Tp, _Tp _Ep>
using __make_integer_sequence __attribute__((__nodebug__)) = __make_integer_seq<integer_sequence, _Tp, _Ep>;
# 132 "/bin/../include/c++/v1/__utility/integer_sequence.h" 3
template <class _Tp, _Tp _Np>
using make_integer_sequence = __make_integer_sequence<_Tp, _Np>;
template <size_t _Np>
using make_index_sequence = make_integer_sequence<size_t, _Np>;
template <class... _Tp>
using index_sequence_for = make_index_sequence<sizeof...(_Tp)>;
template <size_t... _Index, class _Function>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void __for_each_index_sequence(index_sequence<_Index...>, _Function __func) {
(__func.template operator()<_Index>(), ...);
}
}}
# 14 "/bin/../include/c++/v1/__tuple/tuple_indices.h" 2 3
# 18 "/bin/../include/c++/v1/__tuple/tuple_indices.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <size_t...>
struct __tuple_indices {};
template <size_t _Ep, size_t _Sp = 0>
struct __make_tuple_indices {
static_assert(_Sp <= _Ep, "__make_tuple_indices input error");
typedef __make_indices_imp<_Ep, _Sp> type;
};
}}
# 14 "/bin/../include/c++/v1/__tuple/tuple_element.h" 2 3
# 1 "/bin/../include/c++/v1/__tuple/tuple_types.h" 1 3
# 16 "/bin/../include/c++/v1/__tuple/tuple_types.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class... _Tp>
struct __tuple_types {};
}}
# 15 "/bin/../include/c++/v1/__tuple/tuple_element.h" 2 3
# 22 "/bin/../include/c++/v1/__tuple/tuple_element.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <size_t _Ip, class _Tp>
struct tuple_element;
template <size_t _Ip, class _Tp>
struct tuple_element<_Ip, const _Tp> {
typedef __attribute__((__nodebug__)) typename add_const<typename tuple_element<_Ip, _Tp>::type>::type type;
};
template <size_t _Ip, class _Tp>
struct tuple_element<_Ip, volatile _Tp> {
typedef __attribute__((__nodebug__)) typename add_volatile<typename tuple_element<_Ip, _Tp>::type>::type type;
};
template <size_t _Ip, class _Tp>
struct tuple_element<_Ip, const volatile _Tp> {
typedef __attribute__((__nodebug__)) typename add_cv<typename tuple_element<_Ip, _Tp>::type>::type type;
};
# 72 "/bin/../include/c++/v1/__tuple/tuple_element.h" 3
template <size_t _Ip, class... _Types>
struct tuple_element<_Ip, __tuple_types<_Types...> > {
static_assert(_Ip < sizeof...(_Types), "tuple_element index out of range");
typedef __attribute__((__nodebug__)) __type_pack_element<_Ip, _Types...> type;
};
template <size_t _Ip, class... _Tp>
using tuple_element_t __attribute__((__nodebug__)) = typename tuple_element<_Ip, _Tp...>::type;
}}
# 19 "/bin/../include/c++/v1/__fwd/get.h" 2 3
# 23 "/bin/../include/c++/v1/__fwd/get.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <size_t _Ip, class... _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, tuple<_Tp...> >::type&
get(tuple<_Tp...>&) noexcept;
template <size_t _Ip, class... _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, tuple<_Tp...> >::type&
get(const tuple<_Tp...>&) noexcept;
template <size_t _Ip, class... _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, tuple<_Tp...> >::type&&
get(tuple<_Tp...>&&) noexcept;
template <size_t _Ip, class... _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, tuple<_Tp...> >::type&&
get(const tuple<_Tp...>&&) noexcept;
template <size_t _Ip, class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, pair<_T1, _T2> >::type&
get(pair<_T1, _T2>&) noexcept;
template <size_t _Ip, class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, pair<_T1, _T2> >::type&
get(const pair<_T1, _T2>&) noexcept;
template <size_t _Ip, class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, pair<_T1, _T2> >::type&&
get(pair<_T1, _T2>&&) noexcept;
template <size_t _Ip, class _T1, class _T2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, pair<_T1, _T2> >::type&&
get(const pair<_T1, _T2>&&) noexcept;
template <size_t _Ip, class _Tp, size_t _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp& get(array<_Tp, _Size>&) noexcept;
template <size_t _Ip, class _Tp, size_t _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Tp& get(const array<_Tp, _Size>&) noexcept;
template <size_t _Ip, class _Tp, size_t _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp&& get(array<_Tp, _Size>&&) noexcept;
template <size_t _Ip, class _Tp, size_t _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Tp&& get(const array<_Tp, _Size>&&) noexcept;
namespace ranges {
template <size_t _Index, class _Iter, class _Sent, subrange_kind _Kind>
requires((_Index == 0 && copyable<_Iter>) || _Index == 1)
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto get(const subrange<_Iter, _Sent, _Kind>& __subrange);
template <size_t _Index, class _Iter, class _Sent, subrange_kind _Kind>
requires(_Index < 2)
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto get(subrange<_Iter, _Sent, _Kind>&& __subrange);
}
using ranges::get;
}}
# 18 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__tuple/pair_like.h" 1 3
# 13 "/bin/../include/c++/v1/__tuple/pair_like.h" 3
# 1 "/bin/../include/c++/v1/__tuple/tuple_like.h" 1 3
# 23 "/bin/../include/c++/v1/__tuple/tuple_like.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __tuple_like_impl : false_type {};
template <class... _Tp>
struct __tuple_like_impl<tuple<_Tp...> > : true_type {};
template <class _T1, class _T2>
struct __tuple_like_impl<pair<_T1, _T2> > : true_type {};
template <class _Tp, size_t _Size>
struct __tuple_like_impl<array<_Tp, _Size> > : true_type {};
template <class _Ip, class _Sp, ranges::subrange_kind _Kp>
struct __tuple_like_impl<ranges::subrange<_Ip, _Sp, _Kp> > : true_type {};
template <class _Tp>
concept __tuple_like = __tuple_like_impl<remove_cvref_t<_Tp>>::value;
}}
# 14 "/bin/../include/c++/v1/__tuple/pair_like.h" 2 3
# 1 "/bin/../include/c++/v1/__tuple/tuple_size.h" 1 3
# 21 "/bin/../include/c++/v1/__tuple/tuple_size.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct tuple_size;
template <class _Tp, class...>
using __enable_if_tuple_size_imp = _Tp;
template <class _Tp>
struct tuple_size<__enable_if_tuple_size_imp< const _Tp,
__enable_if_t<!is_volatile<_Tp>::value>,
integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
: public integral_constant<size_t, tuple_size<_Tp>::value> {};
template <class _Tp>
struct tuple_size<__enable_if_tuple_size_imp< volatile _Tp,
__enable_if_t<!is_const<_Tp>::value>,
integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
: public integral_constant<size_t, tuple_size<_Tp>::value> {};
template <class _Tp>
struct
tuple_size<__enable_if_tuple_size_imp< const volatile _Tp, integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>
: public integral_constant<size_t, tuple_size<_Tp>::value> {};
# 60 "/bin/../include/c++/v1/__tuple/tuple_size.h" 3
template <class... _Tp>
struct tuple_size<tuple<_Tp...> > : public integral_constant<size_t, sizeof...(_Tp)> {};
template <class... _Tp>
struct tuple_size<__tuple_types<_Tp...> > : public integral_constant<size_t, sizeof...(_Tp)> {};
}}
# 15 "/bin/../include/c++/v1/__tuple/pair_like.h" 2 3
# 19 "/bin/../include/c++/v1/__tuple/pair_like.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
concept __pair_like = __tuple_like<_Tp> && tuple_size<remove_cvref_t<_Tp>>::value == 2;
}}
# 22 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__tuple/sfinae_helpers.h" 1 3
# 14 "/bin/../include/c++/v1/__tuple/sfinae_helpers.h" 3
# 1 "/bin/../include/c++/v1/__tuple/make_tuple_types.h" 1 3
# 26 "/bin/../include/c++/v1/__tuple/make_tuple_types.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _TupleTypes, class _TupleIndices>
struct __make_tuple_types_flat;
template <template <class...> class _Tuple, class... _Types, size_t... _Idx>
struct __make_tuple_types_flat<_Tuple<_Types...>, __tuple_indices<_Idx...>> {
template <class _Tp>
using __apply_quals __attribute__((__nodebug__)) = __tuple_types<__apply_cv_t<_Tp, __type_pack_element<_Idx, _Types...>>...>;
};
template <class _Vt, size_t _Np, size_t... _Idx>
struct __make_tuple_types_flat<array<_Vt, _Np>, __tuple_indices<_Idx...>> {
template <size_t>
using __value_type = _Vt;
template <class _Tp>
using __apply_quals = __tuple_types<__apply_cv_t<_Tp, __value_type<_Idx>>...>;
};
template <class _Tp,
size_t _Ep = tuple_size<__libcpp_remove_reference_t<_Tp> >::value,
size_t _Sp = 0,
bool _SameSize = (_Ep == tuple_size<__libcpp_remove_reference_t<_Tp> >::value)>
struct __make_tuple_types {
static_assert(_Sp <= _Ep, "__make_tuple_types input error");
using _RawTp = __remove_cv_t<__libcpp_remove_reference_t<_Tp> >;
using _Maker = __make_tuple_types_flat<_RawTp, typename __make_tuple_indices<_Ep, _Sp>::type>;
using type = typename _Maker::template __apply_quals<_Tp>;
};
template <class... _Types, size_t _Ep>
struct __make_tuple_types<tuple<_Types...>, _Ep, 0, true> {
typedef __attribute__((__nodebug__)) __tuple_types<_Types...> type;
};
template <class... _Types, size_t _Ep>
struct __make_tuple_types<__tuple_types<_Types...>, _Ep, 0, true> {
typedef __attribute__((__nodebug__)) __tuple_types<_Types...> type;
};
}}
# 15 "/bin/../include/c++/v1/__tuple/sfinae_helpers.h" 2 3
# 1 "/bin/../include/c++/v1/__tuple/tuple_like_ext.h" 1 3
# 22 "/bin/../include/c++/v1/__tuple/tuple_like_ext.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __tuple_like_ext : false_type {};
template <class _Tp>
struct __tuple_like_ext<const _Tp> : public __tuple_like_ext<_Tp> {};
template <class _Tp>
struct __tuple_like_ext<volatile _Tp> : public __tuple_like_ext<_Tp> {};
template <class _Tp>
struct __tuple_like_ext<const volatile _Tp> : public __tuple_like_ext<_Tp> {};
template <class... _Tp>
struct __tuple_like_ext<tuple<_Tp...> > : true_type {};
template <class _T1, class _T2>
struct __tuple_like_ext<pair<_T1, _T2> > : true_type {};
template <class _Tp, size_t _Size>
struct __tuple_like_ext<array<_Tp, _Size> > : true_type {};
template <class... _Tp>
struct __tuple_like_ext<__tuple_types<_Tp...> > : true_type {};
}}
# 17 "/bin/../include/c++/v1/__tuple/sfinae_helpers.h" 2 3
# 29 "/bin/../include/c++/v1/__tuple/sfinae_helpers.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <bool... _Preds>
struct __all_dummy;
template <bool... _Pred>
struct __all : _IsSame<__all_dummy<_Pred...>, __all_dummy<((void)_Pred, true)...>> {};
struct __tuple_sfinae_base {
template <template <class, class...> class _Trait, class... _LArgs, class... _RArgs>
static auto __do_test(__tuple_types<_LArgs...>, __tuple_types<_RArgs...>)
-> __all<__enable_if_t<_Trait<_LArgs, _RArgs>::value, bool>{true}...>;
template <template <class...> class>
static auto __do_test(...) -> false_type;
template <class _FromArgs, class _ToArgs>
using __constructible = decltype(__do_test<is_constructible>(_ToArgs{}, _FromArgs{}));
};
template <class _Tp,
class _Up,
bool = __tuple_like_ext<__libcpp_remove_reference_t<_Tp> >::value,
bool = __tuple_like_ext<_Up>::value>
struct __tuple_constructible : public false_type {};
template <class _Tp, class _Up>
struct __tuple_constructible<_Tp, _Up, true, true>
: public __tuple_sfinae_base::__constructible< typename __make_tuple_types<_Tp>::type,
typename __make_tuple_types<_Up>::type > {};
template <size_t _Ip, class... _Tp>
struct tuple_element<_Ip, tuple<_Tp...> > {
typedef __attribute__((__nodebug__)) typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;
};
struct __attribute__((__visibility__("default"))) __check_tuple_constructor_fail {
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __enable_explicit_default() { return false; }
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __enable_implicit_default() { return false; }
template <class...>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __enable_explicit() {
return false;
}
template <class...>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __enable_implicit() {
return false;
}
template <class...>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __enable_assign() {
return false;
}
};
template <bool _CanCopy, bool _CanMove>
struct __sfinae_ctor_base {};
template <>
struct __sfinae_ctor_base<false, false> {
__sfinae_ctor_base() = default;
__sfinae_ctor_base(__sfinae_ctor_base const&) = delete;
__sfinae_ctor_base(__sfinae_ctor_base&&) = delete;
__sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default;
__sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default;
};
template <>
struct __sfinae_ctor_base<true, false> {
__sfinae_ctor_base() = default;
__sfinae_ctor_base(__sfinae_ctor_base const&) = default;
__sfinae_ctor_base(__sfinae_ctor_base&&) = delete;
__sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default;
__sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default;
};
template <>
struct __sfinae_ctor_base<false, true> {
__sfinae_ctor_base() = default;
__sfinae_ctor_base(__sfinae_ctor_base const&) = delete;
__sfinae_ctor_base(__sfinae_ctor_base&&) = default;
__sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default;
__sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default;
};
template <bool _CanCopy, bool _CanMove>
struct __sfinae_assign_base {};
template <>
struct __sfinae_assign_base<false, false> {
__sfinae_assign_base() = default;
__sfinae_assign_base(__sfinae_assign_base const&) = default;
__sfinae_assign_base(__sfinae_assign_base&&) = default;
__sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete;
__sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete;
};
template <>
struct __sfinae_assign_base<true, false> {
__sfinae_assign_base() = default;
__sfinae_assign_base(__sfinae_assign_base const&) = default;
__sfinae_assign_base(__sfinae_assign_base&&) = default;
__sfinae_assign_base& operator=(__sfinae_assign_base const&) = default;
__sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete;
};
template <>
struct __sfinae_assign_base<false, true> {
__sfinae_assign_base() = default;
__sfinae_assign_base(__sfinae_assign_base const&) = default;
__sfinae_assign_base(__sfinae_assign_base&&) = default;
__sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete;
__sfinae_assign_base& operator=(__sfinae_assign_base&&) = default;
};
}}
# 23 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_assignable.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up>
struct is_assignable : _BoolConstant<__is_assignable(_Tp, _Up)> {};
template <class _Tp, class _Arg>
inline constexpr bool is_assignable_v = __is_assignable(_Tp, _Arg);
}}
# 32 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_copy_assignable.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/is_copy_assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_copy_assignable
: public integral_constant<
bool,
__is_assignable(__add_lvalue_reference_t<_Tp>, __add_lvalue_reference_t<typename add_const<_Tp>::type>)> {};
template <class _Tp>
inline constexpr bool is_copy_assignable_v = is_copy_assignable<_Tp>::value;
}}
# 35 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_default_constructible.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_default_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_default_constructible : public integral_constant<bool, __is_constructible(_Tp)> {};
template <class _Tp>
inline constexpr bool is_default_constructible_v = __is_constructible(_Tp);
}}
# 36 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_implicitly_default_constructible.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_implicitly_default_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
void __test_implicit_default_constructible(_Tp);
template <class _Tp, class = void, class = typename is_default_constructible<_Tp>::type>
struct __is_implicitly_default_constructible : false_type {};
template <class _Tp>
struct __is_implicitly_default_constructible<_Tp,
decltype(std::__test_implicit_default_constructible<_Tp const&>({})),
true_type> : true_type {};
template <class _Tp>
struct __is_implicitly_default_constructible<_Tp,
decltype(std::__test_implicit_default_constructible<_Tp const&>({})),
false_type> : false_type {};
}}
# 37 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_nothrow_copy_assignable.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/is_nothrow_copy_assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_nothrow_copy_assignable
: public integral_constant<bool,
__is_nothrow_assignable(__add_lvalue_reference_t<_Tp>,
__add_lvalue_reference_t<typename add_const<_Tp>::type>)> {};
template <class _Tp>
inline constexpr bool is_nothrow_copy_assignable_v = is_nothrow_copy_assignable<_Tp>::value;
}}
# 41 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_nothrow_copy_constructible.h" 1 3
# 20 "/bin/../include/c++/v1/__type_traits/is_nothrow_copy_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
# 33 "/bin/../include/c++/v1/__type_traits/is_nothrow_copy_constructible.h" 3
template <class _Tp>
struct is_nothrow_copy_constructible
: public integral_constant<
bool,
__is_nothrow_constructible(_Tp, typename add_lvalue_reference<typename add_const<_Tp>::type>::type)> {};
template <class _Tp>
inline constexpr bool is_nothrow_copy_constructible_v = is_nothrow_copy_constructible<_Tp>::value;
}}
# 42 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_nothrow_default_constructible.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_nothrow_default_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_nothrow_default_constructible
: public integral_constant<bool, __is_nothrow_constructible(_Tp)> {};
template <class _Tp>
inline constexpr bool is_nothrow_default_constructible_v = __is_nothrow_constructible(_Tp);
}}
# 43 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/unwrap_ref.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/unwrap_ref.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __unwrap_reference {
typedef __attribute__((__nodebug__)) _Tp type;
};
template <class _Tp>
class reference_wrapper;
template <class _Tp>
struct __unwrap_reference<reference_wrapper<_Tp> > {
typedef __attribute__((__nodebug__)) _Tp& type;
};
template <class _Tp>
struct decay;
template <class _Tp>
struct unwrap_reference : __unwrap_reference<_Tp> {};
template <class _Tp>
using unwrap_reference_t = typename unwrap_reference<_Tp>::type;
template <class _Tp>
struct unwrap_ref_decay : unwrap_reference<__decay_t<_Tp> > {};
template <class _Tp>
using unwrap_ref_decay_t = typename unwrap_ref_decay<_Tp>::type;
template <class _Tp>
struct __unwrap_ref_decay
: unwrap_ref_decay<_Tp>
{
};
}}
# 49 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 1 "/bin/../include/c++/v1/__utility/piecewise_construct.h" 1 3
# 16 "/bin/../include/c++/v1/__utility/piecewise_construct.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
struct piecewise_construct_t {
explicit piecewise_construct_t() = default;
};
inline constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();
}}
# 53 "/bin/../include/c++/v1/__utility/pair.h" 2 3
# 57 "/bin/../include/c++/v1/__utility/pair.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 61 "/bin/../include/c++/v1/__utility/pair.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class, class>
struct __non_trivially_copyable_base {
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __non_trivially_copyable_base() noexcept {}
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__))
__non_trivially_copyable_base(__non_trivially_copyable_base const&) noexcept {}
};
# 79 "/bin/../include/c++/v1/__utility/pair.h" 3
template <class _T1, class _T2>
struct pair
{
using first_type = _T1;
using second_type = _T2;
_T1 first;
_T2 second;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) pair(pair const&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) pair(pair&&) = default;
# 121 "/bin/../include/c++/v1/__utility/pair.h" 3
struct _CheckArgs {
template <int&...>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __enable_explicit_default() {
return is_default_constructible<_T1>::value && is_default_constructible<_T2>::value &&
!__enable_implicit_default<>();
}
template <int&...>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __enable_implicit_default() {
return __is_implicitly_default_constructible<_T1>::value && __is_implicitly_default_constructible<_T2>::value;
}
template <class _U1, class _U2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __is_pair_constructible() {
return is_constructible<first_type, _U1>::value && is_constructible<second_type, _U2>::value;
}
template <class _U1, class _U2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __is_implicit() {
return is_convertible<_U1, first_type>::value && is_convertible<_U2, second_type>::value;
}
template <class _U1, class _U2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __enable_explicit() {
return __is_pair_constructible<_U1, _U2>() && !__is_implicit<_U1, _U2>();
}
template <class _U1, class _U2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __enable_implicit() {
return __is_pair_constructible<_U1, _U2>() && __is_implicit<_U1, _U2>();
}
};
template <bool _MaybeEnable>
using _CheckArgsDep __attribute__((__nodebug__)) =
typename conditional< _MaybeEnable, _CheckArgs, __check_tuple_constructor_fail>::type;
template <bool _Dummy = true, __enable_if_t<_CheckArgsDep<_Dummy>::__enable_explicit_default(), int> = 0>
explicit __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair() noexcept(is_nothrow_default_constructible<first_type>::value&& is_nothrow_default_constructible<second_type>::value)
: first(), second() {}
template <bool _Dummy = true, __enable_if_t<_CheckArgsDep<_Dummy>::__enable_implicit_default(), int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair() noexcept(is_nothrow_default_constructible<first_type>::value&& is_nothrow_default_constructible<second_type>::value)
: first(), second() {}
template <bool _Dummy = true,
__enable_if_t<_CheckArgsDep<_Dummy>::template __enable_explicit<_T1 const&, _T2 const&>(), int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit pair(_T1 const& __t1, _T2 const& __t2)
noexcept(is_nothrow_copy_constructible<first_type>::value&& is_nothrow_copy_constructible<second_type>::value)
: first(__t1), second(__t2) {}
template <bool _Dummy = true,
__enable_if_t<_CheckArgsDep<_Dummy>::template __enable_implicit<_T1 const&, _T2 const&>(), int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair(_T1 const& __t1, _T2 const& __t2)
noexcept(is_nothrow_copy_constructible<first_type>::value&& is_nothrow_copy_constructible<second_type>::value)
: first(__t1), second(__t2) {}
template <
class _U1,
class _U2,
__enable_if_t<_CheckArgs::template __enable_explicit<_U1, _U2>(), int> = 0 >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit pair(_U1&& __u1, _U2&& __u2)
noexcept(is_nothrow_constructible<first_type, _U1>::value&& is_nothrow_constructible<second_type, _U2>::value)
: first(std::forward<_U1>(__u1)), second(std::forward<_U2>(__u2)) {
}
template <
class _U1,
class _U2,
__enable_if_t<_CheckArgs::template __enable_implicit<_U1, _U2>(), int> = 0 >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair(_U1&& __u1, _U2&& __u2)
noexcept(is_nothrow_constructible<first_type, _U1>::value&& is_nothrow_constructible<second_type, _U2>::value)
: first(std::forward<_U1>(__u1)), second(std::forward<_U2>(__u2)) {
}
# 218 "/bin/../include/c++/v1/__utility/pair.h" 3
template <class _U1,
class _U2,
__enable_if_t<_CheckArgs::template __enable_explicit<_U1 const&, _U2 const&>(), int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit pair(pair<_U1, _U2> const& __p)
noexcept(is_nothrow_constructible<first_type, _U1 const&>::value&& is_nothrow_constructible<second_type, _U2 const&>::value)
: first(__p.first), second(__p.second) {}
template <class _U1,
class _U2,
__enable_if_t<_CheckArgs::template __enable_implicit<_U1 const&, _U2 const&>(), int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair(pair<_U1, _U2> const& __p)
noexcept(is_nothrow_constructible<first_type, _U1 const&>::value&& is_nothrow_constructible<second_type, _U2 const&>::value)
: first(__p.first), second(__p.second) {}
template <class _U1, class _U2, __enable_if_t<_CheckArgs::template __enable_explicit<_U1, _U2>(), int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit pair(pair<_U1, _U2>&& __p) noexcept(is_nothrow_constructible<first_type, _U1&&>::value&& is_nothrow_constructible<second_type, _U2&&>::value)
: first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) {}
template <class _U1, class _U2, __enable_if_t<_CheckArgs::template __enable_implicit<_U1, _U2>(), int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair(pair<_U1, _U2>&& __p) noexcept(is_nothrow_constructible<first_type, _U1&&>::value&& is_nothrow_constructible<second_type, _U2&&>::value)
: first(std::forward<_U1>(__p.first)), second(std::forward<_U2>(__p.second)) {}
# 273 "/bin/../include/c++/v1/__utility/pair.h" 3
template <class... _Args1, class... _Args2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
pair(piecewise_construct_t __pc, tuple<_Args1...> __first_args, tuple<_Args2...> __second_args) noexcept(is_nothrow_constructible<first_type, _Args1...>::value&& is_nothrow_constructible<second_type, _Args2...>::value)
: pair(__pc,
__first_args,
__second_args,
typename __make_tuple_indices<sizeof...(_Args1)>::type(),
typename __make_tuple_indices<sizeof...(_Args2) >::type()) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair&
operator=(__conditional_t< is_copy_assignable<first_type>::value && is_copy_assignable<second_type>::value,
pair,
__nat> const& __p)
noexcept(is_nothrow_copy_assignable<first_type>::value&& is_nothrow_copy_assignable<second_type>::value) {
first = __p.first;
second = __p.second;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair& operator=(
__conditional_t< is_move_assignable<first_type>::value && is_move_assignable<second_type>::value, pair, __nat>&&
__p)
noexcept(is_nothrow_move_assignable<first_type>::value&& is_nothrow_move_assignable<second_type>::value) {
first = std::forward<first_type>(__p.first);
second = std::forward<second_type>(__p.second);
return *this;
}
template <class _U1,
class _U2,
__enable_if_t< is_assignable<first_type&, _U1 const&>::value &&
is_assignable<second_type&, _U2 const&>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair& operator=(pair<_U1, _U2> const& __p) {
first = __p.first;
second = __p.second;
return *this;
}
template <
class _U1,
class _U2,
__enable_if_t< is_assignable<first_type&, _U1>::value && is_assignable<second_type&, _U2>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair& operator=(pair<_U1, _U2>&& __p) {
first = std::forward<_U1>(__p.first);
second = std::forward<_U2>(__p.second);
return *this;
}
# 385 "/bin/../include/c++/v1/__utility/pair.h" 3
template <
class _U1,
class _U2,
__enable_if_t< is_convertible<_U1 const&, _T1>::value && is_convertible<_U2 const&, _T2>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair(tuple<_U1, _U2> const& __p)
: first(std::get<0>(__p)), second(std::get<1>(__p)) {}
template <
class _U1,
class _U2,
__enable_if_t< is_constructible<_T1, _U1 const&>::value && is_constructible<_T2, _U2 const&>::value &&
!(is_convertible<_U1 const&, _T1>::value && is_convertible<_U2 const&, _T2>::value) >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit pair(tuple<_U1, _U2> const& __p)
: first(std::get<0>(__p)), second(std::get<1>(__p)) {}
template <class _U1,
class _U2,
__enable_if_t< is_convertible<_U1, _T1>::value && is_convertible<_U2, _T2>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair(tuple<_U1, _U2>&& __p)
: first(std::get<0>(std::move(__p))), second(std::get<1>(std::move(__p))) {}
template <class _U1,
class _U2,
__enable_if_t< is_constructible<_T1, _U1>::value && is_constructible<_T2, _U2>::value &&
!(is_convertible<_U1, _T1>::value && is_convertible<_U2, _T2>::value) >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit pair(tuple<_U1, _U2>&& __p)
: first(std::get<0>(std::move(__p))), second(std::get<1>(std::move(__p))) {}
template <
class _U1,
class _U2,
__enable_if_t< is_assignable<_T1&, _U1 const&>::value && is_assignable<_T2&, _U2 const&>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair& operator=(tuple<_U1, _U2> const& __p) {
first = std::get<0>(__p);
second = std::get<1>(__p);
return *this;
}
template <class _U1,
class _U2,
__enable_if_t< is_assignable<_T1&, _U1&&>::value && is_assignable<_T2&, _U2&&>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair& operator=(tuple<_U1, _U2>&& __p) {
first = std::get<0>(std::move(__p));
second = std::get<1>(std::move(__p));
return *this;
}
template <
class _Up,
__enable_if_t< is_convertible<_Up const&, _T1>::value && is_convertible<_Up const&, _T2>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair(array<_Up, 2> const& __p) : first(__p[0]), second(__p[1]) {}
template <
class _Up,
__enable_if_t< is_constructible<_T1, _Up const&>::value && is_constructible<_T2, _Up const&>::value &&
!(is_convertible<_Up const&, _T1>::value && is_convertible<_Up const&, _T2>::value) >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit pair(array<_Up, 2> const& __p)
: first(__p[0]), second(__p[1]) {}
template <class _Up, __enable_if_t< is_convertible<_Up, _T1>::value && is_convertible<_Up, _T2>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair(array<_Up, 2>&& __p)
: first(std::move(__p)[0]), second(std::move(__p)[1]) {}
template <class _Up,
__enable_if_t< is_constructible<_T1, _Up>::value && is_constructible<_T2, _Up>::value &&
!(is_convertible<_Up, _T1>::value && is_convertible<_Up, _T2>::value) >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit pair(array<_Up, 2>&& __p)
: first(std::move(__p)[0]), second(std::move(__p)[1]) {}
template <
class _Up,
__enable_if_t< is_assignable<_T1&, _Up const&>::value && is_assignable<_T2&, _Up const&>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair& operator=(array<_Up, 2> const& __p) {
first = std::get<0>(__p);
second = std::get<1>(__p);
return *this;
}
template <class _Up, __enable_if_t< is_assignable<_T1&, _Up>::value && is_assignable<_T2&, _Up>::value >* = nullptr>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair& operator=(array<_Up, 2>&& __p) {
first = std::get<0>(std::move(__p));
second = std::get<1>(std::move(__p));
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void swap(pair& __p)
noexcept(__is_nothrow_swappable<first_type>::value&& __is_nothrow_swappable<second_type>::value) {
using std::swap;
swap(first, __p.first);
swap(second, __p.second);
}
# 489 "/bin/../include/c++/v1/__utility/pair.h" 3
private:
template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
pair(piecewise_construct_t,
tuple<_Args1...>& __first_args,
tuple<_Args2...>& __second_args,
__tuple_indices<_I1...>,
__tuple_indices<_I2...>);
};
template <class _T1, class _T2>
pair(_T1, _T2) -> pair<_T1, _T2>;
template <class _T1, class _T2, class _U1, class _U2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
operator==(const pair<_T1, _T2>& __x, const pair<_U1, _U2>& __y) {
return __x.first == __y.first && __x.second == __y.second;
}
template <class _T1, class _T2, class _U1, class _U2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr common_comparison_category_t< __synth_three_way_result<_T1, _U1>,
__synth_three_way_result<_T2, _U2> >
operator<=>(const pair<_T1, _T2>& __x, const pair<_U1, _U2>& __y) {
if (auto __c = std::__synth_three_way(__x.first, __y.first); __c != 0) {
return __c;
}
return std::__synth_three_way(__x.second, __y.second);
}
# 576 "/bin/../include/c++/v1/__utility/pair.h" 3
template <class _T1, class _T2, __enable_if_t<__is_swappable<_T1>::value && __is_swappable<_T2>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)
noexcept(__is_nothrow_swappable<_T1>::value&& __is_nothrow_swappable<_T2>::value) {
__x.swap(__y);
}
# 591 "/bin/../include/c++/v1/__utility/pair.h" 3
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
pair<typename __unwrap_ref_decay<_T1>::type, typename __unwrap_ref_decay<_T2>::type>
make_pair(_T1&& __t1, _T2&& __t2) {
return pair<typename __unwrap_ref_decay<_T1>::type, typename __unwrap_ref_decay<_T2>::type>(
std::forward<_T1>(__t1), std::forward<_T2>(__t2));
}
template <class _T1, class _T2>
struct tuple_size<pair<_T1, _T2> > : public integral_constant<size_t, 2> {};
template <size_t _Ip, class _T1, class _T2>
struct tuple_element<_Ip, pair<_T1, _T2> > {
static_assert(_Ip < 2, "Index out of bounds in std::tuple_element<std::pair<T1, T2>>");
};
template <class _T1, class _T2>
struct tuple_element<0, pair<_T1, _T2> > {
using type __attribute__((__nodebug__)) = _T1;
};
template <class _T1, class _T2>
struct tuple_element<1, pair<_T1, _T2> > {
using type __attribute__((__nodebug__)) = _T2;
};
template <size_t _Ip>
struct __get_pair;
template <>
struct __get_pair<0> {
template <class _T1, class _T2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1& get(pair<_T1, _T2>& __p) noexcept {
return __p.first;
}
template <class _T1, class _T2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _T1& get(const pair<_T1, _T2>& __p) noexcept {
return __p.first;
}
template <class _T1, class _T2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1&& get(pair<_T1, _T2>&& __p) noexcept {
return std::forward<_T1>(__p.first);
}
template <class _T1, class _T2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _T1&& get(const pair<_T1, _T2>&& __p) noexcept {
return std::forward<const _T1>(__p.first);
}
};
template <>
struct __get_pair<1> {
template <class _T1, class _T2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T2& get(pair<_T1, _T2>& __p) noexcept {
return __p.second;
}
template <class _T1, class _T2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _T2& get(const pair<_T1, _T2>& __p) noexcept {
return __p.second;
}
template <class _T1, class _T2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T2&& get(pair<_T1, _T2>&& __p) noexcept {
return std::forward<_T2>(__p.second);
}
template <class _T1, class _T2>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _T2&& get(const pair<_T1, _T2>&& __p) noexcept {
return std::forward<const _T2>(__p.second);
}
};
template <size_t _Ip, class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, pair<_T1, _T2> >::type&
get(pair<_T1, _T2>& __p) noexcept {
return __get_pair<_Ip>::get(__p);
}
template <size_t _Ip, class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, pair<_T1, _T2> >::type&
get(const pair<_T1, _T2>& __p) noexcept {
return __get_pair<_Ip>::get(__p);
}
template <size_t _Ip, class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename tuple_element<_Ip, pair<_T1, _T2> >::type&&
get(pair<_T1, _T2>&& __p) noexcept {
return __get_pair<_Ip>::get(std::move(__p));
}
template <size_t _Ip, class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const typename tuple_element<_Ip, pair<_T1, _T2> >::type&&
get(const pair<_T1, _T2>&& __p) noexcept {
return __get_pair<_Ip>::get(std::move(__p));
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1& get(pair<_T1, _T2>& __p) noexcept {
return __get_pair<0>::get(__p);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1 const& get(pair<_T1, _T2> const& __p) noexcept {
return __get_pair<0>::get(__p);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1&& get(pair<_T1, _T2>&& __p) noexcept {
return __get_pair<0>::get(std::move(__p));
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1 const&& get(pair<_T1, _T2> const&& __p) noexcept {
return __get_pair<0>::get(std::move(__p));
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1& get(pair<_T2, _T1>& __p) noexcept {
return __get_pair<1>::get(__p);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1 const& get(pair<_T2, _T1> const& __p) noexcept {
return __get_pair<1>::get(__p);
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1&& get(pair<_T2, _T1>&& __p) noexcept {
return __get_pair<1>::get(std::move(__p));
}
template <class _T1, class _T2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _T1 const&& get(pair<_T2, _T1> const&& __p) noexcept {
return __get_pair<1>::get(std::move(__p));
}
}}
# 20 "/bin/../include/c++/v1/__algorithm/unwrap_range.h" 2 3
# 23 "/bin/../include/c++/v1/__algorithm/unwrap_range.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 27 "/bin/../include/c++/v1/__algorithm/unwrap_range.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Iter, class _Sent>
struct __unwrap_range_impl {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __unwrap(_Iter __first, _Sent __sent)
requires random_access_iterator<_Iter> && sized_sentinel_for<_Sent, _Iter>
{
auto __last = ranges::next(__first, __sent);
return pair{std::__unwrap_iter(std::move(__first)), std::__unwrap_iter(std::move(__last))};
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __unwrap(_Iter __first, _Sent __last) {
return pair{std::move(__first), std::move(__last)};
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto
__rewrap(_Iter __orig_iter, decltype(std::__unwrap_iter(std::move(__orig_iter))) __iter)
requires random_access_iterator<_Iter> && sized_sentinel_for<_Sent, _Iter>
{
return std::__rewrap_iter(std::move(__orig_iter), std::move(__iter));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __rewrap(const _Iter&, _Iter __iter)
requires(!(random_access_iterator<_Iter> && sized_sentinel_for<_Sent, _Iter>))
{
return __iter;
}
};
template <class _Iter>
struct __unwrap_range_impl<_Iter, _Iter> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __unwrap(_Iter __first, _Iter __last) {
return pair{std::__unwrap_iter(std::move(__first)), std::__unwrap_iter(std::move(__last))};
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto
__rewrap(_Iter __orig_iter, decltype(std::__unwrap_iter(__orig_iter)) __iter) {
return std::__rewrap_iter(std::move(__orig_iter), std::move(__iter));
}
};
template <class _Iter, class _Sent>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto __unwrap_range(_Iter __first, _Sent __last) {
return __unwrap_range_impl<_Iter, _Sent>::__unwrap(std::move(__first), std::move(__last));
}
template < class _Sent, class _Iter, class _Unwrapped>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter __rewrap_range(_Iter __orig_iter, _Unwrapped __iter) {
return __unwrap_range_impl<_Iter, _Sent>::__rewrap(std::move(__orig_iter), std::move(__iter));
}
# 95 "/bin/../include/c++/v1/__algorithm/unwrap_range.h" 3
}}
# 15 "/bin/../include/c++/v1/__algorithm/copy_move_common.h" 2 3
# 1 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 1 3
# 14 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 3
# 1 "/bin/../include/c++/v1/__memory/construct_at.h" 1 3
# 15 "/bin/../include/c++/v1/__memory/construct_at.h" 3
# 1 "/bin/../include/c++/v1/__iterator/access.h" 1 3
# 18 "/bin/../include/c++/v1/__iterator/access.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, size_t _Np>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp* begin(_Tp (&__array)[_Np]) noexcept {
return __array;
}
template <class _Tp, size_t _Np>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp* end(_Tp (&__array)[_Np]) noexcept {
return __array + _Np;
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto begin(_Cp& __c) -> decltype(__c.begin()) {
return __c.begin();
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto begin(const _Cp& __c) -> decltype(__c.begin()) {
return __c.begin();
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto end(_Cp& __c) -> decltype(__c.end()) {
return __c.end();
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto end(const _Cp& __c) -> decltype(__c.end()) {
return __c.end();
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto cbegin(const _Cp& __c) noexcept(noexcept(std::begin(__c)))
-> decltype(std::begin(__c)) {
return std::begin(__c);
}
template <class _Cp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto cend(const _Cp& __c) noexcept(noexcept(std::end(__c))) -> decltype(std::end(__c)) {
return std::end(__c);
}
# 93 "/bin/../include/c++/v1/__iterator/access.h" 3
}}
# 16 "/bin/../include/c++/v1/__memory/construct_at.h" 2 3
# 1 "/bin/../include/c++/v1/__memory/voidify.h" 1 3
# 18 "/bin/../include/c++/v1/__memory/voidify.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <typename _Tp>
__attribute__((__always_inline__)) __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void* __voidify(_Tp& __from) {
return const_cast<void*>(static_cast<const volatile void*>(std::addressof(__from)));
}
}}
# 18 "/bin/../include/c++/v1/__memory/construct_at.h" 2 3
# 1 "third_party/stl/cxx17/new" 1 3
# 1 "/bin/../include/c++/v1/new" 1 3
# 92 "/bin/../include/c++/v1/new" 3
# 1 "/bin/../include/c++/v1/__exception/exception.h" 1 3
# 22 "/bin/../include/c++/v1/__exception/exception.h" 3
namespace std {
# 72 "/bin/../include/c++/v1/__exception/exception.h" 3
class __attribute__((__visibility__("default"))) exception {
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) exception() noexcept {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) exception(const exception&) noexcept = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) exception& operator=(const exception&) noexcept = default;
virtual ~exception() noexcept;
virtual const char* what() const noexcept;
};
class __attribute__((__visibility__("default"))) bad_exception : public exception {
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_exception() noexcept {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_exception(const bad_exception&) noexcept = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_exception& operator=(const bad_exception&) noexcept = default;
~bad_exception() noexcept override;
const char* what() const noexcept override;
};
}
# 93 "/bin/../include/c++/v1/new" 2 3
# 105 "/bin/../include/c++/v1/new" 3
# 119 "/bin/../include/c++/v1/new" 3
namespace std
{
struct __attribute__((__visibility__("default"))) nothrow_t {
explicit nothrow_t() = default;
};
extern __attribute__((__visibility__("default"))) const nothrow_t nothrow;
class __attribute__((__visibility__("default"))) bad_alloc : public exception {
public:
bad_alloc() noexcept;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_alloc(const bad_alloc&) noexcept = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_alloc& operator=(const bad_alloc&) noexcept = default;
~bad_alloc() noexcept override;
const char* what() const noexcept override;
};
class __attribute__((__visibility__("default"))) bad_array_new_length : public bad_alloc {
public:
bad_array_new_length() noexcept;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_array_new_length(const bad_array_new_length&) noexcept = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_array_new_length& operator=(const bad_array_new_length&) noexcept = default;
~bad_array_new_length() noexcept override;
const char* what() const noexcept override;
};
typedef void (*new_handler)();
__attribute__((__visibility__("default"))) new_handler set_new_handler(new_handler) noexcept;
__attribute__((__visibility__("default"))) new_handler get_new_handler() noexcept;
# 170 "/bin/../include/c++/v1/new" 3
[[noreturn]] __attribute__((__visibility__("default"))) void __throw_bad_alloc();
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void __throw_bad_array_new_length() {
throw bad_array_new_length();
}
enum class align_val_t : size_t {};
# 191 "/bin/../include/c++/v1/new" 3
struct destroying_delete_t {
explicit destroying_delete_t() = default;
};
inline constexpr destroying_delete_t destroying_delete{};
}
# 207 "/bin/../include/c++/v1/new" 3
[[__nodiscard__]] __attribute__((__visibility__("default"))) void* operator new(std::size_t __sz) ;
[[__nodiscard__]] __attribute__((__visibility__("default"))) void*
operator new(std::size_t __sz, const std::nothrow_t&) noexcept __attribute__((__malloc__));
__attribute__((__visibility__("default"))) void operator delete(void* __p) noexcept;
__attribute__((__visibility__("default"))) void operator delete(void* __p, const std::nothrow_t&) noexcept;
__attribute__((__visibility__("default"))) void operator delete(void* __p, std::size_t __sz) noexcept;
[[__nodiscard__]] __attribute__((__visibility__("default"))) void* operator new[](std::size_t __sz) ;
[[__nodiscard__]] __attribute__((__visibility__("default"))) void*
operator new[](std::size_t __sz, const std::nothrow_t&) noexcept __attribute__((__malloc__));
__attribute__((__visibility__("default"))) void operator delete[](void* __p) noexcept;
__attribute__((__visibility__("default"))) void operator delete[](void* __p, const std::nothrow_t&) noexcept;
__attribute__((__visibility__("default"))) void operator delete[](void* __p, std::size_t __sz) noexcept;
[[__nodiscard__]] __attribute__((__visibility__("default"))) void*
operator new(std::size_t __sz, std::align_val_t) ;
[[__nodiscard__]] __attribute__((__visibility__("default"))) void*
operator new(std::size_t __sz, std::align_val_t, const std::nothrow_t&) noexcept __attribute__((__malloc__));
__attribute__((__visibility__("default"))) void operator delete(void* __p, std::align_val_t) noexcept;
__attribute__((__visibility__("default"))) void operator delete(void* __p, std::align_val_t, const std::nothrow_t&) noexcept;
__attribute__((__visibility__("default"))) void operator delete(void* __p, std::size_t __sz, std::align_val_t) noexcept;
[[__nodiscard__]] __attribute__((__visibility__("default"))) void*
operator new[](std::size_t __sz, std::align_val_t) ;
[[__nodiscard__]] __attribute__((__visibility__("default"))) void*
operator new[](std::size_t __sz, std::align_val_t, const std::nothrow_t&) noexcept __attribute__((__malloc__));
__attribute__((__visibility__("default"))) void operator delete[](void* __p, std::align_val_t) noexcept;
__attribute__((__visibility__("default"))) void operator delete[](void* __p, std::align_val_t, const std::nothrow_t&) noexcept;
__attribute__((__visibility__("default"))) void operator delete[](void* __p, std::size_t __sz, std::align_val_t) noexcept;
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void* operator new(std::size_t, void* __p) noexcept {
return __p;
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void* operator new[](std::size_t, void* __p) noexcept {
return __p;
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void operator delete(void*, void*) noexcept {}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void operator delete[](void*, void*) noexcept {}
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bool __is_overaligned_for_new(size_t __align) noexcept {
return __align > 8UL;
}
template <class... _Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void* __libcpp_operator_new(_Args... __args) {
return __builtin_operator_new(__args...);
}
template <class... _Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void __libcpp_operator_delete(_Args... __args) {
__builtin_operator_delete(__args...);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void* __libcpp_allocate(size_t __size, size_t __align) {
if (__is_overaligned_for_new(__align)) {
const align_val_t __align_val = static_cast<align_val_t>(__align);
return __libcpp_operator_new(__size, __align_val);
}
(void)__align;
return __libcpp_operator_new(__size);
}
template <class... _Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void __do_deallocate_handle_size(void* __ptr, size_t __size, _Args... __args) {
return std::__libcpp_operator_delete(__ptr, __size, __args...);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void __libcpp_deallocate(void* __ptr, size_t __size, size_t __align) {
if (__is_overaligned_for_new(__align)) {
const align_val_t __align_val = static_cast<align_val_t>(__align);
return __do_deallocate_handle_size(__ptr, __size, __align_val);
} else {
return __do_deallocate_handle_size(__ptr, __size);
}
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void __libcpp_deallocate_unsized(void* __ptr, size_t __align) {
if (__is_overaligned_for_new(__align)) {
const align_val_t __align_val = static_cast<align_val_t>(__align);
return __libcpp_operator_delete(__ptr, __align_val);
} else {
return __libcpp_operator_delete(__ptr);
}
}
template <class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp* __launder(_Tp* __p) noexcept {
static_assert(!(is_function<_Tp>::value), "can't launder functions");
static_assert(!(is_same<void, __remove_cv_t<_Tp> >::value), "can't launder cv-void");
return __builtin_launder(__p);
}
template <class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp* launder(_Tp* __p) noexcept {
return std::__launder(__p);
}
# 361 "/bin/../include/c++/v1/new" 3
}}
# 5 "third_party/stl/cxx17/new" 2 3
# 24 "/bin/../include/c++/v1/__memory/construct_at.h" 2 3
# 27 "/bin/../include/c++/v1/__memory/construct_at.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 31 "/bin/../include/c++/v1/__memory/construct_at.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class... _Args, class = decltype(::new(std::declval<void*>()) _Tp(std::declval<_Args>()...))>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp* construct_at(_Tp* __location, _Args&&... __args) {
((void)0);
return ::new (std::__voidify(*__location)) _Tp(std::forward<_Args>(__args)...);
}
template <class _Tp, class... _Args, class = decltype(::new(std::declval<void*>()) _Tp(std::declval<_Args>()...))>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp* __construct_at(_Tp* __location, _Args&&... __args) {
return std::construct_at(__location, std::forward<_Args>(__args)...);
}
template <class _ForwardIterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator __destroy(_ForwardIterator, _ForwardIterator);
template <class _Tp, __enable_if_t<!is_array<_Tp>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void __destroy_at(_Tp* __loc) {
((void)0);
__loc->~_Tp();
}
template <class _Tp, __enable_if_t<is_array<_Tp>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void __destroy_at(_Tp* __loc) {
((void)0);
std::__destroy(std::begin(*__loc), std::end(*__loc));
}
template <class _ForwardIterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
__destroy(_ForwardIterator __first, _ForwardIterator __last) {
for (; __first != __last; ++__first)
std::__destroy_at(std::addressof(*__first));
return __first;
}
template <class _BidirectionalIterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _BidirectionalIterator
__reverse_destroy(_BidirectionalIterator __first, _BidirectionalIterator __last) {
while (__last != __first) {
--__last;
std::__destroy_at(std::addressof(*__last));
}
return __last;
}
template <class _Tp, enable_if_t<!is_array_v<_Tp>, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void destroy_at(_Tp* __loc) {
std::__destroy_at(__loc);
}
template <class _Tp, enable_if_t<is_array_v<_Tp>, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void destroy_at(_Tp* __loc) {
std::__destroy_at(__loc);
}
template <class _ForwardIterator>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void destroy(_ForwardIterator __first, _ForwardIterator __last) {
(void)std::__destroy(std::move(__first), std::move(__last));
}
template <class _ForwardIterator, class _Size>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator destroy_n(_ForwardIterator __first, _Size __n) {
for (; __n > 0; (void)++__first, --__n)
std::__destroy_at(std::addressof(*__first));
return __first;
}
}}
# 15 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/datasizeof.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/datasizeof.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_final.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_final.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __libcpp_is_final : public integral_constant<bool, __is_final(_Tp)> {};
template <class _Tp>
struct is_final : public integral_constant<bool, __is_final(_Tp)> {};
template <class _Tp>
inline constexpr bool is_final_v = __is_final(_Tp);
}}
# 15 "/bin/../include/c++/v1/__type_traits/datasizeof.h" 2 3
# 19 "/bin/../include/c++/v1/__type_traits/datasizeof.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct __libcpp_datasizeof {
static const size_t value = __datasizeof(_Tp);
# 61 "/bin/../include/c++/v1/__type_traits/datasizeof.h" 3
};
}}
# 16 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_always_bitcastable.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_always_bitcastable.h" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_trivially_copyable.h" 1 3
# 14 "/bin/../include/c++/v1/__type_traits/is_trivially_copyable.h" 3
# 1 "third_party/stl/cxx17/cstdint" 1 3
# 1 "/bin/../include/c++/v1/cstdint" 1 3
# 158 "/bin/../include/c++/v1/cstdint" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
using ::int8_t __attribute__((__using_if_exists__));
using ::int16_t __attribute__((__using_if_exists__));
using ::int32_t __attribute__((__using_if_exists__));
using ::int64_t __attribute__((__using_if_exists__));
using ::uint8_t __attribute__((__using_if_exists__));
using ::uint16_t __attribute__((__using_if_exists__));
using ::uint32_t __attribute__((__using_if_exists__));
using ::uint64_t __attribute__((__using_if_exists__));
using ::int_least8_t __attribute__((__using_if_exists__));
using ::int_least16_t __attribute__((__using_if_exists__));
using ::int_least32_t __attribute__((__using_if_exists__));
using ::int_least64_t __attribute__((__using_if_exists__));
using ::uint_least8_t __attribute__((__using_if_exists__));
using ::uint_least16_t __attribute__((__using_if_exists__));
using ::uint_least32_t __attribute__((__using_if_exists__));
using ::uint_least64_t __attribute__((__using_if_exists__));
using ::int_fast8_t __attribute__((__using_if_exists__));
using ::int_fast16_t __attribute__((__using_if_exists__));
using ::int_fast32_t __attribute__((__using_if_exists__));
using ::int_fast64_t __attribute__((__using_if_exists__));
using ::uint_fast8_t __attribute__((__using_if_exists__));
using ::uint_fast16_t __attribute__((__using_if_exists__));
using ::uint_fast32_t __attribute__((__using_if_exists__));
using ::uint_fast64_t __attribute__((__using_if_exists__));
using ::intptr_t __attribute__((__using_if_exists__));
using ::uintptr_t __attribute__((__using_if_exists__));
using ::intmax_t __attribute__((__using_if_exists__));
using ::uintmax_t __attribute__((__using_if_exists__));
}}
# 5 "third_party/stl/cxx17/cstdint" 2 3
# 15 "/bin/../include/c++/v1/__type_traits/is_trivially_copyable.h" 2 3
# 18 "/bin/../include/c++/v1/__type_traits/is_trivially_copyable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_trivially_copyable : public integral_constant<bool, __is_trivially_copyable(_Tp)> {};
template <class _Tp>
inline constexpr bool is_trivially_copyable_v = __is_trivially_copyable(_Tp);
template <class _Tp>
inline constexpr bool __is_cheap_to_copy = is_trivially_copyable_v<_Tp> && sizeof(_Tp) <= sizeof(std::intmax_t);
}}
# 18 "/bin/../include/c++/v1/__type_traits/is_always_bitcastable.h" 2 3
# 22 "/bin/../include/c++/v1/__type_traits/is_always_bitcastable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _From, class _To>
struct __is_always_bitcastable {
using _UnqualFrom = __remove_cv_t<_From>;
using _UnqualTo = __remove_cv_t<_To>;
static const bool value =
(is_same<_UnqualFrom, _UnqualTo>::value && is_trivially_copyable<_UnqualFrom>::value) ||
# 74 "/bin/../include/c++/v1/__type_traits/is_always_bitcastable.h" 3
(
sizeof(_From) == sizeof(_To) &&
is_integral<_From>::value &&
is_integral<_To>::value &&
!is_same<_UnqualTo, bool>::value
);
};
}}
# 17 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_constant_evaluated.h" 1 3
# 16 "/bin/../include/c++/v1/__type_traits/is_constant_evaluated.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr bool is_constant_evaluated() noexcept {
return __builtin_is_constant_evaluated();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr bool __libcpp_is_constant_evaluated() noexcept {
return __builtin_is_constant_evaluated();
}
}}
# 19 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_equality_comparable.h" 1 3
# 26 "/bin/../include/c++/v1/__type_traits/is_equality_comparable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up, class = void>
struct __is_equality_comparable : false_type {};
template <class _Tp, class _Up>
struct __is_equality_comparable<_Tp, _Up, __void_t<decltype(std::declval<_Tp>() == std::declval<_Up>())> > : true_type {
};
# 49 "/bin/../include/c++/v1/__type_traits/is_equality_comparable.h" 3
template <class _Tp, class _Up, class = void>
struct __libcpp_is_trivially_equality_comparable_impl : false_type {};
template <class _Tp>
struct __libcpp_is_trivially_equality_comparable_impl<_Tp, _Tp>
: integral_constant<bool, __is_trivially_equality_comparable(_Tp) && __is_equality_comparable<_Tp, _Tp>::value> {
};
template <class _Tp, class _Up>
struct __libcpp_is_trivially_equality_comparable_impl<
_Tp,
_Up,
__enable_if_t<is_integral<_Tp>::value && is_integral<_Up>::value && !is_same<_Tp, _Up>::value &&
is_signed<_Tp>::value == is_signed<_Up>::value && sizeof(_Tp) == sizeof(_Up)> > : true_type {};
template <class _Tp>
struct __libcpp_is_trivially_equality_comparable_impl<_Tp*, _Tp*> : true_type {};
template <class _Tp, class _Up>
struct __libcpp_is_trivially_equality_comparable_impl<_Tp*, _Up*>
: integral_constant<
bool,
__is_equality_comparable<_Tp*, _Up*>::value &&
(is_same<__remove_cv_t<_Tp>, __remove_cv_t<_Up> >::value || is_void<_Tp>::value || is_void<_Up>::value)> {
};
template <class _Tp, class _Up>
using __libcpp_is_trivially_equality_comparable =
__libcpp_is_trivially_equality_comparable_impl<__remove_cv_t<_Tp>, __remove_cv_t<_Up> >;
}}
# 21 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_trivially_lexicographically_comparable.h" 1 3
# 22 "/bin/../include/c++/v1/__type_traits/is_trivially_lexicographically_comparable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
# 45 "/bin/../include/c++/v1/__type_traits/is_trivially_lexicographically_comparable.h" 3
template <class _Tp, class _Up>
struct __libcpp_is_trivially_lexicographically_comparable
: integral_constant<bool,
is_same<__remove_cv_t<_Tp>, __remove_cv_t<_Up> >::value && sizeof(_Tp) == 1 &&
is_unsigned<_Tp>::value> {};
}}
# 24 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 2 3
# 1 "/bin/../include/c++/v1/__utility/is_pointer_in_range.h" 1 3
# 23 "/bin/../include/c++/v1/__utility/is_pointer_in_range.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Up, class = void>
struct __is_less_than_comparable : false_type {};
template <class _Tp, class _Up>
struct __is_less_than_comparable<_Tp, _Up, __void_t<decltype(std::declval<_Tp>() < std::declval<_Up>())> > : true_type {
};
template <class _Tp, class _Up, __enable_if_t<__is_less_than_comparable<const _Tp*, const _Up*>::value, int> = 0>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("address"))) bool __is_pointer_in_range(
const _Tp* __begin, const _Tp* __end, const _Up* __ptr) {
if (__libcpp_is_constant_evaluated()) {
((void)0);
if (!__builtin_constant_p(__begin <= __ptr && __ptr < __end))
return false;
}
return !__less<>()(__ptr, __begin) && __less<>()(__ptr, __end);
}
template <class _Tp, class _Up, __enable_if_t<!__is_less_than_comparable<const _Tp*, const _Up*>::value, int> = 0>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("address"))) bool __is_pointer_in_range(
const _Tp* __begin, const _Tp* __end, const _Up* __ptr) {
if (__libcpp_is_constant_evaluated())
return false;
return reinterpret_cast<const char*>(__begin) <= reinterpret_cast<const char*>(__ptr) &&
reinterpret_cast<const char*>(__ptr) < reinterpret_cast<const char*>(__end);
}
}}
# 26 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 2 3
# 30 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
enum class __element_count : size_t {};
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr size_t __constexpr_strlen(const char* __str) {
# 49 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 3
return __builtin_strlen(__str);
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int
__constexpr_memcmp(const _Tp* __lhs, const _Up* __rhs, __element_count __n) {
static_assert(__libcpp_is_trivially_lexicographically_comparable<_Tp, _Up>::value,
"_Tp and _Up have to be trivially lexicographically comparable");
auto __count = static_cast<size_t>(__n);
if (__libcpp_is_constant_evaluated()) {
if (sizeof(_Tp) == 1 && !is_same<_Tp, bool>::value)
return __builtin_memcmp(__lhs, __rhs, __count * sizeof(_Tp));
while (__count != 0) {
if (*__lhs < *__rhs)
return -1;
if (*__rhs < *__lhs)
return 1;
--__count;
++__lhs;
++__rhs;
}
return 0;
} else {
return __builtin_memcmp(__lhs, __rhs, __count * sizeof(_Tp));
}
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
__constexpr_memcmp_equal(const _Tp* __lhs, const _Up* __rhs, __element_count __n) {
static_assert(__libcpp_is_trivially_equality_comparable<_Tp, _Up>::value,
"_Tp and _Up have to be trivially equality comparable");
auto __count = static_cast<size_t>(__n);
if (__libcpp_is_constant_evaluated()) {
if (sizeof(_Tp) == 1 && is_integral<_Tp>::value && !is_same<_Tp, bool>::value)
return __builtin_memcmp(__lhs, __rhs, __count * sizeof(_Tp)) == 0;
while (__count != 0) {
if (*__lhs != *__rhs)
return false;
--__count;
++__lhs;
++__rhs;
}
return true;
} else {
return __builtin_memcmp(__lhs, __rhs, __count * sizeof(_Tp)) == 0;
}
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp* __constexpr_memchr(_Tp* __str, _Up __value, size_t __count) {
static_assert(sizeof(_Tp) == 1 && __libcpp_is_trivially_equality_comparable<_Tp, _Up>::value,
"Calling memchr on non-trivially equality comparable types is unsafe.");
if (__libcpp_is_constant_evaluated()) {
if constexpr (is_same_v<remove_cv_t<_Tp>, char> && is_same_v<remove_cv_t<_Up>, char>)
return __builtin_char_memchr(__str, __value, __count);
for (; __count; --__count) {
if (*__str == __value)
return __str;
++__str;
}
return nullptr;
} else {
char __value_buffer = 0;
__builtin_memcpy(&__value_buffer, &__value, sizeof(char));
return static_cast<_Tp*>(__builtin_memchr(__str, __value_buffer, __count));
}
}
# 150 "/bin/../include/c++/v1/__string/constexpr_c_functions.h" 3
template <class _Tp, class _Up, __enable_if_t<is_assignable<_Tp&, _Up const&>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp& __assign_trivially_copyable(_Tp& __dest, _Up const& __src) {
__dest = __src;
return __dest;
}
template <class _Tp, class _Up, __enable_if_t<!is_assignable<_Tp&, _Up const&>::value &&
is_assignable<_Tp&, _Up&&>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp& __assign_trivially_copyable(_Tp& __dest, _Up& __src) {
__dest =
static_cast<_Up&&>(__src);
return __dest;
}
template <class _Tp, class _Up, __enable_if_t<!is_assignable<_Tp&, _Up const&>::value &&
!is_assignable<_Tp&, _Up&&>::value &&
is_constructible<_Tp, _Up const&>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp& __assign_trivially_copyable(_Tp& __dest, _Up const& __src) {
std::__construct_at(std::addressof(__dest), __src);
return __dest;
}
template <class _Tp, class _Up, __enable_if_t<!is_assignable<_Tp&, _Up const&>::value &&
!is_assignable<_Tp&, _Up&&>::value &&
!is_constructible<_Tp, _Up const&>::value &&
is_constructible<_Tp, _Up&&>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp& __assign_trivially_copyable(_Tp& __dest, _Up& __src) {
std::__construct_at(
std::addressof(__dest),
static_cast<_Up&&>(__src));
return __dest;
}
template <class _Tp, class _Up, __enable_if_t<__is_always_bitcastable<_Up, _Tp>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp*
__constexpr_memmove(_Tp* __dest, _Up* __src, __element_count __n) {
size_t __count = static_cast<size_t>(__n);
if (__libcpp_is_constant_evaluated()) {
if (is_same<__remove_cv_t<_Tp>, __remove_cv_t<_Up> >::value) {
::__builtin_memmove(__dest, __src, __count * sizeof(_Tp));
return __dest;
}
if (std::__is_pointer_in_range(__src, __src + __count, __dest)) {
for (; __count > 0; --__count)
std::__assign_trivially_copyable(__dest[__count - 1], __src[__count - 1]);
} else {
for (size_t __i = 0; __i != __count; ++__i)
std::__assign_trivially_copyable(__dest[__i], __src[__i]);
}
} else if (__count > 0) {
::__builtin_memmove(__dest, __src, (__count - 1) * sizeof(_Tp) + __libcpp_datasizeof<_Tp>::value);
}
return __dest;
}
}}
# 19 "/bin/../include/c++/v1/__algorithm/copy_move_common.h" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_trivially_assignable.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/is_trivially_assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Arg>
struct is_trivially_assignable : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)> {};
template <class _Tp, class _Arg>
inline constexpr bool is_trivially_assignable_v = __is_trivially_assignable(_Tp, _Arg);
}}
# 24 "/bin/../include/c++/v1/__algorithm/copy_move_common.h" 2 3
# 32 "/bin/../include/c++/v1/__algorithm/copy_move_common.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 36 "/bin/../include/c++/v1/__algorithm/copy_move_common.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _From, class _To>
struct __can_lower_copy_assignment_to_memmove {
static const bool value =
__is_always_bitcastable<_From, _To>::value &&
is_trivially_assignable<_To&, const _From&>::value &&
!is_volatile<_From>::value && !is_volatile<_To>::value;
};
template <class _From, class _To>
struct __can_lower_move_assignment_to_memmove {
static const bool value =
__is_always_bitcastable<_From, _To>::value && is_trivially_assignable<_To&, _From&&>::value &&
!is_volatile<_From>::value && !is_volatile<_To>::value;
};
template <class _In, class _Out>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_In*, _Out*>
__copy_trivial_impl(_In* __first, _In* __last, _Out* __result) {
const size_t __n = static_cast<size_t>(__last - __first);
std::__constexpr_memmove(__result, __first, __element_count(__n));
return std::make_pair(__last, __result + __n);
}
template <class _In, class _Out>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_In*, _Out*>
__copy_backward_trivial_impl(_In* __first, _In* __last, _Out* __result) {
const size_t __n = static_cast<size_t>(__last - __first);
__result -= __n;
std::__constexpr_memmove(__result, __first, __element_count(__n));
return std::make_pair(__last, __result);
}
template <class _F1, class _F2>
struct __overload : _F1, _F2 {
using _F1::operator();
using _F2::operator();
};
template <class _InIter, class _Sent, class _OutIter, class = void>
struct __can_rewrap : false_type {};
template <class _InIter, class _Sent, class _OutIter>
struct __can_rewrap<_InIter,
_Sent,
_OutIter,
__enable_if_t< is_copy_constructible<_InIter>::value && is_copy_constructible<_OutIter>::value > >
: true_type {};
template <class _Algorithm,
class _InIter,
class _Sent,
class _OutIter,
__enable_if_t<__can_rewrap<_InIter, _Sent, _OutIter>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
__unwrap_and_dispatch(_InIter __first, _Sent __last, _OutIter __out_first) {
auto __range = std::__unwrap_range(__first, std::move(__last));
auto __result = _Algorithm()(std::move(__range.first), std::move(__range.second), std::__unwrap_iter(__out_first));
return std::make_pair(std::__rewrap_range<_Sent>(std::move(__first), std::move(__result.first)),
std::__rewrap_iter(std::move(__out_first), std::move(__result.second)));
}
template <class _Algorithm,
class _InIter,
class _Sent,
class _OutIter,
__enable_if_t<!__can_rewrap<_InIter, _Sent, _OutIter>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
__unwrap_and_dispatch(_InIter __first, _Sent __last, _OutIter __out_first) {
return _Algorithm()(std::move(__first), std::move(__last), std::move(__out_first));
}
template <class _AlgPolicy,
class _NaiveAlgorithm,
class _OptimizedAlgorithm,
class _InIter,
class _Sent,
class _OutIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
__dispatch_copy_or_move(_InIter __first, _Sent __last, _OutIter __out_first) {
using _Algorithm = __overload<_NaiveAlgorithm, _OptimizedAlgorithm>;
return std::__unwrap_and_dispatch<_Algorithm>(std::move(__first), std::move(__last), std::move(__out_first));
}
}}
# 13 "/bin/../include/c++/v1/__algorithm/copy.h" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/for_each_segment.h" 1 3
# 13 "/bin/../include/c++/v1/__algorithm/for_each_segment.h" 3
# 1 "/bin/../include/c++/v1/__iterator/segmented_iterator.h" 1 3
# 49 "/bin/../include/c++/v1/__iterator/segmented_iterator.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Iterator>
struct __segmented_iterator_traits;
# 68 "/bin/../include/c++/v1/__iterator/segmented_iterator.h" 3
template <class _Tp, size_t = 0>
struct __has_specialization : false_type {};
template <class _Tp>
struct __has_specialization<_Tp, sizeof(_Tp) * 0> : true_type {};
template <class _Iterator>
using __is_segmented_iterator = __has_specialization<__segmented_iterator_traits<_Iterator> >;
}}
# 14 "/bin/../include/c++/v1/__algorithm/for_each_segment.h" 2 3
# 17 "/bin/../include/c++/v1/__algorithm/for_each_segment.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _SegmentedIterator, class _Functor>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void
__for_each_segment(_SegmentedIterator __first, _SegmentedIterator __last, _Functor __func) {
using _Traits = __segmented_iterator_traits<_SegmentedIterator>;
auto __sfirst = _Traits::__segment(__first);
auto __slast = _Traits::__segment(__last);
if (__sfirst == __slast) {
__func(_Traits::__local(__first), _Traits::__local(__last));
return;
}
__func(_Traits::__local(__first), _Traits::__end(__sfirst));
++__sfirst;
while (__sfirst != __slast) {
__func(_Traits::__begin(__sfirst), _Traits::__end(__sfirst));
++__sfirst;
}
__func(_Traits::__begin(__sfirst), _Traits::__local(__last));
}
}}
# 14 "/bin/../include/c++/v1/__algorithm/copy.h" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/min.h" 1 3
# 14 "/bin/../include/c++/v1/__algorithm/min.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/min_element.h" 1 3
# 23 "/bin/../include/c++/v1/__algorithm/min_element.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 27 "/bin/../include/c++/v1/__algorithm/min_element.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Comp, class _Iter, class _Sent, class _Proj>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter
__min_element(_Iter __first, _Sent __last, _Comp __comp, _Proj& __proj) {
if (__first == __last)
return __first;
_Iter __i = __first;
while (++__i != __last)
if (std::__invoke(__comp, std::__invoke(__proj, *__i), std::__invoke(__proj, *__first)))
__first = __i;
return __first;
}
template <class _Comp, class _Iter, class _Sent>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter __min_element(_Iter __first, _Sent __last, _Comp __comp) {
auto __proj = __identity();
return std::__min_element<_Comp>(std::move(__first), std::move(__last), __comp, __proj);
}
template <class _ForwardIterator, class _Compare>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) {
static_assert(
__has_forward_iterator_category<_ForwardIterator>::value, "std::min_element requires a ForwardIterator");
static_assert(
__is_callable<_Compare, decltype(*__first), decltype(*__first)>::value, "The comparator has to be callable");
return std::__min_element<__comp_ref_type<_Compare> >(std::move(__first), std::move(__last), __comp);
}
template <class _ForwardIterator>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
min_element(_ForwardIterator __first, _ForwardIterator __last) {
return std::min_element(__first, __last, __less<>());
}
}}
# 15 "/bin/../include/c++/v1/__algorithm/min.h" 2 3
# 20 "/bin/../include/c++/v1/__algorithm/min.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 24 "/bin/../include/c++/v1/__algorithm/min.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp, class _Compare>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Tp&
min([[_Clang::__lifetimebound__]] const _Tp& __a, [[_Clang::__lifetimebound__]] const _Tp& __b, _Compare __comp) {
return __comp(__b, __a) ? __b : __a;
}
template <class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const _Tp&
min([[_Clang::__lifetimebound__]] const _Tp& __a, [[_Clang::__lifetimebound__]] const _Tp& __b) {
return std::min(__a, __b, __less<>());
}
template <class _Tp, class _Compare>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp
min(initializer_list<_Tp> __t, _Compare __comp) {
return *std::__min_element<__comp_ref_type<_Compare> >(__t.begin(), __t.end(), __comp);
}
template <class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp min(initializer_list<_Tp> __t) {
return *std::min_element(__t.begin(), __t.end(), __less<>());
}
}}
# 16 "/bin/../include/c++/v1/__algorithm/copy.h" 2 3
# 24 "/bin/../include/c++/v1/__algorithm/copy.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 28 "/bin/../include/c++/v1/__algorithm/copy.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class, class _InIter, class _Sent, class _OutIter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter> __copy(_InIter, _Sent, _OutIter);
template <class _AlgPolicy>
struct __copy_loop {
template <class _InIter, class _Sent, class _OutIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _Sent __last, _OutIter __result) const {
while (__first != __last) {
*__result = *__first;
++__first;
++__result;
}
return std::make_pair(std::move(__first), std::move(__result));
}
template <class _InIter, class _OutIter>
struct _CopySegment {
using _Traits = __segmented_iterator_traits<_InIter>;
_OutIter& __result_;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit _CopySegment(_OutIter& __result)
: __result_(__result) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void
operator()(typename _Traits::__local_iterator __lfirst, typename _Traits::__local_iterator __llast) {
__result_ = std::__copy<_AlgPolicy>(__lfirst, __llast, std::move(__result_)).second;
}
};
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator<_InIter>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
std::__for_each_segment(__first, __last, _CopySegment<_InIter, _OutIter>(__result));
return std::make_pair(__last, std::move(__result));
}
template <class _InIter,
class _OutIter,
__enable_if_t<__has_random_access_iterator_category<_InIter>::value &&
!__is_segmented_iterator<_InIter>::value && __is_segmented_iterator<_OutIter>::value,
int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
using _Traits = __segmented_iterator_traits<_OutIter>;
using _DiffT = typename common_type<__iter_diff_t<_InIter>, __iter_diff_t<_OutIter> >::type;
if (__first == __last)
return std::make_pair(std::move(__first), std::move(__result));
auto __local_first = _Traits::__local(__result);
auto __segment_iterator = _Traits::__segment(__result);
while (true) {
auto __local_last = _Traits::__end(__segment_iterator);
auto __size = std::min<_DiffT>(__local_last - __local_first, __last - __first);
auto __iters = std::__copy<_AlgPolicy>(__first, __first + __size, __local_first);
__first = std::move(__iters.first);
if (__first == __last)
return std::make_pair(std::move(__first), _Traits::__compose(__segment_iterator, std::move(__iters.second)));
__local_first = _Traits::__begin(++__segment_iterator);
}
}
};
struct __copy_trivial {
template <class _In, class _Out, __enable_if_t<__can_lower_copy_assignment_to_memmove<_In, _Out>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_In*, _Out*>
operator()(_In* __first, _In* __last, _Out* __result) const {
return std::__copy_trivial_impl(__first, __last, __result);
}
};
template <class _AlgPolicy, class _InIter, class _Sent, class _OutIter>
pair<_InIter, _OutIter> inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
__copy(_InIter __first, _Sent __last, _OutIter __result) {
return std::__dispatch_copy_or_move<_AlgPolicy, __copy_loop<_AlgPolicy>, __copy_trivial>(
std::move(__first), std::move(__last), std::move(__result));
}
template <class _InputIterator, class _OutputIterator>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _OutputIterator
copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result) {
return std::__copy<_ClassicAlgPolicy>(__first, __last, __result).second;
}
}}
# 1795 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/copy_backward.h" 1 3
# 24 "/bin/../include/c++/v1/__algorithm/copy_backward.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 28 "/bin/../include/c++/v1/__algorithm/copy_backward.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _AlgPolicy, class _InIter, class _Sent, class _OutIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
__copy_backward(_InIter __first, _Sent __last, _OutIter __result);
template <class _AlgPolicy>
struct __copy_backward_loop {
template <class _InIter, class _Sent, class _OutIter>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _Sent __last, _OutIter __result) const {
auto __last_iter = _IterOps<_AlgPolicy>::next(__first, __last);
auto __original_last_iter = __last_iter;
while (__first != __last_iter) {
*--__result = *--__last_iter;
}
return std::make_pair(std::move(__original_last_iter), std::move(__result));
}
template <class _InIter, class _OutIter, __enable_if_t<__is_segmented_iterator<_InIter>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
using _Traits = __segmented_iterator_traits<_InIter>;
auto __sfirst = _Traits::__segment(__first);
auto __slast = _Traits::__segment(__last);
if (__sfirst == __slast) {
auto __iters =
std::__copy_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__local(__last), std::move(__result));
return std::make_pair(__last, __iters.second);
}
__result =
std::__copy_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__local(__last), std::move(__result))
.second;
--__slast;
while (__sfirst != __slast) {
__result =
std::__copy_backward<_AlgPolicy>(_Traits::__begin(__slast), _Traits::__end(__slast), std::move(__result))
.second;
--__slast;
}
__result = std::__copy_backward<_AlgPolicy>(_Traits::__local(__first), _Traits::__end(__slast), std::move(__result))
.second;
return std::make_pair(__last, std::move(__result));
}
template <class _InIter,
class _OutIter,
__enable_if_t<__has_random_access_iterator_category<_InIter>::value &&
!__is_segmented_iterator<_InIter>::value && __is_segmented_iterator<_OutIter>::value,
int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_InIter, _OutIter>
operator()(_InIter __first, _InIter __last, _OutIter __result) const {
using _Traits = __segmented_iterator_traits<_OutIter>;
auto __orig_last = __last;
auto __segment_iterator = _Traits::__segment(__result);
if (__first == __last)
return std::make_pair(__first, __result);
auto __local_last = _Traits::__local(__result);
while (true) {
using _DiffT = typename common_type<__iter_diff_t<_InIter>, __iter_diff_t<_OutIter> >::type;
auto __local_first = _Traits::__begin(__segment_iterator);
auto __size = std::min<_DiffT>(__local_last - __local_first, __last - __first);
auto __iter = std::__copy_backward<_AlgPolicy>(__last - __size, __last, __local_last).second;
__last -= __size;
if (__first == __last)
return std::make_pair(std::move(__orig_last), _Traits::__compose(__segment_iterator, std::move(__iter)));
--__segment_iterator;
__local_last = _Traits::__end(__segment_iterator);
}
}
};
struct __copy_backward_trivial {
template <class _In, class _Out, __enable_if_t<__can_lower_copy_assignment_to_memmove<_In, _Out>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_In*, _Out*>
operator()(_In* __first, _In* __last, _Out* __result) const {
return std::__copy_backward_trivial_impl(__first, __last, __result);
}
};
template <class _AlgPolicy, class _BidirectionalIterator1, class _Sentinel, class _BidirectionalIterator2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_BidirectionalIterator1, _BidirectionalIterator2>
__copy_backward(_BidirectionalIterator1 __first, _Sentinel __last, _BidirectionalIterator2 __result) {
return std::__dispatch_copy_or_move<_AlgPolicy, __copy_backward_loop<_AlgPolicy>, __copy_backward_trivial>(
std::move(__first), std::move(__last), std::move(__result));
}
template <class _BidirectionalIterator1, class _BidirectionalIterator2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _BidirectionalIterator2
copy_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last, _BidirectionalIterator2 __result) {
static_assert(std::is_copy_constructible<_BidirectionalIterator1>::value &&
std::is_copy_constructible<_BidirectionalIterator1>::value,
"Iterators must be copy constructible.");
return std::__copy_backward<_ClassicAlgPolicy>(std::move(__first), std::move(__last), std::move(__result)).second;
}
}}
# 1796 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/copy_if.h" 1 3
# 16 "/bin/../include/c++/v1/__algorithm/copy_if.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIterator, class _OutputIterator, class _Predicate>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _OutputIterator
copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred) {
for (; __first != __last; ++__first) {
if (__pred(*__first)) {
*__result = *__first;
++__result;
}
}
return __result;
}
}}
# 1797 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/copy_n.h" 1 3
# 20 "/bin/../include/c++/v1/__algorithm/copy_n.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIterator,
class _Size,
class _OutputIterator,
__enable_if_t<__has_input_iterator_category<_InputIterator>::value &&
!__has_random_access_iterator_category<_InputIterator>::value,
int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _OutputIterator
copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) {
typedef decltype(std::__convert_to_integral(__orig_n)) _IntegralSize;
_IntegralSize __n = __orig_n;
if (__n > 0) {
*__result = *__first;
++__result;
for (--__n; __n > 0; --__n) {
++__first;
*__result = *__first;
++__result;
}
}
return __result;
}
template <class _InputIterator,
class _Size,
class _OutputIterator,
__enable_if_t<__has_random_access_iterator_category<_InputIterator>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _OutputIterator
copy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result) {
typedef typename iterator_traits<_InputIterator>::difference_type difference_type;
typedef decltype(std::__convert_to_integral(__orig_n)) _IntegralSize;
_IntegralSize __n = __orig_n;
return std::copy(__first, __first + difference_type(__n), __result);
}
}}
# 1798 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/count.h" 1 3
# 15 "/bin/../include/c++/v1/__algorithm/count.h" 3
# 1 "/bin/../include/c++/v1/__bit/invert_if.h" 1 3
# 17 "/bin/../include/c++/v1/__bit/invert_if.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <bool _Invert, class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp __invert_if(_Tp __v) {
if (_Invert)
return ~__v;
return __v;
}
}}
# 16 "/bin/../include/c++/v1/__algorithm/count.h" 2 3
# 1 "/bin/../include/c++/v1/__bit/popcount.h" 1 3
# 12 "/bin/../include/c++/v1/__bit/popcount.h" 3
# 1 "/bin/../include/c++/v1/__bit/rotate.h" 1 3
# 19 "/bin/../include/c++/v1/__bit/rotate.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp __rotr(_Tp __t, int __cnt) noexcept {
static_assert(__libcpp_is_unsigned_integer<_Tp>::value, "__rotr requires an unsigned integer type");
const unsigned int __dig = numeric_limits<_Tp>::digits;
if ((__cnt % __dig) == 0)
return __t;
if (__cnt < 0) {
__cnt *= -1;
return (__t << (__cnt % __dig)) | (__t >> (__dig - (__cnt % __dig)));
}
return (__t >> (__cnt % __dig)) | (__t << (__dig - (__cnt % __dig)));
}
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp __rotl(_Tp __t, int __cnt) noexcept {
return std::__rotr(__t, -__cnt);
}
template <__libcpp_unsigned_integer _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp rotl(_Tp __t, int __cnt) noexcept {
return std::__rotl(__t, __cnt);
}
template <__libcpp_unsigned_integer _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp rotr(_Tp __t, int __cnt) noexcept {
return std::__rotr(__t, __cnt);
}
}}
# 13 "/bin/../include/c++/v1/__bit/popcount.h" 2 3
# 19 "/bin/../include/c++/v1/__bit/popcount.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 23 "/bin/../include/c++/v1/__bit/popcount.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int __libcpp_popcount(unsigned __x) noexcept {
return __builtin_popcount(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int __libcpp_popcount(unsigned long __x) noexcept {
return __builtin_popcountl(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int __libcpp_popcount(unsigned long long __x) noexcept {
return __builtin_popcountll(__x);
}
template <__libcpp_unsigned_integer _Tp>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int popcount(_Tp __t) noexcept {
if (sizeof(_Tp) <= sizeof(unsigned int))
return std::__libcpp_popcount(static_cast<unsigned int>(__t));
else if (sizeof(_Tp) <= sizeof(unsigned long))
return std::__libcpp_popcount(static_cast<unsigned long>(__t));
else if (sizeof(_Tp) <= sizeof(unsigned long long))
return std::__libcpp_popcount(static_cast<unsigned long long>(__t));
else {
int __ret = 0;
while (__t != 0) {
__ret += std::__libcpp_popcount(static_cast<unsigned long long>(__t));
__t >>= numeric_limits<unsigned long long>::digits;
}
return __ret;
}
}
}}
# 17 "/bin/../include/c++/v1/__algorithm/count.h" 2 3
# 1 "/bin/../include/c++/v1/__fwd/bit_reference.h" 1 3
# 16 "/bin/../include/c++/v1/__fwd/bit_reference.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Cp, bool _IsConst, typename _Cp::__storage_type = 0>
class __bit_iterator;
}}
# 21 "/bin/../include/c++/v1/__algorithm/count.h" 2 3
# 25 "/bin/../include/c++/v1/__algorithm/count.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 29 "/bin/../include/c++/v1/__algorithm/count.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _AlgPolicy, class _Iter, class _Sent, class _Tp, class _Proj>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename _IterOps<_AlgPolicy>::template __difference_type<_Iter>
__count(_Iter __first, _Sent __last, const _Tp& __value, _Proj& __proj) {
typename _IterOps<_AlgPolicy>::template __difference_type<_Iter> __r(0);
for (; __first != __last; ++__first)
if (std::__invoke(__proj, *__first) == __value)
++__r;
return __r;
}
template <bool _ToCount, class _Cp, bool _IsConst>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename __bit_iterator<_Cp, _IsConst>::difference_type
__count_bool(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) {
using _It = __bit_iterator<_Cp, _IsConst>;
using __storage_type = typename _It::__storage_type;
using difference_type = typename _It::difference_type;
const int __bits_per_word = _It::__bits_per_word;
difference_type __r = 0;
if (__first.__ctz_ != 0) {
__storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);
__storage_type __dn = std::min(__clz_f, __n);
__storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));
__r = std::__libcpp_popcount(std::__invert_if<!_ToCount>(*__first.__seg_) & __m);
__n -= __dn;
++__first.__seg_;
}
for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word)
__r += std::__libcpp_popcount(std::__invert_if<!_ToCount>(*__first.__seg_));
if (__n > 0) {
__storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);
__r += std::__libcpp_popcount(std::__invert_if<!_ToCount>(*__first.__seg_) & __m);
}
return __r;
}
template <class, class _Cp, bool _IsConst, class _Tp, class _Proj, __enable_if_t<__is_identity<_Proj>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __iter_diff_t<__bit_iterator<_Cp, _IsConst> >
__count(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value, _Proj&) {
if (__value)
return std::__count_bool<true>(__first, static_cast<typename _Cp::size_type>(__last - __first));
return std::__count_bool<false>(__first, static_cast<typename _Cp::size_type>(__last - __first));
}
template <class _InputIterator, class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __iter_diff_t<_InputIterator>
count(_InputIterator __first, _InputIterator __last, const _Tp& __value) {
__identity __proj;
return std::__count<_ClassicAlgPolicy>(__first, __last, __value, __proj);
}
}}
# 1799 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/count_if.h" 1 3
# 18 "/bin/../include/c++/v1/__algorithm/count_if.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIterator, class _Predicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
typename iterator_traits<_InputIterator>::difference_type
count_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) {
typename iterator_traits<_InputIterator>::difference_type __r(0);
for (; __first != __last; ++__first)
if (__pred(*__first))
++__r;
return __r;
}
}}
# 1800 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/equal.h" 1 3
# 31 "/bin/../include/c++/v1/__algorithm/equal.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 35 "/bin/../include/c++/v1/__algorithm/equal.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __equal_iter_impl(
_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate& __pred) {
for (; __first1 != __last1; ++__first1, (void)++__first2)
if (!__pred(*__first1, *__first2))
return false;
return true;
}
template <class _Tp,
class _Up,
class _BinaryPredicate,
__enable_if_t<__desugars_to<__equal_tag, _BinaryPredicate, _Tp, _Up>::value && !is_volatile<_Tp>::value &&
!is_volatile<_Up>::value && __libcpp_is_trivially_equality_comparable<_Tp, _Up>::value,
int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
__equal_iter_impl(_Tp* __first1, _Tp* __last1, _Up* __first2, _BinaryPredicate&) {
return std::__constexpr_memcmp_equal(__first1, __first2, __element_count(__last1 - __first1));
}
template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __pred) {
return std::__equal_iter_impl(
std::__unwrap_iter(__first1), std::__unwrap_iter(__last1), std::__unwrap_iter(__first2), __pred);
}
template <class _InputIterator1, class _InputIterator2>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2) {
return std::equal(__first1, __last1, __first2, __equal_to());
}
template <class _BinaryPredicate, class _InputIterator1, class _InputIterator2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
__equal(_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_BinaryPredicate __pred,
input_iterator_tag,
input_iterator_tag) {
for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void)++__first2)
if (!__pred(*__first1, *__first2))
return false;
return __first1 == __last1 && __first2 == __last2;
}
template <class _Iter1, class _Sent1, class _Iter2, class _Sent2, class _Pred, class _Proj1, class _Proj2>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __equal_impl(
_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, _Pred& __comp, _Proj1& __proj1, _Proj2& __proj2) {
while (__first1 != __last1 && __first2 != __last2) {
if (!std::__invoke(__comp, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2)))
return false;
++__first1;
++__first2;
}
return __first1 == __last1 && __first2 == __last2;
}
template <class _Tp,
class _Up,
class _Pred,
class _Proj1,
class _Proj2,
__enable_if_t<__desugars_to<__equal_tag, _Pred, _Tp, _Up>::value && __is_identity<_Proj1>::value &&
__is_identity<_Proj2>::value && !is_volatile<_Tp>::value && !is_volatile<_Up>::value &&
__libcpp_is_trivially_equality_comparable<_Tp, _Up>::value,
int> = 0>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
__equal_impl(_Tp* __first1, _Tp* __last1, _Up* __first2, _Up*, _Pred&, _Proj1&, _Proj2&) {
return std::__constexpr_memcmp_equal(__first1, __first2, __element_count(__last1 - __first1));
}
template <class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
__equal(_RandomAccessIterator1 __first1,
_RandomAccessIterator1 __last1,
_RandomAccessIterator2 __first2,
_RandomAccessIterator2 __last2,
_BinaryPredicate __pred,
random_access_iterator_tag,
random_access_iterator_tag) {
if (std::distance(__first1, __last1) != std::distance(__first2, __last2))
return false;
__identity __proj;
return std::__equal_impl(
std::__unwrap_iter(__first1),
std::__unwrap_iter(__last1),
std::__unwrap_iter(__first2),
std::__unwrap_iter(__last2),
__pred,
__proj,
__proj);
}
template <class _InputIterator1, class _InputIterator2, class _BinaryPredicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
equal(_InputIterator1 __first1,
_InputIterator1 __last1,
_InputIterator2 __first2,
_InputIterator2 __last2,
_BinaryPredicate __pred) {
return std::__equal<_BinaryPredicate&>(
__first1,
__last1,
__first2,
__last2,
__pred,
typename iterator_traits<_InputIterator1>::iterator_category(),
typename iterator_traits<_InputIterator2>::iterator_category());
}
template <class _InputIterator1, class _InputIterator2>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
equal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2) {
return std::__equal(
__first1,
__last1,
__first2,
__last2,
__equal_to(),
typename iterator_traits<_InputIterator1>::iterator_category(),
typename iterator_traits<_InputIterator2>::iterator_category());
}
}}
# 1801 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/equal_range.h" 1 3
# 17 "/bin/../include/c++/v1/__algorithm/equal_range.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/upper_bound.h" 1 3
# 26 "/bin/../include/c++/v1/__algorithm/upper_bound.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 30 "/bin/../include/c++/v1/__algorithm/upper_bound.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _AlgPolicy, class _Compare, class _Iter, class _Sent, class _Tp, class _Proj>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter
__upper_bound(_Iter __first, _Sent __last, const _Tp& __value, _Compare&& __comp, _Proj&& __proj) {
auto __len = _IterOps<_AlgPolicy>::distance(__first, __last);
while (__len != 0) {
auto __half_len = std::__half_positive(__len);
auto __mid = _IterOps<_AlgPolicy>::next(__first, __half_len);
if (std::__invoke(__comp, __value, std::__invoke(__proj, *__mid)))
__len = __half_len;
else {
__first = ++__mid;
__len -= __half_len + 1;
}
}
return __first;
}
template <class _ForwardIterator, class _Tp, class _Compare>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Compare __comp) {
static_assert(is_copy_constructible<_ForwardIterator>::value, "Iterator has to be copy constructible");
return std::__upper_bound<_ClassicAlgPolicy>(
std::move(__first), std::move(__last), __value, std::move(__comp), std::__identity());
}
template <class _ForwardIterator, class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) {
return std::upper_bound(std::move(__first), std::move(__last), __value, __less<>());
}
}}
# 18 "/bin/../include/c++/v1/__algorithm/equal_range.h" 2 3
# 32 "/bin/../include/c++/v1/__algorithm/equal_range.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 36 "/bin/../include/c++/v1/__algorithm/equal_range.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _AlgPolicy, class _Compare, class _Iter, class _Sent, class _Tp, class _Proj>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_Iter, _Iter>
__equal_range(_Iter __first, _Sent __last, const _Tp& __value, _Compare&& __comp, _Proj&& __proj) {
auto __len = _IterOps<_AlgPolicy>::distance(__first, __last);
_Iter __end = _IterOps<_AlgPolicy>::next(__first, __last);
while (__len != 0) {
auto __half_len = std::__half_positive(__len);
_Iter __mid = _IterOps<_AlgPolicy>::next(__first, __half_len);
if (std::__invoke(__comp, std::__invoke(__proj, *__mid), __value)) {
__first = ++__mid;
__len -= __half_len + 1;
} else if (std::__invoke(__comp, __value, std::__invoke(__proj, *__mid))) {
__end = __mid;
__len = __half_len;
} else {
_Iter __mp1 = __mid;
return pair<_Iter, _Iter>(std::__lower_bound<_AlgPolicy>(__first, __mid, __value, __comp, __proj),
std::__upper_bound<_AlgPolicy>(++__mp1, __end, __value, __comp, __proj));
}
}
return pair<_Iter, _Iter>(__first, __first);
}
template <class _ForwardIterator, class _Tp, class _Compare>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_ForwardIterator, _ForwardIterator>
equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, _Compare __comp) {
static_assert(__is_callable<_Compare, decltype(*__first), const _Tp&>::value, "The comparator has to be callable");
static_assert(is_copy_constructible<_ForwardIterator>::value, "Iterator has to be copy constructible");
return std::__equal_range<_ClassicAlgPolicy>(
std::move(__first),
std::move(__last),
__value,
static_cast<__comp_ref_type<_Compare> >(__comp),
std::__identity());
}
template <class _ForwardIterator, class _Tp>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_ForwardIterator, _ForwardIterator>
equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) {
return std::equal_range(std::move(__first), std::move(__last), __value, __less<>());
}
}}
# 1802 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/fill.h" 1 3
# 12 "/bin/../include/c++/v1/__algorithm/fill.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/fill_n.h" 1 3
# 18 "/bin/../include/c++/v1/__algorithm/fill_n.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _OutputIterator, class _Size, class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _OutputIterator
__fill_n(_OutputIterator __first, _Size __n, const _Tp& __value) {
for (; __n > 0; ++__first, (void)--__n)
*__first = __value;
return __first;
}
template <class _OutputIterator, class _Size, class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _OutputIterator
fill_n(_OutputIterator __first, _Size __n, const _Tp& __value) {
return std::__fill_n(__first, std::__convert_to_integral(__n), __value);
}
}}
# 13 "/bin/../include/c++/v1/__algorithm/fill.h" 2 3
# 18 "/bin/../include/c++/v1/__algorithm/fill.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _ForwardIterator, class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void
__fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value, forward_iterator_tag) {
for (; __first != __last; ++__first)
*__first = __value;
}
template <class _RandomAccessIterator, class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void
__fill(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __value, random_access_iterator_tag) {
std::fill_n(__first, __last - __first, __value);
}
template <class _ForwardIterator, class _Tp>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void
fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value) {
std::__fill(__first, __last, __value, typename iterator_traits<_ForwardIterator>::iterator_category());
}
}}
# 1803 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/find.h" 1 3
# 13 "/bin/../include/c++/v1/__algorithm/find.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/find_segment_if.h" 1 3
# 17 "/bin/../include/c++/v1/__algorithm/find_segment_if.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _SegmentedIterator, class _Pred, class _Proj>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _SegmentedIterator
__find_segment_if(_SegmentedIterator __first, _SegmentedIterator __last, _Pred __pred, _Proj& __proj) {
using _Traits = __segmented_iterator_traits<_SegmentedIterator>;
auto __sfirst = _Traits::__segment(__first);
auto __slast = _Traits::__segment(__last);
if (__sfirst == __slast)
return _Traits::__compose(__sfirst, __pred(_Traits::__local(__first), _Traits::__local(__last), __proj));
{
auto __llast = _Traits::__end(__sfirst);
auto __liter = __pred(_Traits::__local(__first), __llast, __proj);
if (__liter != __llast)
return _Traits::__compose(__sfirst, __liter);
}
++__sfirst;
while (__sfirst != __slast) {
auto __llast = _Traits::__end(__sfirst);
auto __liter = __pred(_Traits::__begin(__sfirst), _Traits::__end(__sfirst), __proj);
if (__liter != __llast)
return _Traits::__compose(__sfirst, __liter);
++__sfirst;
}
return _Traits::__compose(__sfirst, __pred(_Traits::__begin(__sfirst), _Traits::__local(__last), __proj));
}
}}
# 14 "/bin/../include/c++/v1/__algorithm/find.h" 2 3
# 1 "/bin/../include/c++/v1/__bit/countr.h" 1 3
# 19 "/bin/../include/c++/v1/__bit/countr.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 23 "/bin/../include/c++/v1/__bit/countr.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int __libcpp_ctz(unsigned __x) noexcept {
return __builtin_ctz(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int __libcpp_ctz(unsigned long __x) noexcept {
return __builtin_ctzl(__x);
}
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int __libcpp_ctz(unsigned long long __x) noexcept {
return __builtin_ctzll(__x);
}
template <__libcpp_unsigned_integer _Tp>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int countr_zero(_Tp __t) noexcept {
if (__t == 0)
return numeric_limits<_Tp>::digits;
if (sizeof(_Tp) <= sizeof(unsigned int))
return std::__libcpp_ctz(static_cast<unsigned int>(__t));
else if (sizeof(_Tp) <= sizeof(unsigned long))
return std::__libcpp_ctz(static_cast<unsigned long>(__t));
else if (sizeof(_Tp) <= sizeof(unsigned long long))
return std::__libcpp_ctz(static_cast<unsigned long long>(__t));
else {
int __ret = 0;
const unsigned int __ulldigits = numeric_limits<unsigned long long>::digits;
while (static_cast<unsigned long long>(__t) == 0uLL) {
__ret += __ulldigits;
__t >>= __ulldigits;
}
return __ret + std::__libcpp_ctz(static_cast<unsigned long long>(__t));
}
}
template <__libcpp_unsigned_integer _Tp>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int countr_one(_Tp __t) noexcept {
return __t != numeric_limits<_Tp>::max() ? std::countr_zero(static_cast<_Tp>(~__t)) : numeric_limits<_Tp>::digits;
}
}}
# 17 "/bin/../include/c++/v1/__algorithm/find.h" 2 3
# 31 "/bin/../include/c++/v1/__algorithm/find.h" 3
# 1 "third_party/stl/cxx17/cwchar" 1 3
# 1 "/bin/../include/c++/v1/cwchar" 1 3
# 112 "/bin/../include/c++/v1/cwchar" 3
# 1 "third_party/stl/cxx17/cwctype" 1 3
# 1 "/bin/../include/c++/v1/cwctype" 1 3
# 54 "/bin/../include/c++/v1/cwctype" 3
# 1 "third_party/stl/cxx17/cctype" 1 3
# 1 "/bin/../include/c++/v1/cctype" 1 3
# 40 "/bin/../include/c++/v1/cctype" 3
# 1 "third_party/stl/cxx17/ctype.h" 1 3
# 1 "/bin/../include/c++/v1/ctype.h" 1 3
# 36 "/bin/../include/c++/v1/ctype.h" 3
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/ctype.h" 1 3 4
# 28 "third_party/grte/v5_x86/release/usr/grte/v5/include/ctype.h" 3 4
extern "C" {
# 46 "third_party/grte/v5_x86/release/usr/grte/v5/include/ctype.h" 3 4
enum
{
_ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)),
_ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)),
_ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)),
_ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)),
_ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)),
_ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)),
_ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)),
_ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)),
_ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)),
_IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)),
_ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)),
_ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8))
};
# 79 "third_party/grte/v5_x86/release/usr/grte/v5/include/ctype.h" 3 4
extern const unsigned short int **__ctype_b_loc (void)
throw () __attribute__ ((__const__));
extern const __int32_t **__ctype_tolower_loc (void)
throw () __attribute__ ((__const__));
extern const __int32_t **__ctype_toupper_loc (void)
throw () __attribute__ ((__const__));
# 108 "third_party/grte/v5_x86/release/usr/grte/v5/include/ctype.h" 3 4
extern int isalnum (int) throw ();
extern int isalpha (int) throw ();
extern int iscntrl (int) throw ();
extern int isdigit (int) throw ();
extern int islower (int) throw ();
extern int isgraph (int) throw ();
extern int isprint (int) throw ();
extern int ispunct (int) throw ();
extern int isspace (int) throw ();
extern int isupper (int) throw ();
extern int isxdigit (int) throw ();
extern int tolower (int __c) throw ();
extern int toupper (int __c) throw ();
extern int isblank (int) throw ();
extern int isctype (int __c, int __mask) throw ();
extern int isascii (int __c) throw ();
extern int toascii (int __c) throw ();
extern int _toupper (int) throw ();
extern int _tolower (int) throw ();
# 251 "third_party/grte/v5_x86/release/usr/grte/v5/include/ctype.h" 3 4
extern int isalnum_l (int, locale_t) throw ();
extern int isalpha_l (int, locale_t) throw ();
extern int iscntrl_l (int, locale_t) throw ();
extern int isdigit_l (int, locale_t) throw ();
extern int islower_l (int, locale_t) throw ();
extern int isgraph_l (int, locale_t) throw ();
extern int isprint_l (int, locale_t) throw ();
extern int ispunct_l (int, locale_t) throw ();
extern int isspace_l (int, locale_t) throw ();
extern int isupper_l (int, locale_t) throw ();
extern int isxdigit_l (int, locale_t) throw ();
extern int isblank_l (int, locale_t) throw ();
extern int __tolower_l (int __c, locale_t __l) throw ();
extern int tolower_l (int __c, locale_t __l) throw ();
extern int __toupper_l (int __c, locale_t __l) throw ();
extern int toupper_l (int __c, locale_t __l) throw ();
# 327 "third_party/grte/v5_x86/release/usr/grte/v5/include/ctype.h" 3 4
}
# 40 "/bin/../include/c++/v1/ctype.h" 2 3
# 5 "third_party/stl/cxx17/ctype.h" 2 3
# 41 "/bin/../include/c++/v1/cctype" 2 3
# 51 "/bin/../include/c++/v1/cctype" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
# 111 "/bin/../include/c++/v1/cctype" 3
using ::isalnum __attribute__((__using_if_exists__));
using ::isalpha __attribute__((__using_if_exists__));
using ::isblank __attribute__((__using_if_exists__));
using ::iscntrl __attribute__((__using_if_exists__));
using ::isdigit __attribute__((__using_if_exists__));
using ::isgraph __attribute__((__using_if_exists__));
using ::islower __attribute__((__using_if_exists__));
using ::isprint __attribute__((__using_if_exists__));
using ::ispunct __attribute__((__using_if_exists__));
using ::isspace __attribute__((__using_if_exists__));
using ::isupper __attribute__((__using_if_exists__));
using ::isxdigit __attribute__((__using_if_exists__));
using ::tolower __attribute__((__using_if_exists__));
using ::toupper __attribute__((__using_if_exists__));
}}
# 5 "third_party/stl/cxx17/cctype" 2 3
# 55 "/bin/../include/c++/v1/cwctype" 2 3
# 1 "/bin/../include/c++/v1/wctype.h" 1 3
# 56 "/bin/../include/c++/v1/wctype.h" 3
# 68 "/bin/../include/c++/v1/wctype.h" 3
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/wctype.h" 1 3 4
# 28 "third_party/grte/v5_x86/release/usr/grte/v5/include/wctype.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/wint_t.h" 1 3 4
# 20 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/wint_t.h" 3 4
typedef unsigned int wint_t;
# 29 "third_party/grte/v5_x86/release/usr/grte/v5/include/wctype.h" 2 3 4
# 38 "third_party/grte/v5_x86/release/usr/grte/v5/include/wctype.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wctype-wchar.h" 1 3 4
# 38 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wctype-wchar.h" 3 4
typedef unsigned long int wctype_t;
# 56 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wctype-wchar.h" 3 4
enum
{
__ISwupper = 0,
__ISwlower = 1,
__ISwalpha = 2,
__ISwdigit = 3,
__ISwxdigit = 4,
__ISwspace = 5,
__ISwprint = 6,
__ISwgraph = 7,
__ISwblank = 8,
__ISwcntrl = 9,
__ISwpunct = 10,
__ISwalnum = 11,
_ISwupper = ((__ISwupper) < 8 ? (int) ((1UL << (__ISwupper)) << 24) : ((__ISwupper) < 16 ? (int) ((1UL << (__ISwupper)) << 8) : ((__ISwupper) < 24 ? (int) ((1UL << (__ISwupper)) >> 8) : (int) ((1UL << (__ISwupper)) >> 24)))),
_ISwlower = ((__ISwlower) < 8 ? (int) ((1UL << (__ISwlower)) << 24) : ((__ISwlower) < 16 ? (int) ((1UL << (__ISwlower)) << 8) : ((__ISwlower) < 24 ? (int) ((1UL << (__ISwlower)) >> 8) : (int) ((1UL << (__ISwlower)) >> 24)))),
_ISwalpha = ((__ISwalpha) < 8 ? (int) ((1UL << (__ISwalpha)) << 24) : ((__ISwalpha) < 16 ? (int) ((1UL << (__ISwalpha)) << 8) : ((__ISwalpha) < 24 ? (int) ((1UL << (__ISwalpha)) >> 8) : (int) ((1UL << (__ISwalpha)) >> 24)))),
_ISwdigit = ((__ISwdigit) < 8 ? (int) ((1UL << (__ISwdigit)) << 24) : ((__ISwdigit) < 16 ? (int) ((1UL << (__ISwdigit)) << 8) : ((__ISwdigit) < 24 ? (int) ((1UL << (__ISwdigit)) >> 8) : (int) ((1UL << (__ISwdigit)) >> 24)))),
_ISwxdigit = ((__ISwxdigit) < 8 ? (int) ((1UL << (__ISwxdigit)) << 24) : ((__ISwxdigit) < 16 ? (int) ((1UL << (__ISwxdigit)) << 8) : ((__ISwxdigit) < 24 ? (int) ((1UL << (__ISwxdigit)) >> 8) : (int) ((1UL << (__ISwxdigit)) >> 24)))),
_ISwspace = ((__ISwspace) < 8 ? (int) ((1UL << (__ISwspace)) << 24) : ((__ISwspace) < 16 ? (int) ((1UL << (__ISwspace)) << 8) : ((__ISwspace) < 24 ? (int) ((1UL << (__ISwspace)) >> 8) : (int) ((1UL << (__ISwspace)) >> 24)))),
_ISwprint = ((__ISwprint) < 8 ? (int) ((1UL << (__ISwprint)) << 24) : ((__ISwprint) < 16 ? (int) ((1UL << (__ISwprint)) << 8) : ((__ISwprint) < 24 ? (int) ((1UL << (__ISwprint)) >> 8) : (int) ((1UL << (__ISwprint)) >> 24)))),
_ISwgraph = ((__ISwgraph) < 8 ? (int) ((1UL << (__ISwgraph)) << 24) : ((__ISwgraph) < 16 ? (int) ((1UL << (__ISwgraph)) << 8) : ((__ISwgraph) < 24 ? (int) ((1UL << (__ISwgraph)) >> 8) : (int) ((1UL << (__ISwgraph)) >> 24)))),
_ISwblank = ((__ISwblank) < 8 ? (int) ((1UL << (__ISwblank)) << 24) : ((__ISwblank) < 16 ? (int) ((1UL << (__ISwblank)) << 8) : ((__ISwblank) < 24 ? (int) ((1UL << (__ISwblank)) >> 8) : (int) ((1UL << (__ISwblank)) >> 24)))),
_ISwcntrl = ((__ISwcntrl) < 8 ? (int) ((1UL << (__ISwcntrl)) << 24) : ((__ISwcntrl) < 16 ? (int) ((1UL << (__ISwcntrl)) << 8) : ((__ISwcntrl) < 24 ? (int) ((1UL << (__ISwcntrl)) >> 8) : (int) ((1UL << (__ISwcntrl)) >> 24)))),
_ISwpunct = ((__ISwpunct) < 8 ? (int) ((1UL << (__ISwpunct)) << 24) : ((__ISwpunct) < 16 ? (int) ((1UL << (__ISwpunct)) << 8) : ((__ISwpunct) < 24 ? (int) ((1UL << (__ISwpunct)) >> 8) : (int) ((1UL << (__ISwpunct)) >> 24)))),
_ISwalnum = ((__ISwalnum) < 8 ? (int) ((1UL << (__ISwalnum)) << 24) : ((__ISwalnum) < 16 ? (int) ((1UL << (__ISwalnum)) << 8) : ((__ISwalnum) < 24 ? (int) ((1UL << (__ISwalnum)) >> 8) : (int) ((1UL << (__ISwalnum)) >> 24))))
};
extern "C" {
extern int iswalnum (wint_t __wc) throw ();
extern int iswalpha (wint_t __wc) throw ();
extern int iswcntrl (wint_t __wc) throw ();
extern int iswdigit (wint_t __wc) throw ();
extern int iswgraph (wint_t __wc) throw ();
extern int iswlower (wint_t __wc) throw ();
extern int iswprint (wint_t __wc) throw ();
extern int iswpunct (wint_t __wc) throw ();
extern int iswspace (wint_t __wc) throw ();
extern int iswupper (wint_t __wc) throw ();
extern int iswxdigit (wint_t __wc) throw ();
extern int iswblank (wint_t __wc) throw ();
# 155 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/wctype-wchar.h" 3 4
extern wctype_t wctype (const char *__property) throw ();
extern int iswctype (wint_t __wc, wctype_t __desc) throw ();
extern wint_t towlower (wint_t __wc) throw ();
extern wint_t towupper (wint_t __wc) throw ();
}
# 39 "third_party/grte/v5_x86/release/usr/grte/v5/include/wctype.h" 2 3 4
extern "C" {
typedef const __int32_t *wctrans_t;
extern wctrans_t wctrans (const char *__property) throw ();
extern wint_t towctrans (wint_t __wc, wctrans_t __desc) throw ();
extern int iswalnum_l (wint_t __wc, locale_t __locale) throw ();
extern int iswalpha_l (wint_t __wc, locale_t __locale) throw ();
extern int iswcntrl_l (wint_t __wc, locale_t __locale) throw ();
extern int iswdigit_l (wint_t __wc, locale_t __locale) throw ();
extern int iswgraph_l (wint_t __wc, locale_t __locale) throw ();
extern int iswlower_l (wint_t __wc, locale_t __locale) throw ();
extern int iswprint_l (wint_t __wc, locale_t __locale) throw ();
extern int iswpunct_l (wint_t __wc, locale_t __locale) throw ();
extern int iswspace_l (wint_t __wc, locale_t __locale) throw ();
extern int iswupper_l (wint_t __wc, locale_t __locale) throw ();
extern int iswxdigit_l (wint_t __wc, locale_t __locale) throw ();
extern int iswblank_l (wint_t __wc, locale_t __locale) throw ();
extern wctype_t wctype_l (const char *__property, locale_t __locale)
throw ();
extern int iswctype_l (wint_t __wc, wctype_t __desc, locale_t __locale)
throw ();
extern wint_t towlower_l (wint_t __wc, locale_t __locale) throw ();
extern wint_t towupper_l (wint_t __wc, locale_t __locale) throw ();
extern wctrans_t wctrans_l (const char *__property, locale_t __locale)
throw ();
extern wint_t towctrans_l (wint_t __wc, wctrans_t __desc,
locale_t __locale) throw ();
}
# 69 "/bin/../include/c++/v1/wctype.h" 2 3
# 57 "/bin/../include/c++/v1/cwctype" 2 3
# 68 "/bin/../include/c++/v1/cwctype" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
using ::wint_t __attribute__((__using_if_exists__));
using ::wctrans_t __attribute__((__using_if_exists__));
using ::wctype_t __attribute__((__using_if_exists__));
using ::iswalnum __attribute__((__using_if_exists__));
using ::iswalpha __attribute__((__using_if_exists__));
using ::iswblank __attribute__((__using_if_exists__));
using ::iswcntrl __attribute__((__using_if_exists__));
using ::iswdigit __attribute__((__using_if_exists__));
using ::iswgraph __attribute__((__using_if_exists__));
using ::iswlower __attribute__((__using_if_exists__));
using ::iswprint __attribute__((__using_if_exists__));
using ::iswpunct __attribute__((__using_if_exists__));
using ::iswspace __attribute__((__using_if_exists__));
using ::iswupper __attribute__((__using_if_exists__));
using ::iswxdigit __attribute__((__using_if_exists__));
using ::iswctype __attribute__((__using_if_exists__));
using ::wctype __attribute__((__using_if_exists__));
using ::towlower __attribute__((__using_if_exists__));
using ::towupper __attribute__((__using_if_exists__));
using ::towctrans __attribute__((__using_if_exists__));
using ::wctrans __attribute__((__using_if_exists__));
}}
# 5 "third_party/stl/cxx17/cwctype" 2 3
# 113 "/bin/../include/c++/v1/cwchar" 2 3
# 1 "/bin/../include/c++/v1/wchar.h" 1 3
# 109 "/bin/../include/c++/v1/wchar.h" 3
# 1 "/bin/../include/c++/v1/stddef.h" 1 3
# 110 "/bin/../include/c++/v1/wchar.h" 2 3
# 118 "/bin/../include/c++/v1/wchar.h" 3
# 127 "/bin/../include/c++/v1/wchar.h" 3
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 1 3 4
# 27 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/libc-header-start.h" 1 3 4
# 28 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 2 3 4
# 1 "/bin/../include/c++/v1/stddef.h" 1 3 4
# 15 "/bin/../include/c++/v1/stddef.h" 3
# 1 "include/stddef.h" 1 3
# 87 "include/stddef.h" 3
# 1 "include/__stddef_wchar_t.h" 1 3
# 88 "include/stddef.h" 2 3
# 1 "include/__stddef_null.h" 1 3
# 93 "include/stddef.h" 2 3
# 18 "/bin/../include/c++/v1/stddef.h" 2 3
# 36 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 2 3 4
# 1 "include/stdarg.h" 1 3 4
# 55 "include/stdarg.h" 3 4
# 1 "include/__stdarg___gnuc_va_list.h" 1 3 4
# 12 "include/__stdarg___gnuc_va_list.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 56 "include/stdarg.h" 2 3 4
# 39 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/mbstate_t.h" 1 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/__mbstate_t.h" 1 3 4
# 13 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/__mbstate_t.h" 3 4
typedef struct
{
int __count;
union
{
unsigned int __wch;
char __wchb[4];
} __value;
} __mbstate_t;
# 5 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/mbstate_t.h" 2 3 4
typedef __mbstate_t mbstate_t;
# 43 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/__FILE.h" 1 3 4
struct _IO_FILE;
typedef struct _IO_FILE __FILE;
# 44 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 2 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/types/FILE.h" 1 3 4
struct _IO_FILE;
typedef struct _IO_FILE FILE;
# 47 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 2 3 4
# 79 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern "C" {
struct tm;
extern wchar_t *wcscpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern wchar_t *wcscat (wchar_t *__restrict __dest,
const wchar_t *__restrict __src)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern wchar_t *wcsncat (wchar_t *__restrict __dest,
const wchar_t *__restrict __src, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) throw ();
extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
size_t __n) throw ();
extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
locale_t __loc) throw ();
extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
size_t __n, locale_t __loc) throw ();
extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) throw ();
extern size_t wcsxfrm (wchar_t *__restrict __s1,
const wchar_t *__restrict __s2, size_t __n) throw ();
extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
locale_t __loc) throw ();
extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
size_t __n, locale_t __loc) throw ();
extern wchar_t *wcsdup (const wchar_t *__s) throw () __attribute__ ((__malloc__));
extern "C++" wchar_t *wcschr (wchar_t *__wcs, wchar_t __wc)
throw () __asm ("wcschr") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
throw () __asm ("wcschr") __attribute__ ((__pure__));
extern "C++" wchar_t *wcsrchr (wchar_t *__wcs, wchar_t __wc)
throw () __asm ("wcsrchr") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
throw () __asm ("wcsrchr") __attribute__ ((__pure__));
# 181 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc)
throw () __attribute__ ((__pure__));
extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
throw () __attribute__ ((__pure__));
extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
throw () __attribute__ ((__pure__));
extern "C++" wchar_t *wcspbrk (wchar_t *__wcs, const wchar_t *__accept)
throw () __asm ("wcspbrk") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcspbrk (const wchar_t *__wcs,
const wchar_t *__accept)
throw () __asm ("wcspbrk") __attribute__ ((__pure__));
extern "C++" wchar_t *wcsstr (wchar_t *__haystack, const wchar_t *__needle)
throw () __asm ("wcsstr") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcsstr (const wchar_t *__haystack,
const wchar_t *__needle)
throw () __asm ("wcsstr") __attribute__ ((__pure__));
extern wchar_t *wcstok (wchar_t *__restrict __s,
const wchar_t *__restrict __delim,
wchar_t **__restrict __ptr) throw ();
extern size_t wcslen (const wchar_t *__s) throw () __attribute__ ((__pure__));
extern "C++" wchar_t *wcswcs (wchar_t *__haystack, const wchar_t *__needle)
throw () __asm ("wcswcs") __attribute__ ((__pure__));
extern "C++" const wchar_t *wcswcs (const wchar_t *__haystack,
const wchar_t *__needle)
throw () __asm ("wcswcs") __attribute__ ((__pure__));
# 240 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
throw () __attribute__ ((__pure__));
extern "C++" wchar_t *wmemchr (wchar_t *__s, wchar_t __c, size_t __n)
throw () __asm ("wmemchr") __attribute__ ((__pure__));
extern "C++" const wchar_t *wmemchr (const wchar_t *__s, wchar_t __c,
size_t __n)
throw () __asm ("wmemchr") __attribute__ ((__pure__));
extern int wmemcmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
throw () __attribute__ ((__pure__));
extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
const wchar_t *__restrict __s2, size_t __n) throw ();
extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
throw ();
extern wchar_t *wmemset (wchar_t *__s, wchar_t __c, size_t __n) throw ();
extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
const wchar_t *__restrict __s2, size_t __n)
throw ();
extern wint_t btowc (int __c) throw ();
extern int wctob (wint_t __c) throw ();
extern int mbsinit (const mbstate_t *__ps) throw () __attribute__ ((__pure__));
extern size_t mbrtowc (wchar_t *__restrict __pwc,
const char *__restrict __s, size_t __n,
mbstate_t *__restrict __p) throw ();
extern size_t wcrtomb (char *__restrict __s, wchar_t __wc,
mbstate_t *__restrict __ps) throw ();
extern size_t __mbrlen (const char *__restrict __s, size_t __n,
mbstate_t *__restrict __ps) throw ();
extern size_t mbrlen (const char *__restrict __s, size_t __n,
mbstate_t *__restrict __ps) throw ();
# 337 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern size_t mbsrtowcs (wchar_t *__restrict __dst,
const char **__restrict __src, size_t __len,
mbstate_t *__restrict __ps) throw ();
extern size_t wcsrtombs (char *__restrict __dst,
const wchar_t **__restrict __src, size_t __len,
mbstate_t *__restrict __ps) throw ();
extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
const char **__restrict __src, size_t __nmc,
size_t __len, mbstate_t *__restrict __ps) throw ();
extern size_t wcsnrtombs (char *__restrict __dst,
const wchar_t **__restrict __src,
size_t __nwc, size_t __len,
mbstate_t *__restrict __ps) throw ();
extern int wcwidth (wchar_t __c) throw ();
extern int wcswidth (const wchar_t *__s, size_t __n) throw ();
extern double wcstod (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) throw ();
extern float wcstof (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) throw ();
extern long double wcstold (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) throw ();
# 396 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern _Float32 wcstof32 (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) throw ();
extern _Float64 wcstof64 (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) throw ();
# 411 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern _Float32x wcstof32x (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) throw ();
extern _Float64x wcstof64x (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr) throw ();
# 428 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern long int wcstol (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base) throw ();
extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base)
throw ();
__extension__
extern long long int wcstoll (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base)
throw ();
__extension__
extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base) throw ();
__extension__
extern long long int wcstoq (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base)
throw ();
__extension__
extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base) throw ();
extern long int wcstol_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, int __base,
locale_t __loc) throw ();
extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base, locale_t __loc) throw ();
__extension__
extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base, locale_t __loc) throw ();
__extension__
extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
int __base, locale_t __loc)
throw ();
extern double wcstod_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, locale_t __loc)
throw ();
extern float wcstof_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr, locale_t __loc)
throw ();
extern long double wcstold_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) throw ();
# 511 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern _Float32 wcstof32_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) throw ();
extern _Float64 wcstof64_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) throw ();
# 529 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern _Float32x wcstof32x_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) throw ();
extern _Float64x wcstof64x_l (const wchar_t *__restrict __nptr,
wchar_t **__restrict __endptr,
locale_t __loc) throw ();
# 551 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src) throw ();
extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
const wchar_t *__restrict __src, size_t __n)
throw ();
# 567 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern __FILE *open_wmemstream (wchar_t **__bufloc, size_t *__sizeloc) throw ();
extern int fwide (__FILE *__fp, int __mode) throw ();
extern int fwprintf (__FILE *__restrict __stream,
const wchar_t *__restrict __format, ...)
;
extern int wprintf (const wchar_t *__restrict __format, ...)
;
extern int swprintf (wchar_t *__restrict __s, size_t __n,
const wchar_t *__restrict __format, ...)
throw () ;
extern int vfwprintf (__FILE *__restrict __s,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
;
extern int vwprintf (const wchar_t *__restrict __format,
__gnuc_va_list __arg)
;
extern int vswprintf (wchar_t *__restrict __s, size_t __n,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
throw () ;
extern int fwscanf (__FILE *__restrict __stream,
const wchar_t *__restrict __format, ...)
;
extern int wscanf (const wchar_t *__restrict __format, ...)
;
extern int swscanf (const wchar_t *__restrict __s,
const wchar_t *__restrict __format, ...)
throw () ;
# 673 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern int vfwscanf (__FILE *__restrict __s,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
;
extern int vwscanf (const wchar_t *__restrict __format,
__gnuc_va_list __arg)
;
extern int vswscanf (const wchar_t *__restrict __s,
const wchar_t *__restrict __format,
__gnuc_va_list __arg)
throw () ;
# 727 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern wint_t fgetwc (__FILE *__stream);
extern wint_t getwc (__FILE *__stream);
extern wint_t getwchar (void);
extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
extern wint_t putwc (wchar_t __wc, __FILE *__stream);
extern wint_t putwchar (wchar_t __wc);
extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
__FILE *__restrict __stream);
extern int fputws (const wchar_t *__restrict __ws,
__FILE *__restrict __stream);
extern wint_t ungetwc (wint_t __wc, __FILE *__stream);
# 782 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern wint_t getwc_unlocked (__FILE *__stream);
extern wint_t getwchar_unlocked (void);
extern wint_t fgetwc_unlocked (__FILE *__stream);
extern wint_t fputwc_unlocked (wchar_t __wc, __FILE *__stream);
# 808 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern wint_t putwc_unlocked (wchar_t __wc, __FILE *__stream);
extern wint_t putwchar_unlocked (wchar_t __wc);
# 818 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
extern wchar_t *fgetws_unlocked (wchar_t *__restrict __ws, int __n,
__FILE *__restrict __stream);
extern int fputws_unlocked (const wchar_t *__restrict __ws,
__FILE *__restrict __stream);
extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
const wchar_t *__restrict __format,
const struct tm *__restrict __tp) throw ();
extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
const wchar_t *__restrict __format,
const struct tm *__restrict __tp,
locale_t __loc) throw ();
# 857 "third_party/grte/v5_x86/release/usr/grte/v5/include/wchar.h" 3 4
}
# 128 "/bin/../include/c++/v1/wchar.h" 2 3
# 115 "/bin/../include/c++/v1/cwchar" 2 3
# 126 "/bin/../include/c++/v1/cwchar" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
using ::mbstate_t __attribute__((__using_if_exists__));
using ::size_t __attribute__((__using_if_exists__));
using ::tm __attribute__((__using_if_exists__));
using ::wint_t __attribute__((__using_if_exists__));
using ::FILE __attribute__((__using_if_exists__));
using ::fwprintf __attribute__((__using_if_exists__));
using ::fwscanf __attribute__((__using_if_exists__));
using ::swprintf __attribute__((__using_if_exists__));
using ::vfwprintf __attribute__((__using_if_exists__));
using ::vswprintf __attribute__((__using_if_exists__));
using ::swscanf __attribute__((__using_if_exists__));
using ::vfwscanf __attribute__((__using_if_exists__));
using ::vswscanf __attribute__((__using_if_exists__));
using ::fgetwc __attribute__((__using_if_exists__));
using ::fgetws __attribute__((__using_if_exists__));
using ::fputwc __attribute__((__using_if_exists__));
using ::fputws __attribute__((__using_if_exists__));
using ::fwide __attribute__((__using_if_exists__));
using ::getwc __attribute__((__using_if_exists__));
using ::putwc __attribute__((__using_if_exists__));
using ::ungetwc __attribute__((__using_if_exists__));
using ::wcstod __attribute__((__using_if_exists__));
using ::wcstof __attribute__((__using_if_exists__));
using ::wcstold __attribute__((__using_if_exists__));
using ::wcstol __attribute__((__using_if_exists__));
using ::wcstoll __attribute__((__using_if_exists__));
using ::wcstoul __attribute__((__using_if_exists__));
using ::wcstoull __attribute__((__using_if_exists__));
using ::wcscpy __attribute__((__using_if_exists__));
using ::wcsncpy __attribute__((__using_if_exists__));
using ::wcscat __attribute__((__using_if_exists__));
using ::wcsncat __attribute__((__using_if_exists__));
using ::wcscmp __attribute__((__using_if_exists__));
using ::wcscoll __attribute__((__using_if_exists__));
using ::wcsncmp __attribute__((__using_if_exists__));
using ::wcsxfrm __attribute__((__using_if_exists__));
using ::wcschr __attribute__((__using_if_exists__));
using ::wcspbrk __attribute__((__using_if_exists__));
using ::wcsrchr __attribute__((__using_if_exists__));
using ::wcsstr __attribute__((__using_if_exists__));
using ::wmemchr __attribute__((__using_if_exists__));
using ::wcscspn __attribute__((__using_if_exists__));
using ::wcslen __attribute__((__using_if_exists__));
using ::wcsspn __attribute__((__using_if_exists__));
using ::wcstok __attribute__((__using_if_exists__));
using ::wmemcmp __attribute__((__using_if_exists__));
using ::wmemcpy __attribute__((__using_if_exists__));
using ::wmemmove __attribute__((__using_if_exists__));
using ::wmemset __attribute__((__using_if_exists__));
using ::wcsftime __attribute__((__using_if_exists__));
using ::btowc __attribute__((__using_if_exists__));
using ::wctob __attribute__((__using_if_exists__));
using ::mbsinit __attribute__((__using_if_exists__));
using ::mbrlen __attribute__((__using_if_exists__));
using ::mbrtowc __attribute__((__using_if_exists__));
using ::wcrtomb __attribute__((__using_if_exists__));
using ::mbsrtowcs __attribute__((__using_if_exists__));
using ::wcsrtombs __attribute__((__using_if_exists__));
using ::getwchar __attribute__((__using_if_exists__));
using ::vwscanf __attribute__((__using_if_exists__));
using ::wscanf __attribute__((__using_if_exists__));
using ::putwchar __attribute__((__using_if_exists__));
using ::vwprintf __attribute__((__using_if_exists__));
using ::wprintf __attribute__((__using_if_exists__));
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr size_t __constexpr_wcslen(const wchar_t* __str) {
return __builtin_wcslen(__str);
# 209 "/bin/../include/c++/v1/cwchar" 3
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr int
__constexpr_wmemcmp(const wchar_t* __lhs, const wchar_t* __rhs, size_t __count) {
return __builtin_wmemcmp(__lhs, __rhs, __count);
# 227 "/bin/../include/c++/v1/cwchar" 3
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp* __constexpr_wmemchr(_Tp* __str, _Up __value, size_t __count) {
static_assert(sizeof(_Tp) == sizeof(wchar_t)&& alignof(_Tp) >= alignof(wchar_t) &&
__libcpp_is_trivially_equality_comparable<_Tp, _Tp>::value,
"Calling wmemchr on non-trivially equality comparable types is unsafe.");
if (!__libcpp_is_constant_evaluated()) {
wchar_t __value_buffer = 0;
__builtin_memcpy(&__value_buffer, &__value, sizeof(wchar_t));
return reinterpret_cast<_Tp*>(
__builtin_wmemchr(reinterpret_cast<__apply_cv_t<_Tp, wchar_t>*>(__str), __value_buffer, __count));
}
else if constexpr (is_same_v<remove_cv_t<_Tp>, wchar_t>)
return __builtin_wmemchr(__str, __value, __count);
for (; __count; --__count) {
if (*__str == __value)
return __str;
++__str;
}
return nullptr;
}
}}
# 5 "third_party/stl/cxx17/cwchar" 2 3
# 32 "/bin/../include/c++/v1/__algorithm/find.h" 2 3
# 36 "/bin/../include/c++/v1/__algorithm/find.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 40 "/bin/../include/c++/v1/__algorithm/find.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Iter, class _Sent, class _Tp, class _Proj>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter
__find_impl(_Iter __first, _Sent __last, const _Tp& __value, _Proj& __proj) {
for (; __first != __last; ++__first)
if (std::__invoke(__proj, *__first) == __value)
break;
return __first;
}
template <class _Tp,
class _Up,
class _Proj,
__enable_if_t<__is_identity<_Proj>::value && __libcpp_is_trivially_equality_comparable<_Tp, _Up>::value &&
sizeof(_Tp) == 1,
int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp*
__find_impl(_Tp* __first, _Tp* __last, const _Up& __value, _Proj&) {
if (auto __ret = std::__constexpr_memchr(__first, __value, __last - __first))
return __ret;
return __last;
}
template <class _Tp,
class _Up,
class _Proj,
__enable_if_t<__is_identity<_Proj>::value && __libcpp_is_trivially_equality_comparable<_Tp, _Up>::value &&
sizeof(_Tp) == sizeof(wchar_t) && alignof(_Tp) >= alignof(wchar_t),
int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp*
__find_impl(_Tp* __first, _Tp* __last, const _Up& __value, _Proj&) {
if (auto __ret = std::__constexpr_wmemchr(__first, __value, __last - __first))
return __ret;
return __last;
}
template <class _Tp,
class _Up,
class _Proj,
__enable_if_t<__is_identity<_Proj>::value && !__libcpp_is_trivially_equality_comparable<_Tp, _Up>::value &&
is_integral<_Tp>::value && is_integral<_Up>::value &&
is_signed<_Tp>::value == is_signed<_Up>::value,
int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp*
__find_impl(_Tp* __first, _Tp* __last, const _Up& __value, _Proj& __proj) {
if (__value < numeric_limits<_Tp>::min() || __value > numeric_limits<_Tp>::max())
return __last;
return std::__find_impl(__first, __last, _Tp(__value), __proj);
}
template <bool _ToFind, class _Cp, bool _IsConst>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __bit_iterator<_Cp, _IsConst>
__find_bool(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n) {
using _It = __bit_iterator<_Cp, _IsConst>;
using __storage_type = typename _It::__storage_type;
const int __bits_per_word = _It::__bits_per_word;
if (__first.__ctz_ != 0) {
__storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);
__storage_type __dn = std::min(__clz_f, __n);
__storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));
__storage_type __b = std::__invert_if<!_ToFind>(*__first.__seg_) & __m;
if (__b)
return _It(__first.__seg_, static_cast<unsigned>(std::__libcpp_ctz(__b)));
if (__n == __dn)
return __first + __n;
__n -= __dn;
++__first.__seg_;
}
for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word) {
__storage_type __b = std::__invert_if<!_ToFind>(*__first.__seg_);
if (__b)
return _It(__first.__seg_, static_cast<unsigned>(std::__libcpp_ctz(__b)));
}
if (__n > 0) {
__storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);
__storage_type __b = std::__invert_if<!_ToFind>(*__first.__seg_) & __m;
if (__b)
return _It(__first.__seg_, static_cast<unsigned>(std::__libcpp_ctz(__b)));
}
return _It(__first.__seg_, static_cast<unsigned>(__n));
}
template <class _Cp, bool _IsConst, class _Tp, class _Proj, __enable_if_t<__is_identity<_Proj>::value, int> = 0>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __bit_iterator<_Cp, _IsConst>
__find_impl(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value, _Proj&) {
if (static_cast<bool>(__value))
return std::__find_bool<true>(__first, static_cast<typename _Cp::size_type>(__last - __first));
return std::__find_bool<false>(__first, static_cast<typename _Cp::size_type>(__last - __first));
}
template <class>
struct __find_segment;
template <class _SegmentedIterator,
class _Tp,
class _Proj,
__enable_if_t<__is_segmented_iterator<_SegmentedIterator>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _SegmentedIterator
__find_impl(_SegmentedIterator __first, _SegmentedIterator __last, const _Tp& __value, _Proj& __proj) {
return std::__find_segment_if(std::move(__first), std::move(__last), __find_segment<_Tp>(__value), __proj);
}
template <class _Tp>
struct __find_segment {
const _Tp& __value_;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __find_segment(const _Tp& __value) : __value_(__value) {}
template <class _InputIterator, class _Proj>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _InputIterator
operator()(_InputIterator __first, _InputIterator __last, _Proj& __proj) const {
return std::__find_impl(__first, __last, __value_, __proj);
}
};
template <class _InputIterator, class _Tp>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _InputIterator
find(_InputIterator __first, _InputIterator __last, const _Tp& __value) {
__identity __proj;
return std::__rewrap_iter(
__first, std::__find_impl(std::__unwrap_iter(__first), std::__unwrap_iter(__last), __value, __proj));
}
}}
# 1805 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/find_end.h" 1 3
# 15 "/bin/../include/c++/v1/__algorithm/find_end.h" 3
# 1 "/bin/../include/c++/v1/__algorithm/search.h" 1 3
# 27 "/bin/../include/c++/v1/__algorithm/search.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _AlgPolicy,
class _Iter1,
class _Sent1,
class _Iter2,
class _Sent2,
class _Pred,
class _Proj1,
class _Proj2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_Iter1, _Iter1> __search_forward_impl(
_Iter1 __first1, _Sent1 __last1, _Iter2 __first2, _Sent2 __last2, _Pred& __pred, _Proj1& __proj1, _Proj2& __proj2) {
if (__first2 == __last2)
return std::make_pair(__first1, __first1);
while (true) {
while (true) {
if (__first1 == __last1) {
_IterOps<_AlgPolicy>::__advance_to(__first1, __last1);
return std::make_pair(__first1, __first1);
}
if (std::__invoke(__pred, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2)))
break;
++__first1;
}
_Iter1 __m1 = __first1;
_Iter2 __m2 = __first2;
while (true) {
if (++__m2 == __last2)
return std::make_pair(__first1, ++__m1);
if (++__m1 == __last1) {
return std::make_pair(__m1, __m1);
}
if (!std::__invoke(__pred, std::__invoke(__proj1, *__m1), std::__invoke(__proj2, *__m2))) {
++__first1;
break;
}
}
}
}
template <class _AlgPolicy,
class _Iter1,
class _Sent1,
class _Iter2,
class _Sent2,
class _Pred,
class _Proj1,
class _Proj2,
class _DiffT1,
class _DiffT2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_Iter1, _Iter1> __search_random_access_impl(
_Iter1 __first1,
_Sent1 __last1,
_Iter2 __first2,
_Sent2 __last2,
_Pred& __pred,
_Proj1& __proj1,
_Proj2& __proj2,
_DiffT1 __size1,
_DiffT2 __size2) {
const _Iter1 __s = __first1 + __size1 - _DiffT1(__size2 - 1);
while (true) {
while (true) {
if (__first1 == __s) {
_IterOps<_AlgPolicy>::__advance_to(__first1, __last1);
return std::make_pair(__first1, __first1);
}
if (std::__invoke(__pred, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2)))
break;
++__first1;
}
_Iter1 __m1 = __first1;
_Iter2 __m2 = __first2;
while (true) {
if (++__m2 == __last2)
return std::make_pair(__first1, __first1 + _DiffT1(__size2));
++__m1;
if (!std::__invoke(__pred, std::__invoke(__proj1, *__m1), std::__invoke(__proj2, *__m2))) {
++__first1;
break;
}
}
}
}
template <class _Iter1, class _Sent1, class _Iter2, class _Sent2, class _Pred, class _Proj1, class _Proj2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_Iter1, _Iter1> __search_impl(
_Iter1 __first1,
_Sent1 __last1,
_Iter2 __first2,
_Sent2 __last2,
_Pred& __pred,
_Proj1& __proj1,
_Proj2& __proj2,
__enable_if_t<__has_random_access_iterator_category<_Iter1>::value &&
__has_random_access_iterator_category<_Iter2>::value>* = nullptr) {
auto __size2 = __last2 - __first2;
if (__size2 == 0)
return std::make_pair(__first1, __first1);
auto __size1 = __last1 - __first1;
if (__size1 < __size2) {
return std::make_pair(__last1, __last1);
}
return std::__search_random_access_impl<_ClassicAlgPolicy>(
__first1, __last1, __first2, __last2, __pred, __proj1, __proj2, __size1, __size2);
}
template <class _Iter1, class _Sent1, class _Iter2, class _Sent2, class _Pred, class _Proj1, class _Proj2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pair<_Iter1, _Iter1> __search_impl(
_Iter1 __first1,
_Sent1 __last1,
_Iter2 __first2,
_Sent2 __last2,
_Pred& __pred,
_Proj1& __proj1,
_Proj2& __proj2,
__enable_if_t<__has_forward_iterator_category<_Iter1>::value && __has_forward_iterator_category<_Iter2>::value &&
!(__has_random_access_iterator_category<_Iter1>::value &&
__has_random_access_iterator_category<_Iter2>::value)>* = nullptr) {
return std::__search_forward_impl<_ClassicAlgPolicy>(__first1, __last1, __first2, __last2, __pred, __proj1, __proj2);
}
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator1
search(_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2,
_BinaryPredicate __pred) {
static_assert(__is_callable<_BinaryPredicate, decltype(*__first1), decltype(*__first2)>::value,
"BinaryPredicate has to be callable");
auto __proj = __identity();
return std::__search_impl(__first1, __last1, __first2, __last2, __pred, __proj, __proj).first;
}
template <class _ForwardIterator1, class _ForwardIterator2>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator1
search(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) {
return std::search(__first1, __last1, __first2, __last2, __equal_to());
}
template <class _ForwardIterator, class _Searcher>
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator
search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher& __s) {
return __s(__f, __l).first;
}
}}
# 16 "/bin/../include/c++/v1/__algorithm/find_end.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 1 3
# 14 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 3
# 1 "/bin/../include/c++/v1/__compare/compare_three_way_result.h" 1 3
# 18 "/bin/../include/c++/v1/__compare/compare_three_way_result.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class, class, class>
struct __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __compare_three_way_result {};
template <class _Tp, class _Up>
struct __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __compare_three_way_result<
_Tp,
_Up,
decltype(std::declval<__make_const_lvalue_ref<_Tp>>() <=> std::declval<__make_const_lvalue_ref<_Up>>(), void())> {
using type = decltype(std::declval<__make_const_lvalue_ref<_Tp>>() <=> std::declval<__make_const_lvalue_ref<_Up>>());
};
template <class _Tp, class _Up = _Tp>
struct compare_three_way_result : __compare_three_way_result<_Tp, _Up, void> {};
template <class _Tp, class _Up = _Tp>
using compare_three_way_result_t = typename compare_three_way_result<_Tp, _Up>::type;
}}
# 15 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 2 3
# 1 "/bin/../include/c++/v1/__iterator/iterator.h" 1 3
# 18 "/bin/../include/c++/v1/__iterator/iterator.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Category, class _Tp, class _Distance = ptrdiff_t, class _Pointer = _Tp*, class _Reference = _Tp&>
struct __attribute__((__deprecated__)) iterator {
typedef _Tp value_type;
typedef _Distance difference_type;
typedef _Pointer pointer;
typedef _Reference reference;
typedef _Category iterator_category;
};
}}
# 24 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 2 3
# 1 "/bin/../include/c++/v1/__ranges/subrange.h" 1 3
# 28 "/bin/../include/c++/v1/__ranges/subrange.h" 3
# 1 "/bin/../include/c++/v1/__ranges/dangling.h" 1 3
# 20 "/bin/../include/c++/v1/__ranges/dangling.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
struct dangling {
dangling() = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr dangling(auto&&...) noexcept {}
};
template <range _Rp>
using borrowed_iterator_t = _If<borrowed_range<_Rp>, iterator_t<_Rp>, dangling>;
}
}}
# 29 "/bin/../include/c++/v1/__ranges/subrange.h" 2 3
# 1 "/bin/../include/c++/v1/__ranges/view_interface.h" 1 3
# 23 "/bin/../include/c++/v1/__ranges/view_interface.h" 3
# 1 "/bin/../include/c++/v1/__ranges/empty.h" 1 3
# 21 "/bin/../include/c++/v1/__ranges/empty.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
namespace __empty {
template <class _Tp>
concept __member_empty = __workaround_52970<_Tp> && requires(_Tp&& __t) { bool(__t.empty()); };
template <class _Tp>
concept __can_invoke_size = !__member_empty<_Tp> && requires(_Tp&& __t) { ranges::size(__t); };
template <class _Tp>
concept __can_compare_begin_end = !__member_empty<_Tp> && !__can_invoke_size<_Tp> && requires(_Tp&& __t) {
bool(ranges::begin(__t) == ranges::end(__t));
{ ranges::begin(__t) } -> forward_iterator;
};
struct __fn {
template <__member_empty _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool operator()(_Tp&& __t) const noexcept(noexcept(bool(__t.empty()))) {
return bool(__t.empty());
}
template <__can_invoke_size _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool operator()(_Tp&& __t) const noexcept(noexcept(ranges::size(__t))) {
return ranges::size(__t) == 0;
}
template <__can_compare_begin_end _Tp>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool operator()(_Tp&& __t) const
noexcept(noexcept(bool(ranges::begin(__t) == ranges::end(__t)))) {
return ranges::begin(__t) == ranges::end(__t);
}
};
}
inline namespace __cpo {
inline constexpr auto empty = __empty::__fn{};
}
}
}}
# 24 "/bin/../include/c++/v1/__ranges/view_interface.h" 2 3
# 30 "/bin/../include/c++/v1/__ranges/view_interface.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
template <class _Derived>
requires is_class_v<_Derived> && same_as<_Derived, remove_cv_t<_Derived>>
class view_interface {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Derived& __derived() noexcept {
static_assert(sizeof(_Derived) && derived_from<_Derived, view_interface> && view<_Derived>);
return static_cast<_Derived&>(*this);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Derived const& __derived() const noexcept {
static_assert(sizeof(_Derived) && derived_from<_Derived, view_interface> && view<_Derived>);
return static_cast<_Derived const&>(*this);
}
public:
template <class _D2 = _Derived>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool empty()
requires forward_range<_D2>
{
return ranges::begin(__derived()) == ranges::end(__derived());
}
template <class _D2 = _Derived>
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool empty() const
requires forward_range<const _D2>
{
return ranges::begin(__derived()) == ranges::end(__derived());
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit operator bool()
requires requires(_D2& __t) { ranges::empty(__t); }
{
return !ranges::empty(__derived());
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit operator bool() const
requires requires(const _D2& __t) { ranges::empty(__t); }
{
return !ranges::empty(__derived());
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto data()
requires contiguous_iterator<iterator_t<_D2>>
{
return std::to_address(ranges::begin(__derived()));
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto data() const
requires range<const _D2> && contiguous_iterator<iterator_t<const _D2>>
{
return std::to_address(ranges::begin(__derived()));
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto size()
requires forward_range<_D2> && sized_sentinel_for<sentinel_t<_D2>, iterator_t<_D2>>
{
return std::__to_unsigned_like(ranges::end(__derived()) - ranges::begin(__derived()));
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto size() const
requires forward_range<const _D2> && sized_sentinel_for<sentinel_t<const _D2>, iterator_t<const _D2>>
{
return std::__to_unsigned_like(ranges::end(__derived()) - ranges::begin(__derived()));
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) front()
requires forward_range<_D2>
{
((void)0);
return *ranges::begin(__derived());
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) front() const
requires forward_range<const _D2>
{
((void)0);
return *ranges::begin(__derived());
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) back()
requires bidirectional_range<_D2> && common_range<_D2>
{
((void)0);
return *ranges::prev(ranges::end(__derived()));
}
template <class _D2 = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) back() const
requires bidirectional_range<const _D2> && common_range<const _D2>
{
((void)0);
return *ranges::prev(ranges::end(__derived()));
}
template <random_access_range _RARange = _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) operator[](range_difference_t<_RARange> __index) {
return ranges::begin(__derived())[__index];
}
template <random_access_range _RARange = const _Derived>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr decltype(auto) operator[](range_difference_t<_RARange> __index) const {
return ranges::begin(__derived())[__index];
}
};
}
}}
# 32 "/bin/../include/c++/v1/__ranges/subrange.h" 2 3
# 47 "/bin/../include/c++/v1/__ranges/subrange.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 51 "/bin/../include/c++/v1/__ranges/subrange.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace ranges {
template <class _From, class _To>
concept __uses_nonqualification_pointer_conversion =
is_pointer_v<_From> && is_pointer_v<_To> &&
!convertible_to<remove_pointer_t<_From> (*)[], remove_pointer_t<_To> (*)[]>;
template <class _From, class _To>
concept __convertible_to_non_slicing =
convertible_to<_From, _To> && !__uses_nonqualification_pointer_conversion<decay_t<_From>, decay_t<_To>>;
template <class _Pair, class _Iter, class _Sent>
concept __pair_like_convertible_from =
!range<_Pair> && __pair_like<_Pair> && constructible_from<_Pair, _Iter, _Sent> &&
__convertible_to_non_slicing<_Iter, tuple_element_t<0, _Pair>> && convertible_to<_Sent, tuple_element_t<1, _Pair>>;
template <input_or_output_iterator _Iter,
sentinel_for<_Iter> _Sent = _Iter,
subrange_kind _Kind = sized_sentinel_for<_Sent, _Iter> ? subrange_kind::sized : subrange_kind::unsized>
requires(_Kind == subrange_kind::sized || !sized_sentinel_for<_Sent, _Iter>)
class subrange : public view_interface<subrange<_Iter, _Sent, _Kind>> {
public:
static constexpr bool _StoreSize = (_Kind == subrange_kind::sized && !sized_sentinel_for<_Sent, _Iter>);
private:
static constexpr bool _MustProvideSizeAtConstruction = !_StoreSize;
struct _Empty {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Empty(auto) noexcept {}
};
using _Size = conditional_t<_StoreSize, make_unsigned_t<iter_difference_t<_Iter>>, _Empty>;
[[__no_unique_address__]] _Iter __begin_ = _Iter();
[[__no_unique_address__]] _Sent __end_ = _Sent();
[[__no_unique_address__]] _Size __size_ = 0;
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) subrange()
requires default_initializable<_Iter>
= default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr subrange(__convertible_to_non_slicing<_Iter> auto __iter, _Sent __sent)
requires _MustProvideSizeAtConstruction
: __begin_(std::move(__iter)), __end_(std::move(__sent)) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr subrange(
__convertible_to_non_slicing<_Iter> auto __iter, _Sent __sent, make_unsigned_t<iter_difference_t<_Iter>> __n)
requires(_Kind == subrange_kind::sized)
: __begin_(std::move(__iter)), __end_(std::move(__sent)), __size_(__n) {
if constexpr (sized_sentinel_for<_Sent, _Iter>)
((void)0);
}
template <__different_from<subrange> _Range>
requires borrowed_range<_Range> && __convertible_to_non_slicing<iterator_t<_Range>, _Iter> &&
convertible_to<sentinel_t<_Range>, _Sent>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr subrange(_Range&& __range)
requires(!_StoreSize)
: subrange(ranges::begin(__range), ranges::end(__range)) {}
template <__different_from<subrange> _Range>
requires borrowed_range<_Range> && __convertible_to_non_slicing<iterator_t<_Range>, _Iter> &&
convertible_to<sentinel_t<_Range>, _Sent>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr subrange(_Range&& __range)
requires _StoreSize && sized_range<_Range>
: subrange(__range, ranges::size(__range)) {}
template <borrowed_range _Range>
requires __convertible_to_non_slicing<iterator_t<_Range>, _Iter> &&
convertible_to<sentinel_t<_Range>, _Sent>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr subrange(_Range&& __range, make_unsigned_t<iter_difference_t<_Iter>> __n)
requires(_Kind == subrange_kind::sized)
: subrange(ranges::begin(__range), ranges::end(__range), __n) {}
template <__different_from<subrange> _Pair>
requires __pair_like_convertible_from<_Pair, const _Iter&, const _Sent&>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr operator _Pair() const {
return _Pair(__begin_, __end_);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter begin() const
requires copyable<_Iter>
{
return __begin_;
}
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter begin()
requires(!copyable<_Iter>)
{
return std::move(__begin_);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Sent end() const { return __end_; }
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool empty() const { return __begin_ == __end_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr make_unsigned_t<iter_difference_t<_Iter>> size() const
requires(_Kind == subrange_kind::sized)
{
if constexpr (_StoreSize)
return __size_;
else
return std::__to_unsigned_like(__end_ - __begin_);
}
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr subrange next(iter_difference_t<_Iter> __n = 1) const&
requires forward_iterator<_Iter>
{
auto __tmp = *this;
__tmp.advance(__n);
return __tmp;
}
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr subrange next(iter_difference_t<_Iter> __n = 1) && {
advance(__n);
return std::move(*this);
}
[[nodiscard]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr subrange prev(iter_difference_t<_Iter> __n = 1) const
requires bidirectional_iterator<_Iter>
{
auto __tmp = *this;
__tmp.advance(-__n);
return __tmp;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr subrange& advance(iter_difference_t<_Iter> __n) {
if constexpr (bidirectional_iterator<_Iter>) {
if (__n < 0) {
ranges::advance(__begin_, __n);
if constexpr (_StoreSize)
__size_ += std::__to_unsigned_like(-__n);
return *this;
}
}
auto __d = __n - ranges::advance(__begin_, __n, __end_);
if constexpr (_StoreSize)
__size_ -= std::__to_unsigned_like(__d);
return *this;
}
};
template <input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent>
subrange(_Iter, _Sent) -> subrange<_Iter, _Sent>;
template <input_or_output_iterator _Iter, sentinel_for<_Iter> _Sent>
subrange(_Iter, _Sent, make_unsigned_t<iter_difference_t<_Iter>>) -> subrange<_Iter, _Sent, subrange_kind::sized>;
template <borrowed_range _Range>
subrange(_Range&&)
-> subrange<iterator_t<_Range>,
sentinel_t<_Range>,
(sized_range<_Range> || sized_sentinel_for<sentinel_t<_Range>, iterator_t<_Range>>)
? subrange_kind::sized
: subrange_kind::unsized>;
template <borrowed_range _Range>
subrange(_Range&&, make_unsigned_t<range_difference_t<_Range>>)
-> subrange<iterator_t<_Range>, sentinel_t<_Range>, subrange_kind::sized>;
template <size_t _Index, class _Iter, class _Sent, subrange_kind _Kind>
requires((_Index == 0 && copyable<_Iter>) || _Index == 1)
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto get(const subrange<_Iter, _Sent, _Kind>& __subrange) {
if constexpr (_Index == 0)
return __subrange.begin();
else
return __subrange.end();
}
template <size_t _Index, class _Iter, class _Sent, subrange_kind _Kind>
requires(_Index < 2)
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto get(subrange<_Iter, _Sent, _Kind>&& __subrange) {
if constexpr (_Index == 0)
return __subrange.begin();
else
return __subrange.end();
}
template <class _Ip, class _Sp, subrange_kind _Kp>
inline constexpr bool enable_borrowed_range<subrange<_Ip, _Sp, _Kp>> = true;
template <range _Rp>
using borrowed_subrange_t = _If<borrowed_range<_Rp>, subrange<iterator_t<_Rp>>, dangling>;
}
using ranges::get;
template <class _Ip, class _Sp, ranges::subrange_kind _Kp>
struct tuple_size<ranges::subrange<_Ip, _Sp, _Kp>> : integral_constant<size_t, 2> {};
template <class _Ip, class _Sp, ranges::subrange_kind _Kp>
struct tuple_element<0, ranges::subrange<_Ip, _Sp, _Kp>> {
using type = _Ip;
};
template <class _Ip, class _Sp, ranges::subrange_kind _Kp>
struct tuple_element<1, ranges::subrange<_Ip, _Sp, _Kp>> {
using type = _Sp;
};
template <class _Ip, class _Sp, ranges::subrange_kind _Kp>
struct tuple_element<0, const ranges::subrange<_Ip, _Sp, _Kp>> {
using type = _Ip;
};
template <class _Ip, class _Sp, ranges::subrange_kind _Kp>
struct tuple_element<1, const ranges::subrange<_Ip, _Sp, _Kp>> {
using type = _Sp;
};
}}
# 33 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 2 3
# 45 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
#pragma GCC diagnostic push
# 49 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated"
# 49 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 3
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
template <class _Iter>
class reverse_iterator
{
#pragma GCC diagnostic pop
private:
static_assert(__has_bidirectional_iterator_category<_Iter>::value || bidirectional_iterator<_Iter>,
"reverse_iterator<It> requires It to be a bidirectional iterator.");
protected:
_Iter current;
public:
using iterator_type = _Iter;
using iterator_category =
_If<__has_random_access_iterator_category<_Iter>::value,
random_access_iterator_tag,
typename iterator_traits<_Iter>::iterator_category>;
using pointer = typename iterator_traits<_Iter>::pointer;
using iterator_concept = _If<random_access_iterator<_Iter>, random_access_iterator_tag, bidirectional_iterator_tag>;
using value_type = iter_value_t<_Iter>;
using difference_type = iter_difference_t<_Iter>;
using reference = iter_reference_t<_Iter>;
# 112 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 3
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator() : current() {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit reverse_iterator(_Iter __x) : current(__x) {}
template <class _Up,
class = __enable_if_t< !is_same<_Up, _Iter>::value && is_convertible<_Up const&, _Iter>::value > >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator(const reverse_iterator<_Up>& __u)
: current(__u.base()) {}
template <class _Up,
class = __enable_if_t< !is_same<_Up, _Iter>::value && is_convertible<_Up const&, _Iter>::value &&
is_assignable<_Iter&, _Up const&>::value > >
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator=(const reverse_iterator<_Up>& __u) {
current = __u.base();
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter base() const { return current; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reference operator*() const {
_Iter __tmp = current;
return *--__tmp;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pointer operator->() const
requires is_pointer_v<_Iter> || requires(const _Iter __i) { __i.operator->(); }
{
if constexpr (is_pointer_v<_Iter>) {
return std::prev(current);
} else {
return std::prev(current).operator->();
}
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator++() {
--current;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator operator++(int) {
reverse_iterator __tmp(*this);
--current;
return __tmp;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator--() {
++current;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator operator--(int) {
reverse_iterator __tmp(*this);
++current;
return __tmp;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator operator+(difference_type __n) const {
return reverse_iterator(current - __n);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator+=(difference_type __n) {
current -= __n;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator operator-(difference_type __n) const {
return reverse_iterator(current + __n);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator& operator-=(difference_type __n) {
current += __n;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reference operator[](difference_type __n) const {
return *(*this + __n);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr iter_rvalue_reference_t<_Iter> iter_move(const reverse_iterator& __i) noexcept(
is_nothrow_copy_constructible_v<_Iter>&& noexcept(ranges::iter_move(--std::declval<_Iter&>()))) {
auto __tmp = __i.base();
return ranges::iter_move(--__tmp);
}
template <indirectly_swappable<_Iter> _Iter2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr void
iter_swap(const reverse_iterator& __x, const reverse_iterator<_Iter2>& __y) noexcept(
is_nothrow_copy_constructible_v<_Iter> &&
is_nothrow_copy_constructible_v<_Iter2>&& noexcept(
ranges::iter_swap(--std::declval<_Iter&>(), --std::declval<_Iter2&>()))) {
auto __xtmp = __x.base();
auto __ytmp = __y.base();
ranges::iter_swap(--__xtmp, --__ytmp);
}
};
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
operator==(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
requires requires {
{ __x.base() == __y.base() } -> convertible_to<bool>;
}
{
return __x.base() == __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
operator<(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
requires requires {
{ __x.base() > __y.base() } -> convertible_to<bool>;
}
{
return __x.base() > __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
operator!=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
requires requires {
{ __x.base() != __y.base() } -> convertible_to<bool>;
}
{
return __x.base() != __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
operator>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
requires requires {
{ __x.base() < __y.base() } -> convertible_to<bool>;
}
{
return __x.base() < __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
operator>=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
requires requires {
{ __x.base() <= __y.base() } -> convertible_to<bool>;
}
{
return __x.base() <= __y.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool
operator<=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
requires requires {
{ __x.base() >= __y.base() } -> convertible_to<bool>;
}
{
return __x.base() >= __y.base();
}
template <class _Iter1, three_way_comparable_with<_Iter1> _Iter2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr compare_three_way_result_t<_Iter1, _Iter2>
operator<=>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y) {
return __y.base() <=> __x.base();
}
template <class _Iter1, class _Iter2>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto
operator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
-> decltype(__y.base() - __x.base()) {
return __y.base() - __x.base();
}
# 300 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 3
template <class _Iter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator<_Iter>
operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_iterator<_Iter>& __x) {
return reverse_iterator<_Iter>(__x.base() - __n);
}
template <class _Iter1, class _Iter2>
requires(!sized_sentinel_for<_Iter1, _Iter2>)
inline constexpr bool disable_sized_sentinel_for<reverse_iterator<_Iter1>, reverse_iterator<_Iter2>> = true;
template <class _Iter>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reverse_iterator<_Iter> make_reverse_iterator(_Iter __i) {
return reverse_iterator<_Iter>(__i);
}
# 346 "/bin/../include/c++/v1/__iterator/reverse_iterator.h" 3
template <class _Iter>
class __unconstrained_reverse_iterator {
_Iter __iter_;
public:
static_assert(__has_bidirectional_iterator_category<_Iter>::value || bidirectional_iterator<_Iter>);
using iterator_type = _Iter;
using iterator_category =
_If<__has_random_access_iterator_category<_Iter>::value,
random_access_iterator_tag,
__iterator_category_type<_Iter>>;
using pointer = __iterator_pointer_type<_Iter>;
using value_type = iter_value_t<_Iter>;
using difference_type = iter_difference_t<_Iter>;
using reference = iter_reference_t<_Iter>;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator() = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator(const __unconstrained_reverse_iterator&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit __unconstrained_reverse_iterator(_Iter __iter) : __iter_(__iter) {}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter base() const { return __iter_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr reference operator*() const {
auto __tmp = __iter_;
return *--__tmp;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr pointer operator->() const {
if constexpr (is_pointer_v<_Iter>) {
return std::prev(__iter_);
} else {
return std::prev(__iter_).operator->();
}
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr iter_rvalue_reference_t<_Iter>
iter_move(const __unconstrained_reverse_iterator& __i) noexcept(
is_nothrow_copy_constructible_v<_Iter>&& noexcept(ranges::iter_move(--std::declval<_Iter&>()))) {
auto __tmp = __i.base();
return ranges::iter_move(--__tmp);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator& operator++() {
--__iter_;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator operator++(int) {
auto __tmp = *this;
--__iter_;
return __tmp;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator& operator--() {
++__iter_;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator operator--(int) {
auto __tmp = *this;
++__iter_;
return __tmp;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator& operator+=(difference_type __n) {
__iter_ -= __n;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator& operator-=(difference_type __n) {
__iter_ += __n;
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator operator+(difference_type __n) const {
return __unconstrained_reverse_iterator(__iter_ - __n);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __unconstrained_reverse_iterator operator-(difference_type __n) const {
return __unconstrained_reverse_iterator(__iter_ + __n);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr difference_type operator-(const __unconstrained_reverse_iterator& __other) const {
return __other.__iter_ - __iter_;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator[](difference_type __n) const { return *(*this + __n); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool
operator==(const __unconstrained_reverse_iterator& __lhs, const __unconstrained_reverse_iterator& __rhs) {
return __lhs.base() == __rhs.base();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool
operator!=(const __unconstrained_reverse_iterator& __lhs, const __unconstrained_reverse_iterator& __rhs) {
return __lhs.base() != __rhs.base();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool
operator<(const __unconstrained_reverse_iterator& __lhs, const __unconstrained_reverse_iterator& __rhs) {
return __lhs.base() > __rhs.base();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool
operator>(const __unconstrained_reverse_iterator& __lhs, const __unconstrained_reverse_iterator& __rhs) {
return __lhs.base() < __rhs.base();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool
operator<=(const __unconstrained_reverse_iterator& __lhs, const __unconstrained_reverse_iterator& __rhs) {
return __lhs.base() >= __rhs.base();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) friend constexpr bool
operator>=(const __unconstrained_reverse_iterator& __lhs, const __unconstrained_reverse_iterator& __rhs) {
return __lhs.base() <= __rhs.base();
}
};
template <template <class> class _RevIter1, template <class> class _RevIter2, class _Iter>
struct __unwrap_reverse_iter_impl {
using _UnwrappedIter = decltype(__unwrap_iter_impl<_Iter>::__unwrap(std::declval<_Iter>()));
using _ReverseWrapper = _RevIter1<_RevIter2<_Iter> >;
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ReverseWrapper
__rewrap(_ReverseWrapper __orig_iter, _UnwrappedIter __unwrapped_iter) {
return _ReverseWrapper(
_RevIter2<_Iter>(__unwrap_iter_impl<_Iter>::__rewrap(__orig_iter.base().base(), __unwrapped_iter)));
}
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _UnwrappedIter __unwrap(_ReverseWrapper __i) noexcept {
return __unwrap_iter_impl<_Iter>::__unwrap(__i.base().base());
}
};
template <ranges::bidirectional_range _Range>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr ranges::subrange<reverse_iterator<ranges::iterator_t<_Range>>,
reverse_iterator<ranges::iterator_t<_Range>>>
__reverse_range(_Range&& __range) {
auto __first = ranges::begin(__range);
return {std::make_reverse_iterator(ranges::next(__first, ranges::end(__range))), std::make_reverse_iterator(__first)};
}
template <class _Iter, bool __b>
struct __unwrap_iter_impl<reverse_iterator<reverse_iterator<_Iter> >, __b>
: __unwrap_reverse_iter_impl<reverse_iterator, reverse_iterator, _Iter> {};
template <class _Iter, bool __b>
struct __unwrap_iter_impl<reverse_iterator<__unconstrained_reverse_iterator<_Iter>>, __b>
: __unwrap_reverse_iter_impl<reverse_iterator, __unconstrained_reverse_iterator, _Iter> {};
template <class _Iter, bool __b>
struct __unwrap_iter_impl<__unconstrained_reverse_iterator<reverse_iterator<_Iter>>, __b>
: __unwrap_reverse_iter_impl<__unconstrained_reverse_iterator, reverse_iterator, _Iter> {};
template <class _Iter, bool __b>
struct __unwrap_iter_impl<__unconstrained_reverse_iterator<__unconstrained_reverse_iterator<_Iter>>, __b>
: __unwrap_reverse_iter_impl<__unconstrained_reverse_iterator, __unconstrained_reverse_iterator, _Iter> {};
}}
# 23 "/bin/../include/c++/v1/__algorithm/find_end.h" 2 3
# 27 "/bin/../include/c++/v1/__algorithm/find_end.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template < class _AlgPolicy,
class _Iter1,
class _Sent1,
class _Iter2,
class _Sent2,
class _Pred,
class _Proj1,
class _Proj2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr pair<_Iter1, _Iter1> __find_end_impl(
_Iter1 __first1,
_Sent1 __last1,
_Iter2 __first2,
_Sent2 __last2,
_Pred& __pred,
_Proj1& __proj1,
_Proj2& __proj2,
forward_iterator_tag,
forward_iterator_tag) {
_Iter1 __match_first = _IterOps<_AlgPolicy>::next(__first1, __last1);
_Iter1 __match_last = __match_first;
if (__first2 == __last2)
return pair<_Iter1, _Iter1>(__match_last, __match_last);
while (true) {
while (true) {
if (__first1 == __last1)
return pair<_Iter1, _Iter1>(__match_first, __match_last);
if (std::__invoke(__pred, std::__invoke(__proj1, *__first1), std::__invoke(__proj2, *__first2)))
break;
++__first1;
}
_Iter1 __m1 = __first1;
_Iter2 __m2 = __first2;
while (true) {
if (++__m2 == __last2) {
__match_first = __first1;
__match_last = ++__m1;
++__first1;
break;
}
if (++__m1 == __last1)
return pair<_Iter1, _Iter1>(__match_first, __match_last);
if (!std::__invoke(__pred, std::__invoke(__proj1, *__m1), std::__invoke(__proj2, *__m2))) {
++__first1;
break;
}
}
}
}
template < class _IterOps,
class _Pred,
class _Iter1,
class _Sent1,
class _Iter2,
class _Sent2,
class _Proj1,
class _Proj2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter1 __find_end(
_Iter1 __first1,
_Sent1 __sent1,
_Iter2 __first2,
_Sent2 __sent2,
_Pred& __pred,
_Proj1& __proj1,
_Proj2& __proj2,
bidirectional_iterator_tag,
bidirectional_iterator_tag) {
auto __last1 = _IterOps::next(__first1, __sent1);
auto __last2 = _IterOps::next(__first2, __sent2);
if (__first2 == __last2)
return __last1;
_Iter1 __l1 = __last1;
_Iter2 __l2 = __last2;
--__l2;
while (true) {
while (true) {
if (__first1 == __l1)
return __last1;
if (std::__invoke(__pred, std::__invoke(__proj1, *--__l1), std::__invoke(__proj2, *__l2)))
break;
}
_Iter1 __m1 = __l1;
_Iter2 __m2 = __l2;
while (true) {
if (__m2 == __first2)
return __m1;
if (__m1 == __first1)
return __last1;
if (!std::__invoke(__pred, std::__invoke(__proj1, *--__m1), std::__invoke(__proj2, *--__m2))) {
break;
}
}
}
}
template < class _AlgPolicy,
class _Pred,
class _Iter1,
class _Sent1,
class _Iter2,
class _Sent2,
class _Proj1,
class _Proj2>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Iter1 __find_end(
_Iter1 __first1,
_Sent1 __sent1,
_Iter2 __first2,
_Sent2 __sent2,
_Pred& __pred,
_Proj1& __proj1,
_Proj2& __proj2,
random_access_iterator_tag,
random_access_iterator_tag) {
typedef typename iterator_traits<_Iter1>::difference_type _D1;
auto __last1 = _IterOps<_AlgPolicy>::next(__first1, __sent1);
auto __last2 = _IterOps<_AlgPolicy>::next(__first2, __sent2);
auto __len2 = __last2 - __first2;
if (__len2 == 0)
return __last1;
auto __len1 = __last1 - __first1;
if (__len1 < __len2)
return __last1;
const _Iter1 __s = __first1 + _D1(__len2 - 1);
_Iter1 __l1 = __last1;
_Iter2 __l2 = __last2;
--__l2;
while (true) {
while (true) {
if (__s == __l1)
return __last1;
if (std::__invoke(__pred, std::__invoke(__proj1, *--__l1), std::__invoke(__proj2, *__l2)))
break;
}
_Iter1 __m1 = __l1;
_Iter2 __m2 = __l2;
while (true) {
if (__m2 == __first2)
return __m1;
if (!std::__invoke(__pred, std::__invoke(__proj1, *--__m1), std::__invoke(*--__m2))) {
break;
}
}
}
}
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator1 __find_end_classic(
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2,
_BinaryPredicate& __pred) {
auto __proj = __identity();
return std::__find_end_impl<_ClassicAlgPolicy>(
__first1,
__last1,
__first2,
__last2,
__pred,
__proj,
__proj,
typename iterator_traits<_ForwardIterator1>::iterator_category(),
typename iterator_traits<_ForwardIterator2>::iterator_category())
.first;
}
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator1 find_end(
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2,
_BinaryPredicate __pred) {
return std::__find_end_classic(__first1, __last1, __first2, __last2, __pred);
}
template <class _ForwardIterator1, class _ForwardIterator2>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator1
find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) {
return std::find_end(__first1, __last1, __first2, __last2, __equal_to());
}
}}
# 1806 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/find_first_of.h" 1 3
# 19 "/bin/../include/c++/v1/__algorithm/find_first_of.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator1 __find_first_of_ce(
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2,
_BinaryPredicate&& __pred) {
for (; __first1 != __last1; ++__first1)
for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j)
if (__pred(*__first1, *__j))
return __first1;
return __last1;
}
template <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator1 find_first_of(
_ForwardIterator1 __first1,
_ForwardIterator1 __last1,
_ForwardIterator2 __first2,
_ForwardIterator2 __last2,
_BinaryPredicate __pred) {
return std::__find_first_of_ce(__first1, __last1, __first2, __last2, __pred);
}
template <class _ForwardIterator1, class _ForwardIterator2>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ForwardIterator1 find_first_of(
_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2) {
return std::__find_first_of_ce(__first1, __last1, __first2, __last2, __equal_to());
}
}}
# 1807 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/find_if.h" 1 3
# 17 "/bin/../include/c++/v1/__algorithm/find_if.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIterator, class _Predicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _InputIterator
find_if(_InputIterator __first, _InputIterator __last, _Predicate __pred) {
for (; __first != __last; ++__first)
if (__pred(*__first))
break;
return __first;
}
}}
# 1808 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/find_if_not.h" 1 3
# 17 "/bin/../include/c++/v1/__algorithm/find_if_not.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _InputIterator, class _Predicate>
[[__nodiscard__]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _InputIterator
find_if_not(_InputIterator __first, _InputIterator __last, _Predicate __pred) {
for (; __first != __last; ++__first)
if (!__pred(*__first))
break;
return __first;
}
}}
# 1809 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/fold.h" 1 3
# 33 "/bin/../include/c++/v1/__algorithm/fold.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 37 "/bin/../include/c++/v1/__algorithm/fold.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
# 126 "/bin/../include/c++/v1/__algorithm/fold.h" 3
}}
# 1810 "/bin/../include/c++/v1/algorithm" 2 3
# 1 "/bin/../include/c++/v1/__algorithm/for_each.h" 1 3
# 16 "/bin/../include/c++/v1/__algorithm/for_each.h" 3
# 1 "/bin/../include/c++/v1/__ranges/movable_box.h" 1 3
# 23 "/bin/../include/c++/v1/__ranges/movable_box.h" 3
# 1 "third_party/stl/cxx17/optional" 1 3
# 1 "/bin/../include/c++/v1/optional" 1 3
# 187 "/bin/../include/c++/v1/optional" 3
# 1 "/bin/../include/c++/v1/__functional/hash.h" 1 3
# 15 "/bin/../include/c++/v1/__functional/hash.h" 3
# 1 "/bin/../include/c++/v1/__fwd/hash.h" 1 3
# 16 "/bin/../include/c++/v1/__fwd/hash.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class>
struct hash;
}}
# 16 "/bin/../include/c++/v1/__functional/hash.h" 2 3
# 28 "/bin/../include/c++/v1/__functional/hash.h" 3
# 1 "third_party/stl/cxx17/cstring" 1 3
# 1 "/bin/../include/c++/v1/cstring" 1 3
# 63 "/bin/../include/c++/v1/cstring" 3
# 1 "third_party/stl/cxx17/string.h" 1 3
# 1 "/bin/../include/c++/v1/string.h" 1 3
# 58 "/bin/../include/c++/v1/string.h" 3
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 1 3 4
# 26 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/bits/libc-header-start.h" 1 3 4
# 27 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 2 3 4
extern "C" {
# 1 "/bin/../include/c++/v1/stddef.h" 1 3 4
# 15 "/bin/../include/c++/v1/stddef.h" 3
# 1 "include/stddef.h" 1 3
# 92 "include/stddef.h" 3
# 1 "include/__stddef_null.h" 1 3
# 93 "include/stddef.h" 2 3
# 18 "/bin/../include/c++/v1/stddef.h" 2 3
# 34 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 2 3 4
# 43 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
extern void *memcpy (void *__restrict __dest, const void *__restrict __src,
size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
extern void *memmove (void *__dest, const void *__src, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
int __c, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern void *memset (void *__s, int __c, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
extern int memcmp (const void *__s1, const void *__s2, size_t __n)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern "C++"
{
extern void *memchr (void *__s, int __c, size_t __n)
throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern const void *memchr (const void *__s, int __c, size_t __n)
throw () __asm ("memchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) void *
memchr (void *__s, int __c, size_t __n) throw ()
{
return __builtin_memchr (__s, __c, __n);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const void *
memchr (const void *__s, int __c, size_t __n) throw ()
{
return __builtin_memchr (__s, __c, __n);
}
}
# 99 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
extern "C++" void *rawmemchr (void *__s, int __c)
throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern "C++" const void *rawmemchr (const void *__s, int __c)
throw () __asm ("rawmemchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern "C++" void *memrchr (void *__s, int __c, size_t __n)
throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern "C++" const void *memrchr (const void *__s, int __c, size_t __n)
throw () __asm ("memrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 122 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern char *strncpy (char *__restrict __dest,
const char *__restrict __src, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern char *strcat (char *__restrict __dest, const char *__restrict __src)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern char *strncat (char *__restrict __dest, const char *__restrict __src,
size_t __n) throw () __attribute__ ((__nonnull__ (1, 2)));
extern int strcmp (const char *__s1, const char *__s2)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strncmp (const char *__s1, const char *__s2, size_t __n)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strcoll (const char *__s1, const char *__s2)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strxfrm (char *__restrict __dest,
const char *__restrict __src, size_t __n)
throw () __attribute__ ((__nonnull__ (2)));
extern int strcoll_l (const char *__s1, const char *__s2, locale_t __l)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
locale_t __l) throw () __attribute__ ((__nonnull__ (2, 4)));
extern char *strdup (const char *__s)
throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
extern char *strndup (const char *__string, size_t __n)
throw () __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
# 204 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
extern "C++"
{
extern char *strchr (char *__s, int __c)
throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern const char *strchr (const char *__s, int __c)
throw () __asm ("strchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char *
strchr (char *__s, int __c) throw ()
{
return __builtin_strchr (__s, __c);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char *
strchr (const char *__s, int __c) throw ()
{
return __builtin_strchr (__s, __c);
}
}
extern "C++"
{
extern char *strrchr (char *__s, int __c)
throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern const char *strrchr (const char *__s, int __c)
throw () __asm ("strrchr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char *
strrchr (char *__s, int __c) throw ()
{
return __builtin_strrchr (__s, __c);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char *
strrchr (const char *__s, int __c) throw ()
{
return __builtin_strrchr (__s, __c);
}
}
# 261 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
extern "C++" char *strchrnul (char *__s, int __c)
throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern "C++" const char *strchrnul (const char *__s, int __c)
throw () __asm ("strchrnul") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 273 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
extern size_t strcspn (const char *__s, const char *__reject)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern size_t strspn (const char *__s, const char *__accept)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern "C++"
{
extern char *strpbrk (char *__s, const char *__accept)
throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern const char *strpbrk (const char *__s, const char *__accept)
throw () __asm ("strpbrk") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char *
strpbrk (char *__s, const char *__accept) throw ()
{
return __builtin_strpbrk (__s, __accept);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char *
strpbrk (const char *__s, const char *__accept) throw ()
{
return __builtin_strpbrk (__s, __accept);
}
}
extern "C++"
{
extern char *strstr (char *__haystack, const char *__needle)
throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern const char *strstr (const char *__haystack, const char *__needle)
throw () __asm ("strstr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) char *
strstr (char *__haystack, const char *__needle) throw ()
{
return __builtin_strstr (__haystack, __needle);
}
extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) const char *
strstr (const char *__haystack, const char *__needle) throw ()
{
return __builtin_strstr (__haystack, __needle);
}
}
extern char *strtok (char *__restrict __s, const char *__restrict __delim)
throw () __attribute__ ((__nonnull__ (2)));
extern char *__strtok_r (char *__restrict __s,
const char *__restrict __delim,
char **__restrict __save_ptr)
throw () __attribute__ ((__nonnull__ (2, 3)));
extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
char **__restrict __save_ptr)
throw () __attribute__ ((__nonnull__ (2, 3)));
extern "C++" char *strcasestr (char *__haystack, const char *__needle)
throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern "C++" const char *strcasestr (const char *__haystack,
const char *__needle)
throw () __asm ("strcasestr") __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
# 369 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
extern void *memmem (const void *__haystack, size_t __haystacklen,
const void *__needle, size_t __needlelen)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
extern void *__mempcpy (void *__restrict __dest,
const void *__restrict __src, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern void *mempcpy (void *__restrict __dest,
const void *__restrict __src, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern size_t strlen (const char *__s)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern size_t strnlen (const char *__string, size_t __maxlen)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern char *strerror (int __errnum) throw ();
# 421 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
throw () __attribute__ ((__nonnull__ (2))) ;
extern char *strerror_l (int __errnum, locale_t __l) throw ();
# 1 "third_party/grte/v5_x86/release/usr/grte/v5/include/strings.h" 1 3 4
# 23 "third_party/grte/v5_x86/release/usr/grte/v5/include/strings.h" 3 4
# 1 "/bin/../include/c++/v1/stddef.h" 1 3 4
# 15 "/bin/../include/c++/v1/stddef.h" 3
# 1 "include/stddef.h" 1 3
# 18 "/bin/../include/c++/v1/stddef.h" 2 3
# 24 "third_party/grte/v5_x86/release/usr/grte/v5/include/strings.h" 2 3 4
extern "C" {
extern int bcmp (const void *__s1, const void *__s2, size_t __n)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern void bcopy (const void *__src, void *__dest, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern void bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
# 68 "third_party/grte/v5_x86/release/usr/grte/v5/include/strings.h" 3 4
extern char *index (const char *__s, int __c)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 96 "third_party/grte/v5_x86/release/usr/grte/v5/include/strings.h" 3 4
extern char *rindex (const char *__s, int __c)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern int ffs (int __i) throw () __attribute__ ((__const__));
extern int ffsl (long int __l) throw () __attribute__ ((__const__));
__extension__ extern int ffsll (long long int __ll)
throw () __attribute__ ((__const__));
extern int strcasecmp (const char *__s1, const char *__s2)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern int strcasecmp_l (const char *__s1, const char *__s2, locale_t __loc)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern int strncasecmp_l (const char *__s1, const char *__s2,
size_t __n, locale_t __loc)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
}
# 433 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 2 3 4
extern void explicit_bzero (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
extern char *strsep (char **__restrict __stringp,
const char *__restrict __delim)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern char *strsignal (int __sig) throw ();
extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern char *__stpncpy (char *__restrict __dest,
const char *__restrict __src, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern char *stpncpy (char *__restrict __dest,
const char *__restrict __src, size_t __n)
throw () __attribute__ ((__nonnull__ (1, 2)));
extern int strverscmp (const char *__s1, const char *__s2)
throw () __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
extern char *strfry (char *__string) throw () __attribute__ ((__nonnull__ (1)));
extern void *memfrob (void *__s, size_t __n) throw () __attribute__ ((__nonnull__ (1)));
extern "C++" char *basename (char *__filename)
throw () __asm ("basename") __attribute__ ((__nonnull__ (1)));
extern "C++" const char *basename (const char *__filename)
throw () __asm ("basename") __attribute__ ((__nonnull__ (1)));
# 499 "third_party/grte/v5_x86/release/usr/grte/v5/include/string.h" 3 4
}
# 62 "/bin/../include/c++/v1/string.h" 2 3
# 5 "third_party/stl/cxx17/string.h" 2 3
# 64 "/bin/../include/c++/v1/cstring" 2 3
# 75 "/bin/../include/c++/v1/cstring" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
using ::size_t __attribute__((__using_if_exists__));
using ::memcpy __attribute__((__using_if_exists__));
using ::memmove __attribute__((__using_if_exists__));
using ::strcpy __attribute__((__using_if_exists__));
using ::strncpy __attribute__((__using_if_exists__));
using ::strcat __attribute__((__using_if_exists__));
using ::strncat __attribute__((__using_if_exists__));
using ::memcmp __attribute__((__using_if_exists__));
using ::strcmp __attribute__((__using_if_exists__));
using ::strncmp __attribute__((__using_if_exists__));
using ::strcoll __attribute__((__using_if_exists__));
using ::strxfrm __attribute__((__using_if_exists__));
using ::memchr __attribute__((__using_if_exists__));
using ::strchr __attribute__((__using_if_exists__));
using ::strcspn __attribute__((__using_if_exists__));
using ::strpbrk __attribute__((__using_if_exists__));
using ::strrchr __attribute__((__using_if_exists__));
using ::strspn __attribute__((__using_if_exists__));
using ::strstr __attribute__((__using_if_exists__));
using ::strtok __attribute__((__using_if_exists__));
using ::memset __attribute__((__using_if_exists__));
using ::strerror __attribute__((__using_if_exists__));
using ::strlen __attribute__((__using_if_exists__));
}}
# 5 "third_party/stl/cxx17/cstring" 2 3
# 29 "/bin/../include/c++/v1/__functional/hash.h" 2 3
# 33 "/bin/../include/c++/v1/__functional/hash.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Size>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) _Size __loadword(const void* __p) {
_Size __r;
std::memcpy(&__r, __p, sizeof(__r));
return __r;
}
template <class _Size, size_t = sizeof(_Size) * 8>
struct __murmur2_or_cityhash;
template <class _Size>
struct __murmur2_or_cityhash<_Size, 32> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) _Size
operator()(const void* __key, _Size __len) const {
const _Size __m = 0x5bd1e995;
const _Size __r = 24;
_Size __h = __len;
const unsigned char* __data = static_cast<const unsigned char*>(__key);
for (; __len >= 4; __data += 4, __len -= 4) {
_Size __k = std::__loadword<_Size>(__data);
__k *= __m;
__k ^= __k >> __r;
__k *= __m;
__h *= __m;
__h ^= __k;
}
switch (__len) {
case 3:
__h ^= static_cast<_Size>(__data[2] << 16);
[[fallthrough]];
case 2:
__h ^= static_cast<_Size>(__data[1] << 8);
[[fallthrough]];
case 1:
__h ^= __data[0];
__h *= __m;
}
__h ^= __h >> 13;
__h *= __m;
__h ^= __h >> 15;
return __h;
}
};
template <class _Size>
struct __murmur2_or_cityhash<_Size, 64> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) _Size
operator()(const void* __key, _Size __len) const {
const char* __s = static_cast<const char*>(__key);
if (__len <= 32) {
if (__len <= 16) {
return __hash_len_0_to_16(__s, __len);
} else {
return __hash_len_17_to_32(__s, __len);
}
} else if (__len <= 64) {
return __hash_len_33_to_64(__s, __len);
}
_Size __x = std::__loadword<_Size>(__s + __len - 40);
_Size __y = std::__loadword<_Size>(__s + __len - 16) + std::__loadword<_Size>(__s + __len - 56);
_Size __z =
__hash_len_16(std::__loadword<_Size>(__s + __len - 48) + __len, std::__loadword<_Size>(__s + __len - 24));
pair<_Size, _Size> __v = __weak_hash_len_32_with_seeds(__s + __len - 64, __len, __z);
pair<_Size, _Size> __w = __weak_hash_len_32_with_seeds(__s + __len - 32, __y + __k1, __x);
__x = __x * __k1 + std::__loadword<_Size>(__s);
__len = (__len - 1) & ~static_cast<_Size>(63);
do {
__x = __rotate(__x + __y + __v.first + std::__loadword<_Size>(__s + 8), 37) * __k1;
__y = __rotate(__y + __v.second + std::__loadword<_Size>(__s + 48), 42) * __k1;
__x ^= __w.second;
__y += __v.first + std::__loadword<_Size>(__s + 40);
__z = __rotate(__z + __w.first, 33) * __k1;
__v = __weak_hash_len_32_with_seeds(__s, __v.second * __k1, __x + __w.first);
__w = __weak_hash_len_32_with_seeds(__s + 32, __z + __w.second, __y + std::__loadword<_Size>(__s + 16));
std::swap(__z, __x);
__s += 64;
__len -= 64;
} while (__len != 0);
return __hash_len_16(__hash_len_16(__v.first, __w.first) + __shift_mix(__y) * __k1 + __z,
__hash_len_16(__v.second, __w.second) + __x);
}
private:
static const _Size __k0 = 0xc3a5c85c97cb3127ULL;
static const _Size __k1 = 0xb492b66fbe98f273ULL;
static const _Size __k2 = 0x9ae16a3b2f90404fULL;
static const _Size __k3 = 0xc949d7c7509e6557ULL;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static _Size __rotate(_Size __val, int __shift) {
return __shift == 0 ? __val : ((__val >> __shift) | (__val << (64 - __shift)));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static _Size __rotate_by_at_least_1(_Size __val, int __shift) {
return (__val >> __shift) | (__val << (64 - __shift));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static _Size __shift_mix(_Size __val) { return __val ^ (__val >> 47); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) static _Size __hash_len_16(_Size __u, _Size __v) {
const _Size __mul = 0x9ddfea08eb382d69ULL;
_Size __a = (__u ^ __v) * __mul;
__a ^= (__a >> 47);
_Size __b = (__v ^ __a) * __mul;
__b ^= (__b >> 47);
__b *= __mul;
return __b;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) static _Size
__hash_len_0_to_16(const char* __s, _Size __len) {
if (__len > 8) {
const _Size __a = std::__loadword<_Size>(__s);
const _Size __b = std::__loadword<_Size>(__s + __len - 8);
return __hash_len_16(__a, __rotate_by_at_least_1(__b + __len, __len)) ^ __b;
}
if (__len >= 4) {
const uint32_t __a = std::__loadword<uint32_t>(__s);
const uint32_t __b = std::__loadword<uint32_t>(__s + __len - 4);
return __hash_len_16(__len + (static_cast<_Size>(__a) << 3), __b);
}
if (__len > 0) {
const unsigned char __a = static_cast<unsigned char>(__s[0]);
const unsigned char __b = static_cast<unsigned char>(__s[__len >> 1]);
const unsigned char __c = static_cast<unsigned char>(__s[__len - 1]);
const uint32_t __y = static_cast<uint32_t>(__a) + (static_cast<uint32_t>(__b) << 8);
const uint32_t __z = __len + (static_cast<uint32_t>(__c) << 2);
return __shift_mix(__y * __k2 ^ __z * __k3) * __k2;
}
return __k2;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) static _Size
__hash_len_17_to_32(const char* __s, _Size __len) {
const _Size __a = std::__loadword<_Size>(__s) * __k1;
const _Size __b = std::__loadword<_Size>(__s + 8);
const _Size __c = std::__loadword<_Size>(__s + __len - 8) * __k2;
const _Size __d = std::__loadword<_Size>(__s + __len - 16) * __k0;
return __hash_len_16(
__rotate(__a - __b, 43) + __rotate(__c, 30) + __d, __a + __rotate(__b ^ __k3, 20) - __c + __len);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) static pair<_Size, _Size>
__weak_hash_len_32_with_seeds(_Size __w, _Size __x, _Size __y, _Size __z, _Size __a, _Size __b) {
__a += __w;
__b = __rotate(__b + __a + __z, 21);
const _Size __c = __a;
__a += __x;
__a += __y;
__b += __rotate(__a, 44);
return pair<_Size, _Size>(__a + __z, __b + __c);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) static pair<_Size, _Size>
__weak_hash_len_32_with_seeds(const char* __s, _Size __a, _Size __b) {
return __weak_hash_len_32_with_seeds(
std::__loadword<_Size>(__s),
std::__loadword<_Size>(__s + 8),
std::__loadword<_Size>(__s + 16),
std::__loadword<_Size>(__s + 24),
__a,
__b);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __attribute__((__no_sanitize__("unsigned-integer-overflow"))) static _Size
__hash_len_33_to_64(const char* __s, size_t __len) {
_Size __z = std::__loadword<_Size>(__s + 24);
_Size __a = std::__loadword<_Size>(__s) + (__len + std::__loadword<_Size>(__s + __len - 16)) * __k0;
_Size __b = __rotate(__a + __z, 52);
_Size __c = __rotate(__a, 37);
__a += std::__loadword<_Size>(__s + 8);
__c += __rotate(__a, 7);
__a += std::__loadword<_Size>(__s + 16);
_Size __vf = __a + __z;
_Size __vs = __b + __rotate(__a, 31) + __c;
__a = std::__loadword<_Size>(__s + 16) + std::__loadword<_Size>(__s + __len - 32);
__z += std::__loadword<_Size>(__s + __len - 8);
__b = __rotate(__a + __z, 52);
__c = __rotate(__a, 37);
__a += std::__loadword<_Size>(__s + __len - 24);
__c += __rotate(__a, 7);
__a += std::__loadword<_Size>(__s + __len - 16);
_Size __wf = __a + __z;
_Size __ws = __b + __rotate(__a, 31) + __c;
_Size __r = __shift_mix((__vf + __ws) * __k2 + (__wf + __vs) * __k0);
return __shift_mix(__r * __k0 + __vs) * __k2;
}
};
template <class _Tp, size_t = sizeof(_Tp) / sizeof(size_t)>
struct __scalar_hash;
template <class _Tp>
struct __scalar_hash<_Tp, 0> : public __unary_function<_Tp, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept {
union {
_Tp __t;
size_t __a;
} __u;
__u.__a = 0;
__u.__t = __v;
return __u.__a;
}
};
template <class _Tp>
struct __scalar_hash<_Tp, 1> : public __unary_function<_Tp, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept {
union {
_Tp __t;
size_t __a;
} __u;
__u.__t = __v;
return __u.__a;
}
};
template <class _Tp>
struct __scalar_hash<_Tp, 2> : public __unary_function<_Tp, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept {
union {
_Tp __t;
struct {
size_t __a;
size_t __b;
} __s;
} __u;
__u.__t = __v;
return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));
}
};
template <class _Tp>
struct __scalar_hash<_Tp, 3> : public __unary_function<_Tp, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept {
union {
_Tp __t;
struct {
size_t __a;
size_t __b;
size_t __c;
} __s;
} __u;
__u.__t = __v;
return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));
}
};
template <class _Tp>
struct __scalar_hash<_Tp, 4> : public __unary_function<_Tp, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept {
union {
_Tp __t;
struct {
size_t __a;
size_t __b;
size_t __c;
size_t __d;
} __s;
} __u;
__u.__t = __v;
return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));
}
};
struct _PairT {
size_t first;
size_t second;
};
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline size_t __hash_combine(size_t __lhs, size_t __rhs) noexcept {
typedef __scalar_hash<_PairT> _HashT;
const _PairT __p = {__lhs, __rhs};
return _HashT()(__p);
}
template <class _Tp>
struct hash<_Tp*> : public __unary_function<_Tp*, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp* __v) const noexcept {
union {
_Tp* __t;
size_t __a;
} __u;
__u.__t = __v;
return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));
}
};
template <>
struct hash<bool> : public __unary_function<bool, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(bool __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<char> : public __unary_function<char, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(char __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<signed char> : public __unary_function<signed char, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(signed char __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<unsigned char> : public __unary_function<unsigned char, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(unsigned char __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<char8_t> : public __unary_function<char8_t, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(char8_t __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<char16_t> : public __unary_function<char16_t, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(char16_t __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<char32_t> : public __unary_function<char32_t, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(char32_t __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<wchar_t> : public __unary_function<wchar_t, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(wchar_t __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<short> : public __unary_function<short, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(short __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<unsigned short> : public __unary_function<unsigned short, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(unsigned short __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<int> : public __unary_function<int, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(int __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<unsigned int> : public __unary_function<unsigned int, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(unsigned int __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<long> : public __unary_function<long, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(long __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<unsigned long> : public __unary_function<unsigned long, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(unsigned long __v) const noexcept { return static_cast<size_t>(__v); }
};
template <>
struct hash<long long> : public __scalar_hash<long long> {};
template <>
struct hash<unsigned long long> : public __scalar_hash<unsigned long long> {};
template <>
struct hash<__int128_t> : public __scalar_hash<__int128_t> {};
template <>
struct hash<__uint128_t> : public __scalar_hash<__uint128_t> {};
template <>
struct hash<float> : public __scalar_hash<float> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(float __v) const noexcept {
if (__v == 0.0f)
return 0;
return __scalar_hash<float>::operator()(__v);
}
};
template <>
struct hash<double> : public __scalar_hash<double> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(double __v) const noexcept {
if (__v == 0.0)
return 0;
return __scalar_hash<double>::operator()(__v);
}
};
template <>
struct hash<long double> : public __scalar_hash<long double> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(long double __v) const noexcept {
if (__v == 0.0L)
return 0;
# 478 "/bin/../include/c++/v1/__functional/hash.h" 3
union {
long double __t;
struct {
size_t __a;
size_t __b;
} __s;
} __u;
__u.__s.__a = 0;
__u.__s.__b = 0;
__u.__t = __v;
return __u.__s.__a ^ __u.__s.__b;
}
};
template <class _Tp, bool = is_enum<_Tp>::value>
struct __enum_hash : public __unary_function<_Tp, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(_Tp __v) const noexcept {
typedef typename underlying_type<_Tp>::type type;
return hash<type>()(static_cast<type>(__v));
}
};
template <class _Tp>
struct __enum_hash<_Tp, false> {
__enum_hash() = delete;
__enum_hash(__enum_hash const&) = delete;
__enum_hash& operator=(__enum_hash const&) = delete;
};
template <class _Tp>
struct hash : public __enum_hash<_Tp> {};
template <>
struct hash<nullptr_t> : public __unary_function<nullptr_t, size_t> {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) size_t operator()(nullptr_t) const noexcept { return 662607004ull; }
};
template <class _Key, class _Hash>
using __check_hash_requirements __attribute__((__nodebug__)) =
integral_constant<bool,
is_copy_constructible<_Hash>::value && is_move_constructible<_Hash>::value &&
__invokable_r<size_t, _Hash, _Key const&>::value >;
template <class _Key, class _Hash = hash<_Key> >
using __has_enabled_hash __attribute__((__nodebug__)) =
integral_constant<bool, __check_hash_requirements<_Key, _Hash>::value && is_default_constructible<_Hash>::value >;
template <class _Type, class>
using __enable_hash_helper_imp __attribute__((__nodebug__)) = _Type;
template <class _Type, class... _Keys>
using __enable_hash_helper __attribute__((__nodebug__)) =
__enable_hash_helper_imp<_Type, __enable_if_t<__all<__has_enabled_hash<_Keys>::value...>::value> >;
}}
# 188 "/bin/../include/c++/v1/optional" 2 3
# 214 "/bin/../include/c++/v1/optional" 3
# 1 "/bin/../include/c++/v1/__type_traits/is_trivially_copy_assignable.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/is_trivially_copy_assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_trivially_copy_assignable
: public integral_constant<bool,
__is_trivially_assignable(__add_lvalue_reference_t<_Tp>,
__add_lvalue_reference_t<typename add_const<_Tp>::type>)> {};
template <class _Tp>
inline constexpr bool is_trivially_copy_assignable_v = is_trivially_copy_assignable<_Tp>::value;
}}
# 215 "/bin/../include/c++/v1/optional" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_trivially_copy_constructible.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_trivially_copy_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_trivially_copy_constructible
: public integral_constant<bool, __is_trivially_constructible(_Tp, __add_lvalue_reference_t<const _Tp>)> {};
template <class _Tp>
inline constexpr bool is_trivially_copy_constructible_v = is_trivially_copy_constructible<_Tp>::value;
}}
# 216 "/bin/../include/c++/v1/optional" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_trivially_destructible.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_trivially_destructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_trivially_destructible
: public integral_constant<bool, __is_trivially_destructible(_Tp)> {};
# 41 "/bin/../include/c++/v1/__type_traits/is_trivially_destructible.h" 3
template <class _Tp>
inline constexpr bool is_trivially_destructible_v = is_trivially_destructible<_Tp>::value;
}}
# 217 "/bin/../include/c++/v1/optional" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_trivially_move_assignable.h" 1 3
# 19 "/bin/../include/c++/v1/__type_traits/is_trivially_move_assignable.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_trivially_move_assignable
: public integral_constant<
bool,
__is_trivially_assignable(__add_lvalue_reference_t<_Tp>, __add_rvalue_reference_t<_Tp>)> {};
template <class _Tp>
inline constexpr bool is_trivially_move_assignable_v = is_trivially_move_assignable<_Tp>::value;
}}
# 218 "/bin/../include/c++/v1/optional" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/is_trivially_move_constructible.h" 1 3
# 18 "/bin/../include/c++/v1/__type_traits/is_trivially_move_constructible.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Tp>
struct is_trivially_move_constructible
: public integral_constant<bool, __is_trivially_constructible(_Tp, __add_rvalue_reference_t<_Tp>)> {};
template <class _Tp>
inline constexpr bool is_trivially_move_constructible_v = is_trivially_move_constructible<_Tp>::value;
}}
# 219 "/bin/../include/c++/v1/optional" 2 3
# 1 "/bin/../include/c++/v1/__type_traits/negation.h" 1 3
# 17 "/bin/../include/c++/v1/__type_traits/negation.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _Pred>
struct _Not : _BoolConstant<!_Pred::value> {};
template <class _Tp>
struct negation : _Not<_Tp> {};
template <class _Tp>
inline constexpr bool negation_v = !_Tp::value;
}}
# 220 "/bin/../include/c++/v1/optional" 2 3
# 1 "/bin/../include/c++/v1/__utility/in_place.h" 1 3
# 18 "/bin/../include/c++/v1/__utility/in_place.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
struct __attribute__((__visibility__("default"))) in_place_t {
explicit in_place_t() = default;
};
inline constexpr in_place_t in_place{};
template <class _Tp>
struct in_place_type_t {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) explicit in_place_type_t() = default;
};
template <class _Tp>
inline constexpr in_place_type_t<_Tp> in_place_type{};
template <size_t _Idx>
struct in_place_index_t {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) explicit in_place_index_t() = default;
};
template <size_t _Idx>
inline constexpr in_place_index_t<_Idx> in_place_index{};
template <class _Tp>
struct __is_inplace_type_imp : false_type {};
template <class _Tp>
struct __is_inplace_type_imp<in_place_type_t<_Tp>> : true_type {};
template <class _Tp>
using __is_inplace_type = __is_inplace_type_imp<__remove_cvref_t<_Tp>>;
template <class _Tp>
struct __is_inplace_index_imp : false_type {};
template <size_t _Idx>
struct __is_inplace_index_imp<in_place_index_t<_Idx>> : true_type {};
template <class _Tp>
using __is_inplace_index = __is_inplace_index_imp<__remove_cvref_t<_Tp>>;
}}
# 226 "/bin/../include/c++/v1/optional" 2 3
# 236 "/bin/../include/c++/v1/optional" 3
# 1 "third_party/stl/cxx17/compare" 1 3
# 1 "/bin/../include/c++/v1/compare" 1 3
# 145 "/bin/../include/c++/v1/compare" 3
# 1 "/bin/../include/c++/v1/__compare/compare_partial_order_fallback.h" 1 3
# 13 "/bin/../include/c++/v1/__compare/compare_partial_order_fallback.h" 3
# 1 "/bin/../include/c++/v1/__compare/partial_order.h" 1 3
# 12 "/bin/../include/c++/v1/__compare/partial_order.h" 3
# 1 "/bin/../include/c++/v1/__compare/compare_three_way.h" 1 3
# 19 "/bin/../include/c++/v1/__compare/compare_three_way.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
struct compare_three_way {
template <class _T1, class _T2>
requires three_way_comparable_with<_T1, _T2>
constexpr __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) auto operator()(_T1&& __t, _T2&& __u) const
noexcept(noexcept(std::forward<_T1>(__t) <=> std::forward<_T2>(__u))) {
return std::forward<_T1>(__t) <=> std::forward<_T2>(__u);
}
using is_transparent = void;
};
}}
# 13 "/bin/../include/c++/v1/__compare/partial_order.h" 2 3
# 1 "/bin/../include/c++/v1/__compare/weak_order.h" 1 3
# 14 "/bin/../include/c++/v1/__compare/weak_order.h" 3
# 1 "/bin/../include/c++/v1/__compare/strong_order.h" 1 3
# 12 "/bin/../include/c++/v1/__compare/strong_order.h" 3
# 1 "/bin/../include/c++/v1/__bit/bit_cast.h" 1 3
# 18 "/bin/../include/c++/v1/__bit/bit_cast.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <class _ToType, class _FromType>
requires(sizeof(_ToType) == sizeof(_FromType) && is_trivially_copyable_v<_ToType> &&
is_trivially_copyable_v<_FromType>)
[[__nodiscard__]] __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _ToType bit_cast(const _FromType& __from) noexcept {
return __builtin_bit_cast(_ToType, __from);
}
}}
# 13 "/bin/../include/c++/v1/__compare/strong_order.h" 2 3
# 23 "/bin/../include/c++/v1/__compare/strong_order.h" 3
# 1 "/bin/../include/c++/v1/__utility/priority_tag.h" 1 3
# 17 "/bin/../include/c++/v1/__utility/priority_tag.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
template <size_t _Ip>
struct __priority_tag : __priority_tag<_Ip - 1> {};
template <>
struct __priority_tag<0> {};
}}
# 24 "/bin/../include/c++/v1/__compare/strong_order.h" 2 3
# 1 "third_party/stl/cxx17/cmath" 1 3
# 1 "/bin/../include/c++/v1/cmath" 1 3
# 331 "/bin/../include/c++/v1/cmath" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 335 "/bin/../include/c++/v1/cmath" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
using ::signbit __attribute__((__using_if_exists__));
using ::fpclassify __attribute__((__using_if_exists__));
using ::isfinite __attribute__((__using_if_exists__));
using ::isinf __attribute__((__using_if_exists__));
using ::isnan __attribute__((__using_if_exists__));
using ::isnormal __attribute__((__using_if_exists__));
using ::isgreater __attribute__((__using_if_exists__));
using ::isgreaterequal __attribute__((__using_if_exists__));
using ::isless __attribute__((__using_if_exists__));
using ::islessequal __attribute__((__using_if_exists__));
using ::islessgreater __attribute__((__using_if_exists__));
using ::isunordered __attribute__((__using_if_exists__));
using ::isunordered __attribute__((__using_if_exists__));
using ::float_t __attribute__((__using_if_exists__));
using ::double_t __attribute__((__using_if_exists__));
using ::abs __attribute__((__using_if_exists__));
using ::acos __attribute__((__using_if_exists__));
using ::acosf __attribute__((__using_if_exists__));
using ::asin __attribute__((__using_if_exists__));
using ::asinf __attribute__((__using_if_exists__));
using ::atan __attribute__((__using_if_exists__));
using ::atanf __attribute__((__using_if_exists__));
using ::atan2 __attribute__((__using_if_exists__));
using ::atan2f __attribute__((__using_if_exists__));
using ::ceil __attribute__((__using_if_exists__));
using ::ceilf __attribute__((__using_if_exists__));
using ::cos __attribute__((__using_if_exists__));
using ::cosf __attribute__((__using_if_exists__));
using ::cosh __attribute__((__using_if_exists__));
using ::coshf __attribute__((__using_if_exists__));
using ::exp __attribute__((__using_if_exists__));
using ::expf __attribute__((__using_if_exists__));
using ::fabs __attribute__((__using_if_exists__));
using ::fabsf __attribute__((__using_if_exists__));
using ::floor __attribute__((__using_if_exists__));
using ::floorf __attribute__((__using_if_exists__));
using ::fmod __attribute__((__using_if_exists__));
using ::fmodf __attribute__((__using_if_exists__));
using ::frexp __attribute__((__using_if_exists__));
using ::frexpf __attribute__((__using_if_exists__));
using ::ldexp __attribute__((__using_if_exists__));
using ::ldexpf __attribute__((__using_if_exists__));
using ::log __attribute__((__using_if_exists__));
using ::logf __attribute__((__using_if_exists__));
using ::log10 __attribute__((__using_if_exists__));
using ::log10f __attribute__((__using_if_exists__));
using ::modf __attribute__((__using_if_exists__));
using ::modff __attribute__((__using_if_exists__));
using ::pow __attribute__((__using_if_exists__));
using ::powf __attribute__((__using_if_exists__));
using ::sin __attribute__((__using_if_exists__));
using ::sinf __attribute__((__using_if_exists__));
using ::sinh __attribute__((__using_if_exists__));
using ::sinhf __attribute__((__using_if_exists__));
using ::sqrt __attribute__((__using_if_exists__));
using ::sqrtf __attribute__((__using_if_exists__));
using ::tan __attribute__((__using_if_exists__));
using ::tanf __attribute__((__using_if_exists__));
using ::tanh __attribute__((__using_if_exists__));
using ::tanhf __attribute__((__using_if_exists__));
using ::acosh __attribute__((__using_if_exists__));
using ::acoshf __attribute__((__using_if_exists__));
using ::asinh __attribute__((__using_if_exists__));
using ::asinhf __attribute__((__using_if_exists__));
using ::atanh __attribute__((__using_if_exists__));
using ::atanhf __attribute__((__using_if_exists__));
using ::cbrt __attribute__((__using_if_exists__));
using ::cbrtf __attribute__((__using_if_exists__));
using ::copysign __attribute__((__using_if_exists__));
using ::copysignf __attribute__((__using_if_exists__));
using ::erf __attribute__((__using_if_exists__));
using ::erff __attribute__((__using_if_exists__));
using ::erfc __attribute__((__using_if_exists__));
using ::erfcf __attribute__((__using_if_exists__));
using ::exp2 __attribute__((__using_if_exists__));
using ::exp2f __attribute__((__using_if_exists__));
using ::expm1 __attribute__((__using_if_exists__));
using ::expm1f __attribute__((__using_if_exists__));
using ::fdim __attribute__((__using_if_exists__));
using ::fdimf __attribute__((__using_if_exists__));
using ::fmaf __attribute__((__using_if_exists__));
using ::fma __attribute__((__using_if_exists__));
using ::fmax __attribute__((__using_if_exists__));
using ::fmaxf __attribute__((__using_if_exists__));
using ::fmin __attribute__((__using_if_exists__));
using ::fminf __attribute__((__using_if_exists__));
using ::hypot __attribute__((__using_if_exists__));
using ::hypotf __attribute__((__using_if_exists__));
using ::ilogb __attribute__((__using_if_exists__));
using ::ilogbf __attribute__((__using_if_exists__));
using ::lgamma __attribute__((__using_if_exists__));
using ::lgammaf __attribute__((__using_if_exists__));
using ::llrint __attribute__((__using_if_exists__));
using ::llrintf __attribute__((__using_if_exists__));
using ::llround __attribute__((__using_if_exists__));
using ::llroundf __attribute__((__using_if_exists__));
using ::log1p __attribute__((__using_if_exists__));
using ::log1pf __attribute__((__using_if_exists__));
using ::log2 __attribute__((__using_if_exists__));
using ::log2f __attribute__((__using_if_exists__));
using ::logb __attribute__((__using_if_exists__));
using ::logbf __attribute__((__using_if_exists__));
using ::lrint __attribute__((__using_if_exists__));
using ::lrintf __attribute__((__using_if_exists__));
using ::lround __attribute__((__using_if_exists__));
using ::lroundf __attribute__((__using_if_exists__));
using ::nan __attribute__((__using_if_exists__));
using ::nanf __attribute__((__using_if_exists__));
using ::nearbyint __attribute__((__using_if_exists__));
using ::nearbyintf __attribute__((__using_if_exists__));
using ::nextafter __attribute__((__using_if_exists__));
using ::nextafterf __attribute__((__using_if_exists__));
using ::nexttoward __attribute__((__using_if_exists__));
using ::nexttowardf __attribute__((__using_if_exists__));
using ::remainder __attribute__((__using_if_exists__));
using ::remainderf __attribute__((__using_if_exists__));
using ::remquo __attribute__((__using_if_exists__));
using ::remquof __attribute__((__using_if_exists__));
using ::rint __attribute__((__using_if_exists__));
using ::rintf __attribute__((__using_if_exists__));
using ::round __attribute__((__using_if_exists__));
using ::roundf __attribute__((__using_if_exists__));
using ::scalbln __attribute__((__using_if_exists__));
using ::scalblnf __attribute__((__using_if_exists__));
using ::scalbn __attribute__((__using_if_exists__));
using ::scalbnf __attribute__((__using_if_exists__));
using ::tgamma __attribute__((__using_if_exists__));
using ::tgammaf __attribute__((__using_if_exists__));
using ::trunc __attribute__((__using_if_exists__));
using ::truncf __attribute__((__using_if_exists__));
using ::acosl __attribute__((__using_if_exists__));
using ::asinl __attribute__((__using_if_exists__));
using ::atanl __attribute__((__using_if_exists__));
using ::atan2l __attribute__((__using_if_exists__));
using ::ceill __attribute__((__using_if_exists__));
using ::cosl __attribute__((__using_if_exists__));
using ::coshl __attribute__((__using_if_exists__));
using ::expl __attribute__((__using_if_exists__));
using ::fabsl __attribute__((__using_if_exists__));
using ::floorl __attribute__((__using_if_exists__));
using ::fmodl __attribute__((__using_if_exists__));
using ::frexpl __attribute__((__using_if_exists__));
using ::ldexpl __attribute__((__using_if_exists__));
using ::logl __attribute__((__using_if_exists__));
using ::log10l __attribute__((__using_if_exists__));
using ::modfl __attribute__((__using_if_exists__));
using ::powl __attribute__((__using_if_exists__));
using ::sinl __attribute__((__using_if_exists__));
using ::sinhl __attribute__((__using_if_exists__));
using ::sqrtl __attribute__((__using_if_exists__));
using ::tanl __attribute__((__using_if_exists__));
using ::tanhl __attribute__((__using_if_exists__));
using ::acoshl __attribute__((__using_if_exists__));
using ::asinhl __attribute__((__using_if_exists__));
using ::atanhl __attribute__((__using_if_exists__));
using ::cbrtl __attribute__((__using_if_exists__));
using ::copysignl __attribute__((__using_if_exists__));
using ::erfl __attribute__((__using_if_exists__));
using ::erfcl __attribute__((__using_if_exists__));
using ::exp2l __attribute__((__using_if_exists__));
using ::expm1l __attribute__((__using_if_exists__));
using ::fdiml __attribute__((__using_if_exists__));
using ::fmal __attribute__((__using_if_exists__));
using ::fmaxl __attribute__((__using_if_exists__));
using ::fminl __attribute__((__using_if_exists__));
using ::hypotl __attribute__((__using_if_exists__));
using ::ilogbl __attribute__((__using_if_exists__));
using ::lgammal __attribute__((__using_if_exists__));
using ::llrintl __attribute__((__using_if_exists__));
using ::llroundl __attribute__((__using_if_exists__));
using ::log1pl __attribute__((__using_if_exists__));
using ::log2l __attribute__((__using_if_exists__));
using ::logbl __attribute__((__using_if_exists__));
using ::lrintl __attribute__((__using_if_exists__));
using ::lroundl __attribute__((__using_if_exists__));
using ::nanl __attribute__((__using_if_exists__));
using ::nearbyintl __attribute__((__using_if_exists__));
using ::nextafterl __attribute__((__using_if_exists__));
using ::nexttowardl __attribute__((__using_if_exists__));
using ::remainderl __attribute__((__using_if_exists__));
using ::remquol __attribute__((__using_if_exists__));
using ::rintl __attribute__((__using_if_exists__));
using ::roundl __attribute__((__using_if_exists__));
using ::scalblnl __attribute__((__using_if_exists__));
using ::scalbnl __attribute__((__using_if_exists__));
using ::tgammal __attribute__((__using_if_exists__));
using ::truncl __attribute__((__using_if_exists__));
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float hypot(float __x, float __y, float __z) {
return sqrt(__x * __x + __y * __y + __z * __z);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double hypot(double __x, double __y, double __z) {
return sqrt(__x * __x + __y * __y + __z * __z);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double hypot(long double __x, long double __y, long double __z) {
return sqrt(__x * __x + __y * __y + __z * __z);
}
template <class _A1, class _A2, class _A3>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__))
typename enable_if_t< is_arithmetic<_A1>::value && is_arithmetic<_A2>::value && is_arithmetic<_A3>::value,
__promote<_A1, _A2, _A3> >::type
hypot(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) noexcept {
typedef typename __promote<_A1, _A2, _A3>::type __result_type;
static_assert((!(is_same<_A1, __result_type>::value && is_same<_A2, __result_type>::value &&
is_same<_A3, __result_type>::value)),
"");
return std::hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z);
}
template <class _A1, __enable_if_t<is_floating_point<_A1>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __constexpr_isnan(_A1 __lcpp_x) noexcept {
return __builtin_isnan(__lcpp_x);
}
template <class _A1, __enable_if_t<!is_floating_point<_A1>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __constexpr_isnan(_A1 __lcpp_x) noexcept {
return std::isnan(__lcpp_x);
}
template <class _A1, __enable_if_t<is_floating_point<_A1>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __constexpr_isinf(_A1 __lcpp_x) noexcept {
return __builtin_isinf(__lcpp_x);
}
template <class _A1, __enable_if_t<!is_floating_point<_A1>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __constexpr_isinf(_A1 __lcpp_x) noexcept {
return std::isinf(__lcpp_x);
}
template <class _A1, __enable_if_t<is_floating_point<_A1>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __constexpr_isfinite(_A1 __lcpp_x) noexcept {
return __builtin_isfinite(__lcpp_x);
}
template <class _A1, __enable_if_t<!is_floating_point<_A1>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __constexpr_isfinite(_A1 __lcpp_x) noexcept {
return __builtin_isfinite(__lcpp_x);
}
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) float __constexpr_copysign(float __x, float __y) noexcept {
return __builtin_copysignf(__x, __y);
}
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) double __constexpr_copysign(double __x, double __y) noexcept {
return __builtin_copysign(__x, __y);
}
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) long double
__constexpr_copysign(long double __x, long double __y) noexcept {
return __builtin_copysignl(__x, __y);
}
template <class _A1,
class _A2,
__enable_if_t<std::is_arithmetic<_A1>::value && std::is_arithmetic<_A2>::value, int> = 0>
constexpr inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) typename __promote<_A1, _A2>::type
__constexpr_copysign(_A1 __x, _A2 __y) noexcept {
typedef typename std::__promote<_A1, _A2>::type __result_type;
static_assert((!(std::_IsSame<_A1, __result_type>::value && std::_IsSame<_A2, __result_type>::value)), "");
return __builtin_copysign((__result_type)__x, (__result_type)__y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr float __constexpr_fabs(float __x) noexcept {
return __builtin_fabsf(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr double __constexpr_fabs(double __x) noexcept {
return __builtin_fabs(__x);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr long double __constexpr_fabs(long double __x) noexcept {
return __builtin_fabsl(__x);
}
template <class _Tp, __enable_if_t<is_integral<_Tp>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr double __constexpr_fabs(_Tp __x) noexcept {
return __builtin_fabs(static_cast<double>(__x));
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr float __constexpr_fmax(float __x, float __y) noexcept {
# 664 "/bin/../include/c++/v1/cmath" 3
return __builtin_fmaxf(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr double __constexpr_fmax(double __x, double __y) noexcept {
# 677 "/bin/../include/c++/v1/cmath" 3
return __builtin_fmax(__x, __y);
}
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr long double
__constexpr_fmax(long double __x, long double __y) noexcept {
# 691 "/bin/../include/c++/v1/cmath" 3
return __builtin_fmaxl(__x, __y);
}
template <class _Tp, class _Up, __enable_if_t<is_arithmetic<_Tp>::value && is_arithmetic<_Up>::value, int> = 0>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr typename __promote<_Tp, _Up>::type
__constexpr_fmax(_Tp __x, _Up __y) noexcept {
using __result_type = typename __promote<_Tp, _Up>::type;
return std::__constexpr_fmax(static_cast<__result_type>(__x), static_cast<__result_type>(__y));
}
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp __constexpr_logb(_Tp __x) {
if (__libcpp_is_constant_evaluated()) {
if (__x == _Tp(0)) {
return -numeric_limits<_Tp>::infinity();
}
if (std::__constexpr_isinf(__x))
return numeric_limits<_Tp>::infinity();
if (std::__constexpr_isnan(__x))
return numeric_limits<_Tp>::quiet_NaN();
__x = std::__constexpr_fabs(__x);
unsigned long long __exp = 0;
while (__x >= numeric_limits<_Tp>::radix) {
__x /= numeric_limits<_Tp>::radix;
__exp += 1;
}
return _Tp(__exp);
}
return __builtin_logb(__x);
}
template <class _Tp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Tp __constexpr_scalbn(_Tp __x, int __exp) {
if (__libcpp_is_constant_evaluated()) {
if (__x == _Tp(0))
return __x;
if (std::__constexpr_isinf(__x))
return __x;
if (__exp == _Tp(0))
return __x;
if (std::__constexpr_isnan(__x))
return numeric_limits<_Tp>::quiet_NaN();
_Tp __mult(1);
if (__exp > 0) {
__mult = numeric_limits<_Tp>::radix;
--__exp;
} else {
++__exp;
__exp = -__exp;
__mult /= numeric_limits<_Tp>::radix;
}
while (__exp > 0) {
if (!(__exp & 1)) {
__mult *= __mult;
__exp >>= 1;
} else {
__x *= __mult;
--__exp;
}
}
return __x;
}
return __builtin_scalbn(__x, __exp);
}
template <typename _Fp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr _Fp __lerp(_Fp __a, _Fp __b, _Fp __t) noexcept {
if ((__a <= 0 && __b >= 0) || (__a >= 0 && __b <= 0))
return __t * __b + (1 - __t) * __a;
if (__t == 1)
return __b;
const _Fp __x = __a + __t * (__b - __a);
if ((__t > 1) == (__b > __a))
return __b < __x ? __x : __b;
else
return __x < __b ? __x : __b;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr float lerp(float __a, float __b, float __t) noexcept {
return __lerp(__a, __b, __t);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr double lerp(double __a, double __b, double __t) noexcept {
return __lerp(__a, __b, __t);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr long double lerp(long double __a, long double __b, long double __t) noexcept {
return __lerp(__a, __b, __t);
}
template <class _A1, class _A2, class _A3>
inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
typename enable_if_t< is_arithmetic<_A1>::value && is_arithmetic<_A2>::value && is_arithmetic<_A3>::value,
__promote<_A1, _A2, _A3> >::type
lerp(_A1 __a, _A2 __b, _A3 __t) noexcept {
typedef typename __promote<_A1, _A2, _A3>::type __result_type;
static_assert(!(
_IsSame<_A1, __result_type>::value && _IsSame<_A2, __result_type>::value && _IsSame<_A3, __result_type>::value));
return std::__lerp((__result_type)__a, (__result_type)__b, (__result_type)__t);
}
}}
# 5 "third_party/stl/cxx17/cmath" 2 3
# 28 "/bin/../include/c++/v1/__compare/strong_order.h" 2 3
# 35 "/bin/../include/c++/v1/__compare/strong_order.h" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 39 "/bin/../include/c++/v1/__compare/strong_order.h" 2 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __strong_order {
struct __fn {
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<2>) noexcept(
noexcept(strong_ordering(strong_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))))
-> decltype(strong_ordering(strong_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))) {
return strong_ordering(strong_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)));
}
template <class _Tp, class _Up, class _Dp = decay_t<_Tp>>
requires is_same_v<_Dp, decay_t<_Up>> && is_floating_point_v<_Dp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr strong_ordering __go(_Tp&& __t, _Up&& __u, __priority_tag<1>) noexcept {
if constexpr (numeric_limits<_Dp>::is_iec559 && sizeof(_Dp) == sizeof(int32_t)) {
int32_t __rx = std::bit_cast<int32_t>(__t);
int32_t __ry = std::bit_cast<int32_t>(__u);
__rx = (__rx < 0) ? (numeric_limits<int32_t>::min() - __rx - 1) : __rx;
__ry = (__ry < 0) ? (numeric_limits<int32_t>::min() - __ry - 1) : __ry;
return (__rx <=> __ry);
} else if constexpr (numeric_limits<_Dp>::is_iec559 && sizeof(_Dp) == sizeof(int64_t)) {
int64_t __rx = std::bit_cast<int64_t>(__t);
int64_t __ry = std::bit_cast<int64_t>(__u);
__rx = (__rx < 0) ? (numeric_limits<int64_t>::min() - __rx - 1) : __rx;
__ry = (__ry < 0) ? (numeric_limits<int64_t>::min() - __ry - 1) : __ry;
return (__rx <=> __ry);
} else if (__t < __u) {
return strong_ordering::less;
} else if (__t > __u) {
return strong_ordering::greater;
} else if (__t == __u) {
if constexpr (numeric_limits<_Dp>::radix == 2) {
return __math::signbit(__u) <=> __math::signbit(__t);
} else {
if (__t == 0 || __math::isinf(__t)) {
return __math::signbit(__u) <=> __math::signbit(__t);
} else {
int __texp, __uexp;
(void)__math::frexp(__t, &__texp);
(void)__math::frexp(__u, &__uexp);
return (__t < 0) ? (__texp <=> __uexp) : (__uexp <=> __texp);
}
}
} else {
bool __t_is_nan = __math::isnan(__t);
bool __u_is_nan = __math::isnan(__u);
bool __t_is_negative = __math::signbit(__t);
bool __u_is_negative = __math::signbit(__u);
using _IntType =
conditional_t< sizeof(__t) == sizeof(int32_t),
int32_t,
conditional_t< sizeof(__t) == sizeof(int64_t), int64_t, void> >;
if constexpr (is_same_v<_IntType, void>) {
static_assert(sizeof(_Dp) == 0, "std::strong_order is unimplemented for this floating-point type");
} else if (__t_is_nan && __u_is_nan) {
if (__t_is_negative != __u_is_negative) {
return (__u_is_negative <=> __t_is_negative);
} else {
return std::bit_cast<_IntType>(__t) <=> std::bit_cast<_IntType>(__u);
}
} else if (__t_is_nan) {
return __t_is_negative ? strong_ordering::less : strong_ordering::greater;
} else {
return __u_is_negative ? strong_ordering::greater : strong_ordering::less;
}
}
}
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<0>) noexcept(
noexcept(strong_ordering(compare_three_way()(std::forward<_Tp>(__t), std::forward<_Up>(__u)))))
-> decltype(strong_ordering(compare_three_way()(std::forward<_Tp>(__t), std::forward<_Up>(__u)))) {
return strong_ordering(compare_three_way()(std::forward<_Tp>(__t), std::forward<_Up>(__u)));
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t, _Up&& __u) const
noexcept(noexcept(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<2>())))
-> decltype(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<2>())) {
return __go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<2>());
}
};
}
inline namespace __cpo {
inline constexpr auto strong_order = __strong_order::__fn{};
}
}}
# 15 "/bin/../include/c++/v1/__compare/weak_order.h" 2 3
# 30 "/bin/../include/c++/v1/__compare/weak_order.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __weak_order {
struct __fn {
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<3>) noexcept(
noexcept(weak_ordering(weak_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))))
-> decltype(weak_ordering(weak_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))) {
return weak_ordering(weak_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)));
}
template <class _Tp, class _Up, class _Dp = decay_t<_Tp>>
requires is_same_v<_Dp, decay_t<_Up>> && is_floating_point_v<_Dp>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr weak_ordering __go(_Tp&& __t, _Up&& __u, __priority_tag<2>) noexcept {
partial_ordering __po = (__t <=> __u);
if (__po == partial_ordering::less) {
return weak_ordering::less;
} else if (__po == partial_ordering::equivalent) {
return weak_ordering::equivalent;
} else if (__po == partial_ordering::greater) {
return weak_ordering::greater;
} else {
bool __t_is_nan = __math::isnan(__t);
bool __u_is_nan = __math::isnan(__u);
bool __t_is_negative = __math::signbit(__t);
bool __u_is_negative = __math::signbit(__u);
if (__t_is_nan && __u_is_nan) {
return (__u_is_negative <=> __t_is_negative);
} else if (__t_is_nan) {
return __t_is_negative ? weak_ordering::less : weak_ordering::greater;
} else {
return __u_is_negative ? weak_ordering::greater : weak_ordering::less;
}
}
}
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<1>) noexcept(
noexcept(weak_ordering(compare_three_way()(std::forward<_Tp>(__t), std::forward<_Up>(__u)))))
-> decltype(weak_ordering(compare_three_way()(std::forward<_Tp>(__t), std::forward<_Up>(__u)))) {
return weak_ordering(compare_three_way()(std::forward<_Tp>(__t), std::forward<_Up>(__u)));
}
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<0>) noexcept(
noexcept(weak_ordering(std::strong_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))))
-> decltype(weak_ordering(std::strong_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))) {
return weak_ordering(std::strong_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)));
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t, _Up&& __u) const
noexcept(noexcept(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<3>())))
-> decltype(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<3>())) {
return __go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<3>());
}
};
}
inline namespace __cpo {
inline constexpr auto weak_order = __weak_order::__fn{};
}
}}
# 15 "/bin/../include/c++/v1/__compare/partial_order.h" 2 3
# 23 "/bin/../include/c++/v1/__compare/partial_order.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __partial_order {
struct __fn {
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<2>) noexcept(
noexcept(partial_ordering(partial_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))))
-> decltype(partial_ordering(partial_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))) {
return partial_ordering(partial_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)));
}
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<1>) noexcept(
noexcept(partial_ordering(compare_three_way()(std::forward<_Tp>(__t), std::forward<_Up>(__u)))))
-> decltype(partial_ordering(compare_three_way()(std::forward<_Tp>(__t), std::forward<_Up>(__u)))) {
return partial_ordering(compare_three_way()(std::forward<_Tp>(__t), std::forward<_Up>(__u)));
}
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<0>) noexcept(
noexcept(partial_ordering(std::weak_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))))
-> decltype(partial_ordering(std::weak_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)))) {
return partial_ordering(std::weak_order(std::forward<_Tp>(__t), std::forward<_Up>(__u)));
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t, _Up&& __u) const
noexcept(noexcept(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<2>())))
-> decltype(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<2>())) {
return __go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<2>());
}
};
}
inline namespace __cpo {
inline constexpr auto partial_order = __partial_order::__fn{};
}
}}
# 14 "/bin/../include/c++/v1/__compare/compare_partial_order_fallback.h" 2 3
# 22 "/bin/../include/c++/v1/__compare/compare_partial_order_fallback.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __compare_partial_order_fallback {
struct __fn {
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<1>) noexcept(
noexcept(std::partial_order(std::forward<_Tp>(__t), std::forward<_Up>(__u))))
-> decltype(std::partial_order(std::forward<_Tp>(__t), std::forward<_Up>(__u))) {
return std::partial_order(std::forward<_Tp>(__t), std::forward<_Up>(__u));
}
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<0>) noexcept(noexcept(
std::forward<_Tp>(__t) == std::forward<_Up>(__u) ? partial_ordering::equivalent
: std::forward<_Tp>(__t) < std::forward<_Up>(__u) ? partial_ordering::less
: std::forward<_Up>(__u) < std::forward<_Tp>(__t)
? partial_ordering::greater
: partial_ordering::unordered))
-> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u) ? partial_ordering::equivalent
: std::forward<_Tp>(__t) < std::forward<_Up>(__u) ? partial_ordering::less
: std::forward<_Up>(__u) < std::forward<_Tp>(__t)
? partial_ordering::greater
: partial_ordering::unordered) {
return std::forward<_Tp>(__t) == std::forward<_Up>(__u) ? partial_ordering::equivalent
: std::forward<_Tp>(__t) < std::forward<_Up>(__u) ? partial_ordering::less
: std::forward<_Up>(__u) < std::forward<_Tp>(__t)
? partial_ordering::greater
: partial_ordering::unordered;
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t, _Up&& __u) const
noexcept(noexcept(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<1>())))
-> decltype(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<1>())) {
return __go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<1>());
}
};
}
inline namespace __cpo {
inline constexpr auto compare_partial_order_fallback = __compare_partial_order_fallback::__fn{};
}
}}
# 146 "/bin/../include/c++/v1/compare" 2 3
# 1 "/bin/../include/c++/v1/__compare/compare_strong_order_fallback.h" 1 3
# 22 "/bin/../include/c++/v1/__compare/compare_strong_order_fallback.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __compare_strong_order_fallback {
struct __fn {
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<1>) noexcept(
noexcept(std::strong_order(std::forward<_Tp>(__t), std::forward<_Up>(__u))))
-> decltype(std::strong_order(std::forward<_Tp>(__t), std::forward<_Up>(__u))) {
return std::strong_order(std::forward<_Tp>(__t), std::forward<_Up>(__u));
}
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<0>) noexcept(noexcept(
std::forward<_Tp>(__t) == std::forward<_Up>(__u) ? strong_ordering::equal
: std::forward<_Tp>(__t) < std::forward<_Up>(__u)
? strong_ordering::less
: strong_ordering::greater))
-> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u) ? strong_ordering::equal
: std::forward<_Tp>(__t) < std::forward<_Up>(__u)
? strong_ordering::less
: strong_ordering::greater) {
return std::forward<_Tp>(__t) == std::forward<_Up>(__u) ? strong_ordering::equal
: std::forward<_Tp>(__t) < std::forward<_Up>(__u)
? strong_ordering::less
: strong_ordering::greater;
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t, _Up&& __u) const
noexcept(noexcept(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<1>())))
-> decltype(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<1>())) {
return __go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<1>());
}
};
}
inline namespace __cpo {
inline constexpr auto compare_strong_order_fallback = __compare_strong_order_fallback::__fn{};
}
}}
# 147 "/bin/../include/c++/v1/compare" 2 3
# 1 "/bin/../include/c++/v1/__compare/compare_weak_order_fallback.h" 1 3
# 22 "/bin/../include/c++/v1/__compare/compare_weak_order_fallback.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
namespace __compare_weak_order_fallback {
struct __fn {
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<1>) noexcept(
noexcept(std::weak_order(std::forward<_Tp>(__t), std::forward<_Up>(__u))))
-> decltype(std::weak_order(std::forward<_Tp>(__t), std::forward<_Up>(__u))) {
return std::weak_order(std::forward<_Tp>(__t), std::forward<_Up>(__u));
}
template <class _Tp, class _Up>
requires is_same_v<decay_t<_Tp>, decay_t<_Up>>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) static constexpr auto __go(_Tp&& __t, _Up&& __u, __priority_tag<0>) noexcept(noexcept(
std::forward<_Tp>(__t) == std::forward<_Up>(__u) ? weak_ordering::equivalent
: std::forward<_Tp>(__t) < std::forward<_Up>(__u)
? weak_ordering::less
: weak_ordering::greater))
-> decltype(std::forward<_Tp>(__t) == std::forward<_Up>(__u) ? weak_ordering::equivalent
: std::forward<_Tp>(__t) < std::forward<_Up>(__u)
? weak_ordering::less
: weak_ordering::greater) {
return std::forward<_Tp>(__t) == std::forward<_Up>(__u) ? weak_ordering::equivalent
: std::forward<_Tp>(__t) < std::forward<_Up>(__u)
? weak_ordering::less
: weak_ordering::greater;
}
template <class _Tp, class _Up>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr auto operator()(_Tp&& __t, _Up&& __u) const
noexcept(noexcept(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<1>())))
-> decltype(__go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<1>())) {
return __go(std::forward<_Tp>(__t), std::forward<_Up>(__u), __priority_tag<1>());
}
};
}
inline namespace __cpo {
inline constexpr auto compare_weak_order_fallback = __compare_weak_order_fallback::__fn{};
}
}}
# 150 "/bin/../include/c++/v1/compare" 2 3
# 1 "/bin/../include/c++/v1/__compare/is_eq.h" 1 3
# 17 "/bin/../include/c++/v1/__compare/is_eq.h" 3
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr bool is_eq(partial_ordering __c) noexcept { return __c == 0; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr bool is_neq(partial_ordering __c) noexcept { return __c != 0; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr bool is_lt(partial_ordering __c) noexcept { return __c < 0; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr bool is_lteq(partial_ordering __c) noexcept { return __c <= 0; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr bool is_gt(partial_ordering __c) noexcept { return __c > 0; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) inline constexpr bool is_gteq(partial_ordering __c) noexcept { return __c >= 0; }
}}
# 151 "/bin/../include/c++/v1/compare" 2 3
# 162 "/bin/../include/c++/v1/compare" 3
# 6 "third_party/stl/cxx17/compare" 2 3
# 237 "/bin/../include/c++/v1/optional" 2 3
# 240 "/bin/../include/c++/v1/optional" 3
# 1 "/bin/../include/c++/v1/__undef_macros" 1 3
# 244 "/bin/../include/c++/v1/optional" 2 3
namespace std
{
class __attribute__((__visibility__("default"))) bad_optional_access : public exception {
public:
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_optional_access() noexcept = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_optional_access(const bad_optional_access&) noexcept = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) bad_optional_access& operator=(const bad_optional_access&) noexcept = default;
~bad_optional_access() noexcept override;
const char* what() const noexcept override;
};
}
namespace __attribute__((__type_visibility__("default"))) std { inline namespace __u {
[[noreturn]] inline __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) void
__throw_bad_optional_access() {
throw bad_optional_access();
}
struct nullopt_t {
struct __secret_tag {
explicit __secret_tag() = default;
};
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit nullopt_t(__secret_tag, __secret_tag) noexcept {}
};
inline constexpr nullopt_t nullopt{nullopt_t::__secret_tag{}, nullopt_t::__secret_tag{}};
struct __optional_construct_from_invoke_tag {};
template <class _Tp, bool = is_trivially_destructible<_Tp>::value>
struct __optional_destruct_base;
template <class _Tp>
struct __optional_destruct_base<_Tp, false> {
typedef _Tp value_type;
static_assert(is_object_v<value_type>, "instantiation of optional with a non-object type is undefined behavior");
union {
char __null_state_;
value_type __val_;
};
bool __engaged_;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr ~__optional_destruct_base() {
if (__engaged_)
__val_.~value_type();
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __optional_destruct_base() noexcept : __null_state_(), __engaged_(false) {}
template <class... _Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit __optional_destruct_base(in_place_t, _Args&&... __args)
: __val_(std::forward<_Args>(__args)...), __engaged_(true) {}
# 315 "/bin/../include/c++/v1/optional" 3
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void reset() noexcept {
if (__engaged_) {
__val_.~value_type();
__engaged_ = false;
}
}
};
template <class _Tp>
struct __optional_destruct_base<_Tp, true> {
typedef _Tp value_type;
static_assert(is_object_v<value_type>, "instantiation of optional with a non-object type is undefined behavior");
union {
char __null_state_;
value_type __val_;
};
bool __engaged_;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __optional_destruct_base() noexcept : __null_state_(), __engaged_(false) {}
template <class... _Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit __optional_destruct_base(in_place_t, _Args&&... __args)
: __val_(std::forward<_Args>(__args)...), __engaged_(true) {}
# 346 "/bin/../include/c++/v1/optional" 3
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void reset() noexcept {
if (__engaged_) {
__engaged_ = false;
}
}
};
template <class _Tp, bool = is_reference<_Tp>::value>
struct __optional_storage_base : __optional_destruct_base<_Tp> {
using __base = __optional_destruct_base<_Tp>;
using value_type = _Tp;
using __base::__base;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool has_value() const noexcept { return this->__engaged_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr value_type& __get() & noexcept { return this->__val_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const value_type& __get() const& noexcept { return this->__val_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr value_type&& __get() && noexcept { return std::move(this->__val_); }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr const value_type&& __get() const&& noexcept { return std::move(this->__val_); }
template <class... _Args>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void __construct(_Args&&... __args) {
((void)0);
std::__construct_at(std::addressof(this->__val_), std::forward<_Args>(__args)...);
this->__engaged_ = true;
}
template <class _That>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void __construct_from(_That&& __opt) {
if (__opt.has_value())
__construct(std::forward<_That>(__opt).__get());
}
template <class _That>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void __assign_from(_That&& __opt) {
if (this->__engaged_ == __opt.has_value()) {
if (this->__engaged_)
this->__val_ = std::forward<_That>(__opt).__get();
} else {
if (this->__engaged_)
this->reset();
else
__construct(std::forward<_That>(__opt).__get());
}
}
};
template <class _Tp>
struct __optional_storage_base<_Tp, true> {
using value_type = _Tp;
using __raw_type = remove_reference_t<_Tp>;
__raw_type* __value_;
template <class _Up>
static __attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool __can_bind_reference() {
using _RawUp = __libcpp_remove_reference_t<_Up>;
using _UpPtr = _RawUp*;
using _RawTp = __libcpp_remove_reference_t<_Tp>;
using _TpPtr = _RawTp*;
using _CheckLValueArg =
integral_constant<bool,
(is_lvalue_reference<_Up>::value && is_convertible<_UpPtr, _TpPtr>::value) ||
is_same<_RawUp, reference_wrapper<_RawTp>>::value ||
is_same<_RawUp, reference_wrapper<__remove_const_t<_RawTp>>>::value >;
return (is_lvalue_reference<_Tp>::value && _CheckLValueArg::value) ||
(is_rvalue_reference<_Tp>::value && !is_lvalue_reference<_Up>::value &&
is_convertible<_UpPtr, _TpPtr>::value);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __optional_storage_base() noexcept : __value_(nullptr) {}
template <class _UArg>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr explicit __optional_storage_base(in_place_t, _UArg&& __uarg)
: __value_(std::addressof(__uarg)) {
static_assert(__can_bind_reference<_UArg>(),
"Attempted to construct a reference element in tuple from a "
"possible temporary");
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void reset() noexcept { __value_ = nullptr; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr bool has_value() const noexcept { return __value_ != nullptr; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr value_type& __get() const& noexcept { return *__value_; }
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr value_type&& __get() const&& noexcept { return std::forward<value_type>(*__value_); }
template <class _UArg>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void __construct(_UArg&& __val) {
((void)0);
static_assert(__can_bind_reference<_UArg>(),
"Attempted to construct a reference element in tuple from a "
"possible temporary");
__value_ = std::addressof(__val);
}
template <class _That>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void __construct_from(_That&& __opt) {
if (__opt.has_value())
__construct(std::forward<_That>(__opt).__get());
}
template <class _That>
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr void __assign_from(_That&& __opt) {
if (has_value() == __opt.has_value()) {
if (has_value())
*__value_ = std::forward<_That>(__opt).__get();
} else {
if (has_value())
reset();
else
__construct(std::forward<_That>(__opt).__get());
}
}
};
template <class _Tp, bool = is_trivially_copy_constructible<_Tp>::value>
struct __optional_copy_base : __optional_storage_base<_Tp> {
using __optional_storage_base<_Tp>::__optional_storage_base;
};
template <class _Tp>
struct __optional_copy_base<_Tp, false> : __optional_storage_base<_Tp> {
using __optional_storage_base<_Tp>::__optional_storage_base;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_copy_base() = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __optional_copy_base(const __optional_copy_base& __opt) {
this->__construct_from(__opt);
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_copy_base(__optional_copy_base&&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_copy_base& operator=(const __optional_copy_base&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_copy_base& operator=(__optional_copy_base&&) = default;
};
template <class _Tp, bool = is_trivially_move_constructible<_Tp>::value>
struct __optional_move_base : __optional_copy_base<_Tp> {
using __optional_copy_base<_Tp>::__optional_copy_base;
};
template <class _Tp>
struct __optional_move_base<_Tp, false> : __optional_copy_base<_Tp> {
using value_type = _Tp;
using __optional_copy_base<_Tp>::__optional_copy_base;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_move_base() = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_move_base(const __optional_move_base&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr
__optional_move_base(__optional_move_base&& __opt) noexcept(is_nothrow_move_constructible_v<value_type>) {
this->__construct_from(std::move(__opt));
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_move_base& operator=(const __optional_move_base&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_move_base& operator=(__optional_move_base&&) = default;
};
template <class _Tp,
bool = is_trivially_destructible<_Tp>::value && is_trivially_copy_constructible<_Tp>::value &&
is_trivially_copy_assignable<_Tp>::value>
struct __optional_copy_assign_base : __optional_move_base<_Tp> {
using __optional_move_base<_Tp>::__optional_move_base;
};
template <class _Tp>
struct __optional_copy_assign_base<_Tp, false> : __optional_move_base<_Tp> {
using __optional_move_base<_Tp>::__optional_move_base;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_copy_assign_base() = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_copy_assign_base(const __optional_copy_assign_base&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_copy_assign_base(__optional_copy_assign_base&&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __optional_copy_assign_base&
operator=(const __optional_copy_assign_base& __opt) {
this->__assign_from(__opt);
return *this;
}
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_copy_assign_base& operator=(__optional_copy_assign_base&&) = default;
};
template <class _Tp,
bool = is_trivially_destructible<_Tp>::value && is_trivially_move_constructible<_Tp>::value &&
is_trivially_move_assignable<_Tp>::value>
struct __optional_move_assign_base : __optional_copy_assign_base<_Tp> {
using __optional_copy_assign_base<_Tp>::__optional_copy_assign_base;
};
template <class _Tp>
struct __optional_move_assign_base<_Tp, false> : __optional_copy_assign_base<_Tp> {
using value_type = _Tp;
using __optional_copy_assign_base<_Tp>::__optional_copy_assign_base;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_move_assign_base() = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_move_assign_base(const __optional_move_assign_base& __opt) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_move_assign_base(__optional_move_assign_base&&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) __optional_move_assign_base& operator=(const __optional_move_assign_base&) = default;
__attribute__((__visibility__("hidden"))) __attribute__((__exclude_from_explicit_instantiation__)) constexpr __optional_move_assign_base&
operator=(__optional_move_assign_base&& __opt) noexcept(
is_nothrow_move_assignable_v<value_type> && is_nothrow_move_constructible_v<value_type>) {
this->__assign_from(std::move(__opt));
return *this;
}
};
template <class _Tp>
using __optional_sfinae_ctor_base_t =
__sfinae_ctor_base< is_copy_constructible<_Tp>::value, is_move_constructible<_Tp>::value >;
template <class _Tp>
using __optional_sfinae_assign_base_t =
__sfinae_assign_base< (is_copy_constructible<_Tp>::value && is_copy_assignable<_Tp>::value),
(is_move_constructible<_Tp>::value && is_move_assignable<_Tp>::value) >;
template <class _Tp>
class optional;
template <class _Tp>
concept __is_derived_from_optional = requires(const _Tp& __t) { []<class _Up>(const optional<_Up>&) {}(__t); };
template <class _Tp>
struct __is_std_optional : false_type {};
template <class _Tp>
struct __is_std_optional<optional<_Tp>> : true_type {};
template <class _Tp>
class optional
: private __optional_move_assign_base<_Tp>,
private __optional_sfinae_ctor_base_t<_Tp>,
private __optional_sfinae_assign_base_t<_Tp> {
using __base = __optional_move_assign_base<_Tp>;
public:
using value_type = _Tp;
private:
static_assert(!is_same_v<__remove_cvref_t<value_type>, in_place_t>,
"instantiation of optional with in_place_t is ill-formed");
static_assert(!is_same_v<__remove_cvref_t<value_type>, nullopt_t>,
"instantiation of optional with nullopt_t is ill-formed");
static_assert(!is_reference_v<value_type>, "instantiation of optional with a reference type is ill-formed");
static_ass
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment