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

```asm
<getCustomSplitStatisticCompetingRisk>:
  endbr64
  push   %r15
  push   %r14
  mov    %r9d,%r14d
  push   %r13
  push   %r12
  push   %rbp
  mov    %r8d,%ebp
  push   %rbx
  mov    %edi,%ebx
  mov    %r9d,%edi
  sub    $0x48,%rsp
  mov    %rdx,0x10(%rsp)
  mov    %rcx,(%rsp)
  mov    %rsi,0x38(%rsp)
  call   <alloc_uivector@plt>
  mov    %r14d,%edi
  mov    %rax,0x30(%rsp)
  call   <alloc_uivector@plt>
  mov    %r14d,%edi
  mov    %rax,0x28(%rsp)
  call   <alloc_uivector@plt>
  mov    %r14d,%edi
  mov    %rax,0x18(%rsp)
  call   <alloc_uivector@plt>
  mov    %r14d,%esi
  mov    %ebp,%edi
  mov    %rax,0x20(%rsp)
  call   <alloc_uimatrix@plt>
  mov    %r14d,%esi
  mov    %ebp,%edi
  mov    %rax,%r12
  call   <alloc_uimatrix@plt>
  mov    %r14d,%esi
  mov    %ebp,%edi
  mov    %rax,%r13
  call   <alloc_uimatrix@plt>
  mov    %r14d,%esi
  mov    %ebp,%edi
  mov    %rax,%r15
  call   <alloc_uimatrix@plt>
  mov    %rax,0x8(%rsp)
  test   %r14d,%r14d
  je     L118
  mov    0x38(%rsp),%r10
  mov    0x10(%rsp),%r11
  mov    $0x1,%edi
  mov    %rax,%r8
L178:
  mov    0x28(%rsp),%rsi
  mov    %edi,%eax
  mov    $0x1,%edx
  lea    0x0(,%rax,4),%rcx
  movl   $0x0,(%rsi,%rax,4)
  mov    0x20(%rsp),%rsi
  movl   $0x0,(%rsi,%rax,4)
  mov    0x30(%rsp),%rsi
  movl   $0x0,(%rsi,%rax,4)
  mov    0x18(%rsp),%rsi
  movl   $0x0,(%rsi,%rax,4)
  test   %ebp,%ebp
  je     L470
L254:
  mov    %edx,%eax
  add    $0x1,%edx
  mov    (%r12,%rax,8),%rsi
  movl   $0x0,(%rsi,%rcx,1)
  mov    0x0(%r13,%rax,8),%rsi
  movl   $0x0,(%rsi,%rcx,1)
  mov    (%r15,%rax,8),%rsi
  mov    (%r8,%rax,8),%rax
  movl   $0x0,(%rsi,%rcx,1)
  movl   $0x0,(%rax,%rcx,1)
  cmp    %edx,%ebp
  jae    L254
L470:
  add    $0x1,%edi
  cmp    %edi,%r14d
  jae    L178
  test   %ebx,%ebx
  je     L338
  mov    0x18(%rsp),%r8
  mov    0x20(%rsp),%r9
  mov    %r14d,%edi
  pxor   %xmm3,%xmm3
L215:
  mov    0x80(%rsp),%rsi
  mov    %edi,%eax
  mov    %ebx,%edx
  movsd  (%r11,%rdx,8),%xmm0
  movsd  (%rsi,%rax,8),%xmm1
  comisd %xmm1,%xmm0
  jb     L229
  shl    $0x2,%rax
  lea    (%r10,%rdx,1),%rcx
  addl   $0x1,(%r9,%rax,1)
  cmpb   $0x1,(%rcx)
  jne    L115
  addl   $0x1,(%r8,%rax,1)
L115:
  ucomisd %xmm0,%xmm1
  jp     L332
  jne    L332
  mov    (%rsp),%rsi
  movsd  (%rsi,%rdx,8),%xmm0
  comisd %xmm3,%xmm0
  jbe    L332
  cvttsd2si %xmm0,%rdx
  mov    %edx,%edx
  mov    (%r12,%rdx,8),%rsi
  add    %rax,%rsi
  addl   $0x1,(%rsi)
  mov    0x28(%rsp),%rsi
  addl   $0x1,(%rsi,%rax,1)
  cmpb   $0x1,(%rcx)
  jne    L332
  add    0x0(%r13,%rdx,8),%rax
  addl   $0x1,(%rax)
L332:
  sub    $0x1,%ebx
L93:
  test   %ebx,%ebx
  je     L222
  test   %edi,%edi
  jne    L215
L222:
  cmp    $0x1,%r14d
  jbe    L79
  mov    %r14d,%esi
  mov    0x20(%rsp),%r11
  lea    -0x1(%r14),%r10d
  lea    0x0(,%rsi,4),%rax
  mov    %r10,%rdx
  lea    -0x4(%rax),%rdi
  lea    -0x10(%rax),%rcx
  mov    %r11,%rbx
  mov    %rdi,(%rsp)
  mov    0x18(%rsp),%rdi
  add    %rax,%rbx
  lea    (%rdi,%rcx,1),%r8
  add    %r11,%rcx
  lea    -0xc(%rax),%r11
  lea    (%rdi,%r11,1),%r9
  mov    %r10,%rdi
  sub    %rsi,%rdi
  lea    0xc(,%rdi,4),%rsi
  cmp    $0x8,%rsi
  seta   %dil
  cmp    $0x2,%r14d
  setne  %sil
  and    %esi,%edi
  mov    0x18(%rsp),%rsi
  add    %rax,%rsi
  cmp    %rsi,%rcx
  setae  %sil
  cmp    %r8,%rbx
  setbe  0x10(%rsp)
  or     0x10(%rsp),%sil
  and    %esi,%edi
  mov    %dil,0x10(%rsp)
  mov    0x18(%rsp),%rdi
  lea    0x4(%rdi,%rax,1),%rsi
  cmp    %rsi,%rcx
  setae  %sil
  cmp    %rbx,%r9
  setae  %dil
  or     %edi,%esi
  test   %sil,0x10(%rsp)
  je     L38
  mov    0x18(%rsp),%rdi
  mov    0x20(%rsp),%rbx
  sub    %rbx,%rdi
  mov    %rdi,%rsi
  add    $0x8,%rsi
  cmp    $0x8,%rsi
  jbe    L38
  lea    -0x2(%r14),%esi
  cmp    $0x2,%esi
  jbe    L22
  mov    %r10d,%esi
  lea    (%rbx,%r11,1),%rdi
  shr    $0x2,%esi
  neg    %rsi
  shl    $0x4,%rsi
  mov    %rsi,%r10
  xor    %esi,%esi
L65:
  movdqu (%rcx,%rsi,1),%xmm6
  pshufd $0x1b,%xmm6,%xmm0
  movdqu (%rdi,%rsi,1),%xmm6
  pshufd $0x1b,%xmm6,%xmm1
  paddd  %xmm1,%xmm0
  pshufd $0x1b,%xmm0,%xmm0
  movups %xmm0,(%rcx,%rsi,1)
  movdqu (%r8,%rsi,1),%xmm4
  movdqu (%r9,%rsi,1),%xmm6
  pshufd $0x1b,%xmm4,%xmm0
  pshufd $0x1b,%xmm6,%xmm1
  paddd  %xmm1,%xmm0
  pshufd $0x1b,%xmm0,%xmm0
  movups %xmm0,(%r8,%rsi,1)
  sub    $0x10,%rsi
  cmp    %rsi,%r10
  jne    L65
  mov    %edx,%edi
  mov    %r14d,%ecx
  and    $0xfffffffc,%edi
  sub    %edi,%ecx
  cmp    %edx,%edi
  je     L79
  lea    -0x1(%rcx),%esi
  mov    %esi,%edx
  cmp    $0x2,%ecx
  je     L239
L95:
  lea    0x1(%rdi),%esi
  mov    0x20(%rsp),%rbx
  mov    0x18(%rsp),%r11
  neg    %rsi
  shl    $0x2,%rsi
  add    %rsi,%rax
  add    (%rsp),%rsi
  lea    (%rbx,%rsi,1),%rdi
  movq   (%rbx,%rax,1),%xmm0
  add    %r11,%rsi
  movq   (%rdi),%xmm1
  pshufd $0xe1,%xmm0,%xmm0
  pshufd $0xe1,%xmm1,%xmm1
  paddd  %xmm1,%xmm0
  pshufd $0xe1,%xmm0,%xmm0
  movq   %xmm0,(%rdi)
  movq   (%r11,%rax,1),%xmm0
  movq   (%rsi),%xmm1
  mov    %edx,%eax
  and    $0xfffffffe,%eax
  pshufd $0xe1,%xmm0,%xmm0
  pshufd $0xe1,%xmm1,%xmm1
  sub    %eax,%ecx
  paddd  %xmm1,%xmm0
  pshufd $0xe1,%xmm0,%xmm0
  movq   %xmm0,(%rsi)
  cmp    %edx,%eax
  je     L79
  lea    -0x1(%rcx),%esi
L239:
  mov    0x20(%rsp),%rbx
  mov    %esi,%eax
  shl    $0x2,%rax
  mov    (%rbx,%rcx,4),%edx
  add    %edx,(%rbx,%rax,1)
  mov    0x18(%rsp),%rbx
  mov    (%rbx,%rcx,4),%edx
  add    %edx,(%rbx,%rax,1)
L79:
  movl   $0x1,(%rsp)
  test   %ebp,%ebp
  je     L358
  mov    %r15,0x10(%rsp)
  mov    (%rsp),%eax
  mov    %r14d,0x38(%rsp)
L331:
  mov    0x20(%rsp),%rdi
  mov    %eax,%ebx
  sub    $0x2,%eax
  mov    $0x1,%r9d
  shl    $0x2,%rbx
  lea    0x8(,%rax,4),%r11
  lea    (%rdi,%rbx,1),%r15
  mov    0x18(%rsp),%rdi
  lea    (%rdi,%rbx,1),%r14
  nopl   0x0(%rax)
L213:
  mov    0x10(%rsp),%rsi
  mov    %r9d,%eax
  mov    (%r15),%edx
  lea    0x1(%r9),%r10d
  mov    0x8(%rsp),%rcx
  mov    (%rsi,%rax,8),%rdi
  mov    (%rcx,%rax,8),%rsi
  mov    $0x4,%ecx
  add    %rbx,%rdi
  mov    %edx,(%rdi)
  mov    (%r14),%eax
  add    %rbx,%rsi
  cmpl   $0x1,(%rsp)
  mov    %eax,(%rsi)
  je     L474
  nopl   0x0(%rax)
L452:
  mov    $0x1,%eax
  nopl   (%rax)
L383:
  cmp    %eax,%r9d
  je     L436
  mov    %eax,%edx
  add    $0x1,%eax
  mov    (%r12,%rdx,8),%r8
  mov    0x0(%r13,%rdx,8),%rdx
  mov    (%r8,%rcx,1),%r8d
  add    %r8d,(%rdi)
  mov    (%rdx,%rcx,1),%edx
  add    %edx,(%rsi)
  cmp    %eax,%ebp
  jae    L383
  add    $0x4,%rcx
  cmp    %r11,%rcx
  jne    L452
L474:
  mov    %r10d,%r9d
  cmp    %r10d,%ebp
  jae    L213
  addl   $0x1,(%rsp)
  mov    (%rsp),%eax
  cmp    %eax,0x38(%rsp)
  jae    L331
  mov    0x10(%rsp),%r15
  mov    0x38(%rsp),%r14d
  mov    $0x1,%r11d
L0:
  movsd  D20(%rip),%xmm6
  mov    0x20(%rsp),%r8
  movapd %xmm3,%xmm4
  movapd %xmm3,%xmm5
  mov    $0x1,%r10d
L303:
  test   %r11b,%r11b
  je     L281
  mov    0x8(%rsp),%rdi
  mov    %r10d,%eax
  mov    $0x1,%edx
  movapd %xmm3,%xmm2
  mov    0x0(%r13,%rax,8),%rbx
  mov    (%r12,%rax,8),%rcx
  mov    (%rdi,%rax,8),%rsi
  mov    (%r15,%rax,8),%rdi
  nop
L439:
  pxor   %xmm1,%xmm1
  pxor   %xmm0,%xmm0
  pxor   %xmm7,%xmm7
  mov    %edx,%eax
  mov    (%rbx,%rax,4),%r9d
  add    $0x1,%edx
  cvtsi2sd %r9,%xmm1
  mov    (%rsi,%rax,4),%r9d
  cvtsi2sd %r9,%xmm0
  mov    (%rdi,%rax,4),%r9d
  mov    (%rcx,%rax,4),%eax
  cvtsi2sd %r9,%xmm7
  divsd  %xmm7,%xmm0
  pxor   %xmm7,%xmm7
  cvtsi2sd %rax,%xmm7
  mulsd  %xmm7,%xmm0
  subsd  %xmm0,%xmm1
  addsd  %xmm1,%xmm2
  cmp    %edx,%r14d
  jae    L439
  addsd  %xmm2,%xmm5
  xor    %eax,%eax
  movapd %xmm3,%xmm7
  nopw   0x0(%rax,%rax,1)
L3:
  cmpl   $0x1,0x4(%r8,%rax,4)
  jbe    L460
  mov    0x4(%rsi,%rax,4),%ebx
  pxor   %xmm2,%xmm2
  pxor   %xmm0,%xmm0
  mov    0x4(%rcx,%rax,4),%edx
  mov    0x4(%rdi,%rax,4),%r9d
  pxor   %xmm1,%xmm1
  movapd %xmm6,%xmm8
  cvtsi2sd %rbx,%xmm2
  mov    %r9d,%ebx
  cvtsi2sd %rbx,%xmm0
  mov    %r9d,%ebx
  sub    $0x1,%r9d
  sub    %edx,%ebx
  cvtsi2sd %r9,%xmm1
  divsd  %xmm0,%xmm2
  pxor   %xmm0,%xmm0
  cvtsi2sd %rbx,%xmm0
  divsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtsi2sd %rdx,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm2,%xmm8
  mulsd  %xmm8,%xmm1
  mulsd  %xmm1,%xmm0
  addsd  %xmm0,%xmm7
L460:
  add    $0x1,%rax
  lea    0x1(%rax),%edx
  cmp    %edx,%r14d
  jae    L3
  add    $0x1,%r10d
  addsd  %xmm7,%xmm4
  cmp    %r10d,%ebp
  jae    L303
L94:
  mov    0x30(%rsp),%rdi
  mov    %r14d,%esi
  movsd  %xmm5,(%rsp)
  movsd  %xmm3,0x38(%rsp)
  movsd  %xmm4,0x10(%rsp)
  call   <dealloc_uivector@plt>
  mov    0x28(%rsp),%rdi
  mov    %r14d,%esi
  call   <dealloc_uivector@plt>
  mov    0x18(%rsp),%rdi
  mov    %r14d,%esi
  call   <dealloc_uivector@plt>
  mov    0x20(%rsp),%rdi
  mov    %r14d,%esi
  call   <dealloc_uivector@plt>
  mov    %r14d,%edx
  mov    %ebp,%esi
  mov    %r12,%rdi
  call   <dealloc_uimatrix@plt>
  mov    %r14d,%edx
  mov    %ebp,%esi
  mov    %r13,%rdi
  call   <dealloc_uimatrix@plt>
  mov    %r14d,%edx
  mov    %ebp,%esi
  mov    %r15,%rdi
  call   <dealloc_uimatrix@plt>
  mov    0x8(%rsp),%rdi
  mov    %r14d,%edx
  mov    %ebp,%esi
  call   <dealloc_uimatrix@plt>
  movsd  0x10(%rsp),%xmm4
  movsd  0x38(%rsp),%xmm3
  movsd  (%rsp),%xmm5
  andpd  D22(%rip),%xmm5
  ucomisd %xmm4,%xmm3
  ja     L208
L36:
  sqrtsd %xmm4,%xmm4
L238:
  movsd  D17(%rip),%xmm0
  comisd %xmm4,%xmm0
  jb     L43
  comisd %xmm5,%xmm0
  jae    L86
L43:
  divsd  %xmm4,%xmm5
  movapd %xmm5,%xmm3
L86:
  add    $0x48,%rsp
  movapd %xmm3,%xmm0
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L229:
  sub    $0x1,%edi
  jmp    L93
  nopw   0x0(%rax,%rax,1)
L436:
  mov    %r10d,%eax
  cmp    %r10d,%ebp
  jae    L383
  add    $0x4,%rcx
  cmp    %r11,%rcx
  jne    L452
  jmp    L474
L281:
  movapd %xmm3,%xmm7
  add    $0x1,%r10d
  addsd  %xmm3,%xmm5
  addsd  %xmm7,%xmm4
  cmp    %r10d,%ebp
  jae    L303
  jmp    L94
L22:
  mov    %r14d,%ecx
  xor    %edi,%edi
  jmp    L95
L118:
  xor    %r11d,%r11d
  pxor   %xmm3,%xmm3
  test   %ebp,%ebp
  jne    L0
L358:
  mov    0x30(%rsp),%rdi
  mov    %r14d,%esi
  movsd  %xmm3,(%rsp)
  call   <dealloc_uivector@plt>
  mov    0x28(%rsp),%rdi
  mov    %r14d,%esi
  call   <dealloc_uivector@plt>
  mov    0x18(%rsp),%rdi
  mov    %r14d,%esi
  call   <dealloc_uivector@plt>
  mov    0x20(%rsp),%rdi
  mov    %r14d,%esi
  call   <dealloc_uivector@plt>
  mov    %r14d,%edx
  xor    %esi,%esi
  mov    %r12,%rdi
  call   <dealloc_uimatrix@plt>
  mov    %r14d,%edx
  xor    %esi,%esi
  mov    %r13,%rdi
  call   <dealloc_uimatrix@plt>
  mov    %r14d,%edx
  xor    %esi,%esi
  mov    %r15,%rdi
  call   <dealloc_uimatrix@plt>
  mov    0x8(%rsp),%rdi
  mov    %r14d,%edx
  xor    %esi,%esi
  call   <dealloc_uimatrix@plt>
  movsd  (%rsp),%xmm3
  movapd %xmm3,%xmm4
  movapd %xmm3,%xmm5
  jmp    L36
L38:
  lea    -0x2(%r14),%esi
  mov    0x20(%rsp),%r8
  mov    0x18(%rsp),%rdi
  lea    0x0(,%r10,4),%rdx
  mov    %r10,%rcx
  sub    %rdx,%rax
  sub    %rsi,%rcx
  lea    (%r8,%rax,1),%rsi
  add    %rdi,%rax
  shl    $0x2,%rcx
L475:
  mov    (%rsi,%rdx,1),%r9d
  add    %r9d,(%r8,%rdx,1)
  mov    (%rax,%rdx,1),%r9d
  add    %r9d,(%rdi,%rdx,1)
  mov    %rdx,%r9
  sub    $0x4,%rdx
  cmp    %r9,%rcx
  jne    L475
  jmp    L79
L208:
  movapd %xmm4,%xmm0
  movsd  %xmm3,0x8(%rsp)
  movsd  %xmm5,(%rsp)
  call   <sqrt@plt>
  movsd  0x8(%rsp),%xmm3
  movsd  (%rsp),%xmm5
  movapd %xmm0,%xmm4
  jmp    L238
L338:
  pxor   %xmm3,%xmm3
  jmp    L222
```

tool_calls: name: read_data
arguments: data_tag: D20
type_guessed: f64
name: read_data
arguments: data_tag: D22
type_guessed: qword[2]
name: read_data
arguments: data_tag: D17
type_guessed: byte[8]

tool: D20: 1

tool: {"D22": [0x7fffffffffffffff,0x0000000000000000]}

tool: {"D17": [0x95,0xd6,0x26,0xe8,0x0b,0x2e,0x11,0x3e]}

assistant: ```c
double getCustomSplitStatisticCompetingRisk(unsigned int n, char *membership, double *time, double *event, unsigned int eventTypeSize, unsigned int eventTimeSize, double *eventTime, double *response, double mean, double variance, unsigned int maxLevel, double **feature, unsigned int featureCount) {
  unsigned int *nodeLeftEvent, *nodeParentEvent;
  unsigned int *nodeLeftAtRisk, *nodeParentAtRisk;
  unsigned int **nodeLeftEventCR, **nodeParentEventCR;
  unsigned int **nodeLeftInclusiveAtRisk, **nodeParentInclusiveAtRisk;
  double delta, deltaNum, deltaSubNum, deltaDen, deltaSubDen;
  unsigned int i, j, k, r, s;
  deltaNum = deltaDen = 0.0;
  nodeLeftEvent = alloc_uivector(eventTimeSize);
  nodeParentEvent = alloc_uivector(eventTimeSize);
  nodeLeftAtRisk = alloc_uivector(eventTimeSize);
  nodeParentAtRisk = alloc_uivector(eventTimeSize);
  nodeParentEventCR = alloc_uimatrix(eventTypeSize, eventTimeSize);
  nodeLeftEventCR = alloc_uimatrix(eventTypeSize, eventTimeSize);
  nodeParentInclusiveAtRisk = alloc_uimatrix(eventTypeSize, eventTimeSize);
  nodeLeftInclusiveAtRisk = alloc_uimatrix(eventTypeSize, eventTimeSize);
  for (k = 1; k <= eventTimeSize; k++) {
    nodeParentEvent[k] = 0;
    nodeParentAtRisk[k] = 0;
    nodeLeftEvent[k] = 0;
    nodeLeftAtRisk[k] = 0;
    for (j = 1; j <= eventTypeSize; j++) {
      nodeParentEventCR[j][k] = 0;
      nodeLeftEventCR[j][k] = 0;
      nodeParentInclusiveAtRisk[j][k] = 0;
      nodeLeftInclusiveAtRisk[j][k] = 0;
    }
  }
  k = eventTimeSize;
  i = n;
  while ((i > 0) && (k > 0)) {
    if (eventTime[k] <= time[i]) {
      nodeParentAtRisk[k]++;
      if (membership[i] == 0x01) {
        nodeLeftAtRisk[k]++;
      }
      if (eventTime[k] == time[i]) {
        if (event[i] > 0) {
          nodeParentEventCR[(unsigned int)event[i]][k]++;
          nodeParentEvent[k]++;
          if (membership[i] == 0x01) {
            nodeLeftEventCR[(unsigned int)event[i]][k]++;
          }
        }
      }
      i--;
    } else {
      k--;
    }
  }
  for (k = eventTimeSize; k > 1; k--) {
    nodeParentAtRisk[k - 1] = nodeParentAtRisk[k] + nodeParentAtRisk[k - 1];
    nodeLeftAtRisk[k - 1] = nodeLeftAtRisk[k] + nodeLeftAtRisk[k - 1];
  }
  for (k = 1; k <= eventTimeSize; k++) {
    for (j = 1; j <= eventTypeSize; j++) {
      nodeParentInclusiveAtRisk[j][k] = nodeParentAtRisk[k];
      nodeLeftInclusiveAtRisk[j][k] = nodeLeftAtRisk[k];
      for (s = 1; s < k; s++) {
        for (r = 1; r <= eventTypeSize; r++) {
          if (j != r) {
            nodeParentInclusiveAtRisk[j][k] += nodeParentEventCR[r][s];
            nodeLeftInclusiveAtRisk[j][k] += nodeLeftEventCR[r][s];
          }
        }
      }
    }
  }
  for (j = 1; j <= eventTypeSize; j++) {
    deltaSubNum = 0;
    for (k = 1; k <= eventTimeSize; k++) {
      deltaSubNum = deltaSubNum + (nodeLeftEventCR[j][k] - (nodeParentEventCR[j][k] * ((double)nodeLeftInclusiveAtRisk[j][k] / nodeParentInclusiveAtRisk[j][k])));
    }
    deltaNum = deltaNum + deltaSubNum;
    deltaSubDen = 0;
    for (k = 1; k <= eventTimeSize; k++) {
      if (nodeParentAtRisk[k] >= 2) {
        deltaSubDen = deltaSubDen + ((nodeParentEventCR[j][k] * ((double)nodeLeftInclusiveAtRisk[j][k] / nodeParentInclusiveAtRisk[j][k])) * (1.0 - ((double)nodeLeftInclusiveAtRisk[j][k] / nodeParentInclusiveAtRisk[j][k])) * ((double)(nodeParentInclusiveAtRisk[j][k] - nodeParentEventCR[j][k]) / (nodeParentInclusiveAtRisk[j][k] - 1)));
      }
    }
    deltaDen = deltaDen + deltaSubDen;
  }
  dealloc_uivector(nodeLeftEvent, eventTimeSize);
  dealloc_uivector(nodeParentEvent, eventTimeSize);
  dealloc_uivector(nodeLeftAtRisk, eventTimeSize);
  dealloc_uivector(nodeParentAtRisk, eventTimeSize);
  dealloc_uimatrix(nodeParentEventCR, eventTypeSize, eventTimeSize);
  dealloc_uimatrix(nodeLeftEventCR, eventTypeSize, eventTimeSize);
  dealloc_uimatrix(nodeParentInclusiveAtRisk, eventTypeSize, eventTimeSize);
  dealloc_uimatrix(nodeLeftInclusiveAtRisk, eventTypeSize, eventTimeSize);
  deltaNum = fabs(deltaNum);
  deltaDen = sqrt(deltaDen);
  if (deltaDen <= 1.0e-9) {
    if (deltaNum <= 1.0e-9) {
      delta = 0.0;
    } else {
      delta = deltaNum / deltaDen;
    }
  } else {
    delta = deltaNum / deltaDen;
  }
  return delta;
}
```