#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 */
double cos(double);
int pow(double, int);
int /*<<< orphan*/ printf(char *, double, double, double);
double sin(double);
void velocidad(double nE0, double nalpha, double *x, double *y, double *z,
               double *t, double *vx, double *vy, double *vz, int npoints) {
  double dt = 0.01;
  double pi = 3.14159;
  double B0 = 3 * pow(10, 5);
  double m = 1.672621777 * pow(10, -27);
  double c = 299792458;
  double q = 1.602176565 * pow(10, -19);
  double alpha = nalpha * (pi / 180.0);
  double E0 = nE0 * 1.6021773 * pow(10, -13);
  double v0 = c * pow((1 - 1 / pow((E0 / (m * pow(c, 2))) + 1, 2)), 0.5);
  double gamma = pow(1 / (1 - (pow(v0, 2) / pow(c, 2))), 0.5);
  double v0x = 0.0;
  double v0y = v0 * sin(alpha);
  double v0z = v0 * cos(alpha);
  double rt = 6378100;
  double x0 = 2 * rt;
  double y0 = 0.0;
  double z0 = 0.0;
  int i = 0;
  x[0] = x0;
  y[0] = y0;
  z[0] = z0;
  t[0] = 0.0;
  vx[0] = v0x;
  vy[0] = v0y;
  vz[0] = v0z;
  double r = pow(pow(x[0], 2) + pow(y[0], 2) + pow(z[0], 2), 0.5);
  double Bx = (-B0 * (pow(rt, 3)) / pow(r, 5)) * (3 * x[0] * z[0]);
  double By = (-B0 * (pow(rt, 3)) / pow(r, 5)) * (3 * y[0] * z[0]);
  double Bz = (-B0 * (pow(rt, 3)) / pow(r, 5)) *
              (2 * pow(z[0], 2) - pow(x[0], 2) - pow(y[0], 2));
  printf("%f %f %f\n", v0x, v0y, v0z);
  for (i = 1; i < npoints; i++) {
    vx[i] = (((q * dt) / (gamma * m)) * (vy[i - 1] * Bz - vz[i - 1] * By)) +
            vx[i - 1];
    vy[i] = -(((q * dt) / (gamma * m)) * (vx[i - 1] * Bz - vz[i - 1] * Bx)) +
            vy[i - 1];
    vz[i] = (((q * dt) / (gamma * m)) * (vx[i - 1] * By - vy[i - 1] * Bx)) +
            vz[i - 1];
    printf("%f %f %f\n", vx[i], vy[i], vz[i]);
    x[i] = x[i - 1] + vx[i] * dt;
    y[i] = y[i - 1] + vy[i] * dt;
    z[i] = z[i - 1] + vz[i] * dt;
    t[i] = t[i - 1] + dt;
    r = pow(pow(x[i], 2) + pow(y[i], 2) + pow(z[i], 2), 0.5);
    Bx = (-B0 * (pow(rt, 3)) / pow(r, 5)) * (3 * x[i] * z[i]);
    By = (-B0 * (pow(rt, 3)) / pow(r, 5)) * (3 * y[i] * z[i]);
    Bz = (-B0 * (pow(rt, 3)) / pow(r, 5)) *
         (2 * pow(z[i], 2) - pow(x[i], 2) - pow(y[i], 2));
    printf("%f %f %f\n", Bx, By, Bz);
  }
}


x86 assembly (clang, -O0):
<velocidad>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1d0,%rsp
mov    0x18(%rbp),%eax
mov    0x10(%rbp),%rax
movsd  %xmm0,-0x8(%rbp)
movsd  %xmm1,-0x10(%rbp)
mov    %rdi,-0x18(%rbp)
mov    %rsi,-0x20(%rbp)
mov    %rdx,-0x28(%rbp)
mov    %rcx,-0x30(%rbp)
mov    %r8,-0x38(%rbp)
mov    %r9,-0x40(%rbp)
movsd  0xedc(%rip),%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  0xec7(%rip),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  0xe8a(%rip),%xmm0
mov    $0x5,%edi
call   1060 <pow@plt>
imul   $0x3,%eax,%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  0xe6c(%rip),%xmm0
mov    $0xffffffe5,%edi
call   1060 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xe7e(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  0xe65(%rip),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  0xe38(%rip),%xmm0
mov    $0xffffffed,%edi
call   1060 <pow@plt>
cvtsi2sd %eax,%xmm1
movsd  0xe3a(%rip),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm1
movsd  0xe17(%rip),%xmm2
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  0xdfa(%rip),%xmm0
mulsd  -0x8(%rbp),%xmm0
movsd  %xmm0,-0x178(%rbp)
ff
movsd  0xddd(%rip),%xmm0
mov    $0xfffffff3,%edi
call   1060 <pow@plt>
movsd  -0x178(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movsd  -0x60(%rbp),%xmm0
movsd  %xmm0,-0x170(%rbp)
ff
movsd  -0x68(%rbp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
movsd  -0x170(%rbp),%xmm1
ff
movsd  -0x168(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm2
mulsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  0xd5c(%rip),%xmm1
addsd  %xmm1,%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cltd
idiv   %ecx
mov    %eax,%ecx
mov    $0x1,%eax
sub    %ecx,%eax
cvtsi2sd %eax,%xmm0
xor    %edi,%edi
call   1060 <pow@plt>
movsd  -0x160(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,-0x154(%rbp)
movsd  -0x68(%rbp),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    -0x154(%rbp),%eax
cltd
idiv   %ecx
mov    $0x1,%ecx
sub    %eax,%ecx
mov    $0x1,%eax
cltd
idiv   %ecx
cvtsi2sd %eax,%xmm0
xor    %edi,%edi
call   1060 <pow@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x150(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
call   1040 <sin@plt>
movaps %xmm0,%xmm1
movsd  -0x150(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
call   1050 <cos@plt>
movaps %xmm0,%xmm1
movsd  -0x148(%rbp),%xmm0
ff
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  0xc43(%rip),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  0xc2b(%rip),%xmm0
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movl   $0x0,-0xcc(%rbp)
movsd  -0xb8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x28(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x30(%rbp),%rax
xorps  %xmm0,%xmm0
movsd  %xmm0,(%rax)
movsd  -0x98(%rbp),%xmm0
ff
mov    -0x38(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
mov    -0x40(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,-0x140(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    -0x140(%rbp),%eax
add    %ecx,%eax
mov    %eax,-0x13c(%rbp)
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    -0x13c(%rbp),%eax
add    %ecx,%eax
cvtsi2sd %eax,%xmm0
xor    %edi,%edi
call   1060 <pow@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
mov    $0x3,%edi
call   1060 <pow@plt>
movsd  -0x138(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
mov    $0x5,%edi
call   1060 <pow@plt>
movsd  -0x130(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  0xa9f(%rip),%xmm1
mulsd  (%rax),%xmm1
mov    -0x28(%rbp),%rax
mulsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
mov    $0x3,%edi
call   1060 <pow@plt>
movsd  -0x128(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
mov    $0x5,%edi
call   1060 <pow@plt>
movsd  -0x120(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movsd  0xa0b(%rip),%xmm1
mulsd  (%rax),%xmm1
mov    -0x28(%rbp),%rax
mulsd  (%rax),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
mov    $0x3,%edi
call   1060 <pow@plt>
movsd  -0x118(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
mov    $0x5,%edi
call   1060 <pow@plt>
movsd  -0x110(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
shl    $0x1,%eax
mov    %eax,-0x104(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    -0x104(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0xf4(%rbp)
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
movsd  -0x100(%rbp),%xmm0
ff
mov    %eax,%ecx
mov    -0xf4(%rbp),%eax
sub    %ecx,%eax
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
movsd  -0xa0(%rbp),%xmm1
ff
movsd  -0xa8(%rbp),%xmm2
ff
lea    0x94b(%rip),%rdi
call   1030 <printf@plt>
movl   $0x1,-0xcc(%rbp)
mov    -0xcc(%rbp),%eax
cmp    0x18(%rbp),%eax
jge    1d5b <velocidad+0xc1b>
movsd  -0x70(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm1
ff
mulsd  -0x60(%rbp),%xmm1
divsd  %xmm1,%xmm0
mov    -0x40(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xf0(%rbp),%xmm3
ff
mov    0x10(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
mov    -0x38(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x38(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm1
ff
mulsd  -0x60(%rbp),%xmm1
divsd  %xmm1,%xmm0
mov    -0x38(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
movsd  -0xf0(%rbp),%xmm3
ff
mov    0x10(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
mulsd  -0xe0(%rbp),%xmm2
ff
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mov    -0x40(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm0
mov    -0x40(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
movsd  -0x70(%rbp),%xmm0
mulsd  -0x48(%rbp),%xmm0
movsd  -0x90(%rbp),%xmm1
ff
mulsd  -0x60(%rbp),%xmm1
divsd  %xmm1,%xmm0
mov    -0x38(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm2
movsd  -0xe8(%rbp),%xmm3
ff
mov    -0x40(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm3,%xmm2
addsd  %xmm1,%xmm2
mov    0x10(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    0x10(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x38(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    -0x40(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    0x10(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm2
lea    0x700(%rip),%rdi
call   1030 <printf@plt>
mov    -0x18(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    -0x38(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x20(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    -0x40(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x28(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm1
mov    0x10(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movsd  -0x48(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x28(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x30(%rbp),%rax
mov    -0xcc(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
movsd  (%rax,%rcx,8),%xmm0
addsd  -0x48(%rbp),%xmm0
mov    -0x30(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,-0x1c8(%rbp)
mov    -0x20(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    -0x1c8(%rbp),%eax
add    %ecx,%eax
mov    %eax,-0x1c4(%rbp)
mov    -0x28(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    -0x1c4(%rbp),%eax
add    %ecx,%eax
cvtsi2sd %eax,%xmm0
xor    %edi,%edi
call   1060 <pow@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x1c0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
mov    $0x3,%edi
call   1060 <pow@plt>
movsd  -0x1c0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1b8(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
mov    $0x5,%edi
call   1060 <pow@plt>
movsd  -0x1b8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  0x4a3(%rip),%xmm1
mulsd  (%rax,%rcx,8),%xmm1
mov    -0x28(%rbp),%rax
movslq -0xcc(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x1b0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
mov    $0x3,%edi
call   1060 <pow@plt>
movsd  -0x1b0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x1a8(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
mov    $0x5,%edi
call   1060 <pow@plt>
movsd  -0x1a8(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
mov    -0x20(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  0x3ff(%rip),%xmm1
mulsd  (%rax,%rcx,8),%xmm1
mov    -0x28(%rbp),%rax
movslq -0xcc(%rbp),%rcx
mulsd  (%rax,%rcx,8),%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
movsd  %xmm0,-0x1a0(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
mov    $0x3,%edi
call   1060 <pow@plt>
movsd  -0x1a0(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0x198(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
mov    $0x5,%edi
call   1060 <pow@plt>
movsd  -0x198(%rbp),%xmm0
ff
cvtsi2sd %eax,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x188(%rbp)
ff
mov    -0x28(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
shl    $0x1,%eax
mov    %eax,-0x18c(%rbp)
mov    -0x18(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    -0x18c(%rbp),%eax
sub    %ecx,%eax
mov    %eax,-0x17c(%rbp)
mov    -0x20(%rbp),%rax
movslq -0xcc(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
movsd  -0x188(%rbp),%xmm0
ff
mov    %eax,%ecx
mov    -0x17c(%rbp),%eax
sub    %ecx,%eax
cvtsi2sd %eax,%xmm1
mulsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0xe8(%rbp),%xmm1
ff
movsd  -0xf0(%rbp),%xmm2
ff
lea    0x31e(%rip),%rdi
call   1030 <printf@plt>
mov    -0xcc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xcc(%rbp)
jmp    1724 <velocidad+0x5e4>
add    $0x1d0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<velocidad>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0xd8,%rsp
mov    %r9,0x60(%rsp)
mov    %r8,0x58(%rsp)
mov    %rcx,%r14
mov    %rdx,%r13
mov    %rsi,0x38(%rsp)
mov    %rdi,%r12
movsd  %xmm1,(%rsp)
movsd  %xmm0,0x10(%rsp)
movsd  0xe84(%rip),%xmm0
mov    $0x5,%edi
call   1060 <pow@plt>
mov    %rax,0x90(%rsp)
movsd  0xe6a(%rip),%xmm0
mov    $0xffffffe5,%edi
call   1060 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xe59(%rip),%xmm0
movsd  %xmm0,0x28(%rsp)
movsd  0xe43(%rip),%xmm0
mov    $0xffffffed,%edi
call   1060 <pow@plt>
mov    %eax,0x30(%rsp)
movsd  (%rsp),%xmm0
mulsd  0xe38(%rip),%xmm0
movsd  %xmm0,(%rsp)
movsd  0x10(%rsp),%xmm0
mulsd  0xe2d(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xe07(%rip),%xmm0
mov    $0xfffffff3,%edi
call   1060 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  0xe02(%rip),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x28(%rsp),%xmm0
movsd  0x10(%rsp),%xmm1
divsd  %xmm0,%xmm1
addsd  0xde1(%rip),%xmm1
movapd %xmm1,%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    $0x1,%ebp
mov    $0x1,%ecx
sub    %eax,%ecx
add    $0x1,%eax
cmp    $0x3,%eax
cmovae %ebp,%ecx
xorps  %xmm0,%xmm0
cvtsi2sd %ecx,%xmm0
xor    %ebx,%ebx
xor    %edi,%edi
call   1060 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0xd97(%rip),%xmm0
movsd  %xmm0,0x10(%rsp)
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%r15d
movsd  0xd7c(%rip),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ecx
mov    %r15d,%eax
cltd
idiv   %ecx
sub    %eax,%ebp
cmp    $0x3,%eax
cmovae %ebx,%ebp
mov    0x60(%rsp),%r15
xorps  %xmm0,%xmm0
cvtsi2sd %ebp,%xmm0
mov    0x58(%rsp),%rbp
mov    %r14,%rbx
xor    %edi,%edi
call   1060 <pow@plt>
mov    %eax,0x54(%rsp)
movsd  (%rsp),%xmm0
call   1040 <sin@plt>
mulsd  0x10(%rsp),%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  (%rsp),%xmm0
call   1050 <cos@plt>
movsd  0x10(%rsp),%xmm1
mulsd  %xmm0,%xmm1
movsd  %xmm1,0x10(%rsp)
movabs $0x4168549d00000000,%rax
54 68 41
mov    %r12,%rcx
mov    %r12,0x68(%rsp)
mov    %rax,(%r12)
mov    0x38(%rsp),%r12
movq   $0x0,(%r12)
movq   $0x0,0x0(%r13)
movq   $0x0,(%r14)
movq   $0x0,0x0(%rbp)
mov    %r15,%rbx
movsd  0x70(%rsp),%xmm0
movsd  %xmm0,(%r15)
mov    0x110(%rsp),%rax
movsd  %xmm1,(%rax)
movsd  (%rcx),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,(%rsp)
movsd  (%r12),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%r15d
add    (%rsp),%r15d
movsd  0x0(%r13),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
add    %r15d,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
xor    %edi,%edi
call   1060 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,(%rsp)
movsd  0xc72(%rip),%xmm0
mov    $0x3,%edi
call   1060 <pow@plt>
mov    %eax,0x4c(%rsp)
movsd  (%rsp),%xmm0
mov    $0x5,%edi
call   1060 <pow@plt>
mov    %eax,0x50(%rsp)
mov    0x68(%rsp),%r15
movsd  (%r15),%xmm0
movsd  %xmm0,0x20(%rsp)
movsd  0x0(%r13),%xmm0
movsd  %xmm0,0xa8(%rsp)
movsd  0xc2a(%rip),%xmm0
mov    $0x3,%edi
call   1060 <pow@plt>
mov    %eax,0x48(%rsp)
movsd  (%rsp),%xmm0
mov    $0x5,%edi
call   1060 <pow@plt>
mov    %eax,0x80(%rsp)
movsd  (%r12),%xmm0
movaps %xmm0,0xc0(%rsp)
movsd  0x0(%r13),%xmm0
movsd  %xmm0,0xa0(%rsp)
movsd  0xbe1(%rip),%xmm0
mov    $0x3,%edi
call   1060 <pow@plt>
mov    %eax,0x44(%rsp)
movsd  (%rsp),%xmm0
mov    $0x5,%edi
call   1060 <pow@plt>
mov    %eax,(%rsp)
mov    %r13,0xb8(%rsp)
movsd  0x0(%r13),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%r13d
movsd  (%r15),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%r15d
movsd  (%r12),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%r12d
lea    0xbaa(%rip),%rdi
xorpd  %xmm0,%xmm0
movsd  0x70(%rsp),%xmm1
movsd  0x10(%rsp),%xmm2
call   1030 <printf@plt>
mov    0x118(%rsp),%ecx
cmp    $0x2,%ecx
jl     1928 <velocidad+0x7e8>
mov    0x90(%rsp),%rax
lea    (%rax,%rax,2),%eax
cvtsi2sd %eax,%xmm3
xorpd  0xb5e(%rip),%xmm3
add    %r13d,%r13d
add    %r12d,%r15d
sub    %r15d,%r13d
cvtsi2sd %r13d,%xmm5
movss  0x48(%rsp),%xmm0
movss  0x44(%rsp),%xmm1
unpcklps %xmm0,%xmm1
cvtdq2pd %xmm1,%xmm0
movapd %xmm3,%xmm4
unpcklpd %xmm3,%xmm4
movss  0x80(%rsp),%xmm1
movss  (%rsp),%xmm2
unpcklps %xmm1,%xmm2
cvtdq2pd %xmm2,%xmm1
movapd %xmm4,0x80(%rsp)
mulpd  %xmm4,%xmm0
divpd  %xmm1,%xmm0
movsd  0xaef(%rip),%xmm2
movapd 0xc0(%rsp),%xmm1
mulsd  %xmm2,%xmm1
mulsd  0xa0(%rsp),%xmm1
unpcklpd %xmm1,%xmm5
xorps  %xmm1,%xmm1
cvtsi2sdl 0x4c(%rsp),%xmm1
mulpd  %xmm0,%xmm5
movapd %xmm3,0x90(%rsp)
mulsd  %xmm3,%xmm1
xorps  %xmm0,%xmm0
cvtsi2sdl 0x50(%rsp),%xmm0
divsd  %xmm0,%xmm1
movsd  0x20(%rsp),%xmm0
mulsd  %xmm2,%xmm0
mulsd  0xa8(%rsp),%xmm0
mulsd  %xmm1,%xmm0
movsd  %xmm0,0x20(%rsp)
xorps  %xmm0,%xmm0
cvtsi2sdl 0x54(%rsp),%xmm0
xorps  %xmm2,%xmm2
cvtsi2sdl 0x30(%rsp),%xmm2
mulsd  0xa7f(%rip),%xmm2
mulsd  0xa7f(%rip),%xmm2
movsd  0x28(%rsp),%xmm1
mulsd  %xmm0,%xmm1
divsd  %xmm1,%xmm2
movsd  %xmm2,0x28(%rsp)
mov    %ecx,%eax
lea    -0x8(,%rax,8),%rax
ff
mov    %rax,0x30(%rsp)
xor    %r12d,%r12d
mov    %r14,0xb0(%rsp)
nopw   0x0(%rax,%rax,1)
movapd %xmm5,%xmm2
unpckhpd %xmm5,%xmm2
mov    0x110(%rsp),%r13
movsd  0x0(%r13,%r12,1),%xmm0
mulsd  %xmm2,%xmm0
movsd  (%rbx,%r12,1),%xmm1
mulsd  %xmm5,%xmm1
subsd  %xmm0,%xmm1
movsd  0x0(%rbp,%r12,1),%xmm0
movsd  0x28(%rsp),%xmm4
mulsd  %xmm4,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rbp,%r12,1)
movsd  0x0(%r13,%r12,1),%xmm1
movsd  0x20(%rsp),%xmm3
mulsd  %xmm3,%xmm1
mulsd  %xmm5,%xmm0
subsd  %xmm1,%xmm0
movsd  (%rbx,%r12,1),%xmm1
mulsd  %xmm4,%xmm0
mulsd  %xmm1,%xmm3
subsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rbx,%r12,1)
mulsd  0x0(%rbp,%r12,1),%xmm2
subsd  %xmm3,%xmm2
mulsd  %xmm4,%xmm2
addsd  0x0(%r13,%r12,1),%xmm2
movsd  %xmm2,0x8(%r13,%r12,1)
movsd  0x8(%rbp,%r12,1),%xmm0
movsd  0x8(%rbx,%r12,1),%xmm1
lea    0x9b7(%rip),%rdi
call   1030 <printf@plt>
movsd  0x8(%rbp,%r12,1),%xmm0
movsd  0x98b(%rip),%xmm1
mulsd  %xmm1,%xmm0
mov    0x68(%rsp),%rax
addsd  (%rax,%r12,1),%xmm0
movsd  %xmm0,0x8(%rax,%r12,1)
movsd  0x8(%rbx,%r12,1),%xmm0
mulsd  %xmm1,%xmm0
mov    0x38(%rsp),%rbx
addsd  (%rbx,%r12,1),%xmm0
movsd  %xmm0,0x8(%rbx,%r12,1)
movsd  0x8(%r13,%r12,1),%xmm0
mulsd  %xmm1,%xmm0
mov    0xb8(%rsp),%r13
addsd  0x0(%r13,%r12,1),%xmm0
movsd  %xmm0,0x8(%r13,%r12,1)
movsd  (%r14,%r12,1),%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%r14,%r12,1)
movsd  0x8(%rax,%r12,1),%xmm0
mov    %rax,%rbp
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%r15d
movsd  0x8(%rbx,%r12,1),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%r14d
add    %r15d,%r14d
movsd  0x8(%r13,%r12,1),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
add    %r14d,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
xor    %edi,%edi
call   1060 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,(%rsp)
movsd  0x8aa(%rip),%xmm0
mov    $0x3,%edi
call   1060 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
mulsd  0x90(%rsp),%xmm0
movsd  %xmm0,0x10(%rsp)
movsd  (%rsp),%xmm0
mov    $0x5,%edi
call   1060 <pow@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x10(%rsp),%xmm2
divsd  %xmm0,%xmm2
movsd  0x8(%rbp,%r12,1),%xmm1
mov    %rbp,%r14
movsd  0x860(%rip),%xmm0
mulsd  %xmm0,%xmm1
mulsd  0x8(%r13,%r12,1),%xmm1
mulsd  %xmm2,%xmm1
movsd  %xmm1,0x20(%rsp)
movsd  0x83b(%rip),%xmm0
mov    $0x3,%edi
call   1060 <pow@plt>
mov    %eax,%ebp
movsd  (%rsp),%xmm0
mov    $0x5,%edi
call   1060 <pow@plt>
mov    %eax,%ebx
mov    0x38(%rsp),%r15
movsd  0x8(%r15,%r12,1),%xmm0
mulsd  0x812(%rip),%xmm0
mulsd  0x8(%r13,%r12,1),%xmm0
movapd %xmm0,0x70(%rsp)
movsd  0x7f5(%rip),%xmm0
mov    $0x3,%edi
call   1060 <pow@plt>
movd   %ebp,%xmm0
movd   %eax,%xmm1
punpckldq %xmm0,%xmm1
cvtdq2pd %xmm1,%xmm0
mulpd  0x80(%rsp),%xmm0
movapd %xmm0,0x10(%rsp)
movsd  (%rsp),%xmm0
mov    $0x5,%edi
call   1060 <pow@plt>
movd   %ebx,%xmm0
movd   %eax,%xmm1
punpckldq %xmm0,%xmm1
cvtdq2pd %xmm1,%xmm0
movapd 0x10(%rsp),%xmm1
divpd  %xmm0,%xmm1
movapd %xmm1,0x10(%rsp)
movsd  0x8(%r13,%r12,1),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ebx
add    %eax,%ebx
movsd  0x8(%r14,%r12,1),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
mov    %eax,%ebp
movsd  0x8(%r15,%r12,1),%xmm0
mov    $0x2,%edi
call   1060 <pow@plt>
add    %ebp,%eax
mov    0x58(%rsp),%rbp
sub    %eax,%ebx
xorps  %xmm2,%xmm2
cvtsi2sd %ebx,%xmm2
mov    0x60(%rsp),%rbx
mov    0xb0(%rsp),%r14
unpcklpd 0x70(%rsp),%xmm2
mulpd  0x10(%rsp),%xmm2
movapd %xmm2,(%rsp)
movapd %xmm2,%xmm1
unpckhpd %xmm2,%xmm1
lea    0x757(%rip),%rdi
movsd  0x20(%rsp),%xmm0
call   1030 <printf@plt>
movapd (%rsp),%xmm5
add    $0x8,%r12
cmp    %r12,0x30(%rsp)
jne    1600 <velocidad+0x4c0>
add    $0xd8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [10 x i8] c"%f %f %f\0A\00"
define void @velocidad(double %0, double %1, double* %2, double* %3, double* %4, double* %5, double* %6, double* %7, double* %8, i32 %9) {
%11 = alloca double
%12 = alloca double
%13 = alloca double*
%14 = alloca double*
%15 = alloca double*
%16 = alloca double*
%17 = alloca double*
%18 = alloca double*
%19 = alloca double*
%20 = alloca i32
%21 = alloca double
%22 = alloca double
%23 = alloca double
%24 = alloca double
%25 = alloca double
%26 = alloca double
%27 = alloca double
%28 = alloca double
%29 = alloca double
%30 = alloca double
%31 = alloca double
%32 = alloca double
%33 = alloca double
%34 = alloca double
%35 = alloca double
%36 = alloca double
%37 = alloca double
%38 = alloca i32
%39 = alloca double
%40 = alloca double
%41 = alloca double
%42 = alloca double
store double %0, double* %11
store double %1, double* %12
store double* %2, double** %13
store double* %3, double** %14
store double* %4, double** %15
store double* %5, double** %16
store double* %6, double** %17
store double* %7, double** %18
store double* %8, double** %19
store i32 %9, i32* %20
store double 1.000000e-02, double* %21
store double 3.141590e+00, double* %22
%43 = call i32 @pow(double 1.000000e+01, i32 5)
%44 = mul nsw i32 3, %43
%45 = sitofp i32 %44 to double
store double %45, double* %23
%46 = call i32 @pow(double 1.000000e+01, i32 -27)
%47 = sitofp i32 %46 to double
%48 = fmul double 0x3FFAC30F0D6CADB1, %47
store double %48, double* %24
store double 0x41B1DE784A000000, double* %25
%49 = call i32 @pow(double 1.000000e+01, i32 -19)
%50 = sitofp i32 %49 to double
%51 = fmul double 0x3FF9A283E4D17B5D, %50
store double %51, double* %26
%52 = load double, double* %12
%53 = load double, double* %22
%54 = fdiv double %53, 1.800000e+02
%55 = fmul double %52, %54
store double %55, double* %27
%56 = load double, double* %11
%57 = fmul double %56, 0x3FF9A284AA1E4C1B
%58 = call i32 @pow(double 1.000000e+01, i32 -13)
%59 = sitofp i32 %58 to double
%60 = fmul double %57, %59
store double %60, double* %28
%61 = load double, double* %25
%62 = load double, double* %28
%63 = load double, double* %24
%64 = load double, double* %25
%65 = call i32 @pow(double %64, i32 2)
%66 = sitofp i32 %65 to double
%67 = fmul double %63, %66
%68 = fdiv double %62, %67
%69 = fadd double %68, 1.000000e+00
%70 = call i32 @pow(double %69, i32 2)
%71 = sdiv i32 1, %70
%72 = sub nsw i32 1, %71
%73 = sitofp i32 %72 to double
%74 = call i32 @pow(double %73, i32 0)
%75 = sitofp i32 %74 to double
%76 = fmul double %61, %75
store double %76, double* %29
%77 = load double, double* %29
%78 = call i32 @pow(double %77, i32 2)
%79 = load double, double* %25
%80 = call i32 @pow(double %79, i32 2)
%81 = sdiv i32 %78, %80
%82 = sub nsw i32 1, %81
%83 = sdiv i32 1, %82
%84 = sitofp i32 %83 to double
%85 = call i32 @pow(double %84, i32 0)
%86 = sitofp i32 %85 to double
store double %86, double* %30
store double 0.000000e+00, double* %31
%87 = load double, double* %29
%88 = load double, double* %27
%89 = call double @sin(double %88)
%90 = fmul double %87, %89
store double %90, double* %32
%91 = load double, double* %29
%92 = load double, double* %27
%93 = call double @cos(double %92)
%94 = fmul double %91, %93
store double %94, double* %33
store double 6.378100e+06, double* %34
%95 = load double, double* %34
%96 = fmul double 2.000000e+00, %95
store double %96, double* %35
store double 0.000000e+00, double* %36
store double 0.000000e+00, double* %37
store i32 0, i32* %38
%97 = load double, double* %35
%98 = load double*, double** %13
%99 = getelementptr inbounds double, double* %98, i64 0
store double %97, double* %99
%100 = load double, double* %36
%101 = load double*, double** %14
%102 = getelementptr inbounds double, double* %101, i64 0
store double %100, double* %102
%103 = load double, double* %37
%104 = load double*, double** %15
%105 = getelementptr inbounds double, double* %104, i64 0
store double %103, double* %105
%106 = load double*, double** %16
%107 = getelementptr inbounds double, double* %106, i64 0
store double 0.000000e+00, double* %107
%108 = load double, double* %31
%109 = load double*, double** %17
%110 = getelementptr inbounds double, double* %109, i64 0
store double %108, double* %110
%111 = load double, double* %32
%112 = load double*, double** %18
%113 = getelementptr inbounds double, double* %112, i64 0
store double %111, double* %113
%114 = load double, double* %33
%115 = load double*, double** %19
%116 = getelementptr inbounds double, double* %115, i64 0
store double %114, double* %116
%117 = load double*, double** %13
%118 = getelementptr inbounds double, double* %117, i64 0
%119 = load double, double* %118
%120 = call i32 @pow(double %119, i32 2)
%121 = load double*, double** %14
%122 = getelementptr inbounds double, double* %121, i64 0
%123 = load double, double* %122
%124 = call i32 @pow(double %123, i32 2)
%125 = add nsw i32 %120, %124
%126 = load double*, double** %15
%127 = getelementptr inbounds double, double* %126, i64 0
%128 = load double, double* %127
%129 = call i32 @pow(double %128, i32 2)
%130 = add nsw i32 %125, %129
%131 = sitofp i32 %130 to double
%132 = call i32 @pow(double %131, i32 0)
%133 = sitofp i32 %132 to double
store double %133, double* %39
%134 = load double, double* %23
%135 = fneg double %134
%136 = load double, double* %34
%137 = call i32 @pow(double %136, i32 3)
%138 = sitofp i32 %137 to double
%139 = fmul double %135, %138
%140 = load double, double* %39
%141 = call i32 @pow(double %140, i32 5)
%142 = sitofp i32 %141 to double
%143 = fdiv double %139, %142
%144 = load double*, double** %13
%145 = getelementptr inbounds double, double* %144, i64 0
%146 = load double, double* %145
%147 = fmul double 3.000000e+00, %146
%148 = load double*, double** %15
%149 = getelementptr inbounds double, double* %148, i64 0
%150 = load double, double* %149
%151 = fmul double %147, %150
%152 = fmul double %143, %151
store double %152, double* %40
%153 = load double, double* %23
%154 = fneg double %153
%155 = load double, double* %34
%156 = call i32 @pow(double %155, i32 3)
%157 = sitofp i32 %156 to double
%158 = fmul double %154, %157
%159 = load double, double* %39
%160 = call i32 @pow(double %159, i32 5)
%161 = sitofp i32 %160 to double
%162 = fdiv double %158, %161
%163 = load double*, double** %14
%164 = getelementptr inbounds double, double* %163, i64 0
%165 = load double, double* %164
%166 = fmul double 3.000000e+00, %165
%167 = load double*, double** %15
%168 = getelementptr inbounds double, double* %167, i64 0
%169 = load double, double* %168
%170 = fmul double %166, %169
%171 = fmul double %162, %170
store double %171, double* %41
%172 = load double, double* %23
%173 = fneg double %172
%174 = load double, double* %34
%175 = call i32 @pow(double %174, i32 3)
%176 = sitofp i32 %175 to double
%177 = fmul double %173, %176
%178 = load double, double* %39
%179 = call i32 @pow(double %178, i32 5)
%180 = sitofp i32 %179 to double
%181 = fdiv double %177, %180
%182 = load double*, double** %15
%183 = getelementptr inbounds double, double* %182, i64 0
%184 = load double, double* %183
%185 = call i32 @pow(double %184, i32 2)
%186 = mul nsw i32 2, %185
%187 = load double*, double** %13
%188 = getelementptr inbounds double, double* %187, i64 0
%189 = load double, double* %188
%190 = call i32 @pow(double %189, i32 2)
%191 = sub nsw i32 %186, %190
%192 = load double*, double** %14
%193 = getelementptr inbounds double, double* %192, i64 0
%194 = load double, double* %193
%195 = call i32 @pow(double %194, i32 2)
%196 = sub nsw i32 %191, %195
%197 = sitofp i32 %196 to double
%198 = fmul double %181, %197
store double %198, double* %42
%199 = load double, double* %31
%200 = load double, double* %32
%201 = load double, double* %33
%202 = call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), double %199, double %200, double %201)
store i32 1, i32* %38
br label %203
203: ; preds = %500, %10
%204 = load i32, i32* %38
%205 = load i32, i32* %20
%206 = icmp slt i32 %204, %205
br i1 %206, label %207, label %503
207: ; preds = %203
%208 = load double, double* %26
%209 = load double, double* %21
%210 = fmul double %208, %209
%211 = load double, double* %30
%212 = load double, double* %24
%213 = fmul double %211, %212
%214 = fdiv double %210, %213
%215 = load double*, double** %18
%216 = load i32, i32* %38
%217 = sub nsw i32 %216, 1
%218 = sext i32 %217 to i64
%219 = getelementptr inbounds double, double* %215, i64 %218
%220 = load double, double* %219
%221 = load double, double* %42
%222 = load double*, double** %19
%223 = load i32, i32* %38
%224 = sub nsw i32 %223, 1
%225 = sext i32 %224 to i64
%226 = getelementptr inbounds double, double* %222, i64 %225
%227 = load double, double* %226
%228 = load double, double* %41
%229 = fmul double %227, %228
%230 = fneg double %229
%231 = call double @llvm.fmuladd.f64(double %220, double %221, double %230)
%232 = load double*, double** %17
%233 = load i32, i32* %38
%234 = sub nsw i32 %233, 1
%235 = sext i32 %234 to i64
%236 = getelementptr inbounds double, double* %232, i64 %235
%237 = load double, double* %236
%238 = call double @llvm.fmuladd.f64(double %214, double %231, double %237)
%239 = load double*, double** %17
%240 = load i32, i32* %38
%241 = sext i32 %240 to i64
%242 = getelementptr inbounds double, double* %239, i64 %241
store double %238, double* %242
%243 = load double, double* %26
%244 = load double, double* %21
%245 = fmul double %243, %244
%246 = load double, double* %30
%247 = load double, double* %24
%248 = fmul double %246, %247
%249 = fdiv double %245, %248
%250 = load double*, double** %17
%251 = load i32, i32* %38
%252 = sub nsw i32 %251, 1
%253 = sext i32 %252 to i64
%254 = getelementptr inbounds double, double* %250, i64 %253
%255 = load double, double* %254
%256 = load double, double* %42
%257 = load double*, double** %19
%258 = load i32, i32* %38
%259 = sub nsw i32 %258, 1
%260 = sext i32 %259 to i64
%261 = getelementptr inbounds double, double* %257, i64 %260
%262 = load double, double* %261
%263 = load double, double* %40
%264 = fmul double %262, %263
%265 = fneg double %264
%266 = call double @llvm.fmuladd.f64(double %255, double %256, double %265)
%267 = fmul double %249, %266
%268 = fneg double %267
%269 = load double*, double** %18
%270 = load i32, i32* %38
%271 = sub nsw i32 %270, 1
%272 = sext i32 %271 to i64
%273 = getelementptr inbounds double, double* %269, i64 %272
%274 = load double, double* %273
%275 = fadd double %268, %274
%276 = load double*, double** %18
%277 = load i32, i32* %38
%278 = sext i32 %277 to i64
%279 = getelementptr inbounds double, double* %276, i64 %278
store double %275, double* %279
%280 = load double, double* %26
%281 = load double, double* %21
%282 = fmul double %280, %281
%283 = load double, double* %30
%284 = load double, double* %24
%285 = fmul double %283, %284
%286 = fdiv double %282, %285
%287 = load double*, double** %17
%288 = load i32, i32* %38
%289 = sub nsw i32 %288, 1
%290 = sext i32 %289 to i64
%291 = getelementptr inbounds double, double* %287, i64 %290
%292 = load double, double* %291
%293 = load double, double* %41
%294 = load double*, double** %18
%295 = load i32, i32* %38
%296 = sub nsw i32 %295, 1
%297 = sext i32 %296 to i64
%298 = getelementptr inbounds double, double* %294, i64 %297
%299 = load double, double* %298
%300 = load double, double* %40
%301 = fmul double %299, %300
%302 = fneg double %301
%303 = call double @llvm.fmuladd.f64(double %292, double %293, double %302)
%304 = load double*, double** %19
%305 = load i32, i32* %38
%306 = sub nsw i32 %305, 1
%307 = sext i32 %306 to i64
%308 = getelementptr inbounds double, double* %304, i64 %307
%309 = load double, double* %308
%310 = call double @llvm.fmuladd.f64(double %286, double %303, double %309)
%311 = load double*, double** %19
%312 = load i32, i32* %38
%313 = sext i32 %312 to i64
%314 = getelementptr inbounds double, double* %311, i64 %313
store double %310, double* %314
%315 = load double*, double** %17
%316 = load i32, i32* %38
%317 = sext i32 %316 to i64
%318 = getelementptr inbounds double, double* %315, i64 %317
%319 = load double, double* %318
%320 = load double*, double** %18
%321 = load i32, i32* %38
%322 = sext i32 %321 to i64
%323 = getelementptr inbounds double, double* %320, i64 %322
%324 = load double, double* %323
%325 = load double*, double** %19
%326 = load i32, i32* %38
%327 = sext i32 %326 to i64
%328 = getelementptr inbounds double, double* %325, i64 %327
%329 = load double, double* %328
%330 = call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), double %319, double %324, double %329)
%331 = load double*, double** %13
%332 = load i32, i32* %38
%333 = sub nsw i32 %332, 1
%334 = sext i32 %333 to i64
%335 = getelementptr inbounds double, double* %331, i64 %334
%336 = load double, double* %335
%337 = load double*, double** %17
%338 = load i32, i32* %38
%339 = sext i32 %338 to i64
%340 = getelementptr inbounds double, double* %337, i64 %339
%341 = load double, double* %340
%342 = load double, double* %21
%343 = call double @llvm.fmuladd.f64(double %341, double %342, double %336)
%344 = load double*, double** %13
%345 = load i32, i32* %38
%346 = sext i32 %345 to i64
%347 = getelementptr inbounds double, double* %344, i64 %346
store double %343, double* %347
%348 = load double*, double** %14
%349 = load i32, i32* %38
%350 = sub nsw i32 %349, 1
%351 = sext i32 %350 to i64
%352 = getelementptr inbounds double, double* %348, i64 %351
%353 = load double, double* %352
%354 = load double*, double** %18
%355 = load i32, i32* %38
%356 = sext i32 %355 to i64
%357 = getelementptr inbounds double, double* %354, i64 %356
%358 = load double, double* %357
%359 = load double, double* %21
%360 = call double @llvm.fmuladd.f64(double %358, double %359, double %353)
%361 = load double*, double** %14
%362 = load i32, i32* %38
%363 = sext i32 %362 to i64
%364 = getelementptr inbounds double, double* %361, i64 %363
store double %360, double* %364
%365 = load double*, double** %15
%366 = load i32, i32* %38
%367 = sub nsw i32 %366, 1
%368 = sext i32 %367 to i64
%369 = getelementptr inbounds double, double* %365, i64 %368
%370 = load double, double* %369
%371 = load double*, double** %19
%372 = load i32, i32* %38
%373 = sext i32 %372 to i64
%374 = getelementptr inbounds double, double* %371, i64 %373
%375 = load double, double* %374
%376 = load double, double* %21
%377 = call double @llvm.fmuladd.f64(double %375, double %376, double %370)
%378 = load double*, double** %15
%379 = load i32, i32* %38
%380 = sext i32 %379 to i64
%381 = getelementptr inbounds double, double* %378, i64 %380
store double %377, double* %381
%382 = load double*, double** %16
%383 = load i32, i32* %38
%384 = sub nsw i32 %383, 1
%385 = sext i32 %384 to i64
%386 = getelementptr inbounds double, double* %382, i64 %385
%387 = load double, double* %386
%388 = load double, double* %21
%389 = fadd double %387, %388
%390 = load double*, double** %16
%391 = load i32, i32* %38
%392 = sext i32 %391 to i64
%393 = getelementptr inbounds double, double* %390, i64 %392
store double %389, double* %393
%394 = load double*, double** %13
%395 = load i32, i32* %38
%396 = sext i32 %395 to i64
%397 = getelementptr inbounds double, double* %394, i64 %396
%398 = load double, double* %397
%399 = call i32 @pow(double %398, i32 2)
%400 = load double*, double** %14
%401 = load i32, i32* %38
%402 = sext i32 %401 to i64
%403 = getelementptr inbounds double, double* %400, i64 %402
%404 = load double, double* %403
%405 = call i32 @pow(double %404, i32 2)
%406 = add nsw i32 %399, %405
%407 = load double*, double** %15
%408 = load i32, i32* %38
%409 = sext i32 %408 to i64
%410 = getelementptr inbounds double, double* %407, i64 %409
%411 = load double, double* %410
%412 = call i32 @pow(double %411, i32 2)
%413 = add nsw i32 %406, %412
%414 = sitofp i32 %413 to double
%415 = call i32 @pow(double %414, i32 0)
%416 = sitofp i32 %415 to double
store double %416, double* %39
%417 = load double, double* %23
%418 = fneg double %417
%419 = load double, double* %34
%420 = call i32 @pow(double %419, i32 3)
%421 = sitofp i32 %420 to double
%422 = fmul double %418, %421
%423 = load double, double* %39
%424 = call i32 @pow(double %423, i32 5)
%425 = sitofp i32 %424 to double
%426 = fdiv double %422, %425
%427 = load double*, double** %13
%428 = load i32, i32* %38
%429 = sext i32 %428 to i64
%430 = getelementptr inbounds double, double* %427, i64 %429
%431 = load double, double* %430
%432 = fmul double 3.000000e+00, %431
%433 = load double*, double** %15
%434 = load i32, i32* %38
%435 = sext i32 %434 to i64
%436 = getelementptr inbounds double, double* %433, i64 %435
%437 = load double, double* %436
%438 = fmul double %432, %437
%439 = fmul double %426, %438
store double %439, double* %40
%440 = load double, double* %23
%441 = fneg double %440
%442 = load double, double* %34
%443 = call i32 @pow(double %442, i32 3)
%444 = sitofp i32 %443 to double
%445 = fmul double %441, %444
%446 = load double, double* %39
%447 = call i32 @pow(double %446, i32 5)
%448 = sitofp i32 %447 to double
%449 = fdiv double %445, %448
%450 = load double*, double** %14
%451 = load i32, i32* %38
%452 = sext i32 %451 to i64
%453 = getelementptr inbounds double, double* %450, i64 %452
%454 = load double, double* %453
%455 = fmul double 3.000000e+00, %454
%456 = load double*, double** %15
%457 = load i32, i32* %38
%458 = sext i32 %457 to i64
%459 = getelementptr inbounds double, double* %456, i64 %458
%460 = load double, double* %459
%461 = fmul double %455, %460
%462 = fmul double %449, %461
store double %462, double* %41
%463 = load double, double* %23
%464 = fneg double %463
%465 = load double, double* %34
%466 = call i32 @pow(double %465, i32 3)
%467 = sitofp i32 %466 to double
%468 = fmul double %464, %467
%469 = load double, double* %39
%470 = call i32 @pow(double %469, i32 5)
%471 = sitofp i32 %470 to double
%472 = fdiv double %468, %471
%473 = load double*, double** %15
%474 = load i32, i32* %38
%475 = sext i32 %474 to i64
%476 = getelementptr inbounds double, double* %473, i64 %475
%477 = load double, double* %476
%478 = call i32 @pow(double %477, i32 2)
%479 = mul nsw i32 2, %478
%480 = load double*, double** %13
%481 = load i32, i32* %38
%482 = sext i32 %481 to i64
%483 = getelementptr inbounds double, double* %480, i64 %482
%484 = load double, double* %483
%485 = call i32 @pow(double %484, i32 2)
%486 = sub nsw i32 %479, %485
%487 = load double*, double** %14
%488 = load i32, i32* %38
%489 = sext i32 %488 to i64
%490 = getelementptr inbounds double, double* %487, i64 %489
%491 = load double, double* %490
%492 = call i32 @pow(double %491, i32 2)
%493 = sub nsw i32 %486, %492
%494 = sitofp i32 %493 to double
%495 = fmul double %472, %494
store double %495, double* %42
%496 = load double, double* %40
%497 = load double, double* %41
%498 = load double, double* %42
%499 = call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), double %496, double %497, double %498)
br label %500
500: ; preds = %207
%501 = load i32, i32* %38
%502 = add nsw i32 %501, 1
store i32 %502, i32* %38
br label %203
503: ; preds = %203
ret void
}

LLVM IR (-O2):
@.str = [10 x i8] c"%f %f %f\0A\00"
define void @velocidad(double %0, double %1, double* nocapture %2, double* nocapture %3, double* nocapture %4, double* nocapture %5, double* nocapture %6, double* nocapture %7, double* nocapture %8, i32 %9) {
%11 = tail call i32 @pow(double 1.000000e+01, i32 5)
%12 = mul nsw i32 %11, 3
%13 = sitofp i32 %12 to double
%14 = tail call i32 @pow(double 1.000000e+01, i32 -27)
%15 = sitofp i32 %14 to double
%16 = fmul double %15, 0x3FFAC30F0D6CADB1
%17 = tail call i32 @pow(double 1.000000e+01, i32 -19)
%18 = fmul double %1, 0x3F91DF45A50DE270
%19 = fmul double %0, 0x3FF9A284AA1E4C1B
%20 = tail call i32 @pow(double 1.000000e+01, i32 -13)
%21 = sitofp i32 %20 to double
%22 = fmul double %19, %21
%23 = tail call i32 @pow(double 0x41B1DE784A000000, i32 2)
%24 = sitofp i32 %23 to double
%25 = fmul double %16, %24
%26 = fdiv double %22, %25
%27 = fadd double %26, 1.000000e+00
%28 = tail call i32 @pow(double %27, i32 2)
%29 = add i32 %28, 1
%30 = icmp ult i32 %29, 3
%31 = sub nsw i32 1, %28
%32 = select i1 %30, i32 %31, i32 1
%33 = sitofp i32 %32 to double
%34 = tail call i32 @pow(double %33, i32 0)
%35 = sitofp i32 %34 to double
%36 = fmul double %35, 0x41B1DE784A000000
%37 = tail call i32 @pow(double %36, i32 2)
%38 = tail call i32 @pow(double 0x41B1DE784A000000, i32 2)
%39 = sdiv i32 %37, %38
%40 = sub nsw i32 1, %39
%41 = icmp ult i32 %39, 3
%42 = select i1 %41, i32 %40, i32 0
%43 = sitofp i32 %42 to double
%44 = tail call i32 @pow(double %43, i32 0)
%45 = tail call double @sin(double %18)
%46 = fmul double %36, %45
%47 = tail call double @cos(double %18)
%48 = fmul double %36, %47
store double 1.275620e+07, double* %2
store double 0.000000e+00, double* %3
store double 0.000000e+00, double* %4
store double 0.000000e+00, double* %5
store double 0.000000e+00, double* %6
store double %46, double* %7
store double %48, double* %8
%49 = load double, double* %2
%50 = tail call i32 @pow(double %49, i32 2)
%51 = load double, double* %3
%52 = tail call i32 @pow(double %51, i32 2)
%53 = add nsw i32 %52, %50
%54 = load double, double* %4
%55 = tail call i32 @pow(double %54, i32 2)
%56 = add nsw i32 %53, %55
%57 = sitofp i32 %56 to double
%58 = tail call i32 @pow(double %57, i32 0)
%59 = sitofp i32 %58 to double
%60 = fneg double %13
%61 = tail call i32 @pow(double 6.378100e+06, i32 3)
%62 = tail call i32 @pow(double %59, i32 5)
%63 = load double, double* %2
%64 = load double, double* %4
%65 = tail call i32 @pow(double 6.378100e+06, i32 3)
%66 = tail call i32 @pow(double %59, i32 5)
%67 = load double, double* %3
%68 = load double, double* %4
%69 = tail call i32 @pow(double 6.378100e+06, i32 3)
%70 = tail call i32 @pow(double %59, i32 5)
%71 = load double, double* %4
%72 = tail call i32 @pow(double %71, i32 2)
%73 = load double, double* %2
%74 = tail call i32 @pow(double %73, i32 2)
%75 = load double, double* %3
%76 = tail call i32 @pow(double %75, i32 2)
%77 = tail call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), double 0.000000e+00, double %46, double %48)
%78 = icmp sgt i32 %9, 1
br i1 %78, label %79, label %224
79: ; preds = %10
%80 = shl nsw i32 %72, 1
%81 = add i32 %74, %76
%82 = sub i32 %80, %81
%83 = sitofp i32 %82 to double
%84 = insertelement <2 x i32> poison, i32 %69, i64 0
%85 = insertelement <2 x i32> %84, i32 %65, i64 1
%86 = sitofp <2 x i32> %85 to <2 x double>
%87 = insertelement <2 x double> poison, double %60, i64 0
%88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer
%89 = fmul <2 x double> %88, %86
%90 = insertelement <2 x i32> poison, i32 %70, i64 0
%91 = insertelement <2 x i32> %90, i32 %66, i64 1
%92 = sitofp <2 x i32> %91 to <2 x double>
%93 = fdiv <2 x double> %89, %92
%94 = fmul double %67, 3.000000e+00
%95 = fmul double %94, %68
%96 = insertelement <2 x double> poison, double %83, i64 0
%97 = insertelement <2 x double> %96, double %95, i64 1
%98 = fmul <2 x double> %93, %97
%99 = sitofp i32 %61 to double
%100 = fmul double %60, %99
%101 = sitofp i32 %62 to double
%102 = fdiv double %100, %101
%103 = fmul double %63, 3.000000e+00
%104 = fmul double %103, %64
%105 = fmul double %102, %104
%106 = sitofp i32 %44 to double
%107 = sitofp i32 %17 to double
%108 = fmul double %107, 0x3FF9A283E4D17B5D
%109 = fmul double %108, 1.000000e-02
%110 = fmul double %16, %106
%111 = fdiv double %109, %110
%112 = zext i32 %9 to i64
br label %113
113: ; preds = %79, %113
%114 = phi i64 [ 1, %79 ], [ %222, %113 ]
%115 = phi double [ %105, %79 ], [ %189, %113 ]
%116 = phi <2 x double> [ %98, %79 ], [ %218, %113 ]
%117 = add nsw i64 %114, -1
%118 = getelementptr inbounds double, double* %7, i64 %117
%119 = load double, double* %118
%120 = getelementptr inbounds double, double* %8, i64 %117
%121 = load double, double* %120
%122 = fneg double %121
%123 = extractelement <2 x double> %116, i64 1
%124 = fmul double %123, %122
%125 = extractelement <2 x double> %116, i64 0
%126 = tail call double @llvm.fmuladd.f64(double %119, double %125, double %124)
%127 = getelementptr inbounds double, double* %6, i64 %117
%128 = load double, double* %127
%129 = tail call double @llvm.fmuladd.f64(double %111, double %126, double %128)
%130 = getelementptr inbounds double, double* %6, i64 %114
store double %129, double* %130
%131 = load double, double* %120
%132 = fneg double %131
%133 = fmul double %115, %132
%134 = tail call double @llvm.fmuladd.f64(double %128, double %125, double %133)
%135 = load double, double* %118
%136 = fmul double %111, %134
%137 = fsub double %135, %136
%138 = getelementptr inbounds double, double* %7, i64 %114
store double %137, double* %138
%139 = load double, double* %127
%140 = fneg double %135
%141 = fmul double %115, %140
%142 = tail call double @llvm.fmuladd.f64(double %139, double %123, double %141)
%143 = load double, double* %120
%144 = tail call double @llvm.fmuladd.f64(double %111, double %142, double %143)
%145 = getelementptr inbounds double, double* %8, i64 %114
store double %144, double* %145
%146 = load double, double* %130
%147 = load double, double* %138
%148 = tail call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), double %146, double %147, double %144)
%149 = getelementptr inbounds double, double* %2, i64 %117
%150 = load double, double* %149
%151 = load double, double* %130
%152 = tail call double @llvm.fmuladd.f64(double %151, double 1.000000e-02, double %150)
%153 = getelementptr inbounds double, double* %2, i64 %114
store double %152, double* %153
%154 = getelementptr inbounds double, double* %3, i64 %117
%155 = load double, double* %154
%156 = load double, double* %138
%157 = tail call double @llvm.fmuladd.f64(double %156, double 1.000000e-02, double %155)
%158 = getelementptr inbounds double, double* %3, i64 %114
store double %157, double* %158
%159 = getelementptr inbounds double, double* %4, i64 %117
%160 = load double, double* %159
%161 = load double, double* %145
%162 = tail call double @llvm.fmuladd.f64(double %161, double 1.000000e-02, double %160)
%163 = getelementptr inbounds double, double* %4, i64 %114
store double %162, double* %163
%164 = getelementptr inbounds double, double* %5, i64 %117
%165 = load double, double* %164
%166 = fadd double %165, 1.000000e-02
%167 = getelementptr inbounds double, double* %5, i64 %114
store double %166, double* %167
%168 = load double, double* %153
%169 = tail call i32 @pow(double %168, i32 2)
%170 = load double, double* %158
%171 = tail call i32 @pow(double %170, i32 2)
%172 = add nsw i32 %171, %169
%173 = load double, double* %163
%174 = tail call i32 @pow(double %173, i32 2)
%175 = add nsw i32 %172, %174
%176 = sitofp i32 %175 to double
%177 = tail call i32 @pow(double %176, i32 0)
%178 = sitofp i32 %177 to double
%179 = tail call i32 @pow(double 6.378100e+06, i32 3)
%180 = sitofp i32 %179 to double
%181 = fmul double %60, %180
%182 = tail call i32 @pow(double %178, i32 5)
%183 = sitofp i32 %182 to double
%184 = fdiv double %181, %183
%185 = load double, double* %153
%186 = fmul double %185, 3.000000e+00
%187 = load double, double* %163
%188 = fmul double %186, %187
%189 = fmul double %184, %188
%190 = tail call i32 @pow(double 6.378100e+06, i32 3)
%191 = tail call i32 @pow(double %178, i32 5)
%192 = load double, double* %158
%193 = fmul double %192, 3.000000e+00
%194 = load double, double* %163
%195 = fmul double %193, %194
%196 = tail call i32 @pow(double 6.378100e+06, i32 3)
%197 = insertelement <2 x i32> poison, i32 %196, i64 0
%198 = insertelement <2 x i32> %197, i32 %190, i64 1
%199 = sitofp <2 x i32> %198 to <2 x double>
%200 = fmul <2 x double> %88, %199
%201 = tail call i32 @pow(double %178, i32 5)
%202 = insertelement <2 x i32> poison, i32 %201, i64 0
%203 = insertelement <2 x i32> %202, i32 %191, i64 1
%204 = sitofp <2 x i32> %203 to <2 x double>
%205 = fdiv <2 x double> %200, %204
%206 = load double, double* %163
%207 = tail call i32 @pow(double %206, i32 2)
%208 = shl nsw i32 %207, 1
%209 = load double, double* %153
%210 = tail call i32 @pow(double %209, i32 2)
%211 = load double, double* %158
%212 = tail call i32 @pow(double %211, i32 2)
%213 = add i32 %210, %212
%214 = sub i32 %208, %213
%215 = sitofp i32 %214 to double
%216 = insertelement <2 x double> poison, double %215, i64 0
%217 = insertelement <2 x double> %216, double %195, i64 1
%218 = fmul <2 x double> %205, %217
%219 = extractelement <2 x double> %218, i64 0
%220 = extractelement <2 x double> %218, i64 1
%221 = tail call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), double %189, double %220, double %219)
%222 = add nuw nsw i64 %114, 1
%223 = icmp eq i64 %222, %112
br i1 %223, label %224, label %113
224: ; preds = %113, %10
ret void
}