// (C) 2020 Dmitri Fedorov; License: GNU GPL v3+; no warranty. using System; using System.IO; using System.Runtime.CompilerServices; using static System.Math; using static System.Console; public partial class vector{ private double[] data; public int size => data.Length; public double this[int i]{ [MethodImpl(MethodImplOptions.AggressiveInlining)] get => data[i]; [MethodImpl(MethodImplOptions.AggressiveInlining)] set => data[i]=value; } public vector(int n){data=new double[n];} public vector(params double[] list){data=list;} public vector(string s){ char[] separators={',',' '}; var options = StringSplitOptions.RemoveEmptyEntries; string[] words = s.Split(separators,options); int n = words.Length; data = new double[n]; for(int i=0;if){ vector v=new vector(size); for(int i=0;ir)r=Abs(this[i]); return r; } public double max(){ double r=this[0]; for(int i=1;ir)r=this[i]; return r; } public double min(){ double r=this[0]; for(int i=1;i