Skip to content

PhyTensor/zeno

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

zeno

Linear Algebra library

Vectors

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);
}

Matrices

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();
}

Applications

Quantum Simulator

About

Linear Algebra library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages