/// <summary> /// Applies the activation funciton to the curent value. /// </summary> internal void Activate() { switch (func) { case ActFunc.Sine: value = Math.Sin(value); break; case ActFunc.Cosine: value = Math.Cos(value); break; case ActFunc.Gaussian: value = VMath.Gauss(value); break; case ActFunc.Sigmoid: value = Math.Tanh(value); break; case ActFunc.Sinc: value = VMath.Sinc(value); break; } //prevents propagating NaNs if (value.IsNaN()) { value = 0.0; } }