// File: /workspace/github_cpp_makefile_star2_O3/canzarlab[P]Trajan/src/Geno.h
// Function: IntegerPackingJRF::functionValueConstraints(double const*, double*)
bool functionValueConstraints(const Scalar* variablesPtr,
                                   Scalar* constraintValuesPtr) override
     {
          Vector::ConstMapType x = Vector::ConstMapType(variablesPtr, _n);
          Vector::MapType constraintValues = Vector::MapType(constraintValuesPtr, _m);
          Vector t = Vector::Ones(_n);
          constraintValues.head(_n) = x.cwiseProduct(x-t);
          constraintValues.tail(_A.rows()) = _A * x;
          return true;
      }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq 0x30(%rdi), %rbp
testq %rbp, %rbp
js 0x478cf
movq %rdi, %r15
movq 0x38(%rdi), %r13
testq %r13, %r13
js 0x478e6
movq %rdx, %rbx
movq %rsi, %r14
leaq 0x28(%rsp), %rsi
movq %rbp, (%rsi)
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x10(%rsi)
leaq 0x8(%rsp), %r12
movq %r12, %rdi
callq 0x36fea
cmpq 0x8(%r12), %rbp
jne 0x47905
movq 0x30(%r15), %rax
testq %rbx, %rbx
sete %cl
testq %rax, %rax
setns %dl
orb %cl, %dl
je 0x47872
cmpq %rax, %r13
jb 0x47891
testq %rax, %rax
js 0x47891
cmpq %rbp, %rax
jne 0x478b0
movq %rbp, %rdx
testb $0x7, %bl
jne 0x476df
movl %ebx, %edx
shrl $0x3, %edx
andl $0x1, %edx
cmpq %rbp, %rdx
cmovaeq %rbp, %rdx
movq 0x8(%rsp), %rax
movq %rbp, %rsi
subq %rdx, %rsi
movq %rsi, %rcx
shrq $0x3f, %rcx
addq %rsi, %rcx
andq $-0x2, %rcx
testq %rdx, %rdx
je 0x4771f
xorl %edi, %edi
movsd (%r14,%rdi,8), %xmm0
movapd %xmm0, %xmm1
subsd (%rax,%rdi,8), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, (%rbx,%rdi,8)
incq %rdi
cmpq %rdi, %rdx
jne 0x476ff
addq %rdx, %rcx
cmpq $0x2, %rsi
jl 0x4774d
movupd (%r14,%rdx,8), %xmm0
movupd (%rax,%rdx,8), %xmm1
movapd %xmm0, %xmm2
subpd %xmm1, %xmm2
mulpd %xmm0, %xmm2
movapd %xmm2, (%rbx,%rdx,8)
addq $0x2, %rdx
cmpq %rcx, %rdx
jl 0x47728
cmpq %rbp, %rcx
jge 0x47772
movsd (%r14,%rcx,8), %xmm0
movapd %xmm0, %xmm1
subsd (%rax,%rcx,8), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, (%rbx,%rcx,8)
incq %rcx
cmpq %rcx, %rbp
jne 0x47752
movq 0x8(%r15), %rax
movq %rax, 0x28(%rsp)
movq %r14, 0x30(%rsp)
movq %rbp, 0x38(%rsp)
cmpq %rbp, 0x8(%rax)
jne 0x47924
testq %rbx, %rbx
sete %cl
movq 0x10(%rax), %r14
testq %r14, %r14
setns %al
orb %cl, %al
je 0x47872
subq %r14, %r13
movq %r13, %rax
orq %r14, %rax
js 0x47891
leaq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x36c2e
cmpq 0x20(%rsp), %r14
jne 0x478b0
leaq (%rbx,%r13,8), %rax
movq %r14, %rcx
testb $0x7, %al
jne 0x477ea
movl %eax, %ecx
shrl $0x3, %ecx
andl $0x1, %ecx
cmpq %r14, %rcx
cmovgeq %r14, %rcx
movq 0x18(%rsp), %rdi
movq %r14, %rsi
subq %rcx, %rsi
movq %rsi, %rdx
shrq $0x3f, %rdx
addq %rsi, %rdx
andq $-0x2, %rdx
testq %rcx, %rcx
jle 0x4781f
xorl %r8d, %r8d
movsd (%rdi,%r8,8), %xmm0
movsd %xmm0, (%rax,%r8,8)
incq %r8
cmpq %r8, %rcx
jne 0x4780b
addq %rcx, %rdx
cmpq $0x2, %rsi
jl 0x4783b
movupd (%rdi,%rcx,8), %xmm0
movapd %xmm0, (%rax,%rcx,8)
addq $0x2, %rcx
cmpq %rdx, %rcx
jl 0x47828
cmpq %r14, %rdx
jge 0x47852
movsd (%rdi,%rdx,8), %xmm0
movsd %xmm0, (%rax,%rdx,8)
incq %rdx
cmpq %rdx, %r14
jne 0x47840
callq 0x93d0
movq 0x8(%rsp), %rdi
callq 0x93d0
movb $0x1, %al
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x15001(%rip), %rdi     # 0x5c87a
leaq 0x150a4(%rip), %rsi     # 0x5c924
leaq 0x278d8(%rip), %rcx     # 0x6f15f
movl $0xaf, %edx
callq 0x9200
leaq 0x14f53(%rip), %rdi     # 0x5c7eb
leaq 0x14e77(%rip), %rsi     # 0x5c716
leaq 0x277e5(%rip), %rcx     # 0x6f08b
movl $0x93, %edx
callq 0x9200
leaq 0x16abe(%rip), %rdi     # 0x5e375
leaq 0x16b20(%rip), %rsi     # 0x5e3de
leaq 0x27964(%rip), %rcx     # 0x6f229
movl $0x101, %edx            # imm = 0x101
callq 0x9200
leaq 0x152d1(%rip), %rdi     # 0x5cba7
leaq 0x15047(%rip), %rsi     # 0x5c924
leaq 0x15e7a(%rip), %rcx     # 0x5d75e
jmp 0x478fb
leaq 0x152ba(%rip), %rdi     # 0x5cba7
leaq 0x15030(%rip), %rsi     # 0x5c924
leaq 0x152b9(%rip), %rcx     # 0x5cbb4
movl $0xa3, %edx
callq 0x9200
leaq 0x16552(%rip), %rdi     # 0x5de5e
leaq 0x16584(%rip), %rsi     # 0x5de97
leaq 0x279c4(%rip), %rcx     # 0x6f2de
movl $0x6e, %edx
callq 0x9200
leaq 0x16e21(%rip), %rdi     # 0x5e74c
leaq 0x16ea6(%rip), %rsi     # 0x5e7d8
leaq 0x2679a(%rip), %rcx     # 0x6e0d3
movl $0x61, %edx
callq 0x9200
movq %rax, %rbx
movq 0x8(%rsp), %rdi
callq 0x93d0
movq %rbx, %rdi
callq 0x9680