// File: Cell-veto[P]postlhc/./ipl.hpp
// Function: PowerLawInteraction::set_parameter(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, double)
void set_parameter (string_ref name, double value)
    {
        if (name == "strength")
        {
            if (! (value >= 0.))
                rt_error ("Invalid strength for power law");
            gamma = value;
        }
        else if (name == "exponent")
        {
            exponent = value;
        }
        else if (name == "sr_lr_split")
        {
            if (! (value > 0.))
                rt_error ("Invalid sr_lr_split for power law");
            sr_lr_split = value;
        }
        else
        {
            rt_error ("Invalid parameter: " + name);
        }

        // for compatibility with conventional normalization
        if (exponent == 0)
            stren = gamma;
        else
            stren = gamma * fabs (exponent);
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movsd %xmm0, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x1e4888(%rip), %rsi    # 0x5fc426
callq 0x407c80
testb $0x1, %al
jne 0x417bac
jmp 0x417c34
movsd -0x18(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jae 0x417c1f
leaq -0x39(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x4771f0
movq -0xa8(%rbp), %rdx
leaq 0x1e4857(%rip), %rsi    # 0x5fc42f
leaq -0x38(%rbp), %rdi
callq 0x407bd0
jmp 0x417be3
leaq -0x38(%rbp), %rdi
callq 0x46d330
jmp 0x417bee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x417c11
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x4f1e40
leaq -0x39(%rbp), %rdi
callq 0x477210
jmp 0x417d9f
movq -0xa0(%rbp), %rax
movsd -0x18(%rbp), %xmm0
movsd %xmm0, (%rax)
jmp 0x417d49
movq -0x10(%rbp), %rdi
leaq 0x1e47c8(%rip), %rsi    # 0x5fc407
callq 0x407c80
testb $0x1, %al
jne 0x417c4a
jmp 0x417c60
movq -0xa0(%rbp), %rax
movsd -0x18(%rbp), %xmm0
movsd %xmm0, 0x10(%rax)
jmp 0x417d47
movq -0x10(%rbp), %rdi
leaq 0x1e3775(%rip), %rsi    # 0x5fb3e0
callq 0x407c80
testb $0x1, %al
jne 0x417c79
jmp 0x417cff
movsd -0x18(%rbp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
ja 0x417cec
leaq -0x71(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x4771f0
movq -0xb0(%rbp), %rdx
leaq 0x1e47a9(%rip), %rsi    # 0x5fc44e
leaq -0x70(%rbp), %rdi
callq 0x407bd0
jmp 0x417cb0
leaq -0x70(%rbp), %rdi
callq 0x46d330
jmp 0x417cbb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x417cde
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x4f1e40
leaq -0x71(%rbp), %rdi
callq 0x477210
jmp 0x417d9f
movq -0xa0(%rbp), %rax
movsd -0x18(%rbp), %xmm0
movsd %xmm0, 0x18(%rax)
jmp 0x417d45
movq -0x10(%rbp), %rdx
leaq 0x1e4766(%rip), %rsi    # 0x5fc470
leaq -0x98(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x407fd0
movq -0xb8(%rbp), %rdi
callq 0x46d330
jmp 0x417d2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x4f1e40
jmp 0x417d9f
jmp 0x417d47
jmp 0x417d49
movq -0xa0(%rbp), %rax
movsd 0x10(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x417d72
jp 0x417d72
movq -0xa0(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x8(%rax)
jmp 0x417d96
movq -0xa0(%rbp), %rax
movsd (%rax), %xmm0
movsd 0x10(%rax), %xmm1
movaps 0x1e4637(%rip), %xmm2   # 0x5fc3c0
pand %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, 0x8(%rax)
addq $0xc0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x5283c0
nopl (%rax,%rax)