#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 */
typedef int temp0;

/* Variables and functions */
char EOF;
int /*<<< orphan*/ exit(int);
char getchar();
int /*<<< orphan*/ printf(char *, ...);
double sqrt(double);
int main(void) {
  char c;
  int n = 0, c1, c2;
  double C, tempX, temp0, temp1, temp2;
  double S1, S2, average, stdDEV;
  if ((c = getchar()) == EOF) {
    printf("NO INPUT, TRY AGAIN");
    exit(1);
  } else {
    ++n;
    c1 = (int)c;
  }
  if ((c = getchar()) == EOF) {
    printf("NEED MORE THAN ONE VALUE, TRY AGAIN");
    exit(1);
  } else {
    ++n;
    c2 = (int)c;
  }
  tempX = c1;
  temp0 = c1 * c2;
  temp1 = c1;
  temp2 = c1 * c1;
  while ((c = getchar()) != EOF) {
    if (n >= 1001)
      break;
    else
      n++;
    c1 = (int)c;
    temp0 = temp0 + (c2 * c1);
    temp1 = temp1 + c2;
    temp2 = temp2 + (c2 * c2);
    c2 = c1;
  }
  temp0 = temp0 + (c1 * tempX);
  S1 = temp1 + c2;
  S2 = temp2 + (c2 * c2);
  printf("temp0 = %g\nS1 = %g\nS2 = %g\nn = %d\n\n", temp0, S1, S2, n);
  C = (n * (temp0)-S1 * S1) / ((n * S2) - (S1 * S1));
  average = S1 / n;
  stdDEV = sqrt(S2 / n - average * average);
  printf("Corr. Coefficient = %g\nAverage = %g\nStandard Deviation=%g          "
         "\n\n",
         C, average, stdDEV);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0xc(%rbp)
mov    $0x0,%al
call   1040 <getchar@plt>
mov    %al,-0x5(%rbp)
movsbl %al,%eax
mov    0x2e7e(%rip),%rcx
movsbl (%rcx),%ecx
cmp    %ecx,%eax
jne    118d <main+0x4d>
lea    0xe84(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x1,%edi
call   1060 <exit@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movsbl -0x5(%rbp),%eax
mov    %eax,-0x10(%rbp)
mov    $0x0,%al
call   1040 <getchar@plt>
mov    %al,-0x5(%rbp)
movsbl %al,%eax
mov    0x2e37(%rip),%rcx
movsbl (%rcx),%ecx
cmp    %ecx,%eax
jne    11d4 <main+0x94>
lea    0xe51(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x1,%edi
call   1060 <exit@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movsbl -0x5(%rbp),%eax
mov    %eax,-0x14(%rbp)
cvtsi2sdl -0x10(%rbp),%xmm0
movsd  %xmm0,-0x28(%rbp)
mov    -0x10(%rbp),%eax
imul   -0x14(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x30(%rbp)
cvtsi2sdl -0x10(%rbp),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%eax
imul   -0x10(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    $0x0,%al
call   1040 <getchar@plt>
mov    %al,-0x5(%rbp)
movsbl %al,%eax
mov    0x2dbc(%rip),%rcx
movsbl (%rcx),%ecx
cmp    %ecx,%eax
je     12a9 <main+0x169>
cmpl   $0x3e9,-0xc(%rbp)
jl     1249 <main+0x109>
jmp    12a9 <main+0x169>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
movsbl -0x5(%rbp),%eax
mov    %eax,-0x10(%rbp)
movsd  -0x30(%rbp),%xmm0
mov    -0x14(%rbp),%eax
imul   -0x10(%rbp),%eax
cvtsi2sd %eax,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x38(%rbp),%xmm0
cvtsi2sdl -0x14(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x40(%rbp),%xmm0
mov    -0x14(%rbp),%eax
imul   -0x14(%rbp),%eax
cvtsi2sd %eax,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0x14(%rbp)
jmp    1218 <main+0xd8>
movsd  -0x30(%rbp),%xmm1
cvtsi2sdl -0x10(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x38(%rbp),%xmm0
cvtsi2sdl -0x14(%rbp),%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x40(%rbp),%xmm0
mov    -0x14(%rbp),%eax
imul   -0x14(%rbp),%eax
cvtsi2sd %eax,%xmm1
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x48(%rbp),%xmm1
movsd  -0x50(%rbp),%xmm2
mov    -0xc(%rbp),%esi
lea    0xd2e(%rip),%rdi
mov    $0x3,%al
call   1030 <printf@plt>
cvtsi2sdl -0xc(%rbp),%xmm0
movsd  -0x30(%rbp),%xmm2
movsd  -0x48(%rbp),%xmm1
mulsd  -0x48(%rbp),%xmm1
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
cvtsi2sdl -0xc(%rbp),%xmm1
movsd  -0x50(%rbp),%xmm3
movsd  -0x48(%rbp),%xmm2
mulsd  -0x48(%rbp),%xmm2
movq   %xmm2,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm2
mulsd  %xmm3,%xmm1
addsd  %xmm2,%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
movsd  -0x48(%rbp),%xmm0
cvtsi2sdl -0xc(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x50(%rbp),%xmm1
cvtsi2sdl -0xc(%rbp),%xmm0
divsd  %xmm0,%xmm1
movsd  -0x58(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
call   1050 <sqrt@plt>
movsd  %xmm0,-0x60(%rbp)
movsd  -0x20(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm1
movsd  -0x60(%rbp),%xmm2
lea    0xc72(%rip),%rdi
mov    $0x3,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x30,%rsp
xor    %eax,%eax
call   1040 <getchar@plt>
mov    0x2e8e(%rip),%r14
cmp    (%r14),%al
je     1382 <main+0x242>
mov    %eax,%ebx
xor    %eax,%eax
call   1040 <getchar@plt>
cmp    (%r14),%al
je     138b <main+0x24b>
movsbl %bl,%r12d
cvtsi2sd %r12d,%xmm0
movsd  %xmm0,0x28(%rsp)
movsbl %al,%ebp
mov    %ebp,%eax
imul   %r12d,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x10(%rsp)
mov    %r12d,%eax
imul   %r12d,%eax
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x8(%rsp)
xor    %eax,%eax
call   1040 <getchar@plt>
mov    $0x2,%r15d
cmp    (%r14),%al
jne    11d7 <main+0x97>
movsd  0x28(%rsp),%xmm4
movsd  0x8(%rsp),%xmm3
movsd  0x10(%rsp),%xmm1
jmp    127d <main+0x13d>
mov    $0x2,%ebx
movsd  0x28(%rsp),%xmm4
movsd  0x8(%rsp),%xmm3
movsd  0x10(%rsp),%xmm1
xchg   %ax,%ax
movapd %xmm4,%xmm0
xorps  %xmm5,%xmm5
cvtsi2sd %ebp,%xmm5
movapd %xmm3,%xmm2
mov    %ebp,%ecx
imul   %ebp,%ebp
xorps  %xmm3,%xmm3
cvtsi2sd %ebp,%xmm3
movsbl %al,%ebp
imul   %ebp,%ecx
xorps  %xmm4,%xmm4
cvtsi2sd %ecx,%xmm4
addsd  %xmm1,%xmm4
movsd  %xmm4,0x10(%rsp)
addsd  %xmm0,%xmm5
movsd  %xmm5,0x20(%rsp)
lea    0x1(%rbx),%r15d
addsd  %xmm2,%xmm3
movsd  %xmm3,0x8(%rsp)
xor    %eax,%eax
call   1040 <getchar@plt>
cmp    (%r14),%al
je     1268 <main+0x128>
mov    %ebp,%r12d
cmp    $0x3e8,%ebx
mov    %r15d,%ebx
movsd  0x8(%rsp),%xmm3
movsd  0x10(%rsp),%xmm1
movsd  0x20(%rsp),%xmm4
jb     11f0 <main+0xb0>
jmp    127d <main+0x13d>
mov    %ebp,%r12d
movsd  0x8(%rsp),%xmm3
movsd  0x10(%rsp),%xmm1
movsd  0x20(%rsp),%xmm4
xorps  %xmm2,%xmm2
cvtsi2sd %r12d,%xmm2
mulsd  0x28(%rsp),%xmm2
addsd  %xmm1,%xmm2
movapd %xmm2,%xmm0
movsd  %xmm2,0x8(%rsp)
xorps  %xmm1,%xmm1
cvtsi2sd %ebp,%xmm1
addsd  %xmm4,%xmm1
movapd %xmm1,0x10(%rsp)
imul   %ebp,%ebp
xorps  %xmm2,%xmm2
cvtsi2sd %ebp,%xmm2
addsd  %xmm3,%xmm2
movsd  %xmm2,0x20(%rsp)
lea    0xd83(%rip),%rdi
mov    %r15d,%esi
mov    $0x3,%al
call   1030 <printf@plt>
movapd 0x10(%rsp),%xmm1
xorps  %xmm4,%xmm4
cvtsi2sd %r15d,%xmm4
movapd 0xd1b(%rip),%xmm3
xorpd  %xmm1,%xmm3
mulsd  %xmm1,%xmm3
movsd  0x8(%rsp),%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm3,%xmm0
movapd %xmm4,%xmm2
movsd  0x20(%rsp),%xmm5
mulsd  %xmm5,%xmm2
addsd  %xmm3,%xmm2
movapd %xmm0,%xmm3
divsd  %xmm2,%xmm3
movapd %xmm5,%xmm0
divsd  %xmm4,%xmm1
divsd  %xmm4,%xmm0
movapd %xmm1,%xmm2
mulsd  %xmm1,%xmm2
subsd  %xmm2,%xmm0
xorpd  %xmm2,%xmm2
ucomisd %xmm2,%xmm0
jb     1340 <main+0x200>
xorps  %xmm2,%xmm2
sqrtsd %xmm0,%xmm2
jmp    1361 <main+0x221>
movsd  %xmm3,0x8(%rsp)
movapd %xmm1,0x10(%rsp)
call   1050 <sqrt@plt>
movapd 0x10(%rsp),%xmm1
movsd  0x8(%rsp),%xmm3
movapd %xmm0,%xmm2
lea    0xd04(%rip),%rdi
movapd %xmm3,%xmm0
mov    $0x3,%al
call   1030 <printf@plt>
xor    %eax,%eax
add    $0x30,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret
lea    0xc87(%rip),%rdi
jmp    1392 <main+0x252>
lea    0xc92(%rip),%rdi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x1,%edi
call   1060 <exit@plt>

LLVM IR (-O0):
@EOF = global i8 0
@.str = [20 x i8] c"NO INPUT, TRY AGAIN\00"
@.str.1 = [36 x i8] c"NEED MORE THAN ONE VALUE, TRY AGAIN\00"
@.str.2 = [36 x i8] c"temp0 = %g\0AS1 = %g\0AS2 = %g\0An = %d\0A\0A\00"
@.str.3 = [70 x i8] c"Corr. Coefficient = %g\0AAverage = %g\0AStandard Deviation=%g \0A\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i8
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
store i32 0, i32* %1
store i32 0, i32* %3
%15 = call signext i8 (...) @getchar()
store i8 %15, i8* %2
%16 = sext i8 %15 to i32
%17 = load i8, i8* @EOF
%18 = sext i8 %17 to i32
%19 = icmp eq i32 %16, %18
br i1 %19, label %20, label %23
20: ; preds = %0
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0))
%22 = call i32 @exit(i32 1)
unreachable
23: ; preds = %0
%24 = load i32, i32* %3
%25 = add nsw i32 %24, 1
store i32 %25, i32* %3
%26 = load i8, i8* %2
%27 = sext i8 %26 to i32
store i32 %27, i32* %4
br label %28
28: ; preds = %23
%29 = call signext i8 (...) @getchar()
store i8 %29, i8* %2
%30 = sext i8 %29 to i32
%31 = load i8, i8* @EOF
%32 = sext i8 %31 to i32
%33 = icmp eq i32 %30, %32
br i1 %33, label %34, label %37
34: ; preds = %28
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.1, i64 0, i64 0))
%36 = call i32 @exit(i32 1)
unreachable
37: ; preds = %28
%38 = load i32, i32* %3
%39 = add nsw i32 %38, 1
store i32 %39, i32* %3
%40 = load i8, i8* %2
%41 = sext i8 %40 to i32
store i32 %41, i32* %5
br label %42
42: ; preds = %37
%43 = load i32, i32* %4
%44 = sitofp i32 %43 to double
store double %44, double* %7
%45 = load i32, i32* %4
%46 = load i32, i32* %5
%47 = mul nsw i32 %45, %46
%48 = sitofp i32 %47 to double
store double %48, double* %8
%49 = load i32, i32* %4
%50 = sitofp i32 %49 to double
store double %50, double* %9
%51 = load i32, i32* %4
%52 = load i32, i32* %4
%53 = mul nsw i32 %51, %52
%54 = sitofp i32 %53 to double
store double %54, double* %10
br label %55
55: ; preds = %68, %42
%56 = call signext i8 (...) @getchar()
store i8 %56, i8* %2
%57 = sext i8 %56 to i32
%58 = load i8, i8* @EOF
%59 = sext i8 %58 to i32
%60 = icmp ne i32 %57, %59
br i1 %60, label %61, label %88
61: ; preds = %55
%62 = load i32, i32* %3
%63 = icmp sge i32 %62, 1001
br i1 %63, label %64, label %65
64: ; preds = %61
br label %88
65: ; preds = %61
%66 = load i32, i32* %3
%67 = add nsw i32 %66, 1
store i32 %67, i32* %3
br label %68
68: ; preds = %65
%69 = load i8, i8* %2
%70 = sext i8 %69 to i32
store i32 %70, i32* %4
%71 = load double, double* %8
%72 = load i32, i32* %5
%73 = load i32, i32* %4
%74 = mul nsw i32 %72, %73
%75 = sitofp i32 %74 to double
%76 = fadd double %71, %75
store double %76, double* %8
%77 = load double, double* %9
%78 = load i32, i32* %5
%79 = sitofp i32 %78 to double
%80 = fadd double %77, %79
store double %80, double* %9
%81 = load double, double* %10
%82 = load i32, i32* %5
%83 = load i32, i32* %5
%84 = mul nsw i32 %82, %83
%85 = sitofp i32 %84 to double
%86 = fadd double %81, %85
store double %86, double* %10
%87 = load i32, i32* %4
store i32 %87, i32* %5
br label %55
88: ; preds = %64, %55
%89 = load double, double* %8
%90 = load i32, i32* %4
%91 = sitofp i32 %90 to double
%92 = load double, double* %7
%93 = call double @llvm.fmuladd.f64(double %91, double %92, double %89)
store double %93, double* %8
%94 = load double, double* %9
%95 = load i32, i32* %5
%96 = sitofp i32 %95 to double
%97 = fadd double %94, %96
store double %97, double* %11
%98 = load double, double* %10
%99 = load i32, i32* %5
%100 = load i32, i32* %5
%101 = mul nsw i32 %99, %100
%102 = sitofp i32 %101 to double
%103 = fadd double %98, %102
store double %103, double* %12
%104 = load double, double* %8
%105 = load double, double* %11
%106 = load double, double* %12
%107 = load i32, i32* %3
%108 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.2, i64 0, i64 0), double %104, double %105, double %106, i32 %107)
%109 = load i32, i32* %3
%110 = sitofp i32 %109 to double
%111 = load double, double* %8
%112 = load double, double* %11
%113 = load double, double* %11
%114 = fmul double %112, %113
%115 = fneg double %114
%116 = call double @llvm.fmuladd.f64(double %110, double %111, double %115)
%117 = load i32, i32* %3
%118 = sitofp i32 %117 to double
%119 = load double, double* %12
%120 = load double, double* %11
%121 = load double, double* %11
%122 = fmul double %120, %121
%123 = fneg double %122
%124 = call double @llvm.fmuladd.f64(double %118, double %119, double %123)
%125 = fdiv double %116, %124
store double %125, double* %6
%126 = load double, double* %11
%127 = load i32, i32* %3
%128 = sitofp i32 %127 to double
%129 = fdiv double %126, %128
store double %129, double* %13
%130 = load double, double* %12
%131 = load i32, i32* %3
%132 = sitofp i32 %131 to double
%133 = fdiv double %130, %132
%134 = load double, double* %13
%135 = load double, double* %13
%136 = fneg double %134
%137 = call double @llvm.fmuladd.f64(double %136, double %135, double %133)
%138 = call double @sqrt(double %137)
store double %138, double* %14
%139 = load double, double* %6
%140 = load double, double* %13
%141 = load double, double* %14
%142 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.3, i64 0, i64 0), double %139, double %140, double %141)
ret i32 0
}

LLVM IR (-O2):
@EOF = global i8 0
@.str = [20 x i8] c"NO INPUT, TRY AGAIN\00"
@.str.1 = [36 x i8] c"NEED MORE THAN ONE VALUE, TRY AGAIN\00"
@.str.2 = [36 x i8] c"temp0 = %g\0AS1 = %g\0AS2 = %g\0An = %d\0A\0A\00"
@.str.3 = [70 x i8] c"Corr. Coefficient = %g\0AAverage = %g\0AStandard Deviation=%g \0A\0A\00"
define i32 @main() {
%1 = tail call signext i8 (...) @getchar()
%2 = sext i8 %1 to i32
%3 = load i8, i8* @EOF
%4 = icmp eq i8 %1, %3
br i1 %4, label %5, label %8
5: ; preds = %0
%6 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str, i64 0, i64 0))
%7 = tail call i32 @exit(i32 1)
unreachable
8: ; preds = %0
%9 = tail call signext i8 (...) @getchar()
%10 = sext i8 %9 to i32
%11 = load i8, i8* @EOF
%12 = icmp eq i8 %9, %11
br i1 %12, label %13, label %16
13: ; preds = %8
%14 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @.str.1, i64 0, i64 0))
%15 = tail call i32 @exit(i32 1)
unreachable
16: ; preds = %8
%17 = sitofp i8 %1 to double
%18 = mul nsw i32 %10, %2
%19 = sitofp i32 %18 to double
%20 = mul nsw i32 %2, %2
%21 = sitofp i32 %20 to double
%22 = tail call signext i8 (...) @getchar()
%23 = load i8, i8* @EOF
%24 = icmp eq i8 %22, %23
br i1 %24, label %47, label %25
25: ; preds = %16, %25
%26 = phi i8 [ %42, %25 ], [ %22, %16 ]
%27 = phi i32 [ %33, %25 ], [ 2, %16 ]
%28 = phi double [ %41, %25 ], [ %21, %16 ]
%29 = phi double [ %38, %25 ], [ %17, %16 ]
%30 = phi double [ %36, %25 ], [ %19, %16 ]
%31 = phi i32 [ %32, %25 ], [ %10, %16 ]
%32 = sext i8 %26 to i32
%33 = add nuw nsw i32 %27, 1
%34 = mul nsw i32 %31, %32
%35 = sitofp i32 %34 to double
%36 = fadd double %30, %35
%37 = sitofp i32 %31 to double
%38 = fadd double %29, %37
%39 = mul nsw i32 %31, %31
%40 = sitofp i32 %39 to double
%41 = fadd double %28, %40
%42 = tail call signext i8 (...) @getchar()
%43 = load i8, i8* @EOF
%44 = icmp eq i8 %42, %43
%45 = icmp ugt i32 %27, 999
%46 = select i1 %44, i1 true, i1 %45
br i1 %46, label %47, label %25
47: ; preds = %25, %16
%48 = phi i32 [ %10, %16 ], [ %32, %25 ]
%49 = phi double [ %19, %16 ], [ %36, %25 ]
%50 = phi double [ %17, %16 ], [ %38, %25 ]
%51 = phi double [ %21, %16 ], [ %41, %25 ]
%52 = phi i32 [ %2, %16 ], [ %32, %25 ]
%53 = phi i32 [ 2, %16 ], [ %33, %25 ]
%54 = sitofp i32 %52 to double
%55 = tail call double @llvm.fmuladd.f64(double %54, double %17, double %49)
%56 = sitofp i32 %48 to double
%57 = fadd double %50, %56
%58 = mul nsw i32 %48, %48
%59 = sitofp i32 %58 to double
%60 = fadd double %51, %59
%61 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @.str.2, i64 0, i64 0), double %55, double %57, double %60, i32 %53)
%62 = sitofp i32 %53 to double
%63 = fneg double %57
%64 = fmul double %57, %63
%65 = tail call double @llvm.fmuladd.f64(double %62, double %55, double %64)
%66 = tail call double @llvm.fmuladd.f64(double %62, double %60, double %64)
%67 = fdiv double %65, %66
%68 = fdiv double %57, %62
%69 = fdiv double %60, %62
%70 = fneg double %68
%71 = tail call double @llvm.fmuladd.f64(double %70, double %68, double %69)
%72 = tail call double @sqrt(double %71)
%73 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([70 x i8], [70 x i8]* @.str.3, i64 0, i64 0), double %67, double %68, double %72)
ret i32 0
}