public void ResultTypeMatrixVectorTest() { var mul = new Mul(new Matrix(new[] { new Vector(new[] { new Number(2) }) }), new Vector(new[] { new Number(1) })); Assert.Equal(ExpressionResultType.Matrix, mul.ResultType); }
public void testMultiplication() { decimal op1 = 2.4m; decimal op2 = 5.8m; Assert.AreEqual(op1 * op2, Mul.Multiplication(op1, op2)); }
private void btnIgual_Click(object sender, EventArgs e) { segundo = double.Parse(tbxScreen.Text); double Sum; double Res; double Mul; double Div; switch (operador) { case "+": Sum = obj.Sumar((primeiro), (segundo)); tbxScreen.Text = Sum.ToString(); break; case "-": Res = obj2.Restar((primeiro), (segundo)); tbxScreen.Text = Res.ToString(); break; case "*": Mul = obj3.Multiplicar((primeiro), (segundo)); tbxScreen.Text = Mul.ToString(); break; case "/": Div = obj4.Dividir((primeiro), (segundo)); tbxScreen.Text = Div.ToString(); break; } }
public static void Main() { var e1 = new Add(new CstI(17), new Var("z")); // => Add(17, z) // WriteLine automatically calls .ToString on objects passed to it Console.WriteLine(e1); // (ii) Create three more expressions and print them // Easter egg: I totally stole them from Intro2.fs var e2 = new CstI(17); // => 17 var e3 = new Add(new CstI(3), new Var("a")); // => Add(3, a) var e4 = new Add(new Mul(new Var("b"), new CstI(9)), new Var("a")); // => Add(Mul(b, 9), a) Console.WriteLine(string.Format("{0}\n{1}\n{2}", e2, e3, e4)); // (iii) Add the eval function to each subclass of `Expr` var env = new Dictionary <string, int> { { "x", 5 }, { "y", 42 } }; var e5 = new Add(new Var("x"), new CstI(5)); Console.WriteLine(e5.Eval(env)); // => 10 // (iv) Add the simplify function to each subclass of `Expr` var e6 = new Add(new Var("x"), new CstI(0)); // => x var e7 = new Sub(new Var("x"), new CstI(0)); // => x var e8 = new Mul(new CstI(5), new CstI(0)); // => 0 var e9 = new Mul(new Var("x"), new CstI(1)); // => x Console.WriteLine(string.Format("{0}\n{1}\n{2}\n{3}", e6.Simplify(), e7.Simplify(), e8.Simplify(), e9.Simplify())); }
public void MulDiffNumMul_NumMulVar_() { var mul = new Mul(new Number(2), new Mul(new Number(2), Variable.X)); var expected = new Mul(new Number(4), Variable.X); SimpleTest(mul, expected); }
public void MulDiff_VarMulNum_MulNum() { var mul = new Mul(new Mul(Variable.X, new Number(2)), new Number(2)); var expected = new Mul(new Number(4), Variable.X); SimpleTest(mul, expected); }
public void MulSecondOne() { var mul = new Mul(Variable.X, new Number(1)); var expected = Variable.X; SimpleTest(mul, expected); }
public void MulTwoNumbers() { var mul = new Mul(new Number(2), new Number(3)); var expected = new Number(6); SimpleTest(mul, expected); }
public void MulByZero() { var mul = new Mul(Variable.X, new Number(0)); var expected = new Number(0); SimpleTest(mul, expected); }
public void MulFirstOne() { var mul = new Mul(new Number(1), Variable.X); var expected = Variable.X; SimpleTest(mul, expected); }
public void MulDiff_NumMulVar_MulNum() { var mul = new Mul(new Mul(new Number(2), new Variable("x")), new Number(2)); var expected = new Mul(new Number(4), new Variable("x")); SimpleTest(mul, expected); }
public void MulSecondOne() { var mul = new Mul(new Variable("x"), new Number(1)); var expected = new Variable("x"); SimpleTest(mul, expected); }
private void botonIgual_Click(object sender, EventArgs e) { segundo = double.Parse(tbxScreen.Text); double Sum; double Res; double Mul; double Div; switch (operador) { case "+": Sum = primero + segundo; tbxScreen.Text = Sum.ToString(); break; case "-": Res = primero - segundo; tbxScreen.Text = Res.ToString(); break; case "*": Mul = primero * segundo; tbxScreen.Text = Mul.ToString(); break; case "/": Div = primero / segundo; tbxScreen.Text = Div.ToString(); break; } }
public void TestMulRightMatrixLeftException() { var mul = new Mul(new Bool(false), new Matrix(new[] { new Vector(new[] { new Number(1) }) })); TestBinaryException(mul); }
public void TestMulVectorMatrixTest() { var mul = new Mul(new Vector(new[] { new Number(1) }), new Matrix(new[] { new Vector(new[] { new Number(2) }) })); Test(mul, ResultType.Matrix); }
private void BtnMul_Click(object sender, RoutedEventArgs e) { if (IsInputValid()) { Mul?.Invoke(this, new ButtonClickEventArgs(Model.Operations.Mul)); } }
public override TreeNode GetAstCodeGenerator(SymbolTable t) { switch (op) { case "+": var plus = new Plus((MIPSCodeGenerator.Expression)Left.GetAstCodeGenerator(t), (MIPSCodeGenerator.Expression)Rigth.GetAstCodeGenerator(t), Line); SetGeneratorType(plus); return(plus); case "-": var sub = new Sub((MIPSCodeGenerator.Expression)Left.GetAstCodeGenerator(t), (MIPSCodeGenerator.Expression)Rigth.GetAstCodeGenerator(t), Line); SetGeneratorType(sub); return(sub); case "*": var mul = new Mul((MIPSCodeGenerator.Expression)Left.GetAstCodeGenerator(t), (MIPSCodeGenerator.Expression)Rigth.GetAstCodeGenerator(t), Line); SetGeneratorType(mul); return(mul); case "/": var div = new Divide((MIPSCodeGenerator.Expression)Left.GetAstCodeGenerator(t), (MIPSCodeGenerator.Expression)Rigth.GetAstCodeGenerator(t), Line); SetGeneratorType(div); return(div); default: throw new InvalidOperationException(); } }
private void btnIgual_Click(object sender, EventArgs e) { valor2 = double.Parse(tbxScreen.Text); double Sum; double Sub; double Mul; double Div; switch (operador) { case "+": Sum = objeto.Somar((valor1), (valor2)); tbxScreen.Text = Sum.ToString(); break; case "-": Sub = objeto2.Dividir((valor1), (valor2)); tbxScreen.Text = Sub.ToString(); break; case "*": Mul = objeto3.Multiplicar((valor1), (valor2)); tbxScreen.Text = Mul.ToString(); break; case "/": Div = objeto4.Dividir((valor1), valor2); tbxScreen.Text = Div.ToString(); break; } }
private Layer ConvertMul(tflite.Operator op) { var inputs = op.GetInputsArray(); var inputA = _graph.Tensors(inputs[0]).Value; var inputB = _graph.Tensors(inputs[1]).Value; if (inputA.ShapeLength == 0) { var layer = new Mul(inputB.GetShapeArray().ToNCHW(), _model.GetScalar <float>(inputA)); _inputs.Add(layer.Input, inputs[1]); _outputs.Add(op.Outputs(0), layer.Output); return(layer); } else if (inputB.ShapeLength == 0) { var layer = new Mul(inputA.GetShapeArray().ToNCHW(), _model.GetScalar <float>(inputB)); _inputs.Add(layer.Input, inputs[0]); _outputs.Add(op.Outputs(0), layer.Output); return(layer); } else { throw new LayerNotSupportedException(op.ToString(), "Only scalar multiply is supported"); } }
public void ExecuteMulNumberByComplexTest() { var exp = new Mul(new Number(2), new ComplexNumber(3, 2)); var expected = new Complex(6, 4); Assert.Equal(expected, exp.Execute()); }
public void ExecuteMulNumberBySqrtComplexTest() { var exp = new Mul(new Number(2), new Sqrt(new Number(-9))); var expected = new Complex(0, 6); Assert.Equal(expected, exp.Execute()); }
public void ExecuteMulComplexByComplexTest() { var exp = new Mul(new ComplexNumber(2, 5), new ComplexNumber(3, 2)); var expected = new Complex(-4, 19); Assert.Equal(expected, exp.Execute()); }
public void ExecuteMulComplexByNumberTest() { var exp = new Mul(new ComplexNumber(2, 5), new Number(2)); var expected = new Complex(4, 10); Assert.Equal(expected, exp.Execute()); }
/// <summary> /// Analyzes the specified expression. /// </summary> /// <param name="exp">The expression.</param> /// <returns> /// The result of analysis. /// </returns> public override IExpression Analyze(Mul exp) { if (!Helpers.HasVariable(exp, Variable)) { return(new Number(0)); } var first = Helpers.HasVariable(exp.Left, Variable); var second = Helpers.HasVariable(exp.Right, Variable); if (first && second) { var mul1 = new Mul(exp.Left.Clone().Analyze(this), exp.Right.Clone()); var mul2 = new Mul(exp.Left.Clone(), exp.Right.Clone().Analyze(this)); var add = new Add(mul1, mul2); return(add); } if (first) { return(new Mul(exp.Left.Clone().Analyze(this), exp.Right.Clone())); } // if (second) return(new Mul(exp.Left.Clone(), exp.Right.Clone().Analyze(this))); }
public void CloneTest() { var exp = new Mul(Variable.X, new Number(0)); var clone = exp.Clone(); Assert.Equal(exp, clone); }
/// <summary> /// Analyzes the specified expression. /// </summary> /// <param name="exp">The expression.</param> /// <returns> /// The result of analysis. /// </returns> public override IExpression Analyze(Div exp) { if (!Helpers.HasVariable(exp, Variable)) { return(new Number(0)); } var first = Helpers.HasVariable(exp.Left, Variable); var second = Helpers.HasVariable(exp.Right, Variable); if (first && second) { var mul1 = new Mul(exp.Left.Clone().Analyze(this), exp.Right.Clone()); var mul2 = new Mul(exp.Left.Clone(), exp.Right.Clone().Analyze(this)); var sub = new Sub(mul1, mul2); var inv = new Pow(exp.Right.Clone(), new Number(2)); var division = new Div(sub, inv); return(division); } if (second) { var mul2 = new Mul(exp.Left.Clone(), exp.Right.Clone().Analyze(this)); var unMinus = new UnaryMinus(mul2); var inv = new Pow(exp.Right.Clone(), new Number(2)); var division = new Div(unMinus, inv); return(division); } //if (first) return(new Div(exp.Left.Clone().Analyze(this), exp.Right.Clone())); }
private void btnigual_Click(object sender, EventArgs e) { // Programando o botão de = com base nas classes criadas // segundo = double.Parse(tbxScreen.Text); double Som; double Su; double Mul; double Div; switch (operador) { case "+": Som = obj.Somar((primeiro), (segundo)); tbxScreen.Text = Som.ToString(); break; case "-": Su = obj2.subtracao((primeiro), (segundo)); tbxScreen.Text = Su.ToString(); break; case "*": Mul = obj3.Multiplicao((primeiro), (segundo)); tbxScreen.Text = Mul.ToString(); break; case "/": Div = obj4.Divisao((primeiro), (segundo)); tbxScreen.Text = Div.ToString(); break; } }
public void TestMulVectorNumber() { var mul = new Mul(new Vector(new[] { new Number(1) }), new Number(2)); Test(mul, ResultType.Vector); }
public void ExecuteMulBoolByComplex() { var boolean = new Bool(true); var complex = new ComplexNumber(3, 2); var mul = new Mul(boolean, complex); Assert.Throws <ResultIsNotSupportedException>(() => mul.Execute()); }
public void ExecuteDotProductTest() { var vector1 = new Maths.Expressions.Matrices.Vector(new[] { new Number(1), new Number(2), new Number(3) }); var vector2 = new Maths.Expressions.Matrices.Vector(new[] { new Number(4), new Number(5), new Number(6) }); var exp = new Mul(vector1, vector2); Assert.Equal(32.0, exp.Execute()); }
static void Main(string[] args) { var env = new System.Collections.Generic.Dictionary<string, int>(); env.Add("z",5); env.Add("x",2); Expr e1 = new Add(new CstI(17), new Var("z")).Simplify(); Expr e2 = new Mul(new Var("x"), new Var("z")).Simplify(); Expr e3 = new Sub(new Mul(new CstI(17), new CstI(5)), new Var("z")).Simplify(); Expr e4 = new Add(new CstI(17), new CstI(0)).Simplify(); System.Console.Out.WriteLine(e1.ToString() + " = " + e1.Eval(env)); System.Console.Out.WriteLine(e2.ToString() + " = " + e2.Eval(env)); System.Console.Out.WriteLine(e3.ToString() + " = " + e3.Eval(env)); System.Console.Out.WriteLine(e4.ToString() + " = " + e4.Eval(env)); System.Console.ReadLine(); }
public void Mul_MultiplyRegisters_ResultAndOverflowAreCorrect() { var prev = new MutableState().Set(Register.A, 0x345).Set(Register.B, 0x678); var state = new Mul(new Reg(Register.A), new Reg(Register.B)).Apply(prev); Assert.AreEqual(0x2658, state.Get(Register.A)); Assert.AreEqual(0x15, state.Get(Register.O)); }