{
  "name": "Comparative Specifications of Scientific Software Libraries for Randomized Algorithms",
  "description": "Cross-platform comparative specifications of open-source scientific software libraries implementing randomized numerical linear algebra and randomized optimization algorithms, compiled from official software documentation and peer-reviewed algorithmic literature.",
  "page": "https://casrai.org/guides/randomized-algorithms",
  "publisher": "CASRAI",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "dateModified": "2026-11-14T11:13:26Z",
  "temporalCoverage": "2011/2026",
  "spatialCoverage": "Global",
  "columns": [
    {
      "name": "Library and Environment",
      "unit": "",
      "description": "Software library name and primary programming language environment"
    },
    {
      "name": "Primary Randomized Modules",
      "unit": "",
      "description": "Core modules and subpackages providing randomized algorithmic routines"
    },
    {
      "name": "Algorithms Implemented",
      "unit": "",
      "description": "Key randomized algorithms supported in the library"
    },
    {
      "name": "Matrix Input Types",
      "unit": "",
      "description": "Supported data structures and matrix formats for randomized computation"
    },
    {
      "name": "Default Oversampling",
      "unit": "",
      "description": "Default oversampling parameter (p) added to target rank"
    },
    {
      "name": "Default Power Iterations",
      "unit": "",
      "description": "Default number of subspace power iterations (q) for spectral decay"
    },
    {
      "name": "Software License",
      "unit": "",
      "description": "Open-source software distribution license"
    }
  ],
  "rows": [
    {
      "Library and Environment": "SciPy (Python)",
      "Primary Randomized Modules": "scipy.linalg.interpolative, scipy.stats.sampling",
      "Algorithms Implemented": "Interpolative Decomposition, Randomized SVD, UNU.RAN random variates",
      "Matrix Input Types": "Dense ndarray, scipy.sparse.linalg.LinearOperator",
      "Default Oversampling": 10,
      "Default Power Iterations": 0,
      "Software License": "BSD 3-Clause"
    },
    {
      "Library and Environment": "Scikit-Learn (Python)",
      "Primary Randomized Modules": "sklearn.utils.extmath, sklearn.model_selection",
      "Algorithms Implemented": "Randomized Truncated SVD (Halko et al.), RandomizedSearchCV",
      "Matrix Input Types": "Dense ndarray, SciPy CSR/CSC sparse matrices",
      "Default Oversampling": 10,
      "Default Power Iterations": 4,
      "Software License": "BSD 3-Clause"
    },
    {
      "Library and Environment": "PyTorch (Python / CUDA)",
      "Primary Randomized Modules": "torch.svd_lowrank, torch.pca_lowrank",
      "Algorithms Implemented": "Randomized SVD on GPU/CPU (Halko framework), Randomized PCA",
      "Matrix Input Types": "Dense torch.Tensor, torch.sparse_coo_tensor",
      "Default Oversampling": 6,
      "Default Power Iterations": 2,
      "Software License": "Modified BSD"
    },
    {
      "Library and Environment": "RandomizedLinAlg.jl (Julia)",
      "Primary Randomized Modules": "RandomizedLinAlg.jl",
      "Algorithms Implemented": "Randomized SVD, Randomized range finder, Randomized CUR decomposition",
      "Matrix Input Types": "StridedMatrix, SparseMatrixCSC, AbstractMatrix",
      "Default Oversampling": 5,
      "Default Power Iterations": 2,
      "Software License": "MIT"
    },
    {
      "Library and Environment": "rsvd (R Package)",
      "Primary Randomized Modules": "rsvd::rsvd, rsvd::rpca",
      "Algorithms Implemented": "Randomized SVD, Randomized Principal Component Analysis, Robust PCA",
      "Matrix Input Types": "Base matrix, Matrix package dgCMatrix (sparse)",
      "Default Oversampling": 10,
      "Default Power Iterations": 3,
      "Software License": "GPL-3"
    },
    {
      "Library and Environment": "Eigen / RedSVD (C++)",
      "Primary Randomized Modules": "RedSVD-h (Eigen integration)",
      "Algorithms Implemented": "Randomized SVD, Randomized PCA, Gaussian random projection",
      "Matrix Input Types": "Eigen::MatrixXf, Eigen::SparseMatrix",
      "Default Oversampling": 10,
      "Default Power Iterations": 2,
      "Software License": "BSD 3-Clause"
    }
  ],
  "sources": [
    {
      "title": "SciPy Reference Guide: scipy.linalg.interpolative",
      "url": "https://docs.scipy.org/doc/scipy/reference/linalg.interpolative.html",
      "accessed": "2026-11-14"
    },
    {
      "title": "Scikit-learn Documentation: sklearn.utils.extmath.randomized_svd",
      "url": "https://scikit-learn.org/stable/modules/generated/sklearn.utils.extmath.randomized_svd.html",
      "accessed": "2026-11-14"
    },
    {
      "title": "PyTorch Documentation: torch.svd_lowrank",
      "url": "https://pytorch.org/docs/stable/generated/torch.svd_lowrank.html",
      "accessed": "2026-11-14"
    },
    {
      "title": "Finding Structure with Randomness (Halko, Martinsson, & Tropp 2011)",
      "url": "https://doi.org/10.1137/090771806",
      "accessed": "2026-11-14"
    }
  ]
}