#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 /*<<< orphan*/ bisection();
int /*<<< orphan*/ box_muller();
int /*<<< orphan*/ chi_square_test();
int /*<<< orphan*/ factorial();
int /*<<< orphan*/ gauss_jordan();
int /*<<< orphan*/ gaussian_elimination();
int /*<<< orphan*/ least_squares_method();
int /*<<< orphan*/ lgrange_interpolation();
int /*<<< orphan*/ linear_programming();
int /*<<< orphan*/ long_calc();
int /*<<< orphan*/ long_calc2();
int /*<<< orphan*/ mod_gauss_jordan();
int /*<<< orphan*/ newton();
int /*<<< orphan*/ newton_interpolation();
int /*<<< orphan*/ pai();
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ simpson();
int /*<<< orphan*/ taylor();
int /*<<< orphan*/ taylor_cos();
int /*<<< orphan*/ taylor_ex();
int /*<<< orphan*/ test();
int /*<<< orphan*/ trapezoid();
int /*<<< orphan*/ uniform_random_number();
int main() {
  uniform_random_number();
  chi_square_test();
  box_muller();
  test();
  trapezoid();
  simpson();
  taylor();
  taylor_ex();
  taylor_cos();
  bisection();
  newton();
  lgrange_interpolation();
  newton_interpolation();
  long_calc();
  long_calc2();
  pai();
  factorial();
  gauss_jordan();
  mod_gauss_jordan();
  gaussian_elimination();
  linear_programming();
  least_squares_method();
  printf("end\n");
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
mov    $0x0,%al
call   10e0 <uniform_random_number@plt>
mov    $0x0,%al
call   10c0 <chi_square_test@plt>
mov    $0x0,%al
call   10f0 <box_muller@plt>
mov    $0x0,%al
call   1190 <test@plt>
mov    $0x0,%al
call   1080 <trapezoid@plt>
mov    $0x0,%al
call   1120 <simpson@plt>
mov    $0x0,%al
call   1130 <taylor@plt>
mov    $0x0,%al
call   1100 <taylor_ex@plt>
mov    $0x0,%al
call   1110 <taylor_cos@plt>
mov    $0x0,%al
call   1040 <bisection@plt>
mov    $0x0,%al
call   10d0 <newton@plt>
mov    $0x0,%al
call   1150 <lgrange_interpolation@plt>
mov    $0x0,%al
call   1160 <newton_interpolation@plt>
mov    $0x0,%al
call   1170 <long_calc@plt>
mov    $0x0,%al
call   1180 <long_calc2@plt>
mov    $0x0,%al
call   1050 <pai@plt>
mov    $0x0,%al
call   1070 <factorial@plt>
mov    $0x0,%al
call   1090 <gauss_jordan@plt>
mov    $0x0,%al
call   1060 <mod_gauss_jordan@plt>
mov    $0x0,%al
call   10b0 <gaussian_elimination@plt>
mov    $0x0,%al
call   1140 <linear_programming@plt>
mov    $0x0,%al
call   1030 <least_squares_method@plt>
lea    0xce0(%rip),%rdi
call   10a0 <printf@plt>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
xor    %eax,%eax
call   10e0 <uniform_random_number@plt>
xor    %eax,%eax
call   10c0 <chi_square_test@plt>
xor    %eax,%eax
call   10f0 <box_muller@plt>
xor    %eax,%eax
call   1190 <test@plt>
xor    %eax,%eax
call   1090 <trapezoid@plt>
xor    %eax,%eax
call   1120 <simpson@plt>
xor    %eax,%eax
call   1130 <taylor@plt>
xor    %eax,%eax
call   1100 <taylor_ex@plt>
xor    %eax,%eax
call   1110 <taylor_cos@plt>
xor    %eax,%eax
call   1040 <bisection@plt>
xor    %eax,%eax
call   10d0 <newton@plt>
xor    %eax,%eax
call   1150 <lgrange_interpolation@plt>
xor    %eax,%eax
call   1160 <newton_interpolation@plt>
xor    %eax,%eax
call   1170 <long_calc@plt>
xor    %eax,%eax
call   1180 <long_calc2@plt>
xor    %eax,%eax
call   1050 <pai@plt>
xor    %eax,%eax
call   1080 <factorial@plt>
xor    %eax,%eax
call   10a0 <gauss_jordan@plt>
xor    %eax,%eax
call   1060 <mod_gauss_jordan@plt>
xor    %eax,%eax
call   10b0 <gaussian_elimination@plt>
xor    %eax,%eax
call   1140 <linear_programming@plt>
xor    %eax,%eax
call   1030 <least_squares_method@plt>
lea    0xcee(%rip),%rdi
call   1070 <puts@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [5 x i8] c"end\0A\00"
define i32 @main() {
%1 = alloca i32
store i32 0, i32* %1
%2 = call i32 (...) @uniform_random_number()
%3 = call i32 (...) @chi_square_test()
%4 = call i32 (...) @box_muller()
%5 = call i32 (...) @test()
%6 = call i32 (...) @trapezoid()
%7 = call i32 (...) @simpson()
%8 = call i32 (...) @taylor()
%9 = call i32 (...) @taylor_ex()
%10 = call i32 (...) @taylor_cos()
%11 = call i32 (...) @bisection()
%12 = call i32 (...) @newton()
%13 = call i32 (...) @lgrange_interpolation()
%14 = call i32 (...) @newton_interpolation()
%15 = call i32 (...) @long_calc()
%16 = call i32 (...) @long_calc2()
%17 = call i32 (...) @pai()
%18 = call i32 (...) @factorial()
%19 = call i32 (...) @gauss_jordan()
%20 = call i32 (...) @mod_gauss_jordan()
%21 = call i32 (...) @gaussian_elimination()
%22 = call i32 (...) @linear_programming()
%23 = call i32 (...) @least_squares_method()
%24 = call i32 @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0))
ret i32 0
}

LLVM IR (-O2):
@str = [4 x i8] c"end\00"
define i32 @main() {
%1 = tail call i32 (...) @uniform_random_number()
%2 = tail call i32 (...) @chi_square_test()
%3 = tail call i32 (...) @box_muller()
%4 = tail call i32 (...) @test()
%5 = tail call i32 (...) @trapezoid()
%6 = tail call i32 (...) @simpson()
%7 = tail call i32 (...) @taylor()
%8 = tail call i32 (...) @taylor_ex()
%9 = tail call i32 (...) @taylor_cos()
%10 = tail call i32 (...) @bisection()
%11 = tail call i32 (...) @newton()
%12 = tail call i32 (...) @lgrange_interpolation()
%13 = tail call i32 (...) @newton_interpolation()
%14 = tail call i32 (...) @long_calc()
%15 = tail call i32 (...) @long_calc2()
%16 = tail call i32 (...) @pai()
%17 = tail call i32 (...) @factorial()
%18 = tail call i32 (...) @gauss_jordan()
%19 = tail call i32 (...) @mod_gauss_jordan()
%20 = tail call i32 (...) @gaussian_elimination()
%21 = tail call i32 (...) @linear_programming()
%22 = tail call i32 (...) @least_squares_method()
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @str, i64 0, i64 0))
ret i32 0
}