// File: /workspace/github_c_makefile_star2_O3/olcaytaner[P]Isell/savecode.c
// Function: code_forward_propagation
void code_forward_propagation(FILE* testcodefile, PROGRAMMING_LANGUAGE_TYPE language, int row, int col, char* weightname, char* inputname, char* outputname, int sigmoid)
{
 /*!Last Changed 16.06.2006*/
 char st[MAXLENGTH];
 code_for(testcodefile, language, "i", 0, row - 1, 1);     
 code_2d_array_index_variable(st, language, weightname, "i", "0");
 code_set_variable(testcodefile, language, "sum", st);   
 code_for(testcodefile, language, "j", 1, col - 1, 1);
 code_2d_array_index_variable(st, language, weightname, "i", "j");
 code_set_variable(testcodefile, language, "weights_ij", st);        
 code_array_index_variable(st, language, inputname, "j - 1");            
 code_set_variable(testcodefile, language, "x_j", st);        
 code_set_variable(testcodefile, language, "sum", "sum + weights_ij * x_j");        
 code_endfor(testcodefile, language, "j");
 code_array_index_variable(st, language, outputname, "i");            
 if (sigmoid)
  {
   code_set_variable(testcodefile, language, "sigmoid", "1 / (1 + exp(-sum))");
   code_set_variable(testcodefile, language, st, "sigmoid");
  }
 else
   code_set_variable(testcodefile, language, st, "sum");
 code_endfor(testcodefile, language, "i");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x7a138, %rsp          # imm = 0x7A138
movq %r9, 0x8(%rsp)
movq %r8, %r12
movl %ecx, %ebp
movl %esi, %ebx
movq %rdi, %r14
leal -0x1(%rdx), %r8d
leaq 0x30c25(%rip), %rdx     # 0xb0cb9
xorl %ecx, %ecx
movl $0x1, %r9d
callq 0x7e3dc
movl %ebx, %r13d
leaq 0x53c45(%rip), %r15     # 0xd3cf0
cmpl $0x5, %ebx
ja 0x800d1
movq (%r15,%r13,8), %rsi
leaq 0x30bfe(%rip), %rcx     # 0xb0cb9
leaq 0x260e7(%rip), %r8      # 0xa61a9
leaq 0x10(%rsp), %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0x41b0
leaq 0x30bd5(%rip), %rdx     # 0xb0cad
leaq 0x10(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
decl %ebp
leaq 0x308c4(%rip), %rdx     # 0xb09b4
movq %r14, %rdi
movl %ebx, %esi
movl $0x1, %ecx
movl %ebp, %r8d
movl $0x1, %r9d
callq 0x7e3dc
cmpl $0x5, %ebx
ja 0x8012e
movq (%r15,%r13,8), %rsi
leaq 0x30ba1(%rip), %rcx     # 0xb0cb9
leaq 0x30895(%rip), %r8      # 0xb09b4
leaq 0x10(%rsp), %rdi
movq %r12, %rdx
xorl %eax, %eax
callq 0x41b0
leaq 0x30841(%rip), %rdx     # 0xb0976
leaq 0x10(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
leaq 0x53c35(%rip), %r12     # 0xd3d80
cmpl $0x5, %ebx
ja 0x8016c
movq (%r12,%r13,8), %rsi
leaq 0x30c41(%rip), %rcx     # 0xb0d9c
leaq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rdx
xorl %eax, %eax
callq 0x41b0
movl 0x7a178(%rsp), %ebp
leaq 0x3084e(%rip), %rdx     # 0xb09c8
leaq 0x10(%rsp), %rcx
movq %r14, %rdi
movl %ebx, %esi
callq 0x7d316
leaq 0x30b1d(%rip), %r15     # 0xb0cad
leaq 0x307ea(%rip), %rcx     # 0xb0981
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rdx
callq 0x7d316
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
cmpl $0x5, %ebx
ja 0x801d2
movq 0x7a170(%rsp), %rdx
movq (%r12,%r13,8), %rsi
leaq 0x30af3(%rip), %rcx     # 0xb0cb9
leaq 0x10(%rsp), %rdi
xorl %eax, %eax
callq 0x41b0
testl %ebp, %ebp
je 0x801f1
leaq 0x2aaa7(%rip), %r15     # 0xaac84
leaq 0x307b4(%rip), %rcx     # 0xb0998
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rdx
callq 0x7d316
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
movl %ebx, %esi
movq %r15, %rcx
callq 0x7d316
movq %r14, %rdi
movl %ebx, %esi
callq 0x7e686
addq $0x7a138, %rsp          # imm = 0x7A138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq