// File: /workspace/github_cpp_makefile_star2_O1/icemiliang[P]vot/src/votx/otx.cc
// Function: votx::OTX::check_total_mass()
void OTX::check_total_mass() {
        double totaldirac = 0, totalmass = 0;
        for (auto d : vDiracXs) totaldirac += d->dirac();
        for (auto e : vEmpiricalXs) totalmass += e->mass();

        if (vFlagVerb) {
            std::cout << "--> Checking total measures... " << std::endl;
            std::cout << "       Total Dirac measure: " << totaldirac << std::endl;
            std::cout << "       Total Empirical measure: " << totalmass << std::endl;
            std::cout << "       Diff: " << fabs(totaldirac - totalmass) << std::endl;
            std::cout << std::endl;
        }
        ASSERT_VOT(fabs(totaldirac - totalmass) / totaldirac < OTX_TOLERANCE*vNumEmpiricalXs,
               "Total Dirac measure: " << totaldirac << 
               " not equal to total Empirical measure: " << totalmass);
    }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movq (%rdi), %rax
movq 0x8(%rdi), %rcx
xorpd %xmm2, %xmm2
xorpd %xmm3, %xmm3
cmpq %rcx, %rax
je 0x10c66
movq (%rax), %rdx
addsd 0x10(%rdx), %xmm3
addq $0x8, %rax
jmp 0x10c53
movq 0x18(%rbx), %rax
movq 0x20(%rbx), %rcx
cmpq %rcx, %rax
je 0x10c88
xorpd %xmm2, %xmm2
movq (%rax), %rdx
addsd 0x10(%rdx), %xmm2
addq $0x8, %rax
cmpq %rcx, %rax
jne 0x10c77
cmpb $0x0, 0x70(%rbx)
je 0x10e01
movq 0xa30f(%rip), %r14      # 0x1afa8
leaq 0x3f62(%rip), %rsi      # 0x14c02
movl $0x1f, %edx
movq %r14, %rdi
movsd %xmm2, 0x8(%rsp)
movsd %xmm3, (%rsp)
callq 0x73a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7320
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7240
leaq 0x3f3c(%rip), %rsi      # 0x14c22
movl $0x1c, %edx
movq %r14, %rdi
callq 0x73a0
movq %r14, %rdi
movsd (%rsp), %xmm0
callq 0x7560
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7320
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7240
leaq 0x3f0e(%rip), %rsi      # 0x14c3f
movl $0x20, %edx
movq %r14, %rdi
callq 0x73a0
movq %r14, %rdi
movsd 0x8(%rsp), %xmm0
callq 0x7560
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7320
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7240
leaq 0x3ee3(%rip), %rsi      # 0x14c60
movl $0xd, %edx
movq %r14, %rdi
callq 0x73a0
movsd (%rsp), %xmm0
subsd 0x8(%rsp), %xmm0
andpd 0x3dd3(%rip), %xmm0     # 0x14b70
movq %r14, %rdi
callq 0x7560
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x7320
movsbl %al, %esi
movq %r15, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7240
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x7320
movsbl %al, %esi
movq %r14, %rdi
callq 0x7040
movq %rax, %rdi
callq 0x7240
movsd (%rsp), %xmm3
movsd 0x8(%rsp), %xmm2
movapd %xmm3, %xmm0
subsd %xmm2, %xmm0
andpd 0x3d5f(%rip), %xmm0     # 0x14b70
divsd %xmm3, %xmm0
cvtsi2sdl 0x80(%rbx), %xmm1
mulsd 0x3d5b(%rip), %xmm1     # 0x14b80
ucomisd %xmm0, %xmm1
jbe 0x10e35
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq 0xa1a4(%rip), %rdi      # 0x1afe0
leaq 0x3e2b(%rip), %rsi      # 0x14c6e
movsd %xmm2, 0x8(%rsp)
movsd %xmm3, (%rsp)
callq 0x7330
leaq 0x3d7d(%rip), %rsi      # 0x14bd7
movq %rax, %rdi
callq 0x7330
leaq 0x3d75(%rip), %rsi      # 0x14bde
movq %rax, %rdi
callq 0x7330
movq %rax, %rdi
movl $0x67, %esi
callq 0x75f0
leaq 0x35ce(%rip), %rsi      # 0x14453
movq %rax, %rdi
callq 0x7330
leaq 0x3d95(%rip), %rsi      # 0x14c29
movq %rax, %rdi
callq 0x7330
movq %rax, %rdi
movsd (%rsp), %xmm0
callq 0x76a0
leaq 0x3e23(%rip), %rsi      # 0x14cd3
movq %rax, %rdi
callq 0x7330
movq %rax, %rdi
movsd 0x8(%rsp), %xmm0
callq 0x76a0
movq %rax, %rdi
callq 0x7190
callq 0x7100
nop