// File: grame-cncm[P]digraph/./dglib/digraph.hh
// Function: digraph<digraph<char, std::pair<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, int>>>, int>>, std::pair<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, int>>>, int>>::internalgraph::add(digraph<char, std::pair<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, int>>>, int>> const&, digraph<char, std::pair<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, int>>>, int>> const&, std::pair<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, int>>>, int> const&)
void add(const N& n1, const N& n2, const A& d)
        {
            add(n1);
            add(n2);
            auto& adj = fConnections[n1];
            auto  cnx = adj.find(n2);
            if (cnx != adj.end()) {
                A& d1 = cnx->second;
                d1    = policy::combine(d1, d);
            } else {
                adj[n2] = d;
            }
        }

// Assembly:
subq $0xc8, %rsp
movq %rdi, 0xc0(%rsp)
movq %rsi, 0xb8(%rsp)
movq %rdx, 0xb0(%rsp)
movq %rcx, 0xa8(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0xb8(%rsp), %rsi
leaq 0x98(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0x16d90
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x18840
jmp 0x1ad5f
leaq 0x98(%rsp), %rdi
callq 0x3780
movq 0xb0(%rsp), %rsi
leaq 0x78(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x16d90
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x18840
jmp 0x1ad94
leaq 0x78(%rsp), %rdi
callq 0x3780
movq 0x10(%rsp), %rdi
addq $0x30, %rdi
movq 0xb8(%rsp), %rsi
callq 0x18910
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rdi
movq 0xb0(%rsp), %rsi
callq 0x1aec0
movq %rax, 0x68(%rsp)
movq 0x70(%rsp), %rdi
callq 0x1af10
movq %rax, 0x60(%rsp)
leaq 0x68(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x1aef0
testb $0x1, %al
jne 0x1adf7
jmp 0x1ae7f
leaq 0x68(%rsp), %rdi
callq 0x1af40
addq $0x10, %rax
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rsi
movq 0xa8(%rsp), %rdx
leaq 0x20(%rsp), %rdi
callq 0x6240
movq 0x58(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x66d0
leaq 0x20(%rsp), %rdi
callq 0x2c20
jmp 0x1aea9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x90(%rsp)
movl %eax, 0x8c(%rsp)
leaq 0x98(%rsp), %rdi
callq 0x3780
jmp 0x1aeb1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x90(%rsp)
movl %eax, 0x8c(%rsp)
leaq 0x78(%rsp), %rdi
callq 0x3780
jmp 0x1aeb1
movq 0xa8(%rsp), %rax
movq %rax, (%rsp)
movq 0x70(%rsp), %rdi
movq 0xb0(%rsp), %rsi
callq 0x1af60
movq (%rsp), %rsi
movq %rax, %rdi
callq 0x6800
addq $0xc8, %rsp
retq
movq 0x90(%rsp), %rdi
callq 0x2290
nop