// (C) 2020 Dmitri Fedorov; License: GNU GPL v3+; no warranty. using System; using System.IO; using static System.Math; using static System.Console; public partial class vector{ private double[] data; //public int size{ get{return data.Length;} } public int size => data.Length; public double this[int i]{ get{return data[i];} set{data[i]=value;} } public vector(int n){data=new double[n];} public vector(double[] a){data=a;} public vector(double a) { data = new double[]{a}; } public vector(double a, double b) { data = new double[]{a,b}; } public vector(double a, double b, double c) { data = new double[]{a,b,c}; } public vector(double a, double b, double c, double d) { data = new double[]{a,b,c,d}; } 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