user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<box_checksol>:
  endbr64
  push   %r12
  movapd %xmm1,%xmm2
  mov    %rdx,%r12
  push   %rbp
  mov    %rsi,%rbp
  push   %rbx
  mov    %rdi,%rbx
  lea    D47(%rip),%rdi
  sub    $0x10,%rsp
  movsd  %xmm1,0x8(%rsp)
  pxor   %xmm1,%xmm1
  call   <gsl_test_rel@plt>
  movsd  0x10(%rbx),%xmm0
  movsd  D122(%rip),%xmm3
  movq   D90(%rip),%xmm5
  movsd  D129(%rip),%xmm4
  movapd %xmm0,%xmm1
  movsd  0x8(%rsp),%xmm2
  subsd  %xmm3,%xmm1
  andpd  %xmm5,%xmm1
  comisd %xmm1,%xmm4
  ja     L10
  addsd  %xmm3,%xmm0
  movsd  (%rbx),%xmm6
  mov    %r12,%rdx
  mov    %rbp,%rsi
  andpd  %xmm5,%xmm0
  comisd %xmm0,%xmm4
  ja     L0
  movsd  0x8(%rbx),%xmm1
  movapd %xmm6,%xmm0
  lea    D124(%rip),%rdi
  movsd  %xmm2,0x8(%rsp)
  call   <gsl_test_rel@plt>
  movsd  0x10(%rbx),%xmm0
  mov    %r12,%rdx
  mov    %rbp,%rsi
  movsd  0x8(%rsp),%xmm2
  add    $0x10,%rsp
  lea    D109(%rip),%rdi
  pxor   %xmm1,%xmm1
  pop    %rbx
  pop    %rbp
  pop    %r12
  jmp    1050 <gsl_test_rel@plt>
  nopl   0x0(%rax)
L0:
  movsd  D3(%rip),%xmm1
  movapd %xmm6,%xmm0
  lea    D114(%rip),%rdi
  movsd  %xmm2,0x8(%rsp)
  call   <gsl_test_rel@plt>
  movsd  0x8(%rbx),%xmm0
  mov    %r12,%rdx
  mov    %rbp,%rsi
  mov    D122(%rip),%rax
  movsd  0x8(%rsp),%xmm2
  lea    D77(%rip),%rdi
  movq   %rax,%xmm1
  call   <gsl_test_rel@plt>
  movsd  0x10(%rbx),%xmm0
  mov    %r12,%rdx
  mov    %rbp,%rsi
  movsd  0x8(%rsp),%xmm2
  movsd  D76(%rip),%xmm1
  add    $0x10,%rsp
  lea    D109(%rip),%rdi
  pop    %rbx
  pop    %rbp
  pop    %r12
  jmp    1050 <gsl_test_rel@plt>
  nopl   0x0(%rax)
L10:
  movsd  (%rbx),%xmm0
  mov    %r12,%rdx
  mov    %rbp,%rsi
  movapd %xmm3,%xmm1
  lea    D114(%rip),%rdi
  call   <gsl_test_rel@plt>
  movsd  0x8(%rbx),%xmm0
  mov    %r12,%rdx
  mov    %rbp,%rsi
  movsd  0x8(%rsp),%xmm2
  movsd  D3(%rip),%xmm1
  lea    D77(%rip),%rdi
  call   <gsl_test_rel@plt>
  movsd  0x10(%rbx),%xmm0
  mov    %r12,%rdx
  mov    %rbp,%rsi
  mov    D122(%rip),%rax
  movsd  0x8(%rsp),%xmm2
  add    $0x10,%rsp
  lea    D109(%rip),%rdi
  pop    %rbx
  pop    %rbp
  movq   %rax,%xmm1
  pop    %r12
  jmp    1050 <gsl_test_rel@plt>
```

tool_calls: name: retrieve_data
arguments: data_tag: D47
datatype: string
name: retrieve_data
arguments: data_tag: D122
datatype: f64
name: retrieve_data
arguments: data_tag: D90
datatype: qword
name: retrieve_data
arguments: data_tag: D129
datatype: byte[8]
name: retrieve_data
arguments: data_tag: D124
datatype: string
name: retrieve_data
arguments: data_tag: D109
datatype: string
name: retrieve_data
arguments: data_tag: D3
datatype: f64
name: retrieve_data
arguments: data_tag: D114
datatype: string
name: retrieve_data
arguments: data_tag: D77
datatype: string
name: retrieve_data
arguments: data_tag: D76
datatype: f32[2]

tool: D47: %s/%s sumsq

tool: D122: 1

tool: D90: 9223372036854775807

tool: {"D129": [0x8d,0xed,0xb5,0xa0,0xf7,0xc6,0xb0,0x3e]}

tool: D124: %s/%s i=0,1

tool: D109: %s/%s i=2

tool: D3: 10

tool: D114: %s/%s i=0

tool: D77: %s/%s i=1

tool: {"D76": [0.0,-1.875]}

assistant: ```c
void box_checksol(const double x[], const double sumsq, const double epsrel, const char *sname, const char *pname) {
  const double sumsq_exact = 0.0;
  const double eps = 1.0e-6;
  gsl_test_rel(sumsq, sumsq_exact, epsrel, "%s/%s sumsq", sname, pname);
  if (fabs(x[2] - 1.0) < eps) {
    gsl_test_rel(x[0], 1.0, epsrel, "%s/%s i=0", sname, pname);
    gsl_test_rel(x[1], 10.0, epsrel, "%s/%s i=1", sname, pname);
    gsl_test_rel(x[2], 1.0, epsrel, "%s/%s i=2", sname, pname);
  } else if (fabs(x[2] + 1.0) < eps) {
    gsl_test_rel(x[0], 10.0, epsrel, "%s/%s i=0", sname, pname);
    gsl_test_rel(x[1], 1.0, epsrel, "%s/%s i=1", sname, pname);
    gsl_test_rel(x[2], -1.0, epsrel, "%s/%s i=2", sname, pname);
  } else {
    gsl_test_rel(x[0], x[1], epsrel, "%s/%s i=0,1", sname, pname);
    gsl_test_rel(x[2], 0.0, epsrel, "%s/%s i=2", sname, pname);
  }
}
```