// File: /workspace/github_cpp_makefile_star2_O2/kulpreet[P]lightning-network-graph-analysis/src/include/degree_stats.hpp
// Function: lncentrality::get_degrees_stats[abi:cxx11](boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, lncentrality::LitVertex, lncentrality::LitEdge, boost::no_property, boost::listS>&)
map<string, double> get_degrees_stats(LitGraph &g) {
  graph_traits<LitGraph>::vertex_iterator i, end;
  accumulator_set<Degree, stats<tag::mean, tag::variance>> in_degrees,
      out_degrees, degrees;
  map<string, double> result;
  for (boost::tie(i, end) = vertices(g); i != end; ++i) {
    in_degrees(in_degree(*i, g));
    out_degrees(out_degree(*i, g));
    degrees(degree(*i, g));
  }
  result["in_degrees_mean"] = mean(in_degrees);
  result["in_degrees_variance"] = variance(in_degrees);
  result["out_degrees_mean"] = mean(out_degrees);
  result["out_degrees_variance"] = variance(out_degrees);
  result["degrees_mean"] = mean(degrees);
  result["degrees_variance"] = variance(degrees);
  return result;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %rsi, %r14
leaq 0x60(%rsp), %rax
andq $0x0, 0x18(%rax)
xorps %xmm0, %xmm0
movaps %xmm0, (%rax)
leaq 0xc0(%rsp), %r12
andq $0x0, 0x18(%r12)
movaps %xmm0, (%r12)
leaq 0x90(%rsp), %r13
andq $0x0, 0x18(%r13)
leaq 0x8(%rdi), %rax
andl $0x0, 0x8(%rdi)
andq $0x0, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rdi, 0x58(%rsp)
andq $0x0, 0x28(%rdi)
movaps %xmm0, (%r13)
movq 0x20(%rsi), %rax
subq 0x18(%rsi), %rax
movl $0xb8, %ecx
cqto
idivq %rcx
movq %rax, %rbp
pushq $0x8
popq %r15
leaq 0x10(%rsp), %rbx
subq $0x1, %rbp
jb 0x860f
movq 0x18(%r14), %rax
movq (%rax,%r15), %rcx
subq -0x8(%rax,%r15), %rcx
sarq $0x4, %rcx
movq %rcx, 0x10(%rsp)
leaq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x91e0
movq 0x18(%r14), %rax
movq (%rax,%r15), %rcx
subq -0x8(%rax,%r15), %rcx
sarq $0x4, %rcx
movq %rcx, 0x10(%rsp)
movq %r12, %rdi
movq %rbx, %rsi
callq 0x91e0
movq 0x18(%r14), %rax
movq (%rax,%r15), %rcx
subq -0x8(%rax,%r15), %rcx
sarq $0x4, %rcx
movq %rcx, 0x10(%rsp)
movq %r13, %rdi
movq %rbx, %rsi
callq 0x91e0
addq $0xb8, %r15
jmp 0x859b
movsd 0x68(%rsp), %xmm0
movaps %xmm0, 0x40(%rsp)
movsd 0x60(%rsp), %xmm0
movaps %xmm0, 0x30(%rsp)
leaq 0x10b1a(%rip), %rsi     # 0x19146
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9264
leaq 0x10(%rsp), %rsi
movq 0x58(%rsp), %rbx
movq %rbx, %rdi
callq 0x91fe
movsd 0x109bb(%rip), %xmm1    # 0x19010
movapd 0x40(%rsp), %xmm3
unpcklps %xmm1, %xmm3            # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
movapd 0x109ba(%rip), %xmm2    # 0x19020
subpd %xmm2, %xmm3
movapd %xmm3, %xmm0
unpckhpd %xmm3, %xmm0            # xmm0 = xmm0[1],xmm3[1]
addsd %xmm3, %xmm0
movapd 0x30(%rsp), %xmm3
unpcklps %xmm1, %xmm3            # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm2, %xmm3
movapd %xmm3, %xmm1
unpckhpd %xmm3, %xmm1            # xmm1 = xmm1[1],xmm3[1]
addsd %xmm3, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0x10(%rsp), %rdi
callq 0x7180
movsd 0x78(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
leaq 0x10aa2(%rip), %rsi     # 0x19156
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9264
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x91fe
movsd 0x30(%rsp), %xmm0
movsd %xmm0, (%rax)
leaq 0x10(%rsp), %rdi
callq 0x7180
movsd 0xc8(%rsp), %xmm0
movaps %xmm0, 0x40(%rsp)
movsd 0xc0(%rsp), %xmm0
movaps %xmm0, 0x30(%rsp)
leaq 0x10a63(%rip), %rsi     # 0x1916a
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9264
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x91fe
movsd 0x108e5(%rip), %xmm1    # 0x19010
movapd 0x40(%rsp), %xmm3
unpcklps %xmm1, %xmm3            # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
movapd 0x108e4(%rip), %xmm2    # 0x19020
subpd %xmm2, %xmm3
movapd %xmm3, %xmm0
unpckhpd %xmm3, %xmm0            # xmm0 = xmm0[1],xmm3[1]
addsd %xmm3, %xmm0
movapd 0x30(%rsp), %xmm3
unpcklps %xmm1, %xmm3            # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm2, %xmm3
movapd %xmm3, %xmm1
unpckhpd %xmm3, %xmm1            # xmm1 = xmm1[1],xmm3[1]
addsd %xmm3, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0x10(%rsp), %rdi
callq 0x7180
movsd 0xd8(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
leaq 0x109ee(%rip), %rsi     # 0x1917b
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9264
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x91fe
movsd 0x30(%rsp), %xmm0
movsd %xmm0, (%rax)
leaq 0x10(%rsp), %rdi
callq 0x7180
movsd 0x98(%rsp), %xmm0
movaps %xmm0, 0x40(%rsp)
movsd 0x90(%rsp), %xmm0
movaps %xmm0, 0x30(%rsp)
leaq 0x10969(%rip), %rsi     # 0x19149
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9264
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x91fe
movsd 0x1080c(%rip), %xmm1    # 0x19010
movapd 0x40(%rsp), %xmm3
unpcklps %xmm1, %xmm3            # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
movapd 0x1080b(%rip), %xmm2    # 0x19020
subpd %xmm2, %xmm3
movapd %xmm3, %xmm0
unpckhpd %xmm3, %xmm0            # xmm0 = xmm0[1],xmm3[1]
addsd %xmm3, %xmm0
movapd 0x30(%rsp), %xmm3
unpcklps %xmm1, %xmm3            # xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]
subpd %xmm2, %xmm3
movapd %xmm3, %xmm1
unpckhpd %xmm3, %xmm1            # xmm1 = xmm1[1],xmm3[1]
addsd %xmm3, %xmm1
divsd %xmm1, %xmm0
movsd %xmm0, (%rax)
leaq 0x10(%rsp), %rdi
callq 0x7180
movsd 0xa8(%rsp), %xmm0
movsd %xmm0, 0x30(%rsp)
leaq 0x108f3(%rip), %rsi     # 0x19159
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9264
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x91fe
movsd 0x30(%rsp), %xmm0
movsd %xmm0, (%rax)
leaq 0x10(%rsp), %rdi
callq 0x7180
movq %rbx, %rax
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x88bf
jmp 0x88d4
jmp 0x88bf
jmp 0x88d4
jmp 0x88bf
jmp 0x88d4
jmp 0x88bf
jmp 0x88d4
jmp 0x88bf
jmp 0x88d4
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x7180
jmp 0x88d7
jmp 0x88d4
jmp 0x88d4
jmp 0x88d4
movq %rax, %r14
movq 0x58(%rsp), %rdi
callq 0x9828
movq %r14, %rdi
callq 0x7550