// File: /workspace/github_cpp_makefile_star2_O2/biotomas[P]ipasir/sat/picosat961/picosat-961/picosat.c
// Function: picosat_stats
void
picosat_stats (PS * ps)
{
  unsigned redlits;
#ifdef STATS
  check_ready (ps);
  assert (ps->sdecisions + ps->rdecisions + ps->assumptions == ps->decisions);
#endif
  if (ps->calls > 1)
     fprintf (ps->out, "%s%u calls\n", ps->prefix, ps->calls);
  if (ps->contexts)
    {
       fprintf (ps->out, "%s%u contexts", ps->prefix, ps->contexts);
#ifdef STATS
       fprintf (ps->out, " %u internal variables", ps->internals);
#endif
       fprintf (ps->out, "\n");
    }
   fprintf (ps->out, "%s%u iterations\n", ps->prefix, ps->iterations);
   fprintf (ps->out, "%s%u restarts", ps->prefix, ps->restarts);
#ifdef STATS
   fprintf (ps->out, " (%u skipped)", ps->skippedrestarts);
#endif
  fputc ('\n', ps->out);
#ifndef NFL
   fprintf (ps->out, "%s%u failed literals", ps->prefix, ps->failedlits);
#ifdef STATS
   fprintf (ps->out,
           ", %u calls, %u rounds, %llu propagations",
           ps->flcalls, ps->flrounds, ps->flprops);
#endif
  fputc ('\n', ps->out);
#ifdef STATS
   fprintf (ps->out, 
    "%sfl: %u = %.1f%% implicit, %llu oopsed, %llu tried, %llu skipped\n", 
    ps->prefix, 
    ps->ifailedlits, PERCENT (ps->ifailedlits, ps->failedlits),
    ps->floopsed, ps->fltried, ps->flskipped);
#endif
#endif
   fprintf (ps->out, "%s%u conflicts", ps->prefix, ps->conflicts);
#ifdef STATS
   fprintf (ps->out, " (%u uips = %.1f%%)\n", ps->uips, PERCENT(ps->uips,ps->conflicts));
#else
  fputc ('\n', ps->out);
#endif
#ifndef NADC
   fprintf (ps->out, "%s%u adc conflicts\n", ps->prefix, ps->adoconflicts);
#endif
#ifdef STATS
   fprintf (ps->out, "%s%llu dereferenced literals\n", ps->prefix, ps->derefs);
#endif
   fprintf (ps->out, "%s%u decisions", ps->prefix, ps->decisions);
#ifdef STATS
   fprintf (ps->out, " (%u random = %.2f%%",
           ps->rdecisions, PERCENT (ps->rdecisions, ps->decisions));
   fprintf (ps->out, ", %u assumptions", ps->assumptions);
  fputc (')', ps->out);
#endif
  fputc ('\n', ps->out);
#ifdef STATS
   fprintf (ps->out,
           "%s%u static phase decisions (%.1f%% of all variables)\n",
	   ps->prefix,
	   ps->staticphasedecisions, PERCENT (ps->staticphasedecisions, ps->max_var));
#endif
   fprintf (ps->out, "%s%u fixed variables\n", ps->prefix, ps->fixed);
  assert (ps->nonminimizedllits >= ps->minimizedllits);
  redlits = ps->nonminimizedllits - ps->minimizedllits;
   fprintf (ps->out, "%s%u learned literals\n", ps->prefix, ps->llitsadded);
   fprintf (ps->out, "%s%.1f%% deleted literals\n",
     ps->prefix, PERCENT (redlits, ps->nonminimizedllits));

#ifdef STATS
#ifdef TRACE
   fprintf (ps->out,
	   "%s%llu antecedents (%.1f antecedents per clause",
	   ps->prefix, ps->antecedents, AVERAGE (ps->antecedents, ps->conflicts));
  if (ps->trace)
     fprintf (ps->out, ", %.1f bytes/antecedent)", AVERAGE (ps->znts, ps->antecedents));
  fputs (")\n", ps->out);
#endif

   fprintf (ps->out, "%s%llu propagations (%.1f propagations per decision)\n",
           ps->prefix, ps->propagations, AVERAGE (ps->propagations, ps->decisions));
   fprintf (ps->out, "%s%llu visits (%.1f per propagation)\n",
	   ps->prefix, ps->visits, AVERAGE (ps->visits, ps->propagations));
   fprintf (ps->out, 
           "%s%llu binary clauses visited (%.1f%% %.1f per propagation)\n",
	   ps->prefix, ps->bvisits, 
	   PERCENT (ps->bvisits, ps->visits),
	   AVERAGE (ps->bvisits, ps->propagations));
   fprintf (ps->out, 
           "%s%llu ternary clauses visited (%.1f%% %.1f per propagation)\n",
	   ps->prefix, ps->tvisits, 
	   PERCENT (ps->tvisits, ps->visits),
	   AVERAGE (ps->tvisits, ps->propagations));
   fprintf (ps->out, 
           "%s%llu large clauses visited (%.1f%% %.1f per propagation)\n",
	   ps->prefix, ps->lvisits, 
	   PERCENT (ps->lvisits, ps->visits),
	   AVERAGE (ps->lvisits, ps->propagations));
   fprintf (ps->out, "%s%llu other true (%.1f%% of visited clauses)\n",
	   ps->prefix, ps->othertrue, PERCENT (ps->othertrue, ps->visits));
   fprintf (ps->out, 
           "%s%llu other true in binary clauses (%.1f%%)"
	   ", %llu upper (%.1f%%)\n",
           ps->prefix, ps->othertrue2, PERCENT (ps->othertrue2, ps->othertrue),
	   ps->othertrue2u, PERCENT (ps->othertrue2u, ps->othertrue2));
   fprintf (ps->out, 
           "%s%llu other true in large clauses (%.1f%%)"
	   ", %llu upper (%.1f%%)\n",
           ps->prefix, ps->othertruel, PERCENT (ps->othertruel, ps->othertrue),
	   ps->othertruelu, PERCENT (ps->othertruelu, ps->othertruel));
   fprintf (ps->out, "%s%llu ternary and large traversals (%.1f per visit)\n",
	   ps->prefix, ps->traversals, AVERAGE (ps->traversals, ps->visits));
   fprintf (ps->out, "%s%llu large traversals (%.1f per large visit)\n",
	   ps->prefix, ps->ltraversals, AVERAGE (ps->ltraversals, ps->lvisits));
   fprintf (ps->out, "%s%llu assignments\n", ps->prefix, ps->assignments);
#else
   fprintf (ps->out, "%s%llu propagations\n", ps->prefix, picosat_propagations (ps));
   fprintf (ps->out, "%s%llu visits\n", ps->prefix, picosat_visits (ps));
#endif
   fprintf (ps->out, "%s%.1f%% variables used\n", ps->prefix, PERCENT (ps->vused, ps->max_var));

  sflush (ps);
   fprintf (ps->out, "%s%.1f seconds in library\n", ps->prefix, ps->seconds);
   fprintf (ps->out, "%s%.1f megaprops/second\n",
	   ps->prefix, AVERAGE (ps->propagations / 1e6f, ps->seconds));
   fprintf (ps->out, "%s%.1f megavisits/second\n",
	   ps->prefix, AVERAGE (ps->visits / 1e6f, ps->seconds));
   fprintf (ps->out, "%sprobing %.1f seconds %.0f%%\n",
           ps->prefix, ps->flseconds, PERCENT (ps->flseconds, ps->seconds));
#ifdef STATS
   fprintf (ps->out,
	   "%srecycled %.1f MB in %u reductions\n",
	   ps->prefix, ps->rrecycled / (double) (1 << 20), ps->reductions);
   fprintf (ps->out,
	   "%srecycled %.1f MB in %u simplifications\n",
	   ps->prefix, ps->srecycled / (double) (1 << 20), ps->simps);
#else
   fprintf (ps->out, "%s%u simplifications\n", ps->prefix, ps->simps);
   fprintf (ps->out, "%s%u reductions\n", ps->prefix, ps->reductions);
   fprintf (ps->out, "%s%.1f MB recycled\n", ps->prefix, ps->recycled / (double) (1 << 20));
#endif
   fprintf (ps->out, "%s%.1f MB maximally allocated\n",
	    ps->prefix, picosat_max_bytes_allocated (ps) / (double) (1 << 20));
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x38c(%rdi), %ecx
cmpl $0x2, %ecx
jb 0x9a59
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
leaq 0x806c(%rip), %rsi      # 0x11abe
xorl %eax, %eax
callq 0x1140
movl 0x420(%rbx), %ecx
testl %ecx, %ecx
je 0x9a85
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
leaq 0x8058(%rip), %rsi      # 0x11aca
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rsi
pushq $0xa
popq %rdi
callq 0x10f0
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x380(%rbx), %ecx
leaq 0x803e(%rip), %rsi      # 0x11ad8
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x394(%rbx), %ecx
leaq 0x8033(%rip), %rsi      # 0x11ae9
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rsi
pushq $0xa
popq %rbp
movl %ebp, %edi
callq 0x10f0
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x3ec(%rbx), %ecx
leaq 0x8017(%rip), %rsi      # 0x11af7
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rsi
movl %ebp, %edi
callq 0x10f0
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x41c(%rbx), %ecx
leaq 0x8005(%rip), %rsi      # 0x11b0c
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rsi
movl %ebp, %edi
callq 0x10f0
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x390(%rbx), %ecx
leaq 0x7fed(%rip), %rsi      # 0x11b1b
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rsi
movl %ebp, %edi
callq 0x10f0
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x3e8(%rbx), %ecx
leaq 0x7fd5(%rip), %rsi      # 0x11b2a
xorl %eax, %eax
callq 0x1140
movl 0x464(%rbx), %r14d
subl 0x460(%rbx), %r14d
jb 0x9e2c
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x450(%rbx), %ecx
leaq 0x8000(%rip), %rsi      # 0x11b85
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x464(%rbx), %eax
xorpd %xmm0, %xmm0
testl %eax, %eax
je 0x9bba
cvtsi2sd %r14, %xmm0
movl %eax, %eax
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
mulsd 0x7536(%rip), %xmm0     # 0x110f0
leaq 0x7fdb(%rip), %rsi      # 0x11b9c
movb $0x1, %al
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movq 0x3d8(%rbx), %rcx
leaq 0x7fd9(%rip), %rsi      # 0x11bb7
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movq 0x458(%rbx), %rcx
leaq 0x7fd1(%rip), %rsi      # 0x11bcc
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x2c(%rbx), %eax
testl %eax, %eax
xorpd %xmm0, %xmm0
je 0x9c33
movl 0x44c(%rbx), %ecx
cvtsi2sd %rcx, %xmm0
movl %eax, %eax
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
mulsd 0x74bd(%rip), %xmm0     # 0x110f0
leaq 0x7fa1(%rip), %rsi      # 0x11bdb
movb $0x1, %al
callq 0x1140
movq %rbx, %rdi
callq 0x9e4b
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movsd 0x340(%rbx), %xmm0
leaq 0x7f94(%rip), %rsi      # 0x11bf4
movb $0x1, %al
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movsd 0x340(%rbx), %xmm1
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm1
jne 0x9c83
jnp 0x9cb2
movsd 0x3d8(%rbx), %xmm2
unpcklps 0x743e(%rip), %xmm2     # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]
subpd 0x7446(%rip), %xmm2     # 0x110e0
movapd %xmm2, %xmm0
unpckhpd %xmm2, %xmm0            # xmm0 = xmm0[1],xmm2[1]
addsd %xmm2, %xmm0
divsd 0x745a(%rip), %xmm0     # 0x11108
divsd %xmm1, %xmm0
leaq 0x7f56(%rip), %rsi      # 0x11c0f
movb $0x1, %al
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movsd 0x340(%rbx), %xmm2
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm2
jne 0x9cdc
jnp 0x9d0b
movsd 0x458(%rbx), %xmm1
unpcklps 0x73e5(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x73ed(%rip), %xmm1     # 0x110e0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
divsd 0x7401(%rip), %xmm0     # 0x11108
divsd %xmm2, %xmm0
leaq 0x7f16(%rip), %rsi      # 0x11c28
movb $0x1, %al
callq 0x1140
movq 0x10(%rbx), %rdi
movsd 0x348(%rbx), %xmm0
movsd 0x340(%rbx), %xmm2
movapd %xmm0, %xmm3
divsd %xmm2, %xmm3
mulsd 0x73b3(%rip), %xmm3     # 0x110f0
movq 0x18(%rbx), %rdx
xorpd %xmm1, %xmm1
cmpneqsd %xmm2, %xmm1
andpd %xmm3, %xmm1
leaq 0x7eed(%rip), %rsi      # 0x11c42
movb $0x2, %al
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x398(%rbx), %ecx
leaq 0x7ef0(%rip), %rsi      # 0x11c61
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movl 0x3a4(%rbx), %ecx
leaq 0x7eea(%rip), %rsi      # 0x11c77
xorl %eax, %eax
callq 0x1140
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %rdx
movsd 0x338(%rbx), %xmm1
unpcklps 0x7325(%rip), %xmm1     # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x732d(%rip), %xmm1     # 0x110e0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x7339(%rip), %xmm0     # 0x11100
leaq 0x7eba(%rip), %rsi      # 0x11c88
movb $0x1, %al
callq 0x1140
movq 0x10(%rbx), %r14
movq 0x18(%rbx), %r15
movq %rbx, %rdi
callq 0x99de
movq %rax, %xmm1
punpckldq 0x72de(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0x72e6(%rip), %xmm1     # 0x110e0
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0x72f2(%rip), %xmm0     # 0x11100
leaq 0x7e87(%rip), %rsi      # 0x11c9c
movq %r14, %rdi
movq %r15, %rdx
movb $0x1, %al
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x1140
leaq 0x7d0d(%rip), %rdi      # 0x11b40
leaq 0x743a(%rip), %rsi      # 0x11274
leaq 0x7d2b(%rip), %rcx      # 0x11b6c
movl $0x1f5b, %edx           # imm = 0x1F5B
callq 0x10b0