// File: richardposner[P]BioNetFit2/src/code/Evaluate.cpp
// Function: constraintFunction(double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, double)
int constraintFunction(double value1, string constraintOperator, double value2){

    bool result;

    if(constraintOperator == "=" || constraintOperator == "=="){
      result = (value1 == value2); return result;
    }

    if(constraintOperator == ">"){
      result = (value1 > value2); return result;
    }

    if(constraintOperator == "<"){
       result = (value1 < value2); return result;
    }

    if(constraintOperator == ">="){
      result = (value1 >= value2); return result;
    }

    if(constraintOperator == "<="){
       result = (value1 <= value2); return result;
    }

    if(constraintOperator == "!="){
       result = (value1 != value2); return result;
    }
   //0 means false
   //1 means true
   //-1 means that the logial operator was not found in this function
   return -1;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x30(%rbp)
movsd %xmm0, -0x10(%rbp)
movq %rdi, -0x18(%rbp)
movsd %xmm1, -0x20(%rbp)
leaq 0xff9b0(%rip), %rsi     # 0x1e3a41
callq 0x44930
testb $0x1, %al
jne 0xe40b0
movq -0x30(%rbp), %rdi
leaq 0xef8fe(%rip), %rsi     # 0x1d39a3
callq 0x44930
testb $0x1, %al
jne 0xe40b0
jmp 0xe40d7
movsd -0x10(%rbp), %xmm0
ucomisd -0x20(%rbp), %xmm0
sete %al
setnp %cl
andb %cl, %al
andb $0x1, %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0xe41fa
movq -0x30(%rbp), %rdi
leaq 0xf81df(%rip), %rsi     # 0x1dc2c1
callq 0x44930
testb $0x1, %al
jne 0xe40ed
jmp 0xe410f
movsd -0x10(%rbp), %xmm0
ucomisd -0x20(%rbp), %xmm0
seta %al
andb $0x1, %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0xe41fa
movq -0x30(%rbp), %rdi
leaq 0xfc7d6(%rip), %rsi     # 0x1e08f0
callq 0x44930
testb $0x1, %al
jne 0xe4125
jmp 0xe414b
movsd -0x10(%rbp), %xmm1
movsd -0x20(%rbp), %xmm0
ucomisd %xmm1, %xmm0
seta %al
andb $0x1, %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0xe41fa
movq -0x30(%rbp), %rdi
leaq 0xfc79c(%rip), %rsi     # 0x1e08f2
callq 0x44930
testb $0x1, %al
jne 0xe4161
jmp 0xe4180
movsd -0x10(%rbp), %xmm0
ucomisd -0x20(%rbp), %xmm0
setae %al
andb $0x1, %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0xe41fa
movq -0x30(%rbp), %rdi
leaq 0xfc76a(%rip), %rsi     # 0x1e08f5
callq 0x44930
testb $0x1, %al
jne 0xe4196
jmp 0xe41b9
movsd -0x10(%rbp), %xmm1
movsd -0x20(%rbp), %xmm0
ucomisd %xmm1, %xmm0
setae %al
andb $0x1, %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0xe41fa
movq -0x30(%rbp), %rdi
leaq 0xfc734(%rip), %rsi     # 0x1e08f8
callq 0x44930
testb $0x1, %al
jne 0xe41cf
jmp 0xe41f3
movsd -0x10(%rbp), %xmm0
ucomisd -0x20(%rbp), %xmm0
setne %al
setp %cl
orb %cl, %al
andb $0x1, %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0xe41fa
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)