Example #1
0
        private IElement ConvertToMatrix(IElement E)
        {
            if (this.nullCheck && E.AssociatedObjectValue is null)
            {
                return(E);
            }

            if (E is IMatrix)
            {
                return(E);
            }

            if (E is IVector V)
            {
                return(MatrixDefinition.Encapsulate(V.VectorElements, 1, V.Dimension, this));
            }

            if (E is ISet S)
            {
                ICollection <IElement> Elements = S.ChildElements;
                return(MatrixDefinition.Encapsulate(Elements, 1, Elements.Count, this));
            }

            return(MatrixDefinition.Encapsulate(new IElement[] { E }, 1, 1, this));
        }
Example #2
0
        /// <summary>
        /// Evaluates the node, using the variables provided in the <paramref name="Variables"/> collection.
        /// </summary>
        /// <param name="Variables">Variables collection.</param>
        /// <returns>Result.</returns>
        public override IElement Evaluate(Variables Variables)
        {
            IElement Operand = this.op.Evaluate(Variables);

            if (Operand is IMatrix Matrix)
            {
                return(Matrix.ConjugateTranspose());
            }

            if (Operand is IVector Vector)
            {
                return(MatrixDefinition.Encapsulate(Vector.VectorElements, 1, Vector.Dimension, this).ConjugateTranspose());
            }

            return(Operand);
        }
Example #3
0
        /// <summary>
        /// Evaluates the node, using the variables provided in the <paramref name="Variables"/> collection.
        /// </summary>
        /// <param name="Variables">Variables collection.</param>
        /// <returns>Result.</returns>
        public override IElement Evaluate(Variables Variables)
        {
            IElement E = this.op.Evaluate(Variables);

            if (E is IMatrix)
            {
                return(E);
            }

            if (E is IVector V)
            {
                return(MatrixDefinition.Encapsulate(V.VectorElements, 1, V.Dimension, this));
            }

            if (E is ISet S)
            {
                ICollection <IElement> Elements = S.ChildElements;
                return(MatrixDefinition.Encapsulate(Elements, 1, Elements.Count, this));
            }

            return(MatrixDefinition.Encapsulate(new IElement[] { E }, 1, 1, this));
        }
Example #4
0
 /// <summary>
 /// Encapsulates the calculated elements.
 /// </summary>
 /// <param name="Elements">Elements</param>
 /// <returns>Encapsulated elements.</returns>
 protected override IElement Encapsulate(LinkedList <IElement> Elements)
 {
     return(MatrixDefinition.Encapsulate(Elements, this));
 }