Beispiel #1
0
    /// <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)
    {
    }