anchor.diff:  let addVectors xs ys    = List.map2 (+) xs ys
   let logSigmoid x        = (/) 1.0 ((+) 1.0 (exp -x))
   let dervLogSigmoid x    = (*) x ((-) 1.0 x)
  -let dervTanH x          = (*) (1.0 - x) (1.0 + x)
  +
  +/// Derivative of TanH i.e. sec^2h.
  +let deltaTanH x = (/) 1.0 <| (*) (cosh x) (cosh x)
  +
   let gradient dFunc output target = (*) (dFunc output) ((-) target output)
   
   let weightedSum inputs weights bias =
  
positive.code:  let out_bias_newDeltas = addVectors out_bias_deltas out_bias_prevDeltasWithM
   let out_bias_update = addVectors net.OutputBias out_bias_newDeltas
   
   let hid_grads = mulVectors (List.map dervTanH net.HiddenNetOutputs) (List.map (dotProduct out_grads) (transpose net.HiddenToOutputWeights))
   let hid_deltas = deltas net.N hid_grads net.Inputs
   let hid_prevDeltasWithM = List.map (sclarVectorMul net.M) net.HiddenPrevDeltas
   let hid_newDeltas = List.map2 addVectors hid_deltas hid_prevDeltasWithM
  
negative.code: let testing_samples = [| [ 0.692; 0.000; 0.000; 0.174; 0.000; 0.000; 0.000; ] |]
  let teaching_samples_inputs = [| [ 1.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 0.0; 1.0; 0.0; 0.0;  ] |]
  
  let epoch = 100
  
  let trained =
   train
  