Well it might be cleaner than doing it manually, but is it faster? And it's no cleaner than actual vectors in C, which are clean and very fast. Arrays have boxing/unboxing. Compared to vectors which have direct data access, you're essentially doing 2 memory lookups.
For you this might be fine doing offline simulations etc, but for realtime applications speed is crucial.
For example there is a library in C# called Linq, that has some of the operators you've shown, but under the hood it's slow and generates a lot of garbage, so is far from ideal for real world use.
Have you tried benchmarking the a * b operator compared to manual loops/calculations?
Admittedly the code is certainly trim and clean with those kind of operators replacing loops, if it could compile to machine code that was just as efficient.
Untyped variables fucking suck though