// File: Luthaf[P]zeopp/ray.cc
// Function: reportRayInfo(std::vector<ray, std::allocator<ray>>&)
void reportRayInfo(vector<ray>& axsray){
  ofstream rayinfo;
  rayinfo.open ("Ray_Info.txt");
  if (rayinfo.good() == true){  
    cout << "Ray_Info.txt: size = " << axsray.size() << endl; 
    rayinfo << "x y z dx dy dz magnitude" << endl;
    for (unsigned int i=0;i<axsray.size();i++){
      ray rand_ray = axsray.at(i);
//      rayinfo << rand_ray.base << " "<< rand_ray.vector << " " << rand_ray.vector.magnitude()  << endl;
      rayinfo << rand_ray.base.vals[0] << " " << rand_ray.base.vals[1] << " "<< rand_ray.base.vals[2] << " "
              << rand_ray.vector.vals[0] << " " << rand_ray.vector.vals[1] << " " << rand_ray.vector.vals[2] << " " 
	      << rand_ray.vector.magnitude()  << endl;
      }
  }
  else {
    cerr << "Ray_Info.txt ran into errors opening" << endl;
    abort();
  }
  rayinfo.close();
  return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x300, %rsp            # imm = 0x300
movq %rdi, -0x8(%rbp)
leaq -0x208(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0x5890
movq -0x258(%rbp), %rdi
leaq 0x16606e(%rip), %rsi    # 0x1f769e
movl $0x10, %edx
callq 0x5080
jmp 0x9163c
movq -0x208(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x208(%rbp,%rax), %rdi
callq 0x5880
movb %al, -0x259(%rbp)
jmp 0x9165c
movb -0x259(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x9193d
movq 0x1e1949(%rip), %rdi    # 0x272fc0
leaq 0x16602d(%rip), %rsi    # 0x1f76ab
callq 0x5540
movq %rax, -0x268(%rbp)
jmp 0x9168c
movq -0x8(%rbp), %rdi
callq 0x92090
movq -0x268(%rbp), %rdi
movq %rax, %rsi
callq 0x5160
movq %rax, -0x270(%rbp)
jmp 0x916ad
movq -0x270(%rbp), %rdi
movq 0x1e18dd(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x916c2
leaq 0x165ff8(%rip), %rsi    # 0x1f76c1
leaq -0x208(%rbp), %rdi
callq 0x5540
movq %rax, -0x278(%rbp)
jmp 0x916de
movq -0x278(%rbp), %rdi
movq 0x1e18ac(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x916f3
movl $0x0, -0x218(%rbp)
movl -0x218(%rbp), %eax
movq %rax, -0x280(%rbp)
movq -0x8(%rbp), %rdi
callq 0x92090
movq %rax, %rcx
movq -0x280(%rbp), %rax
cmpq %rcx, %rax
jae 0x9193b
movq -0x8(%rbp), %rdi
movl -0x218(%rbp), %eax
movl %eax, %esi
callq 0x920c0
movq %rax, -0x288(%rbp)
jmp 0x91740
movq -0x288(%rbp), %rax
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movups 0x20(%rax), %xmm2
movaps %xmm2, -0x230(%rbp)
movaps %xmm1, -0x240(%rbp)
movaps %xmm0, -0x250(%rbp)
movsd -0x250(%rbp), %xmm0
leaq -0x208(%rbp), %rdi
callq 0x5980
movq %rax, -0x290(%rbp)
jmp 0x91784
movq -0x290(%rbp), %rdi
leaq 0x16ab1c(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x298(%rbp)
jmp 0x917a0
movq -0x298(%rbp), %rdi
movsd -0x248(%rbp), %xmm0
callq 0x5980
movq %rax, -0x2a0(%rbp)
jmp 0x917bd
movq -0x2a0(%rbp), %rdi
leaq 0x16aae3(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x2a8(%rbp)
jmp 0x917d9
movq -0x2a8(%rbp), %rdi
movsd -0x240(%rbp), %xmm0
callq 0x5980
movq %rax, -0x2b0(%rbp)
jmp 0x917f6
movq -0x2b0(%rbp), %rdi
leaq 0x16aaaa(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x2b8(%rbp)
jmp 0x91812
movq -0x2b8(%rbp), %rdi
movsd -0x238(%rbp), %xmm0
callq 0x5980
movq %rax, -0x2c0(%rbp)
jmp 0x9182f
movq -0x2c0(%rbp), %rdi
leaq 0x16aa71(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x2c8(%rbp)
jmp 0x9184b
movq -0x2c8(%rbp), %rdi
movsd -0x230(%rbp), %xmm0
callq 0x5980
movq %rax, -0x2d0(%rbp)
jmp 0x91868
movq -0x2d0(%rbp), %rdi
leaq 0x16aa38(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x2d8(%rbp)
jmp 0x91884
movq -0x2d8(%rbp), %rdi
movsd -0x228(%rbp), %xmm0
callq 0x5980
movq %rax, -0x2e0(%rbp)
jmp 0x918a1
movq -0x2e0(%rbp), %rdi
leaq 0x16a9ff(%rip), %rsi    # 0x1fc2ae
callq 0x5540
movq %rax, -0x2e8(%rbp)
jmp 0x918bd
leaq -0x238(%rbp), %rdi
callq 0xe9fb0
movsd %xmm0, -0x2f0(%rbp)
jmp 0x918d3
movsd -0x2f0(%rbp), %xmm0
movq -0x2e8(%rbp), %rdi
callq 0x5980
movq %rax, -0x2f8(%rbp)
jmp 0x918f0
movq -0x2f8(%rbp), %rdi
movq 0x1e169a(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x91905
jmp 0x91907
movl -0x218(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x218(%rbp)
jmp 0x916fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x210(%rbp)
movl %eax, -0x214(%rbp)
leaq -0x208(%rbp), %rdi
callq 0x5780
jmp 0x91996
jmp 0x91973
movq 0x1e16ac(%rip), %rdi    # 0x272ff0
leaq 0x165d8f(%rip), %rsi    # 0x1f76da
callq 0x5540
movq %rax, -0x300(%rbp)
jmp 0x91959
movq -0x300(%rbp), %rdi
movq 0x1e1631(%rip), %rsi    # 0x272f98
callq 0x55b0
jmp 0x9196e
callq 0x52b0
leaq -0x208(%rbp), %rdi
callq 0x5740
jmp 0x91981
leaq -0x208(%rbp), %rdi
callq 0x5780
addq $0x300, %rsp            # imm = 0x300
popq %rbp
retq
movq -0x210(%rbp), %rdi
callq 0x58f0
nopw %cs:(%rax,%rax)