13,247,448 members (90,445 online)

#### Stats

71.5K views
91 bookmarked
Posted 19 Sep 2012

# Yet Another Math Parser (YAMP)

, 30 Sep 2012
Constructing a fast math parser using Reflection to do numerics like Matlab.
 ```using System; namespace YAMP { abstract class DotOperator : BinaryOperator { BinaryOperator _top; public DotOperator(BinaryOperator top) : base("." + top.Op, top.Level) { _top = top; } public abstract ScalarValue Operation(ScalarValue left, ScalarValue right); public override Value Perform(Value left, Value right) { if (left.GetType() != right.GetType()) throw new OperationNotSupportedException(Op, right); if (left is MatrixValue) { var l = left as MatrixValue; var r = right as MatrixValue; if (l.DimensionX != r.DimensionX) throw new DimensionException(l.DimensionX, r.DimensionX); if (l.DimensionY != r.DimensionY) throw new DimensionException(l.DimensionY, r.DimensionY); var m = new MatrixValue(l.DimensionY, l.DimensionX); for (var i = 1; i <= l.DimensionX; i++) for (var j = 1; j <= l.DimensionY; j++) m[j, i] = Operation(l[j, i], r[j, i]); return m; } return _top.Perform(left, right); } } } ```

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

## Share

 Architect Germany
Florian lives in Munich, Germany. He started his programming career with Perl. After programming C/C++ for some years he discovered his favorite programming language C#. He did work at Siemens as a programmer until he decided to study Physics.

During his studies he worked as an IT consultant for various companies. After graduating with a PhD in theoretical particle Physics he is working as a senior technical consultant in the field of home automation and IoT.

Florian has been giving lectures in C#, HTML5 with CSS3 and JavaScript, software design, and other topics. He is regularly giving talks at user groups, conferences, and companies. He is actively contributing to open-source projects. Florian is the maintainer of AngleSharp, a completely managed browser engine.