// File: canzarlab[P]Trajan/src/Solver.cpp
// Function: Solver::PrintScore(double)
void Solver::PrintScore(double weight)
{
    if (d == "e")
    {
        double optVal2 = -weight;
        int n = (int) cost_matrix.size();
        int m = (int) cost_matrix[0].size();
        for (int i=0; i < n-1; ++i)
            optVal2 += cost_matrix[i][m-1];
        for (int j=0; j < m-1; ++j)
            optVal2 += cost_matrix[n-1][j];
        optVal2 = optVal2*scaleCoef;
        cout << ">>>>>>>>>>>>>>>>>>>>>> Optimal value:" << optVal2 << "." << endl;
        moptVal = optVal2;
//         return optVal2;
    }
    else if (dag){
        cout << weight << " ";
//         return weight;
    }
    else{
        cout << ((d == "j") ? JaccardDist(weight) : SymdifDist(weight)) << " ";
//         return ((d == "j") ? JaccardDist(weight) : SymdifDist(weight));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movsd %xmm0, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x30(%rbp)
addq $0x40, %rdi
leaq 0x7f5f7(%rip), %rsi     # 0x12ba7b
callq 0xeaa0
testb $0x1, %al
jne 0xac492
jmp 0xac5e1
movq -0x30(%rbp), %rdi
movsd -0x10(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x18(%rbp)
addq $0x70, %rdi
callq 0x9c200
movq -0x30(%rbp), %rdi
movl %eax, -0x1c(%rbp)
addq $0x70, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x9a070
movq %rax, %rdi
callq 0x9ce20
movl %eax, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl -0x1c(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xac52e
movq -0x30(%rbp), %rdi
addq $0x70, %rdi
movslq -0x24(%rbp), %rsi
callq 0x9a070
movq %rax, %rdi
movl -0x20(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x9a090
movsd (%rax), %xmm0
addsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0xac4e6
movl $0x0, -0x28(%rbp)
movl -0x28(%rbp), %eax
movl -0x20(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xac57d
movq -0x30(%rbp), %rdi
addq $0x70, %rdi
movl -0x1c(%rbp), %eax
subl $0x1, %eax
movslq %eax, %rsi
callq 0x9a070
movq %rax, %rdi
movslq -0x28(%rbp), %rsi
callq 0x9a090
movsd (%rax), %xmm0
addsd -0x18(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0xac535
movq -0x30(%rbp), %rax
movsd -0x18(%rbp), %xmm0
mulsd 0x28(%rax), %xmm0
movsd %xmm0, -0x18(%rbp)
movq 0xf4a19(%rip), %rdi     # 0x1a0fb0
leaq 0x7dc00(%rip), %rsi     # 0x12a19e
callq 0xa440
movq %rax, %rdi
movsd -0x18(%rbp), %xmm0
callq 0xa870
movq %rax, %rdi
leaq 0x61a4a(%rip), %rsi     # 0x10e004
callq 0xa440
movq %rax, %rdi
movq 0xf4997(%rip), %rsi     # 0x1a0f60
callq 0xa4a0
movq -0x30(%rbp), %rax
movsd -0x18(%rbp), %xmm0
movsd %xmm0, 0x20(%rax)
jmp 0xac671
movq -0x30(%rbp), %rax
testb $0x1, 0x68(%rax)
je 0xac60d
movsd -0x10(%rbp), %xmm0
movq 0xf49b9(%rip), %rdi     # 0x1a0fb0
callq 0xa870
movq %rax, %rdi
leaq 0x5ec3c(%rip), %rsi     # 0x10b242
callq 0xa440
jmp 0xac66f
movq -0x30(%rbp), %rdi
addq $0x40, %rdi
leaq 0x5ea8a(%rip), %rsi     # 0x10b0a6
callq 0xeaa0
testb $0x1, %al
jne 0xac627
jmp 0xac63c
movq -0x30(%rbp), %rdi
movsd -0x10(%rbp), %xmm0
callq 0xac680
movsd %xmm0, -0x38(%rbp)
jmp 0xac64f
movq -0x30(%rbp), %rdi
movsd -0x10(%rbp), %xmm0
callq 0xac740
movsd %xmm0, -0x38(%rbp)
movsd -0x38(%rbp), %xmm0
movq 0xf4955(%rip), %rdi     # 0x1a0fb0
callq 0xa870
movq %rax, %rdi
leaq 0x5ebd8(%rip), %rsi     # 0x10b242
callq 0xa440
jmp 0xac671
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)