/// <summary> /// Fractions the scale equation factory. /// </summary> /// <param name="scalar">The scalar.</param> /// <param name="matrix">The matrix2.</param> /// <param name="matrixResult">The matrix result.</param> /// <returns></returns> public static RelationalOperation FractionScaleEquationFactory(FractionFactor scalar, NumericMatrixFactor matrix, out FractionNumericMatrixFactor matrixResult) { var values1 = (double)scalar.Numerator / scalar.Denominator; var values2 = matrix.Coefficients; var values3 = Operations.Scale(values1, values2); matrixResult = new FractionNumericMatrixFactor(values3, false); var equation = new RelationalOperation( ComparisonOperators.Equals, new NomialExpression( new ProductTerm(scalar, matrix) ), new ProductTerm(new NumericFactor(1), matrixResult) ); return(equation); }
/// <summary> /// Initializes a new instance of the <see cref="FractionNumericMatrixFactor" /> class. /// </summary> /// <param name="matrix">The items.</param> /// <param name="exponent">The exponent.</param> /// <param name="sequence">The sequence.</param> public FractionNumericMatrixFactor(FractionNumericMatrixFactor matrix, IExpression?exponent = null, INumeric?sequence = null) : this(matrix.Group, matrix.GroupingStyle, matrix.Items, exponent ?? matrix.Exponent, sequence ?? matrix.Sequence, matrix.Editable) { }
///// <summary> ///// True if we should make rows/columns have the same sizes. ///// </summary> //private readonly bool UniformRowSize; ///// <summary> ///// True if we should make rows/columns have the same sizes. ///// </summary> //private readonly bool UniformColSize; #endregion #region Constructors /// <summary> /// Initializes a new instance of the <see cref="FractionNumericMatrixFactor" /> class. /// </summary> /// <param name="matrix">The items.</param> /// <param name="exponent">The exponent.</param> /// <param name="sequence">The sequence.</param> public FractionNumericMatrixFactor(FractionNumericMatrixFactor matrix, double?exponent = null, double?sequence = null) : this(matrix.Group, matrix.GroupingStyle, matrix.Items, exponent is null ? matrix.Exponent : new FractionFactor(0, 0) { Value = exponent.Value }, sequence is null ? matrix.Sequence : new FractionFactor(sequence.Value), matrix.Editable) { }