// File: riyadparvez[P]louvain-method/community.cpp
// Function: Community::Community(Graph, int, double)
Community::Community(Graph gc, int nbp, double minm) {
  g = gc;
  size = g.nb_nodes;

  neigh_weight.resize(size,-1);
  neigh_pos.resize(size);
  neigh_last=0;

  n2c.resize(size);
  in.resize(size);
  tot.resize(size);

  for (int i=0 ; i<size ; i++) {
    n2c[i] = i;
    in[i]  = g.nb_selfloops(i);
    tot[i] = g.weighted_degree(i);
  }

  nb_pass = nbp;
  min_modularity = minm;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rsi, -0x68(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movsd %xmm0, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x50(%rbp)
movq %rdi, %rax
movq %rax, -0x60(%rbp)
callq 0x9e80
movq -0x50(%rbp), %rdi
addq $0x18, %rdi
movq %rdi, -0x58(%rbp)
callq 0x3310
movq -0x50(%rbp), %rdi
addq $0x38, %rdi
movq %rdi, -0x48(%rbp)
callq 0x2500
jmp 0x8137
movq -0x60(%rbp), %rdi
addq $0xb8, %rdi
movq %rdi, -0x80(%rbp)
callq 0x3580
movq -0x60(%rbp), %rdi
addq $0xd0, %rdi
movq %rdi, -0x78(%rbp)
callq 0x9e80
movq -0x60(%rbp), %rdi
addq $0xe8, %rdi
movq %rdi, -0x70(%rbp)
callq 0x9e80
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
addq $0x38, %rdi
callq 0xa300
jmp 0x8186
movq -0x60(%rbp), %rdi
movl 0x38(%rdi), %eax
movl %eax, 0xb0(%rdi)
movslq 0xb0(%rdi), %rsi
movabsq $-0x4010000000000000, %rax # imm = 0xBFF0000000000000
movq %rax, -0x38(%rbp)
leaq -0x38(%rbp), %rdx
callq 0x9f80
jmp 0x81b3
movq -0x60(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movslq 0xb0(%rax), %rsi
callq 0x3420
jmp 0x81cc
movq -0x60(%rbp), %rax
movl $0x0, 0x30(%rax)
movq %rax, %rdi
addq $0xb8, %rdi
movslq 0xb0(%rax), %rsi
callq 0xa030
jmp 0x81ef
movq -0x60(%rbp), %rax
movq %rax, %rdi
addq $0xd0, %rdi
movslq 0xb0(%rax), %rsi
callq 0xa0c0
jmp 0x820b
movq -0x60(%rbp), %rax
movq %rax, %rdi
addq $0xe8, %rdi
movslq 0xb0(%rax), %rsi
callq 0xa0c0
jmp 0x8227
movl $0x0, -0x3c(%rbp)
movq -0x60(%rbp), %rcx
movl -0x3c(%rbp), %eax
cmpl 0xb0(%rcx), %eax
jge 0x8327
movq -0x60(%rbp), %rdi
movslq -0x3c(%rbp), %rsi
movl %esi, %eax
movl %eax, -0x8c(%rbp)
addq $0xb8, %rdi
callq 0x3ab0
movl -0x8c(%rbp), %ecx
movq -0x60(%rbp), %rdi
movl %ecx, (%rax)
addq $0x38, %rdi
movl -0x3c(%rbp), %esi
callq 0xa170
movsd %xmm0, -0x88(%rbp)
jmp 0x827f
movq -0x60(%rbp), %rdi
addq $0xd0, %rdi
movslq -0x3c(%rbp), %rsi
callq 0xa150
movsd -0x88(%rbp), %xmm0
movq -0x60(%rbp), %rdi
movsd %xmm0, (%rax)
addq $0x38, %rdi
movl -0x3c(%rbp), %esi
callq 0x36a0
movsd %xmm0, -0x98(%rbp)
jmp 0x82b9
movq -0x60(%rbp), %rdi
addq $0xe8, %rdi
movslq -0x3c(%rbp), %rsi
callq 0xa150
movsd -0x98(%rbp), %xmm0
movsd %xmm0, (%rax)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x822e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x834a
movq -0x70(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0xa2a0
movq -0x78(%rbp), %rdi
callq 0xa2a0
movq -0x80(%rbp), %rdi
callq 0x3640
movq -0x48(%rbp), %rdi
callq 0x9f30
jmp 0x834a
movq -0x60(%rbp), %rax
movl -0x14(%rbp), %ecx
movl %ecx, 0x100(%rax)
movsd -0x20(%rbp), %xmm0
movsd %xmm0, 0x108(%rax)
addq $0xa0, %rsp
popq %rbp
retq
movq -0x58(%rbp), %rdi
callq 0x3820
movq -0x50(%rbp), %rdi
callq 0xa2a0
movq -0x28(%rbp), %rdi
callq 0x2300
nopw %cs:(%rax,%rax)