Linear Algebra library
Complex valued vectors
public interface ICVector
{
Complex this[int i] { get; set; }
Complex[] Components { get; set; }
int Dimensions { get; }
double Length { get; }
double LengthSquared { get; }
CVector Unit { get; }
double AngleBetween(CVector other);
CVector Conjugate();
Complex Dot(CVector other);
CVector Normalize();
double NormEuclidean();
double NormEuclideanSquared();
double NormManhattan();
CVector Reverse();
CVector Rotate(double radians);
CVector Scale(double scalar);
CVector TensorProduct(CVector other);
}Real valued vectors
public interface IVector
{
double this[int i] { get; set; }
double[] Components { get; set; }
int Dimensions { get; }
double Length { get; }
double LengthSquared { get; }
Vector Unit { get; }
double AngleBetween(Vector other);
Vector Conjugate();
double Dot(Vector other);
Vector Normalize();
double NormEuclidean();
double NormEuclideanSquared();
double NormManhattan();
Vector Reverse();
Vector Rotate(double radians);
Vector Scale(double scalar);
Vector TensorProduct(Vector other);
}Complex valued matrices
public interface ICMatrix
{
Complex this[int row, int col] { get; set; }
int Rows { get; }
int Cols { get; }
string Shape { get; }
Complex[,] Elements { get; set; }
CMatrix Conjugate();
CMatrix ConjugateTranspose();
Complex[] Flatten();
bool IsHermitian();
bool isSquare();
bool IsUnitary();
CMatrix TensorProduct(CMatrix matrix);
Complex Trace();
CMatrix Transpose();
}Real valued matrices
public interface IMatrix
{
double this[int row, int col] { get; set; }
int Rows { get; }
int Cols { get; }
string Shape { get; }
double[,] Elements { get; set; }
Matrix Conjugate();
Matrix ConjugateTranspose();
double[] Flatten();
bool IsHermitian();
bool isSquare();
bool IsUnitary();
Matrix TensorProduct(Matrix matrix);
double Trace();
Matrix Transpose();
}