public void Mult(double b) { var res = new NNArray(this.Length); for (int i = 0; i < this.Length; i++) { this.Values[i] *= b; } }
public static NNArray operator *(NNArray a, double b) { var res = new NNArray(a.Length); for (int i = 0; i < a.Length; i++) { res[i] = a[i] * b; } return(res); }
/// <summary> /// /// </summary> /// <param name="b"></param> /// <param name="res"> an array to store the result</param> public void Add(NNArray b, NNArray res) { if (this.Length != b.Length || this.Length != res.Length) { throw new ArgumentException("NNArrays do not have same length"); } for (int i = 0; i < this.Length; i++) { this.Values[i] += b[i]; } }
public void Subst(NNArray b) { if (this.Length != b.Length) { throw new ArgumentException("NNArrays do not have same length"); } var res = new NNArray(this.Length); for (int i = 0; i < this.Length; i++) { this.Values[i] -= b[i]; } }
public static NNArray operator +(NNArray a, NNArray b) { if (a.Length != b.Length) { throw new ArgumentException("NNArrays do not have same length"); } var res = new NNArray(a.Length); for (int i = 0; i < a.Length; i++) { res[i] = a[i] + b[i]; } return(res); }
/// <summary>Linear algebraic matrix multiplication, A * B</summary> /// <param name="B"> an array</param> /// <param name="X"> an array to store the result</param> /// <returns> Matrix product, A * B /// </returns> /// <exception cref="System.ArgumentException"> Matrix inner dimensions must agree. /// </exception> public virtual void Multiply(NNArray B, NNArray X) { if (B.Length != n || X.Length != m) { throw new System.ArgumentException("GeneralMatrix inner dimensions must agree."); } for (int j = 0; j < m; j++) { double val = 0; for (int i = 0; i < n; i++) { val += this[i, j] * B[i]; } X.Values[j] = val; } }
/// <summary>Linear algebraic matrix multiplication, A * B</summary> /// <param name="B"> an array /// </param> /// <returns> Matrix product, A * B /// </returns> /// <exception cref="System.ArgumentException"> Matrix inner dimensions must agree. /// </exception> public virtual NNArray Multiply(NNArray B) { if (B.Length != n) { throw new System.ArgumentException("GeneralMatrix inner dimensions must agree."); } NNArray X = new NNArray(this.NbCols); for (int j = 0; j < m; j++) { double val = 0; for (int i = 0; i < n; i++) { val += this[i, j] * B[i]; } X.Values[j] = val; } return(X); }