// File: /workspace/github_cpp_makefile_star2_O3/mortennobel[P]glMatrix-vs-GLM-Benchmark/main.cpp
// Function: main
int main (int argc, const char * argv[])
{
	if (argc>=2){
		internalRunCount = atoi(argv[1]);
		std::cout<<"InternalRunCount: "<<internalRunCount<<std::endl;
	}
	if (argc>=3){
		runCount = atoi(argv[2]);
		std::cout<<"Run count: "<<runCount<<std::endl;
	}

    /* initialize random seed: */
    srand ( time(NULL) );
        
    int matrixBytes = sizeof(createRandomMatrix());
    
    std::cout<<"Using double precision "<<((matrixBytes>64)?"true":"false")<<std::endl;
    runTestCase(&testMultiplication,"testMultiplication");
    runTestCase(&testTranslation,"testTranslation");
    runTestCase(&testScale,"testScale");
    runTestCase(&testRotationArbitraryAxis,"testRotationArbitraryAxis");
    runTestCase(&testTranspose,"testTranspose");
    runTestCase(&testInverse,"testInverse");    
    runTestCase(&testInverseMat3,"testInverseMat3");    
    runTestCase(&testVectorTransformation,"testVectorTransformation");        

    
    return 0;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
cmpl $0x2, %edi
jl 0x2a69
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rdi
callq 0x1100
cltq
movq %rax, 0x371a(%rip)      # 0x60c8
movq 0x3623(%rip), %r14      # 0x5fd8
leaq 0x17d4(%rip), %rsi      # 0x4190
movl $0x12, %edx
movq %r14, %rdi
callq 0x10e0
movq 0x36f8(%rip), %rsi      # 0x60c8
movq %r14, %rdi
callq 0x10b0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x10d0
movsbl %al, %esi
movq %r14, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1070
cmpl $0x2, %ebp
je 0x2a69
movq 0x10(%rbx), %rdi
callq 0x1100
movl %eax, 0x36aa(%rip)      # 0x60c0
movq 0x35bb(%rip), %rbx      # 0x5fd8
leaq 0x177f(%rip), %rsi      # 0x41a3
movl $0xb, %edx
movq %rbx, %rdi
callq 0x10e0
movl 0x3689(%rip), %esi      # 0x60c0
movq %rbx, %rdi
callq 0x1140
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x10d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1070
xorl %edi, %edi
callq 0x10a0
movl %eax, %edi
callq 0x10c0
movq 0x355a(%rip), %rbx      # 0x5fd8
leaq 0x172a(%rip), %rsi      # 0x41af
movl $0x17, %edx
movq %rbx, %rdi
callq 0x10e0
leaq 0x172e(%rip), %rsi      # 0x41c7
movl $0x5, %edx
movq %rbx, %rdi
callq 0x10e0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x10d0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x1030
movq %rax, %rdi
callq 0x1070
leaq -0x9b6(%rip), %rdi      # 0x211e
leaq 0x16f2(%rip), %rsi      # 0x41cd
callq 0x27d8
leaq -0x988(%rip), %rdi      # 0x215f
leaq 0x16f2(%rip), %rsi      # 0x41e0
callq 0x27d8
leaq -0x96a(%rip), %rdi      # 0x2190
leaq 0x16ef(%rip), %rsi      # 0x41f0
callq 0x27d8
leaq -0x94c(%rip), %rdi      # 0x21c1
leaq 0x16e6(%rip), %rsi      # 0x41fa
callq 0x27d8
leaq -0x92e(%rip), %rdi      # 0x21f2
leaq 0x16ed(%rip), %rsi      # 0x4214
callq 0x27d8
leaq -0x73a(%rip), %rdi      # 0x23f9
leaq 0x16e8(%rip), %rsi      # 0x4222
callq 0x27d8
leaq -0x606(%rip), %rdi      # 0x2540
leaq 0x16e1(%rip), %rsi      # 0x422e
callq 0x27d8
leaq -0x498(%rip), %rdi      # 0x26c1
leaq 0x16de(%rip), %rsi      # 0x423e
callq 0x27d8
xorl %eax, %eax
popq %rbx
popq %r14
popq %rbp
retq