// File: ashlall[P]StreamStats/Test/Reservoir_test.cpp
// Function: quicktest()
void quicktest()
{
	ReservoirSampling a(1000);
	for(int i=1; i<=10000000; i++)
	{
		a.insert(i + 0.13416435);
	}

	cout << "0.1: "<<a.getQuantile(0.1) << endl;
	cout << "0.1: "<<a.getQuantile(0.2) << endl;
	cout << "0.3: "<<a.getQuantile(0.3) << endl;
	cout << "0.4: "<<a.getQuantile(0.4) << endl;
	cout << "median:" << a.getQuantile(0.5) << endl;
	cout << "0.6: "<<a.getQuantile(0.6) << endl;
	cout << "0.7: "<<a.getQuantile(0.7) << endl;
	cout << "0.8: "<<a.getQuantile(0.8) << endl;
	cout << "0.9: "<<a.getQuantile(0.9) << endl;
	cout << "1: "<<a.getQuantile(1) << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
leaq -0x18(%rbp), %rdi
movl $0x3e8, %esi            # imm = 0x3E8
callq 0x1300
movl $0x1, -0x1c(%rbp)
cmpl $0x989680, -0x1c(%rbp)  # imm = 0x989680
jg 0x1fce
cvtsi2sdl -0x1c(%rbp), %xmm0
movsd 0x20aa(%rip), %xmm1     # 0x4060
addsd %xmm1, %xmm0
leaq -0x18(%rbp), %rdi
callq 0x1540
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1fa0
movq 0x5003(%rip), %rdi      # 0x6fd8
leaq 0x2194(%rip), %rsi      # 0x4170
callq 0x10c0
movq %rax, -0x38(%rbp)
jmp 0x1fe7
leaq -0x18(%rbp), %rdi
movsd 0x2025(%rip), %xmm0     # 0x4018
callq 0x15e0
movsd %xmm0, -0x40(%rbp)
jmp 0x1fff
movsd -0x40(%rbp), %xmm0
movq -0x38(%rbp), %rdi
callq 0x1120
movq %rax, -0x48(%rbp)
jmp 0x2013
movq -0x48(%rbp), %rdi
movq 0x4faa(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x2025
movq 0x4fac(%rip), %rdi      # 0x6fd8
leaq 0x213d(%rip), %rsi      # 0x4170
callq 0x10c0
movq %rax, -0x50(%rbp)
jmp 0x203e
leaq -0x18(%rbp), %rdi
movsd 0x1fd6(%rip), %xmm0     # 0x4020
callq 0x15e0
movsd %xmm0, -0x58(%rbp)
jmp 0x2056
movsd -0x58(%rbp), %xmm0
movq -0x50(%rbp), %rdi
callq 0x1120
movq %rax, -0x60(%rbp)
jmp 0x206a
movq -0x60(%rbp), %rdi
movq 0x4f53(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x207c
movq 0x4f55(%rip), %rdi      # 0x6fd8
leaq 0x20ec(%rip), %rsi      # 0x4176
callq 0x10c0
movq %rax, -0x68(%rbp)
jmp 0x2095
leaq -0x18(%rbp), %rdi
movsd 0x1f87(%rip), %xmm0     # 0x4028
callq 0x15e0
movsd %xmm0, -0x70(%rbp)
jmp 0x20ad
movsd -0x70(%rbp), %xmm0
movq -0x68(%rbp), %rdi
callq 0x1120
movq %rax, -0x78(%rbp)
jmp 0x20c1
movq -0x78(%rbp), %rdi
movq 0x4efc(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x20d3
movq 0x4efe(%rip), %rdi      # 0x6fd8
leaq 0x209b(%rip), %rsi      # 0x417c
callq 0x10c0
movq %rax, -0x80(%rbp)
jmp 0x20ec
leaq -0x18(%rbp), %rdi
movsd 0x1f38(%rip), %xmm0     # 0x4030
callq 0x15e0
movsd %xmm0, -0x88(%rbp)
jmp 0x2107
movsd -0x88(%rbp), %xmm0
movq -0x80(%rbp), %rdi
callq 0x1120
movq %rax, -0x90(%rbp)
jmp 0x2121
movq -0x90(%rbp), %rdi
movq 0x4e99(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x2136
movq 0x4e9b(%rip), %rdi      # 0x6fd8
leaq 0x203e(%rip), %rsi      # 0x4182
callq 0x10c0
movq %rax, -0x98(%rbp)
jmp 0x2152
leaq -0x18(%rbp), %rdi
movsd 0x1eda(%rip), %xmm0     # 0x4038
callq 0x15e0
movsd %xmm0, -0xa0(%rbp)
jmp 0x216d
movsd -0xa0(%rbp), %xmm0
movq -0x98(%rbp), %rdi
callq 0x1120
movq %rax, -0xa8(%rbp)
jmp 0x218a
movq -0xa8(%rbp), %rdi
movq 0x4e30(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x219f
movq 0x4e32(%rip), %rdi      # 0x6fd8
leaq 0x1fdd(%rip), %rsi      # 0x418a
callq 0x10c0
movq %rax, -0xb0(%rbp)
jmp 0x21bb
leaq -0x18(%rbp), %rdi
movsd 0x1e79(%rip), %xmm0     # 0x4040
callq 0x15e0
movsd %xmm0, -0xb8(%rbp)
jmp 0x21d6
movsd -0xb8(%rbp), %xmm0
movq -0xb0(%rbp), %rdi
callq 0x1120
movq %rax, -0xc0(%rbp)
jmp 0x21f3
movq -0xc0(%rbp), %rdi
movq 0x4dc7(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x2208
movq 0x4dc9(%rip), %rdi      # 0x6fd8
leaq 0x1f7a(%rip), %rsi      # 0x4190
callq 0x10c0
movq %rax, -0xc8(%rbp)
jmp 0x2224
leaq -0x18(%rbp), %rdi
movsd 0x1e18(%rip), %xmm0     # 0x4048
callq 0x15e0
movsd %xmm0, -0xd0(%rbp)
jmp 0x223f
movsd -0xd0(%rbp), %xmm0
movq -0xc8(%rbp), %rdi
callq 0x1120
movq %rax, -0xd8(%rbp)
jmp 0x225c
movq -0xd8(%rbp), %rdi
movq 0x4d5e(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x2271
movq 0x4d60(%rip), %rdi      # 0x6fd8
leaq 0x1f17(%rip), %rsi      # 0x4196
callq 0x10c0
movq %rax, -0xe0(%rbp)
jmp 0x228d
leaq -0x18(%rbp), %rdi
movsd 0x1db7(%rip), %xmm0     # 0x4050
callq 0x15e0
movsd %xmm0, -0xe8(%rbp)
jmp 0x22a8
movsd -0xe8(%rbp), %xmm0
movq -0xe0(%rbp), %rdi
callq 0x1120
movq %rax, -0xf0(%rbp)
jmp 0x22c5
movq -0xf0(%rbp), %rdi
movq 0x4cf5(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x22da
movq 0x4cf7(%rip), %rdi      # 0x6fd8
leaq 0x1eb4(%rip), %rsi      # 0x419c
callq 0x10c0
movq %rax, -0xf8(%rbp)
jmp 0x22f6
leaq -0x18(%rbp), %rdi
movsd 0x1d56(%rip), %xmm0     # 0x4058
callq 0x15e0
movsd %xmm0, -0x100(%rbp)
jmp 0x2311
movsd -0x100(%rbp), %xmm0
movq -0xf8(%rbp), %rdi
callq 0x1120
movq %rax, -0x108(%rbp)
jmp 0x232e
movq -0x108(%rbp), %rdi
movq 0x4c8c(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x2343
movq 0x4c8e(%rip), %rdi      # 0x6fd8
leaq 0x1e21(%rip), %rsi      # 0x4172
callq 0x10c0
movq %rax, -0x110(%rbp)
jmp 0x235f
leaq -0x18(%rbp), %rdi
movsd 0x1c9d(%rip), %xmm0     # 0x4008
callq 0x15e0
movsd %xmm0, -0x118(%rbp)
jmp 0x237a
movsd -0x118(%rbp), %xmm0
movq -0x110(%rbp), %rdi
callq 0x1120
movq %rax, -0x120(%rbp)
jmp 0x2397
movq -0x120(%rbp), %rdi
movq 0x4c23(%rip), %rsi      # 0x6fc8
callq 0x10d0
jmp 0x23ac
leaq -0x18(%rbp), %rdi
callq 0x14f0
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x14f0
movq -0x28(%rbp), %rdi
callq 0x1110
nopl (%rax)