MyNixOS website logo
Description

Random Matrix Analysis Toolkit.

Simulate random matrices and ensembles and compute their eigenvalue spectra and dispersions.

RMAT: Random Matrix Analysis Toolkit

RMAT is an R package for simulating random matrices and ensembles as well as computing and analyzing their eigenvalue spectra and dispersions.

Installation

NOTE: This package has been submitted to CRAN and is pending release.

You can install the package in one of two ways:

# Through CRAN
install.packages("RMAT")
# Through Github
devtools::install_github(repo = "ataqi23/RMAT")

Usage

The package can be thought to contain two priamry modules: the matrix module and spectral statistics module.

Matrices

Included in the package are various wrapper functions for generating random matrices very efficiently. They follow the RM_xxx format in allusion to the stats sampling functions like rnorm. Every matrix sampling function has an ensemble counterpart in the RME_xxx format.

Consider the following example:

library(RMAT)
# Generate an ensemble of 50x50 Complex Hermitian Standard Normal matrices
ens <- RME_norm(N = 20, cplx = T, herm = T, size = 50)

The matrices included are:

  • Uniform Matrices
  • Normal Matrices
  • Tridiagonal Matrices
  • Beta Ensemble for b = 1,2,4
  • Generalized Beta Ensemble for b > 0
  • Stochastic Matrices
  • Erdos-Renyi Graph Transition Matrices

Spectral Statistics

The two primary functions in the spectral statistics module are spectrum and dispersion. These two functions take either a matrix or an ensemble, and return the respective eigenvalue spectrum or dispersion. Consider the following example:

library(RMAT)
# Generate a random matrix ensemble
ens <- RME_beta(N = 20, beta = 4, size = 50)
# Compute the spectral statistics of the ensemble
ens_spectrum <- spectrum(ens, sort_norms = FALSE)
ens_dispersion <- dispersion(ens, pairs = "consecutive", sort_norms = FALSE)

About

This package was developed as a part of my Reed senior thesis in the Spring of 2021.

Metadata

Version

0.2.0

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows