// File: /workspace/github_cpp_makefile_star2_O3/akinanop[P]mvl-solver/src/Variable.cc
// Function: Variable::Variable(int, int)
Variable::Variable(int var, int domain)
{
	VAR = var;
	VAL = -1;
	DOMAINSIZE = domain;
	ATOMINDEX = new int[DOMAINSIZE];
	ATOMLEVEL = new int[DOMAINSIZE];
	ATOMASSIGN = new int[DOMAINSIZE];
	ATOMCNTPOS = new int[DOMAINSIZE];
	ATOMCNTNEG = new int[DOMAINSIZE];
	VSIDS_SCORE = new double[DOMAINSIZE];
	VSIDS_SCORE_NEG = new double[DOMAINSIZE];
	CLAUSEID = new int[DOMAINSIZE];
	ATOMWATCHPOS = new VARRECORD *[DOMAINSIZE];
	ATOMWATCHNEG = new VARRECORD *[DOMAINSIZE];
	ATOMRECPOS = new vector<int> [DOMAINSIZE];
	ATOMRECNEG = new vector<int> [DOMAINSIZE];
	for(int i=0; i<DOMAINSIZE; i++)
	{ // CHANGED DEFAULT ATOMLEVEL TO -10
		ATOMLEVEL[i] = -10;
		ATOMASSIGN[i] = 0;
		ATOMCNTPOS[i] = 0;
		ATOMCNTNEG[i] = 0;
		VSIDS_SCORE[i] = 0;
		VSIDS_SCORE_NEG[i] = 0;
		CLAUSEID[i] = -10;
		ATOMWATCHPOS[i] = NULL;
		ATOMWATCHNEG[i] = NULL;
		ATOMINDEX[i] = -1;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movslq %edx, %r14
movl $0x18, %ecx
movq %r14, %rax
mulq %rcx
movq %rax, %r12
seto %al
movq %r12, %r15
addq $0x8, %r15
movq $-0x1, %rcx
cmovbq %rcx, %r15
movq %rdi, %rbx
movl %esi, (%rdi)
movl $0xffffffff, 0x4(%rdi)  # imm = 0xFFFFFFFF
movl %r14d, 0x8(%rdi)
testb %al, %al
cmovneq %rcx, %r15
leaq (,%r14,4), %rbp
testl %r14d, %r14d
cmovsq %rcx, %rbp
leaq (,%r14,8), %r13
cmovsq %rcx, %r13
movq %rbp, %rdi
callq 0x2030
movq %rax, 0x10(%rbx)
movq %rbp, %rdi
callq 0x2030
movq %rax, 0x18(%rbx)
movq %rbp, %rdi
callq 0x2030
movq %rax, 0x20(%rbx)
movq %rbp, %rdi
callq 0x2030
movq %rax, 0x28(%rbx)
movq %rbp, %rdi
callq 0x2030
movq %rax, 0x30(%rbx)
movq %r13, %rdi
callq 0x2030
movq %rax, 0x38(%rbx)
movq %r13, %rdi
callq 0x2030
movq %rax, 0x40(%rbx)
movq %rbp, %rdi
callq 0x2030
movq %rax, 0x48(%rbx)
movq %r13, %rdi
callq 0x2030
movq %rax, 0x50(%rbx)
movq %r13, %rdi
callq 0x2030
movq %rax, 0x58(%rbx)
movq %r15, %rdi
callq 0x2030
leaq 0x8(%rax), %r13
movq %r14, (%rax)
testl %r14d, %r14d
je 0x7442
addq $-0x18, %r12
movabsq $-0x5555555555555555, %rcx # imm = 0xAAAAAAAAAAAAAAAB
movq %r12, %rax
mulq %rcx
shrq $0x4, %rdx
leaq (%rdx,%rdx,2), %rax
leaq 0x18(,%rax,8), %r12
xorl %ebp, %ebp
movq %r13, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x2140
movq %r13, 0x60(%rbx)
movq %r15, %rdi
callq 0x2030
movq %rax, %r15
movq %r14, (%rax)
addq $0x8, %r15
movq %r15, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x2140
movq %r15, 0x68(%rbx)
testl %r14d, %r14d
jle 0x7459
movl $0xfffffff6, %eax       # imm = 0xFFFFFFF6
xorl %ecx, %ecx
movq 0x18(%rbx), %rdx
movl %eax, (%rdx,%rcx,4)
movq 0x20(%rbx), %rdx
movl %ebp, (%rdx,%rcx,4)
movq 0x28(%rbx), %rdx
movl %ebp, (%rdx,%rcx,4)
movq 0x30(%rbx), %rdx
movl %ebp, (%rdx,%rcx,4)
movq 0x38(%rbx), %rdx
movq %rbp, (%rdx,%rcx,8)
movq 0x40(%rbx), %rdx
movq %rbp, (%rdx,%rcx,8)
movq 0x48(%rbx), %rdx
movl %eax, (%rdx,%rcx,4)
movq 0x50(%rbx), %rdx
movq %rbp, (%rdx,%rcx,8)
movq 0x58(%rbx), %rdx
movq %rbp, (%rdx,%rcx,8)
movq 0x10(%rbx), %rdx
movl $0xffffffff, (%rdx,%rcx,4) # imm = 0xFFFFFFFF
incq %rcx
movslq 0x8(%rbx), %rdx
cmpq %rdx, %rcx
jl 0x73e6
jmp 0x7459
movq %r13, 0x60(%rbx)
movq %r15, %rdi
callq 0x2030
movq %r14, (%rax)
addq $0x8, %rax
movq %rax, 0x68(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq