// File: kaityo256[P]thermostats/thermostats.cpp
// Function: main
int
main(void) {
  integrate(RungeKutta<NoseHoover>(dt), "nh_rk");
  integrate(Euler<NoseHoover>(dt), "nh_euler");

  integrate(RungeKutta<KineticMoments>(dt), "km_rk");
  integrate(Euler<KineticMoments>(dt), "km_euler");

  integrate(RungeKutta<NoseHooverChain>(dt), "nhc_rk");
  integrate(Euler<NoseHooverChain>(dt), "nhc_euler");

  integrate(Euler<Langevin>(dt), "langevin");
}

// Assembly:
subq $0x2978, %rsp           # imm = 0x2978
leaq 0x2960(%rsp), %rdi
movsd 0x7cb1(%rip), %xmm0     # 0xa008
callq 0x2ed0
leaq 0x293f(%rsp), %rdi
movq %rdi, 0x13f0(%rsp)
callq 0x21d0
movq 0x13f0(%rsp), %rdx
leaq 0x7d10(%rip), %rsi      # 0xa090
leaq 0x2940(%rsp), %rdi
callq 0x2180
jmp 0x238f
movq 0x2970(%rsp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movups 0x2960(%rsp), %xmm0
movups %xmm0, (%rax)
leaq 0x2940(%rsp), %rdi
callq 0x2920
jmp 0x23b8
leaq 0x2940(%rsp), %rdi
callq 0x20a0
leaq 0x293f(%rsp), %rdi
callq 0x2160
leaq 0x2918(%rsp), %rdi
movsd 0x7c26(%rip), %xmm0     # 0xa008
callq 0x34c0
leaq 0x28f7(%rsp), %rdi
movq %rdi, 0x13e8(%rsp)
callq 0x21d0
movq 0x13e8(%rsp), %rdx
leaq 0x7c8b(%rip), %rsi      # 0xa096
leaq 0x28f8(%rsp), %rdi
callq 0x2180
jmp 0x241a
movsd 0x2918(%rsp), %xmm0
movsd 0x2920(%rsp), %xmm1
leaq 0x28f8(%rsp), %rdi
callq 0x2f10
jmp 0x243b
leaq 0x28f8(%rsp), %rdi
callq 0x20a0
leaq 0x28f7(%rsp), %rdi
callq 0x2160
leaq 0x28d0(%rsp), %rdi
movsd 0x7ba3(%rip), %xmm0     # 0xa008
callq 0x3aa0
leaq 0x28af(%rsp), %rdi
movq %rdi, 0x13e0(%rsp)
callq 0x21d0
movq 0x13e0(%rsp), %rdx
leaq 0x7c11(%rip), %rsi      # 0xa09f
leaq 0x28b0(%rsp), %rdi
callq 0x2180
jmp 0x249d
movups 0x28d0(%rsp), %xmm0
movups 0x28e0(%rsp), %xmm1
movq %rsp, %rax
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq 0x28b0(%rsp), %rdi
callq 0x34f0
jmp 0x24c6
leaq 0x28b0(%rsp), %rdi
callq 0x20a0
leaq 0x28af(%rsp), %rdi
callq 0x2160
leaq 0x2890(%rsp), %rdi
movsd 0x7b18(%rip), %xmm0     # 0xa008
callq 0x4090
leaq 0x286f(%rsp), %rdi
movq %rdi, 0x13d8(%rsp)
callq 0x21d0
movq 0x13d8(%rsp), %rdx
leaq 0x7b8c(%rip), %rsi      # 0xa0a5
leaq 0x2870(%rsp), %rdi
callq 0x2180
jmp 0x2528
movq 0x28a0(%rsp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movups 0x2890(%rsp), %xmm0
movups %xmm0, (%rax)
leaq 0x2870(%rsp), %rdi
callq 0x3ae0
jmp 0x2551
leaq 0x2870(%rsp), %rdi
callq 0x20a0
leaq 0x286f(%rsp), %rdi
callq 0x2160
leaq 0x2848(%rsp), %rdi
movsd 0x7a8d(%rip), %xmm0     # 0xa008
callq 0x4670
leaq 0x2827(%rsp), %rdi
movq %rdi, 0x13d0(%rsp)
callq 0x21d0
movq 0x13d0(%rsp), %rdx
leaq 0x7b0a(%rip), %rsi      # 0xa0ae
leaq 0x2828(%rsp), %rdi
callq 0x2180
jmp 0x25b3
movups 0x2848(%rsp), %xmm0
movups 0x2858(%rsp), %xmm1
movq %rsp, %rax
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq 0x2828(%rsp), %rdi
callq 0x40c0
jmp 0x25dc
leaq 0x2828(%rsp), %rdi
callq 0x20a0
leaq 0x2827(%rsp), %rdi
callq 0x2160
leaq 0x2808(%rsp), %rdi
movsd 0x7a02(%rip), %xmm0     # 0xa008
callq 0x4c60
leaq 0x27e7(%rsp), %rdi
movq %rdi, 0x13c8(%rsp)
callq 0x21d0
movq 0x13c8(%rsp), %rdx
leaq 0x7a86(%rip), %rsi      # 0xa0b5
leaq 0x27e8(%rsp), %rdi
callq 0x2180
jmp 0x263e
movq 0x2818(%rsp), %rcx
movq %rsp, %rax
movq %rcx, 0x10(%rax)
movups 0x2808(%rsp), %xmm0
movups %xmm0, (%rax)
leaq 0x27e8(%rsp), %rdi
callq 0x46b0
jmp 0x2667
leaq 0x27e8(%rsp), %rdi
callq 0x20a0
leaq 0x27e7(%rsp), %rdi
callq 0x2160
leaq 0x1420(%rsp), %rdi
movsd 0x7977(%rip), %xmm0     # 0xa008
callq 0x5240
leaq 0x13ff(%rsp), %rdi
movq %rdi, 0x13c0(%rsp)
callq 0x21d0
movq 0x13c0(%rsp), %rdx
leaq 0x7a05(%rip), %rsi      # 0xa0bf
leaq 0x1400(%rsp), %rdi
callq 0x2180
jmp 0x26c9
movq %rsp, %rdi
movl $0x278, %ecx            # imm = 0x278
leaq 0x1420(%rsp), %rsi
rep  movsq (%rsi), %es:(%rdi)
leaq 0x1400(%rsp), %rdi
callq 0x4c90
jmp 0x26eb
leaq 0x1400(%rsp), %rdi
callq 0x20a0
leaq 0x13ff(%rsp), %rdi
callq 0x2160
xorl %eax, %eax
addq $0x2978, %rsp           # imm = 0x2978
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
jmp 0x2746
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
leaq 0x2940(%rsp), %rdi
callq 0x20a0
leaq 0x293f(%rsp), %rdi
callq 0x2160
jmp 0x2906
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
jmp 0x278f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
leaq 0x28f8(%rsp), %rdi
callq 0x20a0
leaq 0x28f7(%rsp), %rdi
callq 0x2160
jmp 0x2906
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
jmp 0x27d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
leaq 0x28b0(%rsp), %rdi
callq 0x20a0
leaq 0x28af(%rsp), %rdi
callq 0x2160
jmp 0x2906
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
jmp 0x2821
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
leaq 0x2870(%rsp), %rdi
callq 0x20a0
leaq 0x286f(%rsp), %rdi
callq 0x2160
jmp 0x2906
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
jmp 0x286a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
leaq 0x2828(%rsp), %rdi
callq 0x20a0
leaq 0x2827(%rsp), %rdi
callq 0x2160
jmp 0x2906
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
jmp 0x28b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
leaq 0x27e8(%rsp), %rdi
callq 0x20a0
leaq 0x27e7(%rsp), %rdi
callq 0x2160
jmp 0x2906
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
jmp 0x28f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x2930(%rsp)
movl %eax, 0x292c(%rsp)
leaq 0x1400(%rsp), %rdi
callq 0x20a0
leaq 0x13ff(%rsp), %rdi
callq 0x2160
movq 0x2930(%rsp), %rdi
callq 0x21c0
nopw %cs:(%rax,%rax)
nopl (%rax)