示例#1
0
        public void Build_KEqualsMinus_CorrectResultReturned()
        {
            var linearBuilder = new LinearBuilder();
            var res           = linearBuilder.Build("-x");
            var expected      = new Linear(-1, 0);

            Assert.AreEqual(expected, res);
        }
示例#2
0
        public void Build_TestOfParseMinusCoefficients_CorrectResultReturned()
        {
            var linearBuilder  = new LinearBuilder();
            var res            = linearBuilder.Build("-2.5x-11");
            var expectedResult = new Linear(-2.5, -11);

            Assert.AreEqual(expectedResult, res);
        }
示例#3
0
        public void Build_KEqualsZero_CorrectResultReturned()
        {
            var linearBuilder = new LinearBuilder();
            var res           = linearBuilder.Build("x+1");
            var expected      = new Linear(1, 1);

            Assert.AreEqual(expected, res);
        }
示例#4
0
        private static void Main(string[] args)
        {
            // var sin = Sine.SIN;
            // var cos = Cosine.COS;
            // var pow = new Power<RealNumber, Integer>();
            // var plus = new Sum<RealNumber>();
            // var x = new VariableNode<RealNumber>("x");
            //
            // var sinnode = new MappingNode<RealNumber, RealNumber>(sin, new Node<RealNumber>[]{x});
            // var cosnode = new MappingNode<RealNumber, RealNumber>(cos, new Node<RealNumber>[]{x});
            // var sin2 = new BiFunctionNode<RealNumber, Integer, RealNumber>(pow, sinnode, new ConstantNode<Integer>(2));
            // var cos2 = new BiFunctionNode<RealNumber, Integer, RealNumber>(pow, cosnode, new ConstantNode<Integer>(2));
            //
            // var sum = new MappingNode<RealNumber, RealNumber>(plus,new Node<RealNumber>[]{sin2, cos2});
            //
            // var pyth = new SimplificationRule<RealNumber>(sum, new ConstantNode<RealNumber>(1));
            // var four = new ConstantNode<RealNumber>(4);
            //
            // sinnode = new MappingNode<RealNumber, RealNumber>(sin, new Node<RealNumber>[]{new ConstantNode<RealNumber>(1)});
            // cosnode = new MappingNode<RealNumber, RealNumber>(cos, new Node<RealNumber>[]{new ConstantNode<RealNumber>(1)});
            //
            // sin2 = new BiFunctionNode<RealNumber, Integer, RealNumber>(pow, sinnode, new ConstantNode<Integer>(2));
            // cos2 = new BiFunctionNode<RealNumber, Integer, RealNumber>(pow, cosnode, new ConstantNode<Integer>(2));
            //
            // sum = new MappingNode<RealNumber, RealNumber>(plus,
            //     new Node<RealNumber>[]{sin2, cos2});
            //
            // Console.WriteLine(pyth.IsApplicable(sum));
            // Console.WriteLine(pyth.TryApply(sum).GetValue().evaluate());

            // var r = LinearBuilder.range(0, Math.PI, 100);
            // Console.WriteLine(r.EntryWiseApply(Sine.SIN).ToLaTeX());

            var A = new Matrix <RealNumber>(new RealNumber[, ] {
                { 1, 2, 4 }, { 0, 2, 3 }, { 6, 0, 1 }
            });
            // var M = LinearBuilder.random(new ContinuousUniformRandomVariable(0, 1), 30, 30);
            var M = ((Matrix <RealNumber>)LinearBuilder.range(1, 40, 1)) * ~LinearBuilder.range(1, 40, 1);

            M[10, 10] = A;

            Console.WriteLine(M.ToLaTeX());
        }