// File: /workspace/github_cpp_makefile_star2_O2/bonetblai[P]mdp-engine/ctp3/../engine/dispatcher.h
// Function: Dispatcher::dispatcher_t<state_t>::print_stats(std::ostream&, Dispatcher::dispatcher_t<state_t>::solve_result_t const&) const
void dispatcher_t<T>::print_stats(std::ostream &os, const solve_result_t &result) const {
    const Algorithm::algorithm_t<T> &algorithm = *result.algorithm_;
    const Problem::problem_t<T> &problem = algorithm.problem();

    // general stats
    os << Utils::green() << "stats:" << Utils::normal()
       << " type=solve"
       << " name=" << result.name_
       << " seed=" << result.seed_
       << " problem.expansions=" << result.problem_expansions_;

    // stats from hash
    const Problem::hash_t<T> &hash = *result.hash_;
    os << Utils::green() << " hash.value=" << hash.value(result.state_) << Utils::normal()
       << " hash.updates=" << hash.updates();
    if( (result.name_.substr(0, 12) != "simple_astar") && (result.name_.substr(0, 9) != "simple_a*") )
        os << " hash.policy-size=" << problem.policy_size(hash, result.state_);

    // stats fron heuristic
    const Heuristic::heuristic_t<T> *heuristic = algorithm.heuristic();
    os << " heuristic.eval-time=" << (heuristic == 0 ? std::string("na") : std::to_string(heuristic->eval_time()))
       << " heuristic.setup-time=" << (heuristic == 0 ? std::string("na") : std::to_string(heuristic->setup_time()))
       << " heuristic.evaluations=" << (heuristic == 0 ? std::string("na") : std::to_string(heuristic->evaluations()))
       << " heuristic.evaluations=" << (heuristic == 0 ? std::string("na") : std::to_string(heuristic->evaluations()))
       << " heuristic.size=" << (heuristic == 0 ? std::string("na") : std::to_string(heuristic->size()));

    // time stats
    float time_heuristic = heuristic == 0 ? 0 : heuristic->eval_time();
    os << " time.raw=" << result.time_raw_
       << " time.heuristic=" << (heuristic == 0 ? std::string("na") : std::to_string(time_heuristic))
       << " time.algorithm=" << result.time_raw_ - time_heuristic
       << std::endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdx, %rbx
movq %rsi, %r14
movq 0x90(%rdx), %r15
movq 0x8(%r15), %r13
leaq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0x1f040
movq %r14, %rdi
movq %r12, %rsi
callq 0x5250
leaq 0x1b7a4(%rip), %rsi     # 0x23111
movq %rax, %rdi
callq 0x5290
movq %rax, %r12
leaq 0x38(%rsp), %rdi
callq 0x1f074
movq %r13, 0x10(%rsp)
leaq 0x38(%rsp), %rsi
movq %r12, %rdi
callq 0x5250
leaq 0x1b77d(%rip), %rsi     # 0x23118
movq %rax, %rdi
callq 0x5290
leaq 0x18c1e(%rip), %rsi     # 0x205c8
movq %rax, %rdi
callq 0x5290
leaq 0x70(%rbx), %r12
movq %rax, %rdi
movq %r12, %rsi
callq 0x5250
leaq 0x18821(%rip), %rsi     # 0x201e9
movq %rax, %rdi
callq 0x5290
movl 0x98(%rbx), %esi
movq %rax, %rdi
callq 0x51c0
leaq 0x1b73f(%rip), %rsi     # 0x23124
movq %rax, %rdi
callq 0x5290
movl 0x9c(%rbx), %esi
movq %rax, %rdi
callq 0x51c0
leaq 0x38(%rsp), %rdi
callq 0x5120
leaq 0x18(%rsp), %rdi
callq 0x5120
movq 0xa0(%rbx), %r13
leaq 0x18(%rsp), %rbp
movq %rbp, %rdi
callq 0x1f040
movq %r14, %rdi
movq %rbp, %rsi
callq 0x5250
leaq 0x1b704(%rip), %rsi     # 0x23139
movq %rax, %rdi
callq 0x5290
movq %rax, %rbp
movq %r13, %rdi
movq %rbx, %rsi
callq 0xf4b0
movq %rbp, %rdi
callq 0x51f0
movq %rax, %rbp
leaq 0x38(%rsp), %rdi
callq 0x1f074
leaq 0x38(%rsp), %rsi
movq %rbp, %rdi
callq 0x5250
leaq 0x1b6d2(%rip), %rsi     # 0x23146
movq %rax, %rdi
callq 0x5290
movl 0x50(%r13), %esi
movq %rax, %rdi
callq 0x51c0
leaq 0x38(%rsp), %rdi
callq 0x5120
leaq 0x18(%rsp), %rdi
callq 0x5120
leaq 0x18(%rsp), %rbp
pushq $0xc
popq %rcx
movq %rbp, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x52c0
leaq 0x1b69d(%rip), %rsi     # 0x23155
movq %rbp, %rdi
callq 0xc1a1
testb %al, %al
je 0x7b32
leaq 0x38(%rsp), %rdi
pushq $0x9
popq %rcx
movq %r12, %rsi
xorl %edx, %edx
callq 0x52c0
leaq 0x1b685(%rip), %rsi     # 0x23162
leaq 0x38(%rsp), %r12
movq %r12, %rdi
callq 0xc1a1
movl %eax, %ebp
movq %r12, %rdi
callq 0x5120
leaq 0x18(%rsp), %rdi
callq 0x5120
testb %bpl, %bpl
je 0x7b3c
leaq 0x1b662(%rip), %rsi     # 0x2316c
movq %r14, %rdi
callq 0x5290
movq %rax, %r12
movq 0x10(%rsp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x1f0a8
movq %r12, %rdi
movq %rax, %rsi
callq 0x51c0
jmp 0x7b3c
leaq 0x18(%rsp), %rdi
callq 0x5120
movq 0x10(%r15), %r15
leaq 0x1b638(%rip), %rsi     # 0x2317f
movq %r14, %rdi
callq 0x5290
movq %rax, %r12
testq %r15, %r15
je 0x7b69
movss 0x10(%r15), %xmm0
leaq 0x18(%rsp), %rdi
callq 0xccf4
jmp 0x7b7f
leaq 0x1b625(%rip), %rsi     # 0x23195
leaq 0x18(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x50e0
leaq 0x18(%rsp), %rsi
movq %r12, %rdi
callq 0x5250
leaq 0x1b605(%rip), %rsi     # 0x23198
movq %rax, %rdi
callq 0x5290
movq %rax, %r12
testq %r15, %r15
je 0x7bb5
movss 0x14(%r15), %xmm0
leaq 0x38(%rsp), %rdi
callq 0xccf4
jmp 0x7bcb
leaq 0x1b5d9(%rip), %rsi     # 0x23195
leaq 0x38(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x50e0
leaq 0x38(%rsp), %rsi
movq %r12, %rdi
callq 0x5250
leaq 0x1b5d0(%rip), %rsi     # 0x231af
movq %rax, %rdi
callq 0x5290
movq %rax, %r12
testq %r15, %r15
je 0x7bff
movl 0x18(%r15), %esi
leaq 0x78(%rsp), %rdi
callq 0xcd19
jmp 0x7c15
leaq 0x1b58f(%rip), %rsi     # 0x23195
leaq 0x78(%rsp), %rdi
leaq 0xd(%rsp), %rdx
callq 0x50e0
leaq 0x78(%rsp), %rsi
movq %r12, %rdi
callq 0x5250
leaq 0x1b586(%rip), %rsi     # 0x231af
movq %rax, %rdi
callq 0x5290
movq %rax, %r12
testq %r15, %r15
je 0x7c49
movl 0x18(%r15), %esi
leaq 0x58(%rsp), %rdi
callq 0xcd19
jmp 0x7c5f
leaq 0x1b545(%rip), %rsi     # 0x23195
leaq 0x58(%rsp), %rdi
leaq 0xc(%rsp), %rdx
callq 0x50e0
leaq 0x58(%rsp), %rsi
movq %r12, %rdi
callq 0x5250
leaq 0x1b554(%rip), %rsi     # 0x231c7
movq %rax, %rdi
callq 0x5290
movq %rax, %r12
testq %r15, %r15
je 0x7c9e
movq (%r15), %rax
movq %r15, %rdi
callq *0x28(%rax)
leaq 0x98(%rsp), %rdi
movq %rax, %rsi
callq 0x13852
jmp 0x7cb7
leaq 0x1b4f0(%rip), %rsi     # 0x23195
leaq 0x98(%rsp), %rdi
leaq 0xb(%rsp), %rdx
callq 0x50e0
leaq 0x98(%rsp), %rsi
movq %r12, %rdi
callq 0x5250
leaq 0x98(%rsp), %rdi
callq 0x5120
leaq 0x58(%rsp), %rdi
testq %r15, %r15
je 0x7d09
callq 0x5120
leaq 0x78(%rsp), %rdi
callq 0x5120
leaq 0x38(%rsp), %rdi
callq 0x5120
leaq 0x18(%rsp), %rdi
callq 0x5120
movss 0x10(%r15), %xmm0
jmp 0x7d2f
callq 0x5120
leaq 0x78(%rsp), %rdi
callq 0x5120
leaq 0x38(%rsp), %rdi
callq 0x5120
leaq 0x18(%rsp), %rdi
callq 0x5120
xorps %xmm0, %xmm0
movss %xmm0, 0x10(%rsp)
leaq 0x1b49c(%rip), %rsi     # 0x231d8
movq %r14, %rdi
callq 0x5290
movss 0xb0(%rbx), %xmm0
movq %rax, %rdi
callq 0x51f0
leaq 0x1b488(%rip), %rsi     # 0x231e3
movq %rax, %rdi
callq 0x5290
movq %rax, %r14
testq %r15, %r15
je 0x7d7d
leaq 0x18(%rsp), %rdi
movss 0x10(%rsp), %xmm0
callq 0xccf4
jmp 0x7d93
leaq 0x1b411(%rip), %rsi     # 0x23195
leaq 0x18(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x50e0
leaq 0x18(%rsp), %rsi
movq %r14, %rdi
callq 0x5250
leaq 0x1b44d(%rip), %rsi     # 0x231f4
movq %rax, %rdi
callq 0x5290
movss 0xb0(%rbx), %xmm0
subss 0x10(%rsp), %xmm0
movq %rax, %rdi
callq 0x51f0
movq %rax, %rdi
callq 0x5130
leaq 0x18(%rsp), %rdi
callq 0x5120
testq %r15, %r15
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x7e73
jmp 0x7e14
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
callq 0x5120
jmp 0x7e20
movq %rax, %rbx
jmp 0x7e32
movq %rax, %rbx
jmp 0x7e44
movq %rax, %rbx
jmp 0x7e51
movq %rax, %rbx
jmp 0x7e6e
jmp 0x7e73
jmp 0x7e73
movq %rax, %rbx
testq %r15, %r15
jmp 0x7e28
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x5120
testq %r15, %r15
jmp 0x7e3a
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x5120
testq %r15, %r15
leaq 0x38(%rsp), %rdi
callq 0x5120
testq %r15, %r15
jmp 0x7e64
movq %rax, %rbx
jmp 0x7e47
jmp 0x7e61
jmp 0x7e73
jmp 0x7e78
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x5120
testq %r15, %r15
jmp 0x7e8f
movq %rax, %rbx
jmp 0x7e85
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x5120
leaq 0x18(%rsp), %rdi
callq 0x5120
movq %rbx, %rdi
callq 0x5410
nop