// File: /workspace/github_cpp_makefile_star2_O1/jc-kim[P]swaptions/HJM_Securities.cpp
// Function: getFactors()
FTYPE* getFactors() {
  // initialize input dataset
  FTYPE* factors = dmatrix(iFactors, iN - 1);
  //the three rows store vol data for the three factors
  factors[0]= .01;
  factors[1]= .01;
  factors[2]= .01;
  factors[3]= .01;
  factors[4]= .01;
  factors[5]= .01;
  factors[6]= .01;
  factors[7]= .01;
  factors[8]= .01;
  factors[9]= .01;

  factors[(iN - 1)]= .009048;
  factors[(iN - 1) + 1]= .008187;
  factors[(iN - 1) + 2]= .007408;
  factors[(iN - 1) + 3]= .006703;
  factors[(iN - 1) + 4]= .006065;
  factors[(iN - 1) + 5]= .005488;
  factors[(iN - 1) + 6]= .004966;
  factors[(iN - 1) + 7]= .004493;
  factors[(iN - 1) + 8]= .004066;
  factors[(iN - 1) + 9]= .003679;

  factors[(iN - 1) * 2]= .001000;
  factors[(iN - 1) * 2 + 1]= .000750;
  factors[(iN - 1) * 2 + 2]= .000500;
  factors[(iN - 1) * 2 + 3]= .000250;
  factors[(iN - 1) * 2 + 4]= .000000;
  factors[(iN - 1) * 2 + 5]= -.000250;
  factors[(iN - 1) * 2 + 6]= -.000500;
  factors[(iN - 1) * 2 + 7]= -.000750;
  factors[(iN - 1) * 2 + 8]= -.001000;
  factors[(iN - 1) * 2 + 9]= -.001250;

  return factors;
}

// Assembly:
pushq %rax
movslq 0x2998(%rip), %rdi      # 0x50e8
movslq 0x2985(%rip), %rsi      # 0x50dc
decq %rsi
callq 0x1633
movabsq $0x3f847ae147ae147b, %rcx # imm = 0x3F847AE147AE147B
movq %rcx, (%rax)
movq %rcx, 0x8(%rax)
movq %rcx, 0x10(%rax)
movq %rcx, 0x18(%rax)
movq %rcx, 0x20(%rax)
movq %rcx, 0x28(%rax)
movq %rcx, 0x30(%rax)
movq %rcx, 0x38(%rax)
movq %rcx, 0x40(%rax)
movq %rcx, 0x48(%rax)
movslq 0x2945(%rip), %rcx      # 0x50dc
movabsq $0x3f8287c200c0f020, %rdx # imm = 0x3F8287C200C0F020
movq %rdx, -0x8(%rax,%rcx,8)
movabsq $0x3f80c4588a04d120, %rdx # imm = 0x3F80C4588A04D120
movq %rdx, (%rax,%rcx,8)
movabsq $0x3f7e57d9dba908a2, %rdx # imm = 0x3F7E57D9DBA908A2
movq %rdx, 0x8(%rax,%rcx,8)
movabsq $0x3f7b749adc8fb86f, %rdx # imm = 0x3F7B749ADC8FB86F
movq %rdx, 0x10(%rax,%rcx,8)
movabsq $0x3f78d79d0a67620f, %rdx # imm = 0x3F78D79D0A67620F
movq %rdx, 0x18(%rax,%rcx,8)
movabsq $0x3f767a95c853c148, %rdx # imm = 0x3F767A95C853C148
movq %rdx, 0x20(%rax,%rcx,8)
movabsq $0x3f74573a797891e2, %rdx # imm = 0x3F74573A797891E2
movq %rdx, 0x28(%rax,%rcx,8)
movabsq $0x3f72674080f98fa3, %rdx # imm = 0x3F72674080F98FA3
movq %rdx, 0x30(%rax,%rcx,8)
movabsq $0x3f70a78290689870, %rdx # imm = 0x3F70A78290689870
movq %rdx, 0x38(%rax,%rcx,8)
movabsq $0x3f6e236c15d2d01c, %rdx # imm = 0x3F6E236C15D2D01C
movq %rdx, 0x40(%rax,%rcx,8)
leal (%rcx,%rcx), %edx
leal -0x2(%rcx,%rcx), %esi
movslq %esi, %rsi
movabsq $0x3f50624dd2f1a9fc, %rdi # imm = 0x3F50624DD2F1A9FC
movq %rdi, (%rax,%rsi,8)
leal -0x1(%rcx,%rcx), %esi
movslq %esi, %rsi
movabsq $0x3f489374bc6a7efa, %rdi # imm = 0x3F489374BC6A7EFA
movq %rdi, (%rax,%rsi,8)
movslq %edx, %rdx
movabsq $0x3f40624dd2f1a9fc, %rsi # imm = 0x3F40624DD2F1A9FC
movq %rsi, (%rax,%rdx,8)
leal 0x1(%rcx,%rcx), %edx
movslq %edx, %rdx
movabsq $0x3f30624dd2f1a9fc, %rsi # imm = 0x3F30624DD2F1A9FC
movq %rsi, (%rax,%rdx,8)
leal 0x2(%rcx,%rcx), %edx
movslq %edx, %rdx
movq $0x0, (%rax,%rdx,8)
leal 0x3(%rcx,%rcx), %edx
movslq %edx, %rdx
movabsq $-0x40cf9db22d0e5604, %rsi # imm = 0xBF30624DD2F1A9FC
movq %rsi, (%rax,%rdx,8)
leal 0x4(%rcx,%rcx), %edx
movslq %edx, %rdx
movabsq $-0x40bf9db22d0e5604, %rsi # imm = 0xBF40624DD2F1A9FC
movq %rsi, (%rax,%rdx,8)
leal 0x5(%rcx,%rcx), %edx
movslq %edx, %rdx
movabsq $-0x40b76c8b43958106, %rsi # imm = 0xBF489374BC6A7EFA
movq %rsi, (%rax,%rdx,8)
leal 0x6(%rcx,%rcx), %edx
movslq %edx, %rdx
movabsq $-0x40af9db22d0e5604, %rsi # imm = 0xBF50624DD2F1A9FC
movq %rsi, (%rax,%rdx,8)
leal 0x7(%rcx,%rcx), %ecx
movslq %ecx, %rcx
movabsq $-0x40ab851eb851eb85, %rdx # imm = 0xBF547AE147AE147B
movq %rdx, (%rax,%rcx,8)
popq %rcx
retq