// File: /workspace/github_cpp_makefile_star2_O1/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
movq %rsi, %rbx
movl %edi, %ebp
cmpl $0x2, %edi
jl 0x390c
movq 0x8(%rbx), %rdi
callq 0x1100
cltq
movq %rax, 0x3810(%rip)      # 0x70c8
movq 0x3719(%rip), %r14      # 0x6fd8
leaq 0x180a(%rip), %rsi      # 0x50d0
movl $0x12, %edx
movq %r14, %rdi
callq 0x10e0
movq 0x37ee(%rip), %rsi      # 0x70c8
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 $0x3, %ebp
jl 0x3973
movq 0x10(%rbx), %rdi
callq 0x1100
movl %eax, 0x37a0(%rip)      # 0x70c0
movq 0x36b1(%rip), %rbx      # 0x6fd8
leaq 0x17b5(%rip), %rsi      # 0x50e3
movl $0xb, %edx
movq %rbx, %rdi
callq 0x10e0
movl 0x377f(%rip), %esi      # 0x70c0
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 0x3650(%rip), %rbx      # 0x6fd8
leaq 0x1760(%rip), %rsi      # 0x50ef
movl $0x17, %edx
movq %rbx, %rdi
callq 0x10e0
leaq 0x1764(%rip), %rsi      # 0x5107
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 -0x1703(%rip), %rdi     # 0x22db
leaq 0x1728(%rip), %rsi      # 0x510d
callq 0x36e6
leaq -0xfb7(%rip), %rdi      # 0x2a3a
leaq 0x1728(%rip), %rsi      # 0x5120
callq 0x36e6
leaq -0xec9(%rip), %rdi      # 0x2b3b
leaq 0x1725(%rip), %rsi      # 0x5130
callq 0x36e6
leaq -0xe09(%rip), %rdi      # 0x2c0e
leaq 0x171c(%rip), %rsi      # 0x513a
callq 0x36e6
leaq -0xac9(%rip), %rdi      # 0x2f61
leaq 0x1723(%rip), %rsi      # 0x5154
callq 0x36e6
leaq -0x8d5(%rip), %rdi      # 0x3168
leaq 0x171e(%rip), %rsi      # 0x5162
callq 0x36e6
leaq -0x789(%rip), %rdi      # 0x32c7
leaq 0x1717(%rip), %rsi      # 0x516e
callq 0x36e6
leaq -0x602(%rip), %rdi      # 0x3461
leaq 0x1714(%rip), %rsi      # 0x517e
callq 0x36e6
xorl %eax, %eax
popq %rbx
popq %r14
popq %rbp
retq