/// <summary> /// Constructs this matrix from a cmat3x2. Non-overwritten fields are from an Identity matrix. /// </summary> public cmat2(cmat3x2 m) { this.m00 = m.m00; this.m01 = m.m01; this.m10 = m.m10; this.m11 = m.m11; }
/// <summary> /// Constructs this matrix from a cmat3x2. Non-overwritten fields are from an Identity matrix. /// </summary> public cmat2x3(cmat3x2 m) { this.m00 = m.m00; this.m01 = m.m01; this.m02 = Complex.Zero; this.m10 = m.m10; this.m11 = m.m11; this.m12 = Complex.Zero; }
/// <summary> /// Constructs this matrix from a cmat3x2. Non-overwritten fields are from an Identity matrix. /// </summary> public cmat4x2(cmat3x2 m) { this.m00 = m.m00; this.m01 = m.m01; this.m10 = m.m10; this.m11 = m.m11; this.m20 = m.m20; this.m21 = m.m21; this.m30 = Complex.Zero; this.m31 = Complex.Zero; }
/// <summary> /// Constructs this matrix from a cmat3x2. Non-overwritten fields are from an Identity matrix. /// </summary> public cmat3(cmat3x2 m) { this.m00 = m.m00; this.m01 = m.m01; this.m02 = Complex.Zero; this.m10 = m.m10; this.m11 = m.m11; this.m12 = Complex.Zero; this.m20 = m.m20; this.m21 = m.m21; this.m22 = Complex.One; }
/// <summary> /// Constructs this matrix from a cmat3x2. Non-overwritten fields are from an Identity matrix. /// </summary> public cmat4(cmat3x2 m) { this.m00 = m.m00; this.m01 = m.m01; this.m02 = Complex.Zero; this.m03 = Complex.Zero; this.m10 = m.m10; this.m11 = m.m11; this.m12 = Complex.Zero; this.m13 = Complex.Zero; this.m20 = m.m20; this.m21 = m.m21; this.m22 = Complex.One; this.m23 = Complex.Zero; this.m30 = Complex.Zero; this.m31 = Complex.Zero; this.m32 = Complex.Zero; this.m33 = Complex.One; }
/// <summary> /// Returns an enumerator that iterates through all fields. /// </summary> public static IEnumerator <Complex> GetEnumerator(cmat3x2 m) => m.GetEnumerator();
/// <summary> /// Creates a 1D array with all values (internal order) /// </summary> public static Complex[] Values1D(cmat3x2 m) => m.Values1D;
/// <summary> /// Creates a 2D array with all values (address: Values[x, y]) /// </summary> public static Complex[,] Values(cmat3x2 m) => m.Values;
/// <summary> /// Executes a component-wise - (subtract). /// </summary> public static cmat3x2 CompSub(cmat3x2 A, cmat3x2 B) => new cmat3x2(A.m00 - B.m00, A.m01 - B.m01, A.m10 - B.m10, A.m11 - B.m11, A.m20 - B.m20, A.m21 - B.m21);
/// <summary> /// Executes a component-wise + (add). /// </summary> public static cmat3x2 CompAdd(cmat3x2 A, cmat3x2 B) => new cmat3x2(A.m00 + B.m00, A.m01 + B.m01, A.m10 + B.m10, A.m11 + B.m11, A.m20 + B.m20, A.m21 + B.m21);
/// <summary> /// Executes a component-wise / (divide). /// </summary> public static cmat3x2 CompDiv(cmat3x2 A, cmat3x2 B) => new cmat3x2(A.m00 / B.m00, A.m01 / B.m01, A.m10 / B.m10, A.m11 / B.m11, A.m20 / B.m20, A.m21 / B.m21);
/// <summary> /// Executes a component-wise * (multiply). /// </summary> public static cmat3x2 CompMul(cmat3x2 A, cmat3x2 B) => new cmat3x2(A.m00 * B.m00, A.m01 * B.m01, A.m10 * B.m10, A.m11 * B.m11, A.m20 * B.m20, A.m21 * B.m21);
/// <summary> /// Returns true iff this equals rhs component-wise. /// </summary> public bool Equals(cmat3x2 rhs) => (((m00.Equals(rhs.m00) && m01.Equals(rhs.m01)) && m10.Equals(rhs.m10)) && ((m11.Equals(rhs.m11) && m20.Equals(rhs.m20)) && m21.Equals(rhs.m21)));