#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int MakeAngularGrid_110(double **);
int MakeAngularGrid_1202(double **);
int MakeAngularGrid_14(double **);
int MakeAngularGrid_1454(double **);
int MakeAngularGrid_146(double **);
int MakeAngularGrid_170(double **);
int MakeAngularGrid_1730(double **);
int MakeAngularGrid_194(double **);
int MakeAngularGrid_2030(double **);
int MakeAngularGrid_230(double **);
int MakeAngularGrid_2354(double **);
int MakeAngularGrid_26(double **);
int MakeAngularGrid_266(double **);
int MakeAngularGrid_2702(double **);
int MakeAngularGrid_302(double **);
int MakeAngularGrid_3074(double **);
int MakeAngularGrid_3470(double **);
int MakeAngularGrid_350(double **);
int MakeAngularGrid_38(double **);
int MakeAngularGrid_3890(double **);
int MakeAngularGrid_4334(double **);
int MakeAngularGrid_434(double **);
int MakeAngularGrid_4802(double **);
int MakeAngularGrid_50(double **);
int MakeAngularGrid_5294(double **);
int MakeAngularGrid_5810(double **);
int MakeAngularGrid_590(double **);
int MakeAngularGrid_6(double **);
int MakeAngularGrid_74(double **);
int MakeAngularGrid_770(double **);
int MakeAngularGrid_86(double **);
int MakeAngularGrid_974(double **);
int /*<<< orphan*/ assert(int);
int MakeAngularGrid(double *Out, int nPoints) {
  double(*pOut)[4] = (double(*)[4])Out;
  int N = 0;
  switch (nPoints) {
  case 0:
    pOut[0][0] = 0.0;
    pOut[0][1] = 0.0;
    pOut[0][2] = 0.0;
    pOut[0][3] = 1.0;
    N = 1;
    break;
  case 6:
    N = MakeAngularGrid_6(pOut);
    break;
  case 14:
    N = MakeAngularGrid_14(pOut);
    break;
  case 26:
    N = MakeAngularGrid_26(pOut);
    break;
  case 38:
    N = MakeAngularGrid_38(pOut);
    break;
  case 50:
    N = MakeAngularGrid_50(pOut);
    break;
  case 74:
    N = MakeAngularGrid_74(pOut);
    break;
  case 86:
    N = MakeAngularGrid_86(pOut);
    break;
  case 110:
    N = MakeAngularGrid_110(pOut);
    break;
  case 146:
    N = MakeAngularGrid_146(pOut);
    break;
  case 170:
    N = MakeAngularGrid_170(pOut);
    break;
  case 194:
    N = MakeAngularGrid_194(pOut);
    break;
  case 230:
    N = MakeAngularGrid_230(pOut);
    break;
  case 266:
    N = MakeAngularGrid_266(pOut);
    break;
  case 302:
    N = MakeAngularGrid_302(pOut);
    break;
  case 350:
    N = MakeAngularGrid_350(pOut);
    break;
  case 434:
    N = MakeAngularGrid_434(pOut);
    break;
  case 590:
    N = MakeAngularGrid_590(pOut);
    break;
  case 770:
    N = MakeAngularGrid_770(pOut);
    break;
  case 974:
    N = MakeAngularGrid_974(pOut);
    break;
  case 1202:
    N = MakeAngularGrid_1202(pOut);
    break;
  case 1454:
    N = MakeAngularGrid_1454(pOut);
    break;
  case 1730:
    N = MakeAngularGrid_1730(pOut);
    break;
  case 2030:
    N = MakeAngularGrid_2030(pOut);
    break;
  case 2354:
    N = MakeAngularGrid_2354(pOut);
    break;
  case 2702:
    N = MakeAngularGrid_2702(pOut);
    break;
  case 3074:
    N = MakeAngularGrid_3074(pOut);
    break;
  case 3470:
    N = MakeAngularGrid_3470(pOut);
    break;
  case 3890:
    N = MakeAngularGrid_3890(pOut);
    break;
  case 4334:
    N = MakeAngularGrid_4334(pOut);
    break;
  case 4802:
    N = MakeAngularGrid_4802(pOut);
    break;
  case 5294:
    N = MakeAngularGrid_5294(pOut);
    break;
  case 5810:
    N = MakeAngularGrid_5810(pOut);
    break;
  default:
    return 0;
  }
  assert(N == nPoints);
  return N;
}


x86 assembly (clang, -O0):
<MakeAngularGrid>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x20(%rbp)
movl   $0x0,-0x24(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,-0x28(%rbp)
test   %eax,%eax
je     1591 <MakeAngularGrid+0x281>
jmp    1341 <MakeAngularGrid+0x31>
mov    -0x28(%rbp),%eax
sub    $0x6,%eax
je     15d1 <MakeAngularGrid+0x2c1>
jmp    1352 <MakeAngularGrid+0x42>
mov    -0x28(%rbp),%eax
sub    $0xe,%eax
je     15e2 <MakeAngularGrid+0x2d2>
jmp    1363 <MakeAngularGrid+0x53>
mov    -0x28(%rbp),%eax
sub    $0x1a,%eax
je     15f3 <MakeAngularGrid+0x2e3>
jmp    1374 <MakeAngularGrid+0x64>
mov    -0x28(%rbp),%eax
sub    $0x26,%eax
je     1604 <MakeAngularGrid+0x2f4>
jmp    1385 <MakeAngularGrid+0x75>
mov    -0x28(%rbp),%eax
sub    $0x32,%eax
je     1615 <MakeAngularGrid+0x305>
jmp    1396 <MakeAngularGrid+0x86>
mov    -0x28(%rbp),%eax
sub    $0x4a,%eax
je     1626 <MakeAngularGrid+0x316>
jmp    13a7 <MakeAngularGrid+0x97>
mov    -0x28(%rbp),%eax
sub    $0x56,%eax
je     1637 <MakeAngularGrid+0x327>
jmp    13b8 <MakeAngularGrid+0xa8>
mov    -0x28(%rbp),%eax
sub    $0x6e,%eax
je     1648 <MakeAngularGrid+0x338>
jmp    13c9 <MakeAngularGrid+0xb9>
mov    -0x28(%rbp),%eax
sub    $0x92,%eax
je     1659 <MakeAngularGrid+0x349>
jmp    13dc <MakeAngularGrid+0xcc>
mov    -0x28(%rbp),%eax
sub    $0xaa,%eax
je     166a <MakeAngularGrid+0x35a>
jmp    13ef <MakeAngularGrid+0xdf>
mov    -0x28(%rbp),%eax
sub    $0xc2,%eax
je     167b <MakeAngularGrid+0x36b>
jmp    1402 <MakeAngularGrid+0xf2>
mov    -0x28(%rbp),%eax
sub    $0xe6,%eax
je     168c <MakeAngularGrid+0x37c>
jmp    1415 <MakeAngularGrid+0x105>
mov    -0x28(%rbp),%eax
sub    $0x10a,%eax
je     169d <MakeAngularGrid+0x38d>
jmp    1428 <MakeAngularGrid+0x118>
mov    -0x28(%rbp),%eax
sub    $0x12e,%eax
je     16ae <MakeAngularGrid+0x39e>
jmp    143b <MakeAngularGrid+0x12b>
mov    -0x28(%rbp),%eax
sub    $0x15e,%eax
je     16bf <MakeAngularGrid+0x3af>
jmp    144e <MakeAngularGrid+0x13e>
mov    -0x28(%rbp),%eax
sub    $0x1b2,%eax
je     16d0 <MakeAngularGrid+0x3c0>
jmp    1461 <MakeAngularGrid+0x151>
mov    -0x28(%rbp),%eax
sub    $0x24e,%eax
je     16e1 <MakeAngularGrid+0x3d1>
jmp    1474 <MakeAngularGrid+0x164>
mov    -0x28(%rbp),%eax
sub    $0x302,%eax
je     16f2 <MakeAngularGrid+0x3e2>
jmp    1487 <MakeAngularGrid+0x177>
mov    -0x28(%rbp),%eax
sub    $0x3ce,%eax
je     1703 <MakeAngularGrid+0x3f3>
jmp    149a <MakeAngularGrid+0x18a>
mov    -0x28(%rbp),%eax
sub    $0x4b2,%eax
je     1714 <MakeAngularGrid+0x404>
jmp    14ad <MakeAngularGrid+0x19d>
mov    -0x28(%rbp),%eax
sub    $0x5ae,%eax
je     1725 <MakeAngularGrid+0x415>
jmp    14c0 <MakeAngularGrid+0x1b0>
mov    -0x28(%rbp),%eax
sub    $0x6c2,%eax
je     1736 <MakeAngularGrid+0x426>
jmp    14d3 <MakeAngularGrid+0x1c3>
mov    -0x28(%rbp),%eax
sub    $0x7ee,%eax
je     1747 <MakeAngularGrid+0x437>
jmp    14e6 <MakeAngularGrid+0x1d6>
mov    -0x28(%rbp),%eax
sub    $0x932,%eax
je     1758 <MakeAngularGrid+0x448>
jmp    14f9 <MakeAngularGrid+0x1e9>
mov    -0x28(%rbp),%eax
sub    $0xa8e,%eax
je     1769 <MakeAngularGrid+0x459>
jmp    150c <MakeAngularGrid+0x1fc>
mov    -0x28(%rbp),%eax
sub    $0xc02,%eax
je     177a <MakeAngularGrid+0x46a>
jmp    151f <MakeAngularGrid+0x20f>
mov    -0x28(%rbp),%eax
sub    $0xd8e,%eax
je     178b <MakeAngularGrid+0x47b>
jmp    1532 <MakeAngularGrid+0x222>
mov    -0x28(%rbp),%eax
sub    $0xf32,%eax
je     179c <MakeAngularGrid+0x48c>
jmp    1545 <MakeAngularGrid+0x235>
mov    -0x28(%rbp),%eax
sub    $0x10ee,%eax
je     17ad <MakeAngularGrid+0x49d>
jmp    1558 <MakeAngularGrid+0x248>
mov    -0x28(%rbp),%eax
sub    $0x12c2,%eax
je     17be <MakeAngularGrid+0x4ae>
jmp    156b <MakeAngularGrid+0x25b>
mov    -0x28(%rbp),%eax
sub    $0x14ae,%eax
je     17cf <MakeAngularGrid+0x4bf>
jmp    157e <MakeAngularGrid+0x26e>
mov    -0x28(%rbp),%eax
sub    $0x16b2,%eax
je     17e0 <MakeAngularGrid+0x4d0>
jmp    17f1 <MakeAngularGrid+0x4e1>
mov    -0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
mov    -0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0x8(%rax)
mov    -0x20(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,0x10(%rax)
mov    -0x20(%rbp),%rax
movsd  0xa40(%rip),%xmm0
movsd  %xmm0,0x18(%rax)
movl   $0x1,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   11b0 <MakeAngularGrid_6@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1210 <MakeAngularGrid_14@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   10e0 <MakeAngularGrid_26@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1180 <MakeAngularGrid_38@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   10f0 <MakeAngularGrid_50@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1090 <MakeAngularGrid_74@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   11a0 <MakeAngularGrid_86@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1050 <MakeAngularGrid_110@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1110 <MakeAngularGrid_146@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   10d0 <MakeAngularGrid_170@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1040 <MakeAngularGrid_194@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1030 <MakeAngularGrid_230@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1060 <MakeAngularGrid_266@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1220 <MakeAngularGrid_302@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1080 <MakeAngularGrid_350@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   10b0 <MakeAngularGrid_434@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1190 <MakeAngularGrid_590@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1130 <MakeAngularGrid_770@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1150 <MakeAngularGrid_974@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1230 <MakeAngularGrid_1202@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   10c0 <MakeAngularGrid_1454@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1140 <MakeAngularGrid_1730@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   11d0 <MakeAngularGrid_2030@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   10a0 <MakeAngularGrid_2354@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1200 <MakeAngularGrid_2702@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1170 <MakeAngularGrid_3074@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   11c0 <MakeAngularGrid_3470@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1100 <MakeAngularGrid_3890@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1160 <MakeAngularGrid_4334@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   11e0 <MakeAngularGrid_4802@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   11f0 <MakeAngularGrid_5294@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
mov    -0x20(%rbp),%rdi
call   1070 <MakeAngularGrid_5810@plt>
mov    %eax,-0x24(%rbp)
jmp    17fd <MakeAngularGrid+0x4ed>
movl   $0x0,-0x4(%rbp)
jmp    1816 <MakeAngularGrid+0x506>
mov    -0x24(%rbp),%eax
cmp    -0x14(%rbp),%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   1120 <assert@plt>
mov    -0x24(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<MakeAngularGrid>:
push   %rbp
push   %rbx
push   %rax
mov    %esi,%ebx
xor    %ebp,%ebp
cmp    $0x24d,%esi
jg     1375 <MakeAngularGrid+0x65>
cmp    $0x91,%ebx
jg     13b7 <MakeAngularGrid+0xa7>
cmp    $0x49,%ebx
jg     14b5 <MakeAngularGrid+0x1a5>
cmp    $0x32,%ebx
ja     1638 <MakeAngularGrid+0x328>
mov    %ebx,%eax
lea    0xcba(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
xorps  %xmm0,%xmm0
movups %xmm0,(%rdi)
movq   $0x0,0x10(%rdi)
movabs $0x3ff0000000000000,%rax
mov    %rax,0x18(%rdi)
mov    $0x1,%ebp
jmp    162b <MakeAngularGrid+0x31b>
cmp    $0xa8d,%ebx
jg     13f1 <MakeAngularGrid+0xe1>
cmp    $0x5ad,%ebx
jg     142b <MakeAngularGrid+0x11b>
cmp    $0x3cd,%ebx
jg     14da <MakeAngularGrid+0x1ca>
cmp    $0x24e,%ebx
je     15c9 <MakeAngularGrid+0x2b9>
cmp    $0x302,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   1130 <MakeAngularGrid_770@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x109,%ebx
jg     1459 <MakeAngularGrid+0x149>
cmp    $0xc1,%ebx
jg     14fc <MakeAngularGrid+0x1ec>
cmp    $0x92,%ebx
je     15d0 <MakeAngularGrid+0x2c0>
cmp    $0xaa,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   10d0 <MakeAngularGrid_170@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x10ed,%ebx
jg     1487 <MakeAngularGrid+0x177>
cmp    $0xd8d,%ebx
jg     151e <MakeAngularGrid+0x20e>
cmp    $0xa8e,%ebx
je     15d7 <MakeAngularGrid+0x2c7>
cmp    $0xc02,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   1170 <MakeAngularGrid_3074@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x7ed,%ebx
jg     1540 <MakeAngularGrid+0x230>
cmp    $0x5ae,%ebx
je     15de <MakeAngularGrid+0x2ce>
cmp    $0x6c2,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   1140 <MakeAngularGrid_1730@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x15d,%ebx
jg     1562 <MakeAngularGrid+0x252>
cmp    $0x10a,%ebx
je     15e5 <MakeAngularGrid+0x2d5>
cmp    $0x12e,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   1220 <MakeAngularGrid_302@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x14ad,%ebx
jg     1584 <MakeAngularGrid+0x274>
cmp    $0x10ee,%ebx
je     15ec <MakeAngularGrid+0x2dc>
cmp    $0x12c2,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   11e0 <MakeAngularGrid_4802@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x4a,%ebx
je     15f3 <MakeAngularGrid+0x2e3>
cmp    $0x56,%ebx
je     15fa <MakeAngularGrid+0x2ea>
cmp    $0x6e,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   1050 <MakeAngularGrid_110@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x3ce,%ebx
je     1601 <MakeAngularGrid+0x2f1>
cmp    $0x4b2,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   1230 <MakeAngularGrid_1202@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0xc2,%ebx
je     1608 <MakeAngularGrid+0x2f8>
cmp    $0xe6,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   1030 <MakeAngularGrid_230@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0xd8e,%ebx
je     160f <MakeAngularGrid+0x2ff>
cmp    $0xf32,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   1100 <MakeAngularGrid_3890@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x7ee,%ebx
je     1616 <MakeAngularGrid+0x306>
cmp    $0x932,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   10a0 <MakeAngularGrid_2354@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x15e,%ebx
je     161d <MakeAngularGrid+0x30d>
cmp    $0x1b2,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   10b0 <MakeAngularGrid_434@plt>
jmp    1629 <MakeAngularGrid+0x319>
cmp    $0x14ae,%ebx
je     1624 <MakeAngularGrid+0x314>
cmp    $0x16b2,%ebx
jne    1638 <MakeAngularGrid+0x328>
call   1070 <MakeAngularGrid_5810@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   11b0 <MakeAngularGrid_6@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1210 <MakeAngularGrid_14@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   10e0 <MakeAngularGrid_26@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1180 <MakeAngularGrid_38@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   10f0 <MakeAngularGrid_50@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1190 <MakeAngularGrid_590@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1110 <MakeAngularGrid_146@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1200 <MakeAngularGrid_2702@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   10c0 <MakeAngularGrid_1454@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1060 <MakeAngularGrid_266@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1160 <MakeAngularGrid_4334@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1090 <MakeAngularGrid_74@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   11a0 <MakeAngularGrid_86@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1150 <MakeAngularGrid_974@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1040 <MakeAngularGrid_194@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   11c0 <MakeAngularGrid_3470@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   11d0 <MakeAngularGrid_2030@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   1080 <MakeAngularGrid_350@plt>
jmp    1629 <MakeAngularGrid+0x319>
call   11f0 <MakeAngularGrid_5294@plt>
mov    %eax,%ebp
xor    %edi,%edi
cmp    %ebx,%ebp
sete   %dil
call   1120 <assert@plt>
mov    %ebp,%eax
add    $0x8,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
define i32 @MakeAngularGrid(double* %0, i32 %1) {
%3 = alloca i32
%4 = alloca double*
%5 = alloca i32
%6 = alloca [4 x double]*
%7 = alloca i32
store double* %0, double** %4
store i32 %1, i32* %5
%8 = load double*, double** %4
%9 = bitcast double* %8 to [4 x double]*
store [4 x double]* %9, [4 x double]** %6
store i32 0, i32* %7
%10 = load i32, i32* %5
switch i32 %10, label %152 [
i32 0, label %11
i32 6, label %24
i32 14, label %28
i32 26, label %32
i32 38, label %36
i32 50, label %40
i32 74, label %44
i32 86, label %48
i32 110, label %52
i32 146, label %56
i32 170, label %60
i32 194, label %64
i32 230, label %68
i32 266, label %72
i32 302, label %76
i32 350, label %80
i32 434, label %84
i32 590, label %88
i32 770, label %92
i32 974, label %96
i32 1202, label %100
i32 1454, label %104
i32 1730, label %108
i32 2030, label %112
i32 2354, label %116
i32 2702, label %120
i32 3074, label %124
i32 3470, label %128
i32 3890, label %132
i32 4334, label %136
i32 4802, label %140
i32 5294, label %144
i32 5810, label %148
]
11: ; preds = %2
%12 = load [4 x double]*, [4 x double]** %6
%13 = getelementptr inbounds [4 x double], [4 x double]* %12, i64 0
%14 = getelementptr inbounds [4 x double], [4 x double]* %13, i64 0, i64 0
store double 0.000000e+00, double* %14
%15 = load [4 x double]*, [4 x double]** %6
%16 = getelementptr inbounds [4 x double], [4 x double]* %15, i64 0
%17 = getelementptr inbounds [4 x double], [4 x double]* %16, i64 0, i64 1
store double 0.000000e+00, double* %17
%18 = load [4 x double]*, [4 x double]** %6
%19 = getelementptr inbounds [4 x double], [4 x double]* %18, i64 0
%20 = getelementptr inbounds [4 x double], [4 x double]* %19, i64 0, i64 2
store double 0.000000e+00, double* %20
%21 = load [4 x double]*, [4 x double]** %6
%22 = getelementptr inbounds [4 x double], [4 x double]* %21, i64 0
%23 = getelementptr inbounds [4 x double], [4 x double]* %22, i64 0, i64 3
store double 1.000000e+00, double* %23
store i32 1, i32* %7
br label %153
24: ; preds = %2
%25 = load [4 x double]*, [4 x double]** %6
%26 = bitcast [4 x double]* %25 to double**
%27 = call i32 @MakeAngularGrid_6(double** %26)
store i32 %27, i32* %7
br label %153
28: ; preds = %2
%29 = load [4 x double]*, [4 x double]** %6
%30 = bitcast [4 x double]* %29 to double**
%31 = call i32 @MakeAngularGrid_14(double** %30)
store i32 %31, i32* %7
br label %153
32: ; preds = %2
%33 = load [4 x double]*, [4 x double]** %6
%34 = bitcast [4 x double]* %33 to double**
%35 = call i32 @MakeAngularGrid_26(double** %34)
store i32 %35, i32* %7
br label %153
36: ; preds = %2
%37 = load [4 x double]*, [4 x double]** %6
%38 = bitcast [4 x double]* %37 to double**
%39 = call i32 @MakeAngularGrid_38(double** %38)
store i32 %39, i32* %7
br label %153
40: ; preds = %2
%41 = load [4 x double]*, [4 x double]** %6
%42 = bitcast [4 x double]* %41 to double**
%43 = call i32 @MakeAngularGrid_50(double** %42)
store i32 %43, i32* %7
br label %153
44: ; preds = %2
%45 = load [4 x double]*, [4 x double]** %6
%46 = bitcast [4 x double]* %45 to double**
%47 = call i32 @MakeAngularGrid_74(double** %46)
store i32 %47, i32* %7
br label %153
48: ; preds = %2
%49 = load [4 x double]*, [4 x double]** %6
%50 = bitcast [4 x double]* %49 to double**
%51 = call i32 @MakeAngularGrid_86(double** %50)
store i32 %51, i32* %7
br label %153
52: ; preds = %2
%53 = load [4 x double]*, [4 x double]** %6
%54 = bitcast [4 x double]* %53 to double**
%55 = call i32 @MakeAngularGrid_110(double** %54)
store i32 %55, i32* %7
br label %153
56: ; preds = %2
%57 = load [4 x double]*, [4 x double]** %6
%58 = bitcast [4 x double]* %57 to double**
%59 = call i32 @MakeAngularGrid_146(double** %58)
store i32 %59, i32* %7
br label %153
60: ; preds = %2
%61 = load [4 x double]*, [4 x double]** %6
%62 = bitcast [4 x double]* %61 to double**
%63 = call i32 @MakeAngularGrid_170(double** %62)
store i32 %63, i32* %7
br label %153
64: ; preds = %2
%65 = load [4 x double]*, [4 x double]** %6
%66 = bitcast [4 x double]* %65 to double**
%67 = call i32 @MakeAngularGrid_194(double** %66)
store i32 %67, i32* %7
br label %153
68: ; preds = %2
%69 = load [4 x double]*, [4 x double]** %6
%70 = bitcast [4 x double]* %69 to double**
%71 = call i32 @MakeAngularGrid_230(double** %70)
store i32 %71, i32* %7
br label %153
72: ; preds = %2
%73 = load [4 x double]*, [4 x double]** %6
%74 = bitcast [4 x double]* %73 to double**
%75 = call i32 @MakeAngularGrid_266(double** %74)
store i32 %75, i32* %7
br label %153
76: ; preds = %2
%77 = load [4 x double]*, [4 x double]** %6
%78 = bitcast [4 x double]* %77 to double**
%79 = call i32 @MakeAngularGrid_302(double** %78)
store i32 %79, i32* %7
br label %153
80: ; preds = %2
%81 = load [4 x double]*, [4 x double]** %6
%82 = bitcast [4 x double]* %81 to double**
%83 = call i32 @MakeAngularGrid_350(double** %82)
store i32 %83, i32* %7
br label %153
84: ; preds = %2
%85 = load [4 x double]*, [4 x double]** %6
%86 = bitcast [4 x double]* %85 to double**
%87 = call i32 @MakeAngularGrid_434(double** %86)
store i32 %87, i32* %7
br label %153
88: ; preds = %2
%89 = load [4 x double]*, [4 x double]** %6
%90 = bitcast [4 x double]* %89 to double**
%91 = call i32 @MakeAngularGrid_590(double** %90)
store i32 %91, i32* %7
br label %153
92: ; preds = %2
%93 = load [4 x double]*, [4 x double]** %6
%94 = bitcast [4 x double]* %93 to double**
%95 = call i32 @MakeAngularGrid_770(double** %94)
store i32 %95, i32* %7
br label %153
96: ; preds = %2
%97 = load [4 x double]*, [4 x double]** %6
%98 = bitcast [4 x double]* %97 to double**
%99 = call i32 @MakeAngularGrid_974(double** %98)
store i32 %99, i32* %7
br label %153
100: ; preds = %2
%101 = load [4 x double]*, [4 x double]** %6
%102 = bitcast [4 x double]* %101 to double**
%103 = call i32 @MakeAngularGrid_1202(double** %102)
store i32 %103, i32* %7
br label %153
104: ; preds = %2
%105 = load [4 x double]*, [4 x double]** %6
%106 = bitcast [4 x double]* %105 to double**
%107 = call i32 @MakeAngularGrid_1454(double** %106)
store i32 %107, i32* %7
br label %153
108: ; preds = %2
%109 = load [4 x double]*, [4 x double]** %6
%110 = bitcast [4 x double]* %109 to double**
%111 = call i32 @MakeAngularGrid_1730(double** %110)
store i32 %111, i32* %7
br label %153
112: ; preds = %2
%113 = load [4 x double]*, [4 x double]** %6
%114 = bitcast [4 x double]* %113 to double**
%115 = call i32 @MakeAngularGrid_2030(double** %114)
store i32 %115, i32* %7
br label %153
116: ; preds = %2
%117 = load [4 x double]*, [4 x double]** %6
%118 = bitcast [4 x double]* %117 to double**
%119 = call i32 @MakeAngularGrid_2354(double** %118)
store i32 %119, i32* %7
br label %153
120: ; preds = %2
%121 = load [4 x double]*, [4 x double]** %6
%122 = bitcast [4 x double]* %121 to double**
%123 = call i32 @MakeAngularGrid_2702(double** %122)
store i32 %123, i32* %7
br label %153
124: ; preds = %2
%125 = load [4 x double]*, [4 x double]** %6
%126 = bitcast [4 x double]* %125 to double**
%127 = call i32 @MakeAngularGrid_3074(double** %126)
store i32 %127, i32* %7
br label %153
128: ; preds = %2
%129 = load [4 x double]*, [4 x double]** %6
%130 = bitcast [4 x double]* %129 to double**
%131 = call i32 @MakeAngularGrid_3470(double** %130)
store i32 %131, i32* %7
br label %153
132: ; preds = %2
%133 = load [4 x double]*, [4 x double]** %6
%134 = bitcast [4 x double]* %133 to double**
%135 = call i32 @MakeAngularGrid_3890(double** %134)
store i32 %135, i32* %7
br label %153
136: ; preds = %2
%137 = load [4 x double]*, [4 x double]** %6
%138 = bitcast [4 x double]* %137 to double**
%139 = call i32 @MakeAngularGrid_4334(double** %138)
store i32 %139, i32* %7
br label %153
140: ; preds = %2
%141 = load [4 x double]*, [4 x double]** %6
%142 = bitcast [4 x double]* %141 to double**
%143 = call i32 @MakeAngularGrid_4802(double** %142)
store i32 %143, i32* %7
br label %153
144: ; preds = %2
%145 = load [4 x double]*, [4 x double]** %6
%146 = bitcast [4 x double]* %145 to double**
%147 = call i32 @MakeAngularGrid_5294(double** %146)
store i32 %147, i32* %7
br label %153
148: ; preds = %2
%149 = load [4 x double]*, [4 x double]** %6
%150 = bitcast [4 x double]* %149 to double**
%151 = call i32 @MakeAngularGrid_5810(double** %150)
store i32 %151, i32* %7
br label %153
152: ; preds = %2
store i32 0, i32* %3
br label %160
153: ; preds = %148, %144, %140, %136, %132, %128, %124, %120, %116, %112, %108, %104, %100, %96, %92, %88, %84, %80, %76, %72, %68, %64, %60, %56, %52, %48, %44, %40, %36, %32, %28, %24, %11
%154 = load i32, i32* %7
%155 = load i32, i32* %5
%156 = icmp eq i32 %154, %155
%157 = zext i1 %156 to i32
%158 = call i32 @assert(i32 %157)
%159 = load i32, i32* %7
store i32 %159, i32* %3
br label %160
160: ; preds = %153, %152
%161 = load i32, i32* %3
ret i32 %161
}

LLVM IR (-O2):
define i32 @MakeAngularGrid(double* %0, i32 %1) {
switch i32 %1, label %107 [
i32 0, label %3
i32 6, label %6
i32 14, label %9
i32 26, label %12
i32 38, label %15
i32 50, label %18
i32 74, label %21
i32 86, label %24
i32 110, label %27
i32 146, label %30
i32 170, label %33
i32 194, label %36
i32 230, label %39
i32 266, label %42
i32 302, label %45
i32 350, label %48
i32 434, label %51
i32 590, label %54
i32 770, label %57
i32 974, label %60
i32 1202, label %63
i32 1454, label %66
i32 1730, label %69
i32 2030, label %72
i32 2354, label %75
i32 2702, label %78
i32 3074, label %81
i32 3470, label %84
i32 3890, label %87
i32 4334, label %90
i32 4802, label %93
i32 5294, label %96
i32 5810, label %99
]
3: ; preds = %2
%4 = getelementptr inbounds double, double* %0, i64 3
%5 = bitcast double* %0 to i8*
store double 1.000000e+00, double* %4
br label %102
6: ; preds = %2
%7 = bitcast double* %0 to double**
%8 = tail call i32 @MakeAngularGrid_6(double** %7)
br label %102
9: ; preds = %2
%10 = bitcast double* %0 to double**
%11 = tail call i32 @MakeAngularGrid_14(double** %10)
br label %102
12: ; preds = %2
%13 = bitcast double* %0 to double**
%14 = tail call i32 @MakeAngularGrid_26(double** %13)
br label %102
15: ; preds = %2
%16 = bitcast double* %0 to double**
%17 = tail call i32 @MakeAngularGrid_38(double** %16)
br label %102
18: ; preds = %2
%19 = bitcast double* %0 to double**
%20 = tail call i32 @MakeAngularGrid_50(double** %19)
br label %102
21: ; preds = %2
%22 = bitcast double* %0 to double**
%23 = tail call i32 @MakeAngularGrid_74(double** %22)
br label %102
24: ; preds = %2
%25 = bitcast double* %0 to double**
%26 = tail call i32 @MakeAngularGrid_86(double** %25)
br label %102
27: ; preds = %2
%28 = bitcast double* %0 to double**
%29 = tail call i32 @MakeAngularGrid_110(double** %28)
br label %102
30: ; preds = %2
%31 = bitcast double* %0 to double**
%32 = tail call i32 @MakeAngularGrid_146(double** %31)
br label %102
33: ; preds = %2
%34 = bitcast double* %0 to double**
%35 = tail call i32 @MakeAngularGrid_170(double** %34)
br label %102
36: ; preds = %2
%37 = bitcast double* %0 to double**
%38 = tail call i32 @MakeAngularGrid_194(double** %37)
br label %102
39: ; preds = %2
%40 = bitcast double* %0 to double**
%41 = tail call i32 @MakeAngularGrid_230(double** %40)
br label %102
42: ; preds = %2
%43 = bitcast double* %0 to double**
%44 = tail call i32 @MakeAngularGrid_266(double** %43)
br label %102
45: ; preds = %2
%46 = bitcast double* %0 to double**
%47 = tail call i32 @MakeAngularGrid_302(double** %46)
br label %102
48: ; preds = %2
%49 = bitcast double* %0 to double**
%50 = tail call i32 @MakeAngularGrid_350(double** %49)
br label %102
51: ; preds = %2
%52 = bitcast double* %0 to double**
%53 = tail call i32 @MakeAngularGrid_434(double** %52)
br label %102
54: ; preds = %2
%55 = bitcast double* %0 to double**
%56 = tail call i32 @MakeAngularGrid_590(double** %55)
br label %102
57: ; preds = %2
%58 = bitcast double* %0 to double**
%59 = tail call i32 @MakeAngularGrid_770(double** %58)
br label %102
60: ; preds = %2
%61 = bitcast double* %0 to double**
%62 = tail call i32 @MakeAngularGrid_974(double** %61)
br label %102
63: ; preds = %2
%64 = bitcast double* %0 to double**
%65 = tail call i32 @MakeAngularGrid_1202(double** %64)
br label %102
66: ; preds = %2
%67 = bitcast double* %0 to double**
%68 = tail call i32 @MakeAngularGrid_1454(double** %67)
br label %102
69: ; preds = %2
%70 = bitcast double* %0 to double**
%71 = tail call i32 @MakeAngularGrid_1730(double** %70)
br label %102
72: ; preds = %2
%73 = bitcast double* %0 to double**
%74 = tail call i32 @MakeAngularGrid_2030(double** %73)
br label %102
75: ; preds = %2
%76 = bitcast double* %0 to double**
%77 = tail call i32 @MakeAngularGrid_2354(double** %76)
br label %102
78: ; preds = %2
%79 = bitcast double* %0 to double**
%80 = tail call i32 @MakeAngularGrid_2702(double** %79)
br label %102
81: ; preds = %2
%82 = bitcast double* %0 to double**
%83 = tail call i32 @MakeAngularGrid_3074(double** %82)
br label %102
84: ; preds = %2
%85 = bitcast double* %0 to double**
%86 = tail call i32 @MakeAngularGrid_3470(double** %85)
br label %102
87: ; preds = %2
%88 = bitcast double* %0 to double**
%89 = tail call i32 @MakeAngularGrid_3890(double** %88)
br label %102
90: ; preds = %2
%91 = bitcast double* %0 to double**
%92 = tail call i32 @MakeAngularGrid_4334(double** %91)
br label %102
93: ; preds = %2
%94 = bitcast double* %0 to double**
%95 = tail call i32 @MakeAngularGrid_4802(double** %94)
br label %102
96: ; preds = %2
%97 = bitcast double* %0 to double**
%98 = tail call i32 @MakeAngularGrid_5294(double** %97)
br label %102
99: ; preds = %2
%100 = bitcast double* %0 to double**
%101 = tail call i32 @MakeAngularGrid_5810(double** %100)
br label %102
102: ; preds = %99, %96, %93, %90, %87, %84, %81, %78, %75, %72, %69, %66, %63, %60, %57, %54, %51, %48, %45, %42, %39, %36, %33, %30, %27, %24, %21, %18, %15, %12, %9, %6, %3
%103 = phi i32 [ %101, %99 ], [ %98, %96 ], [ %95, %93 ], [ %92, %90 ], [ %89, %87 ], [ %86, %84 ], [ %83, %81 ], [ %80, %78 ], [ %77, %75 ], [ %74, %72 ], [ %71, %69 ], [ %68, %66 ], [ %65, %63 ], [ %62, %60 ], [ %59, %57 ], [ %56, %54 ], [ %53, %51 ], [ %50, %48 ], [ %47, %45 ], [ %44, %42 ], [ %41, %39 ], [ %38, %36 ], [ %35, %33 ], [ %32, %30 ], [ %29, %27 ], [ %26, %24 ], [ %23, %21 ], [ %20, %18 ], [ %17, %15 ], [ %14, %12 ], [ %11, %9 ], [ %8, %6 ], [ 1, %3 ]
%104 = icmp eq i32 %103, %1
%105 = zext i1 %104 to i32
%106 = tail call i32 @assert(i32 %105)
br label %107
107: ; preds = %2, %102
%108 = phi i32 [ %103, %102 ], [ 0, %2 ]
ret i32 %108
}