/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <math.h>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
float a1 = 0.9, a2 = 0.7, a3 = 0.4;
float anew1, anew2, anew3;
float b1 = 0.2, b2 = 0.8, b3 = 0.5;
float bnew1, bnew2, bnew3;
float c1 = 0.6, c2 = 0.1, c3 = 0.3;
float cnew1, cnew2, cnew3;
float cneww1, cneww2, cneww3;
float aLayer1, aLayer11, aLayer12, aLayer13;
float aLayer2, aLayer21, aLayer22, aLayer23;
float bLayer1, bLayer11, bLayer12, bLayer13;
float bLayer2, bLayer21, bLayer22, bLayer23;
float result, deltaresult, next;
float result2, deltaresult2, next2;
aLayer11 = 1/(1 + exp(-(a1+b1)));
aLayer12 = 1/(1 + exp(-(a2+b2)));
aLayer13 = 1/(1 + exp(-(a3+b3)));
aLayer1 = aLayer11 + aLayer12 + aLayer13;
bLayer11 = aLayer11*c1;
bLayer12 = aLayer12*c2;
bLayer13 = aLayer13*c3;
bLayer1 = bLayer11 + bLayer12 + bLayer13;
do {
cout<<"bLayer is "<<bLayer1;
cout<<endl;
result = 1/(1+exp(-1.0*bLayer1));
cout<<"result is "<<result;
cout<<endl;
deltaresult = result*(1-result);
cout<<"deltaresult is "<<deltaresult;
next = deltaresult *(-result);
cout<<endl;
cout<<"next is "<<next;
cout<<endl;
cnew1 = c1 - next/aLayer11;
cout<<endl;
cout<<"cnew1 is "<<cnew1;
cnew2 = c2 - next/aLayer12;
cout<<endl;
cout<<"cnew2 is "<<cnew2;
cnew3 = c3 - next/aLayer13;
cout<<endl;
cout<<"cnew3 is "<<cnew3;
cout<<endl;
anew1 = a1-(next/c1)*aLayer11*(1-aLayer11);
anew2 = a2-(next/c2)*aLayer12*(1-aLayer12);
anew3 = a3-(next/c3)*aLayer13*(1-aLayer13);
cout<<endl;
cout<<"anew1 is "<<anew1;
cout<<endl;
cout<<"anew2 is "<<anew2;
cout<<endl;
cout<<"anew3 is "<<anew3;
cout<<endl;
bnew1 = b1-(next/c1)*aLayer11*(1-aLayer11);
bnew2 = b2-(next/c2)*aLayer12*(1-aLayer12);
bnew3 = b3-(next/c3)*aLayer13*(1-aLayer13);
cout<<"bnew1 is "<<bnew1;
cout<<endl;
cout<<"bnew2 is "<<bnew2;
cout<<endl;
cout<<"bnew3 is "<<bnew3;
cout<<endl;
aLayer21 = 1/(1 + exp(-(anew1+bnew1)));
aLayer22 = 1/(1 + exp(-(anew2+bnew2)));
aLayer23 = 1/(1 + exp(-(anew3+bnew3)));
aLayer2 = aLayer21 + aLayer22 + aLayer23;
bLayer21 = aLayer21*cnew1;
bLayer22 = aLayer22*cnew2;
bLayer23 = aLayer23*cnew3;
bLayer2 = bLayer21 + bLayer22 + bLayer23;
cout<<endl;
cout<<"bLayer is "<<bLayer2;
cout<<endl;
result2 = 1/(1+exp(-1.0*bLayer2));
cout<<"result is "<<result2;
cout<<endl;
deltaresult2 = result2*(1-result2);
cout<<"deltaresult is "<<deltaresult2;
next2 = deltaresult2 *(-result2);
cout<<endl;
cout<<"next is "<<next2;
cout<<endl;
cneww1 = cnew1 - next2/aLayer21;
cout<<endl;
cout<<"cneww1 is "<<cneww1;
cneww2 = cnew2 - next2/aLayer22;
cout<<endl;
cout<<"cneww2 is "<<cneww2;
cneww3 = cnew3 - next2/aLayer23;
cout<<endl;
cout<<"cneww3 is "<<cneww3;
cout<<endl;
cout<<endl<<endl;}
while (cin.get() != '\n');
return 0;
}