示例#1
0
        /// <summary>
        /// Creates a new <see cref="VectorProjOperNode"/> projecting <paramref name="a"/> onto <paramref name="b"/>.
        /// </summary>
        /// <param name="a">The <see cref="TensorNode"/> to project from.</param>
        /// <param name="b">The <see cref="TensorNode"/> to project onto.</param>
        /// <returns>A new <see cref="VectorProjOperNode"/> as <paramref name="a"/> projected onto <paramref name="b"/>.</returns>
        public static VectorProductOperNode DotProduct(TensorNode a, TensorNode b)
        {
            VectorProductOperNode node = new VectorProductOperNode(VectorProductMethod.DOT);

            node.AddChild(a);
            node.AddChild(b);
            return(node);
        }
示例#2
0
        public void DotProduct()
        {
            // Parse
            DefaultParser         parser = new DefaultParser();
            VectorProductOperNode node   = new VectorProductOperNode(VectorProductMethod.DOT);

            parser.ParseString("<2,1,3>");
            node.AddChild(parser.Tree.Root);
            parser = new DefaultParser();
            parser.ParseString("<1,2,3>");
            node.AddChild(parser.Tree.Root);

            // Simplify
            Simplifier simplifier = new Simplifier();
            ExpNode    exp_result = node.Execute(simplifier);

            // Print
            DefaultPrinter printer    = new DefaultPrinter();
            string         str_result = exp_result.Print(printer);

            // Compare
            Assert.IsTrue(str_result == "13");
        }