# Alterna AI chapter 14: verified standalone examples
values=[[1,0],[0,1]]; weights=[.25,.75]
out=[sum(a*v[j] for a,v in zip(weights,values)) for j in range(2)]
assert out==[.25,.75]


X=[[1,0],[0,1],[1,1]]; W=[[2,0],[0,1]]
Q=[[sum(row[k]*W[k][j] for k in range(2)) for j in range(2)] for row in X]
assert Q==[[2,0],[0,1],[2,1]]


from math import exp,sqrt
a=1/(1+exp(1/sqrt(2)))
weights=[a,1-a,0]
assert abs(sum(weights)-1)<1e-12


from math import exp,sqrt
a=1/(2+exp(1/sqrt(2))); b=1-2*a
v=[[1,0],[0,1],[1,1]]; w=[a,a,b]
out=[sum(w[j]*v[j][r] for j in range(3)) for r in range(2)]
assert abs(out[0]-(a+b))<1e-12 and out[0]==out[1]

print('Chapter 14: 4 examples PASS')
