// File: /workspace/github_cpp_makefile_star2_O1/lemire[P]runningmaxmin/runningmaxmin.cpp
// Function: timingsline(std::vector<double, std::allocator<double>>, unsigned int, bool)
void timingsline(std::vector<floattype> data, uint width = 30,
                 bool doslow = false) {
    std::cout << " width = " << width << std::endl;
    clock_t start, finish;
    start = clock();
    if (doslow)
        for (uint i = 0; i < 30; ++i)
            slowmaxmin A(data, width);
    finish = clock();
    std::cout << "slow = "
              << static_cast<double>(finish - start) / CLOCKS_PER_SEC
              << std::endl;
    start = clock();
    for (uint i = 0; i < 30; ++i)
        vanHerkGilWermanmaxmin B(data, width);
    finish = clock();
    std::cout << "vanHerk = "
              << static_cast<double>(finish - start) / CLOCKS_PER_SEC
              << std::endl;
    start = clock();
    for (uint i = 0; i < 30; ++i)
        lemiremaxmin C(data, width);
    finish = clock();
    std::cout << "lemire = "
              << static_cast<double>(finish - start) / CLOCKS_PER_SEC
              << std::endl;
    std::cout << "------------" << std::endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movl %edx, %ebp
movl %esi, %ebx
movq %rdi, %r14
movq 0x9cca(%rip), %r15      # 0xcfc8
leaq 0x5df3(%rip), %rsi      # 0x90f8
movl $0x9, %edx
movq %r15, %rdi
callq 0x2150
movl %ebx, %esi
movq %r15, %rdi
callq 0x20e0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
callq 0x20d0
movq %rax, %r15
testl %ebp, %ebp
je 0x339b
movl $0x1e, %ebp
leaq 0x10(%rsp), %r12
leaq 0x97f5(%rip), %r13      # 0xcb58
addq $0x10, %r13
movq %r12, %rdi
movq %r14, %rsi
movl %ebx, %edx
callq 0x405a
movq %r13, 0x10(%rsp)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x3388
callq 0x2120
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x3397
callq 0x2120
decl %ebp
jne 0x3367
callq 0x20d0
movq %rax, %r12
movq 0x9c1e(%rip), %r13      # 0xcfc8
leaq 0x5f39(%rip), %rsi      # 0x92ea
movl $0x7, %edx
movq %r13, %rdi
callq 0x2150
subq %r15, %r12
vcvtsi2sd %r12, %xmm0, %xmm0
vdivsd 0x5c4a(%rip), %xmm0, %xmm0 # 0x9018
movq %r13, %rdi
callq 0x21d0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0x1e, %ebp
callq 0x20d0
movq %rax, %r12
leaq 0x10(%rsp), %r15
leaq 0x9797(%rip), %r13      # 0xcbb0
addq $0x10, %r13
movq %r15, %rdi
movq %r14, %rsi
movl %ebx, %edx
callq 0x41a0
movq %r13, 0x10(%rsp)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x343e
callq 0x2120
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x344d
callq 0x2120
decl %ebp
jne 0x341d
callq 0x20d0
movq %rax, %r13
movq 0x9b68(%rip), %r15      # 0xcfc8
leaq 0x5c9b(%rip), %rsi      # 0x9102
movl $0xa, %edx
movq %r15, %rdi
callq 0x2150
subq %r12, %r13
vcvtsi2sd %r13, %xmm1, %xmm0
vdivsd 0x5b94(%rip), %xmm0, %xmm0 # 0x9018
movq %r15, %rdi
callq 0x21d0
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r12, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movl $0x1e, %ebp
callq 0x20d0
movq %rax, 0x8(%rsp)
leaq 0x10(%rsp), %r13
leaq 0x9727(%rip), %r12      # 0xcbf8
addq $0x10, %r12
movq %r13, %rdi
movq %r14, %rsi
movl %ebx, %edx
callq 0x45a2
movq %r12, 0x10(%rsp)
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x34f6
callq 0x2120
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x3505
callq 0x2120
decl %ebp
jne 0x34d5
callq 0x20d0
movq %rax, %rbx
leaq 0x5bf5(%rip), %rsi      # 0x910d
movl $0x9, %edx
movq %r15, %rdi
callq 0x2150
subq 0x8(%rsp), %rbx
vcvtsi2sd %rbx, %xmm1, %xmm0
vdivsd 0x5ae1(%rip), %xmm0, %xmm0 # 0x9018
movq %r15, %rdi
callq 0x21d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
leaq 0x5ba7(%rip), %rsi      # 0x9117
movl $0xc, %edx
movq %r15, %rdi
callq 0x2150
movq (%r15), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2130
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq