// File: gkosae[P]ArduinoNeuralNet/main.cpp
// Function: createInputSamples()
vector<vector<double>> createInputSamples() {

  cout << "Entering createInputSamples" << endl;

  vector<vector<double>> samples{};
  vector<double> buffer{};
  double temp = 0;

  string input_data_file = "training_data/processed_inputs.dat";

  ifstream ifs{input_data_file};

  while(ifs >> temp) {

      buffer.clear();
      buffer.push_back(temp/NORMALIZER);

      for(auto i = 0; i < 9; ++i) {
        ifs >> temp;
        buffer.push_back(temp/NORMALIZER);
      }
   samples.push_back(buffer);
 }

  number_of_samples = samples.size();
  cout << "Leaving createInputSamples" << endl;
  return samples;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2e0, %rsp            # imm = 0x2E0
movq %rdi, -0x2b8(%rbp)
movq %rdi, %rax
movq %rax, -0x2c0(%rbp)
movq %rdi, -0x8(%rbp)
movq 0xaa01(%rip), %rdi      # 0x14fd8
leaq 0x3ee0(%rip), %rsi      # 0xe4be
callq 0x2190
movq %rax, %rdi
movq 0xa9db(%rip), %rsi      # 0x14fc8
callq 0x21c0
movq -0x2b8(%rbp), %rdi
movb $0x0, -0x9(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x2b0(%rbp)
movups %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
callq 0xb220
movaps -0x2b0(%rbp), %xmm0
movaps %xmm0, -0x30(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x44d0
movq $0x0, -0x38(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x298(%rbp)
callq 0x2320
movq -0x298(%rbp), %rdx
leaq 0x3e81(%rip), %rsi      # 0xe4da
leaq -0x58(%rbp), %rdi
callq 0x2dd0
jmp 0xa664
leaq -0x59(%rbp), %rdi
callq 0x21e0
leaq -0x278(%rbp), %rdi
leaq -0x58(%rbp), %rsi
movl $0x8, %edx
callq 0x22a0
jmp 0xa684
jmp 0xa686
leaq -0x278(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x2130
movq %rax, -0x2c8(%rbp)
jmp 0xa69f
movq -0x2c8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x2230
movb %al, -0x2c9(%rbp)
jmp 0xa6bd
movb -0x2c9(%rbp), %al
testb $0x1, %al
jne 0xa6cc
jmp 0xa7d0
leaq -0x30(%rbp), %rdi
movq %rdi, -0x2d8(%rbp)
callq 0xb240
movq -0x2d8(%rbp), %rdi
movsd -0x38(%rbp), %xmm0
movsd 0x3da8(%rip), %xmm1     # 0xe498
divsd %xmm1, %xmm0
movsd %xmm0, -0x280(%rbp)
leaq -0x280(%rbp), %rsi
callq 0xb260
jmp 0xa70a
movl $0x0, -0x284(%rbp)
cmpl $0x9, -0x284(%rbp)
jge 0xa7b9
leaq -0x278(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x2130
jmp 0xa733
movsd -0x38(%rbp), %xmm0
movsd 0x3d58(%rip), %xmm1     # 0xe498
divsd %xmm1, %xmm0
movsd %xmm0, -0x290(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0xb260
jmp 0xa75e
jmp 0xa760
movl -0x284(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x284(%rbp)
jmp 0xa714
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x59(%rbp), %rdi
callq 0x21e0
jmp 0xa846
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xa83d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x2050
jmp 0xa83d
movq -0x2b8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xb290
jmp 0xa7cb
jmp 0xa686
movq -0x2b8(%rbp), %rdi
callq 0x7fc0
movl %eax, 0xa9fe(%rip)      # 0x151e0
movq 0xa7ef(%rip), %rdi      # 0x14fd8
leaq 0x3d0d(%rip), %rsi      # 0xe4fd
callq 0x2190
movq %rax, -0x2e0(%rbp)
jmp 0xa7fe
movq -0x2e0(%rbp), %rdi
movq 0xa7bc(%rip), %rsi      # 0x14fc8
callq 0x21c0
jmp 0xa813
movb $0x1, -0x9(%rbp)
leaq -0x278(%rbp), %rdi
callq 0x2050
leaq -0x58(%rbp), %rdi
callq 0x20c0
leaq -0x30(%rbp), %rdi
callq 0x2990
testb $0x1, -0x9(%rbp)
jne 0xa869
jmp 0xa85d
leaq -0x58(%rbp), %rdi
callq 0x20c0
leaq -0x30(%rbp), %rdi
callq 0x2990
movq -0x2b8(%rbp), %rdi
callq 0x80b0
jmp 0xa879
movq -0x2b8(%rbp), %rdi
callq 0x80b0
movq -0x2c0(%rbp), %rax
addq $0x2e0, %rsp            # imm = 0x2E0
popq %rbp
retq
movq -0x68(%rbp), %rdi
callq 0x2310
nopw %cs:(%rax,%rax)