user: Demonstrate the C code that generates the assembly output below:

```asm
<ddct8x8s>:
  endbr64
  push   %rbp
  movsd  D64(%rip),%xmm7
  mov    %rsi,%rdx
  mov    %edi,%ebp
  mov    0x28(%rdx),%r8
  mov    0x18(%rdx),%rdi
  push   %rbx
  xor    %eax,%eax
  mov    0x8(%rsi),%rcx
  mov    0x10(%rdx),%r9
  mov    0x38(%rsi),%rsi
  mov    0x30(%rdx),%r10
  movsd  %xmm7,-0x30(%rsp)
  mov    (%rdx),%r11
  movsd  D32(%rip),%xmm7
  mov    0x20(%rdx),%rbx
  movsd  D26(%rip),%xmm5
  movsd  %xmm7,-0x28(%rsp)
  movsd  D22(%rip),%xmm6
  movsd  D55(%rip),%xmm7
  movsd  D52(%rip),%xmm8
  movsd  D46(%rip),%xmm9
  movsd  D41(%rip),%xmm10
  test   %ebp,%ebp
  js     L22
  nopl   0x0(%rax,%rax,1)
L44:
  pxor   %xmm1,%xmm1
  pxor   %xmm0,%xmm0
  pxor   %xmm14,%xmm14
  movsd  -0x28(%rsp),%xmm15
  cvtss2sd (%rcx,%rax,1),%xmm1
  cvtss2sd (%rsi,%rax,1),%xmm0
  movapd %xmm1,%xmm4
  movapd %xmm0,%xmm2
  mulsd  %xmm8,%xmm2
  cvtss2sd (%r9,%rax,1),%xmm14
  mulsd  %xmm8,%xmm1
  mulsd  %xmm7,%xmm4
  mulsd  %xmm7,%xmm0
  addsd  %xmm2,%xmm4
  pxor   %xmm2,%xmm2
  subsd  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd (%rdi,%rax,1),%xmm2
  movapd %xmm2,%xmm11
  cvtss2sd (%r8,%rax,1),%xmm1
  mulsd  %xmm9,%xmm11
  movapd %xmm1,%xmm3
  mulsd  %xmm10,%xmm3
  cvtsd2ss %xmm4,%xmm4
  mulsd  %xmm10,%xmm2
  cvtsd2ss %xmm0,%xmm0
  mulsd  %xmm9,%xmm1
  addsd  %xmm11,%xmm3
  movaps %xmm0,%xmm11
  subsd  %xmm2,%xmm1
  movaps %xmm4,%xmm2
  cvtsd2ss %xmm3,%xmm3
  subss  %xmm3,%xmm2
  addss  %xmm3,%xmm4
  movapd %xmm15,%xmm3
  mulsd  %xmm14,%xmm3
  cvtsd2ss %xmm1,%xmm1
  addss  %xmm1,%xmm11
  subss  %xmm0,%xmm1
  mulsd  %xmm5,%xmm14
  movaps %xmm2,%xmm12
  addss  %xmm11,%xmm12
  subss  %xmm11,%xmm2
  pxor   %xmm11,%xmm11
  cvtss2sd (%r10,%rax,1),%xmm11
  movapd %xmm11,%xmm0
  mulsd  %xmm5,%xmm0
  mulsd  %xmm15,%xmm11
  movsd  -0x30(%rsp),%xmm15
  cvtss2sd %xmm12,%xmm12
  cvtss2sd %xmm2,%xmm2
  mulsd  %xmm6,%xmm12
  mulsd  %xmm6,%xmm2
  addsd  %xmm0,%xmm3
  movss  (%r11,%rax,1),%xmm0
  subsd  %xmm14,%xmm11
  movss  (%rbx,%rax,1),%xmm14
  movaps %xmm0,%xmm13
  cvtsd2ss %xmm12,%xmm12
  addss  %xmm14,%xmm13
  subss  %xmm14,%xmm0
  cvtsd2ss %xmm3,%xmm3
  cvtsd2ss %xmm2,%xmm2
  cvtsd2ss %xmm11,%xmm11
  cvtss2sd %xmm13,%xmm13
  mulsd  %xmm15,%xmm13
  cvtss2sd %xmm0,%xmm0
  mulsd  %xmm15,%xmm0
  cvtsd2ss %xmm13,%xmm13
  movaps %xmm13,%xmm15
  subss  %xmm3,%xmm15
  addss  %xmm13,%xmm3
  cvtsd2ss %xmm0,%xmm0
  movaps %xmm0,%xmm14
  subss  %xmm11,%xmm14
  addss  %xmm11,%xmm0
  movaps %xmm4,%xmm11
  addss  %xmm3,%xmm11
  subss  %xmm4,%xmm3
  movss  %xmm11,(%r11,%rax,1)
  movss  %xmm3,(%rsi,%rax,1)
  movaps %xmm12,%xmm3
  addss  %xmm0,%xmm3
  subss  %xmm12,%xmm0
  movss  %xmm3,(%r9,%rax,1)
  movss  %xmm0,(%r8,%rax,1)
  movaps %xmm15,%xmm0
  subss  %xmm1,%xmm0
  addss  %xmm15,%xmm1
  movss  %xmm0,(%rbx,%rax,1)
  movaps %xmm14,%xmm0
  subss  %xmm2,%xmm0
  addss  %xmm14,%xmm2
  movss  %xmm1,(%rdi,%rax,1)
  movss  %xmm0,(%r10,%rax,1)
  movss  %xmm2,(%rcx,%rax,1)
  add    $0x4,%rax
  cmp    $0x20,%rax
  jne    L44
  lea    0x40(%rdx),%rcx
  nopl   (%rax)
L43:
  mov    (%rdx),%rax
  pxor   %xmm3,%xmm3
  pxor   %xmm0,%xmm0
  pxor   %xmm4,%xmm4
  movsd  -0x28(%rsp),%xmm15
  add    $0x8,%rdx
  cvtss2sd 0x4(%rax),%xmm3
  cvtss2sd 0x1c(%rax),%xmm0
  movapd %xmm3,%xmm2
  movapd %xmm0,%xmm1
  mulsd  %xmm8,%xmm3
  cvtss2sd 0xc(%rax),%xmm4
  movapd %xmm4,%xmm11
  movapd %xmm15,%xmm13
  mulsd  %xmm7,%xmm0
  movss  0x10(%rax),%xmm14
  mulsd  %xmm8,%xmm1
  mulsd  %xmm7,%xmm2
  mulsd  %xmm9,%xmm11
  mulsd  %xmm10,%xmm4
  subsd  %xmm3,%xmm0
  pxor   %xmm3,%xmm3
  cvtss2sd 0x14(%rax),%xmm3
  addsd  %xmm1,%xmm2
  movapd %xmm3,%xmm1
  mulsd  %xmm10,%xmm1
  cvtsd2ss %xmm0,%xmm0
  mulsd  %xmm9,%xmm3
  cvtsd2ss %xmm2,%xmm2
  addsd  %xmm11,%xmm1
  movaps %xmm0,%xmm11
  subsd  %xmm4,%xmm3
  movaps %xmm2,%xmm4
  cvtsd2ss %xmm1,%xmm1
  subss  %xmm1,%xmm4
  addss  %xmm1,%xmm2
  pxor   %xmm1,%xmm1
  cvtsd2ss %xmm3,%xmm3
  addss  %xmm3,%xmm11
  cvtss2sd 0x18(%rax),%xmm1
  subss  %xmm0,%xmm3
  movapd %xmm1,%xmm0
  mulsd  %xmm15,%xmm1
  movaps %xmm4,%xmm12
  movsd  -0x30(%rsp),%xmm15
  addss  %xmm11,%xmm12
  subss  %xmm11,%xmm4
  pxor   %xmm11,%xmm11
  cvtss2sd 0x8(%rax),%xmm11
  mulsd  %xmm11,%xmm13
  mulsd  %xmm5,%xmm11
  mulsd  %xmm5,%xmm0
  cvtss2sd %xmm12,%xmm12
  cvtss2sd %xmm4,%xmm4
  mulsd  %xmm6,%xmm12
  mulsd  %xmm6,%xmm4
  subsd  %xmm11,%xmm1
  movss  (%rax),%xmm11
  addsd  %xmm13,%xmm0
  movaps %xmm11,%xmm13
  subss  %xmm14,%xmm11
  cvtsd2ss %xmm12,%xmm12
  addss  %xmm14,%xmm13
  cvtsd2ss %xmm1,%xmm1
  cvtsd2ss %xmm4,%xmm4
  cvtsd2ss %xmm0,%xmm0
  cvtss2sd %xmm11,%xmm11
  mulsd  %xmm15,%xmm11
  cvtss2sd %xmm13,%xmm13
  mulsd  %xmm15,%xmm13
  cvtsd2ss %xmm11,%xmm11
  movaps %xmm11,%xmm14
  cvtsd2ss %xmm13,%xmm13
  movaps %xmm13,%xmm15
  subss  %xmm1,%xmm14
  addss  %xmm11,%xmm1
  subss  %xmm0,%xmm15
  addss  %xmm13,%xmm0
  movaps %xmm0,%xmm11
  unpcklps %xmm4,%xmm0
  subss  %xmm2,%xmm11
  unpcklps %xmm14,%xmm2
  movss  %xmm11,0x1c(%rax)
  movaps %xmm1,%xmm11
  unpcklps %xmm15,%xmm1
  subss  %xmm12,%xmm11
  unpcklps %xmm3,%xmm12
  movlhps %xmm1,%xmm2
  movlhps %xmm12,%xmm0
  addps  %xmm2,%xmm0
  movss  %xmm11,0x14(%rax)
  movaps %xmm15,%xmm11
  subss  %xmm3,%xmm11
  movups %xmm0,(%rax)
  movss  %xmm11,0x10(%rax)
  movaps %xmm14,%xmm11
  subss  %xmm4,%xmm11
  movss  %xmm11,0x18(%rax)
  cmp    %rdx,%rcx
  jne    L43
  pop    %rbx
  pop    %rbp
  ret
  nopl   0x0(%rax,%rax,1)
L22:
  movsd  %xmm5,-0x20(%rsp)
  cs nopw 0x0(%rax,%rax,1)
L18:
  movss  (%r11,%rax,1),%xmm2
  movss  (%rbx,%rax,1),%xmm11
  movss  (%rsi,%rax,1),%xmm1
  movss  (%rdi,%rax,1),%xmm0
  movss  (%r9,%rax,1),%xmm12
  movss  (%r8,%rax,1),%xmm3
  movaps %xmm2,%xmm4
  movaps %xmm11,%xmm14
  addss  %xmm0,%xmm14
  addss  %xmm1,%xmm4
  subss  %xmm1,%xmm2
  subss  %xmm0,%xmm11
  movaps %xmm12,%xmm1
  movss  (%r10,%rax,1),%xmm0
  subss  %xmm3,%xmm12
  addss  %xmm3,%xmm1
  movss  (%rcx,%rax,1),%xmm3
  movaps %xmm0,%xmm13
  addss  %xmm3,%xmm13
  subss  %xmm3,%xmm0
  movaps %xmm4,%xmm3
  addss  %xmm14,%xmm3
  movaps %xmm1,%xmm15
  subss  %xmm14,%xmm4
  movsd  -0x28(%rsp),%xmm14
  addss  %xmm13,%xmm15
  subss  %xmm13,%xmm1
  movaps %xmm3,%xmm5
  cvtss2sd %xmm4,%xmm4
  addss  %xmm15,%xmm5
  subss  %xmm15,%xmm3
  cvtss2sd %xmm1,%xmm1
  movapd %xmm1,%xmm13
  mulsd  %xmm14,%xmm1
  cvtss2sd %xmm5,%xmm5
  mulsd  -0x30(%rsp),%xmm5
  cvtss2sd %xmm3,%xmm3
  mulsd  -0x30(%rsp),%xmm3
  cvtsd2ss %xmm5,%xmm5
  movss  %xmm5,(%r11,%rax,1)
  movsd  -0x20(%rsp),%xmm5
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,(%rbx,%rax,1)
  movapd %xmm14,%xmm3
  mulsd  %xmm4,%xmm3
  mulsd  %xmm5,%xmm13
  mulsd  %xmm5,%xmm4
  subsd  %xmm13,%xmm3
  addsd  %xmm4,%xmm1
  movaps %xmm2,%xmm4
  cvtsd2ss %xmm3,%xmm3
  movss  %xmm3,(%r9,%rax,1)
  movaps %xmm12,%xmm3
  subss  %xmm0,%xmm3
  addss  %xmm12,%xmm0
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,(%r10,%rax,1)
  movaps %xmm11,%xmm1
  cvtss2sd %xmm3,%xmm3
  cvtss2sd %xmm0,%xmm0
  mulsd  %xmm6,%xmm3
  mulsd  %xmm6,%xmm0
  cvtsd2ss %xmm3,%xmm3
  addss  %xmm3,%xmm4
  subss  %xmm3,%xmm2
  cvtsd2ss %xmm0,%xmm0
  addss  %xmm0,%xmm1
  subss  %xmm11,%xmm0
  cvtss2sd %xmm4,%xmm4
  movapd %xmm4,%xmm12
  cvtss2sd %xmm2,%xmm2
  cvtss2sd %xmm1,%xmm1
  movapd %xmm1,%xmm13
  cvtss2sd %xmm0,%xmm0
  movapd %xmm0,%xmm3
  mulsd  %xmm7,%xmm12
  mulsd  %xmm8,%xmm13
  mulsd  %xmm7,%xmm1
  mulsd  %xmm8,%xmm4
  mulsd  %xmm10,%xmm3
  mulsd  %xmm9,%xmm0
  subsd  %xmm13,%xmm12
  addsd  %xmm4,%xmm1
  cvtsd2ss %xmm12,%xmm12
  movss  %xmm12,(%rcx,%rax,1)
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,(%rsi,%rax,1)
  movapd %xmm2,%xmm1
  mulsd  %xmm9,%xmm1
  mulsd  %xmm10,%xmm2
  subsd  %xmm3,%xmm1
  addsd  %xmm2,%xmm0
  cvtsd2ss %xmm1,%xmm1
  movss  %xmm1,(%rdi,%rax,1)
  cvtsd2ss %xmm0,%xmm0
  movss  %xmm0,(%r8,%rax,1)
  add    $0x4,%rax
  cmp    $0x20,%rax
  jne    L18
  lea    0x40(%rdx),%rcx
  movapd %xmm6,%xmm14
  nopw   0x0(%rax,%rax,1)
L46:
  mov    (%rdx),%rax
  add    $0x8,%rdx
  movss  (%rax),%xmm3
  movss  0x10(%rax),%xmm6
  movss  0x1c(%rax),%xmm1
  movss  0xc(%rax),%xmm0
  movss  0x8(%rax),%xmm12
  movss  0x14(%rax),%xmm2
  movaps %xmm3,%xmm11
  movaps %xmm6,%xmm13
  addss  %xmm0,%xmm13
  subss  %xmm0,%xmm6
  movss  0x18(%rax),%xmm0
  addss  %xmm1,%xmm11
  subss  %xmm1,%xmm3
  movaps %xmm12,%xmm1
  addss  %xmm2,%xmm1
  subss  %xmm2,%xmm12
  movss  0x4(%rax),%xmm2
  movaps %xmm0,%xmm4
  addss  %xmm2,%xmm4
  subss  %xmm2,%xmm0
  movaps %xmm11,%xmm2
  movaps %xmm1,%xmm5
  addss  %xmm13,%xmm2
  subss  %xmm13,%xmm11
  movaps %xmm3,%xmm13
  addss  %xmm4,%xmm5
  subss  %xmm4,%xmm1
  movaps %xmm12,%xmm4
  subss  %xmm0,%xmm4
  addss  %xmm12,%xmm0
  movaps %xmm6,%xmm12
  cvtss2sd %xmm11,%xmm11
  cvtss2sd %xmm1,%xmm1
  cvtss2sd %xmm4,%xmm4
  cvtss2sd %xmm0,%xmm0
  mulsd  %xmm14,%xmm4
  mulsd  %xmm14,%xmm0
  cvtsd2ss %xmm4,%xmm4
  addss  %xmm4,%xmm13
  subss  %xmm4,%xmm3
  movaps %xmm2,%xmm4
  cvtsd2ss %xmm0,%xmm0
  addss  %xmm0,%xmm12
  addss  %xmm5,%xmm4
  subss  %xmm6,%xmm0
  subss  %xmm5,%xmm2
  cvtss2sd %xmm13,%xmm13
  movapd %xmm13,%xmm15
  cvtss2sd %xmm3,%xmm3
  cvtss2sd %xmm12,%xmm12
  movapd %xmm12,%xmm6
  cvtss2sd %xmm4,%xmm4
  mulsd  %xmm8,%xmm6
  cvtss2sd %xmm0,%xmm0
  cvtss2sd %xmm2,%xmm2
  mulsd  %xmm7,%xmm15
  mulsd  -0x30(%rsp),%xmm4
  mulsd  %xmm7,%xmm12
  mulsd  %xmm8,%xmm13
  mulsd  -0x30(%rsp),%xmm2
  subsd  %xmm6,%xmm15
  movapd %xmm4,%xmm6
  unpcklpd %xmm15,%xmm6
  movsd  -0x28(%rsp),%xmm15
  addsd  %xmm13,%xmm12
  movaps %xmm6,-0x18(%rsp)
  movsd  -0x20(%rsp),%xmm6
  mulsd  %xmm11,%xmm15
  mulsd  %xmm1,%xmm6
  mulsd  -0x20(%rsp),%xmm11
  mulsd  -0x28(%rsp),%xmm1
  subsd  %xmm6,%xmm15
  movapd %xmm3,%xmm6
  mulsd  %xmm9,%xmm6
  mulsd  %xmm10,%xmm3
  addsd  %xmm11,%xmm1
  unpcklpd %xmm12,%xmm1
  movq   %xmm6,%rsi
  movapd %xmm0,%xmm6
  cvtpd2ps %xmm1,%xmm1
  mulsd  %xmm10,%xmm6
  movq   %rsi,%xmm4
  mulsd  %xmm9,%xmm0
  subsd  %xmm6,%xmm4
  addsd  %xmm3,%xmm0
  unpcklpd %xmm4,%xmm15
  cvtpd2ps -0x18(%rsp),%xmm4
  unpcklpd %xmm0,%xmm2
  cvtpd2ps %xmm15,%xmm15
  movlhps %xmm15,%xmm4
  cvtpd2ps %xmm2,%xmm2
  movlhps %xmm1,%xmm2
  movups %xmm4,(%rax)
  movups %xmm2,0x10(%rax)
  cmp    %rcx,%rdx
  jne    L46
  pop    %rbx
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: data_label: D64
datatype: f64
name: retrieve_data
arguments: data_label: D32
datatype: f64
name: retrieve_data
arguments: data_label: D26
datatype: f64
name: retrieve_data
arguments: data_label: D22
datatype: f64
name: retrieve_data
arguments: data_label: D55
datatype: f64
name: retrieve_data
arguments: data_label: D52
datatype: f64
name: retrieve_data
arguments: data_label: D46
datatype: f64
name: retrieve_data
arguments: data_label: D41
datatype: f64

tool: D64: 0.3535533905932738

tool: D32: 0.46193976625564337

tool: D26: 0.1913417161825449

tool: D22: 0.7071067811865476

tool: D55: 0.4903926402016152

tool: D52: 0.09754516100806414

tool: D46: 0.4157348061512726

tool: D41: 0.2777851165098011

assistant: ```c
void ddct8x8s(int isgn, float **a) {
  int j;
  float x0r, x0i, x1r, x1i, x2r, x2i, x3r, x3i;
  float xr, xi;
  if (isgn < 0) {
    for (j = 0; j <= 7; j++) {
      x0r = a[0][j] + a[7][j];
      x1r = a[0][j] - a[7][j];
      x0i = a[2][j] + a[5][j];
      x1i = a[2][j] - a[5][j];
      x2r = a[4][j] + a[3][j];
      x3r = a[4][j] - a[3][j];
      x2i = a[6][j] + a[1][j];
      x3i = a[6][j] - a[1][j];
      xr = x0r + x2r;
      xi = x0i + x2i;
      a[0][j] = 0.35355339059327376220 * (xr + xi);
      a[4][j] = 0.35355339059327376220 * (xr - xi);
      xr = x0r - x2r;
      xi = x0i - x2i;
      a[2][j] = 0.46193976625564337806 * xr - 0.19134171618254488586 * xi;
      a[6][j] = 0.46193976625564337806 * xi + 0.19134171618254488586 * xr;
      xr = 0.70710678118654752440 * (x1i - x3i);
      x1i = 0.70710678118654752440 * (x1i + x3i);
      x3i = x1i - x3r;
      x1i += x3r;
      x3r = x1r - xr;
      x1r += xr;
      a[1][j] = 0.49039264020161522456 * x1r - 0.09754516100806413392 * x1i;
      a[7][j] = 0.49039264020161522456 * x1i + 0.09754516100806413392 * x1r;
      a[3][j] = 0.41573480615127261854 * x3r - 0.27778511650980111237 * x3i;
      a[5][j] = 0.41573480615127261854 * x3i + 0.27778511650980111237 * x3r;
    }
    for (j = 0; j <= 7; j++) {
      x0r = a[j][0] + a[j][7];
      x1r = a[j][0] - a[j][7];
      x0i = a[j][2] + a[j][5];
      x1i = a[j][2] - a[j][5];
      x2r = a[j][4] + a[j][3];
      x3r = a[j][4] - a[j][3];
      x2i = a[j][6] + a[j][1];
      x3i = a[j][6] - a[j][1];
      xr = x0r + x2r;
      xi = x0i + x2i;
      a[j][0] = 0.35355339059327376220 * (xr + xi);
      a[j][4] = 0.35355339059327376220 * (xr - xi);
      xr = x0r - x2r;
      xi = x0i - x2i;
      a[j][2] = 0.46193976625564337806 * xr - 0.19134171618254488586 * xi;
      a[j][6] = 0.46193976625564337806 * xi + 0.19134171618254488586 * xr;
      xr = 0.70710678118654752440 * (x1i - x3i);
      x1i = 0.70710678118654752440 * (x1i + x3i);
      x3i = x1i - x3r;
      x1i += x3r;
      x3r = x1r - xr;
      x1r += xr;
      a[j][1] = 0.49039264020161522456 * x1r - 0.09754516100806413392 * x1i;
      a[j][7] = 0.49039264020161522456 * x1i + 0.09754516100806413392 * x1r;
      a[j][3] = 0.41573480615127261854 * x3r - 0.27778511650980111237 * x3i;
      a[j][5] = 0.41573480615127261854 * x3i + 0.27778511650980111237 * x3r;
    }
  } else {
    for (j = 0; j <= 7; j++) {
      x1r = 0.49039264020161522456 * a[1][j] + 0.09754516100806413392 * a[7][j];
      x1i = 0.49039264020161522456 * a[7][j] - 0.09754516100806413392 * a[1][j];
      x3r = 0.41573480615127261854 * a[3][j] + 0.27778511650980111237 * a[5][j];
      x3i = 0.41573480615127261854 * a[5][j] - 0.27778511650980111237 * a[3][j];
      xr = x1r - x3r;
      xi = x1i + x3i;
      x1r += x3r;
      x3i -= x1i;
      x1i = 0.70710678118654752440 * (xr + xi);
      x3r = 0.70710678118654752440 * (xr - xi);
      xr = 0.46193976625564337806 * a[2][j] + 0.19134171618254488586 * a[6][j];
      xi = 0.46193976625564337806 * a[6][j] - 0.19134171618254488586 * a[2][j];
      x0r = 0.35355339059327376220 * (a[0][j] + a[4][j]);
      x0i = 0.35355339059327376220 * (a[0][j] - a[4][j]);
      x2r = x0r - xr;
      x2i = x0i - xi;
      x0r += xr;
      x0i += xi;
      a[0][j] = x0r + x1r;
      a[7][j] = x0r - x1r;
      a[2][j] = x0i + x1i;
      a[5][j] = x0i - x1i;
      a[4][j] = x2r - x3i;
      a[3][j] = x2r + x3i;
      a[6][j] = x2i - x3r;
      a[1][j] = x2i + x3r;
    }
    for (j = 0; j <= 7; j++) {
      x1r = 0.49039264020161522456 * a[j][1] + 0.09754516100806413392 * a[j][7];
      x1i = 0.49039264020161522456 * a[j][7] - 0.09754516100806413392 * a[j][1];
      x3r = 0.41573480615127261854 * a[j][3] + 0.27778511650980111237 * a[j][5];
      x3i = 0.41573480615127261854 * a[j][5] - 0.27778511650980111237 * a[j][3];
      xr = x1r - x3r;
      xi = x1i + x3i;
      x1r += x3r;
      x3i -= x1i;
      x1i = 0.70710678118654752440 * (xr + xi);
      x3r = 0.70710678118654752440 * (xr - xi);
      xr = 0.46193976625564337806 * a[j][2] + 0.19134171618254488586 * a[j][6];
      xi = 0.46193976625564337806 * a[j][6] - 0.19134171618254488586 * a[j][2];
      x0r = 0.35355339059327376220 * (a[j][0] + a[j][4]);
      x0i = 0.35355339059327376220 * (a[j][0] - a[j][4]);
      x2r = x0r - xr;
      x2i = x0i - xi;
      x0r += xr;
      x0i += xi;
      a[j][0] = x0r + x1r;
      a[j][7] = x0r - x1r;
      a[j][2] = x0i + x1i;
      a[j][5] = x0i - x1i;
      a[j][4] = x2r - x3i;
      a[j][3] = x2r + x3i;
      a[j][6] = x2i - x3r;
      a[j][1] = x2i + x3r;
    }
  }
}
```