Package: MPCR 1.1.3

Sameh Abdulah

MPCR: Multi- And Mixed-Precision Computations

Designed for multi- and mixed-precision computations, accommodating 64-bit and 32-bit data structures. This flexibility enables fast execution across various applications. The package enhances performance by optimizing operations in both precision levels, which is achieved by integrating with high-speed 'BLAS' and 'LAPACK' libraries like 'MKL' and 'OpenBLAS'. Including a 32-bit option caters to applications where high precision is unnecessary, accelerating computational processes whenever feasible. The package also provides support for tile-based algorithms in three linear algebra operations: CHOL(), TRSM(), and GEMM(). The tile-based algorithm splits the matrix into smaller tiles, facilitating parallelization through a predefined Directed Acyclic Graph (DAG) for each operation. Enabling 'OpenMP' enhances the efficiency of these operations, leveraging multi-core parallelism. In this case, 'MPCR' facilitates mixed-precision execution by permitting varying precision levels for different tiles. This approach is advantageous in numerous applications, as it maintains the accuracy of the application while accelerating execution in scenarios where single-precision alone does not significantly affect the accuracy of the application.

Authors:David Helmy [aut], Sameh Abdulah [cre], KAUST King Abdullah University of Science and Technology [fnd, cph]

MPCR_1.1.3.tar.gz
MPCR_1.1.3.tar.gz(r-4.5-noble)MPCR_1.1.3.tar.gz(r-4.4-noble)
MPCR_1.1.3.tgz(r-4.4-emscripten)MPCR_1.1.3.tgz(r-4.3-emscripten)
MPCR.pdf |MPCR.html
MPCR/json (API)

# Install 'MPCR' in R:
install.packages('MPCR', repos = c('https://cran.r-universe.dev', 'https://cloud.r-project.org'))

Peer review:

Bug tracker:https://github.com/stsds/mpcr/issues

Uses libs:
  • openmp– GCC OpenMP (GOMP) support library
  • c++– GNU Standard C++ Library v3

openmpcpp

3.69 score 98 scripts 227 downloads 123 exports 1 dependencies

Last updated 3 months agofrom:8de041fec1. Checks:OK: 2. Indexed: no.

TargetResultDate
Doc / VignettesOKDec 08 2024
R-4.5-linux-x86_64OKDec 08 2024

Exports:as.MPCRbacksolvecholchol2invdiageigenforwardsolveisSymmetricLa.svdMPCRMPCR.absMPCR.acosMPCR.acoshMPCR.AddMPCR.asinMPCR.asinhMPCR.atanMPCR.atanhMPCR.backsolveMPCR.cbindMPCR.ceilingMPCR.ChangePrecisionMPCR.cholMPCR.chol2invMPCR.ConcatenateMPCR.copyMPCR.cosMPCR.coshMPCR.crossprodMPCR.DeSerializeMPCR.diagMPCR.DivideMPCR.eigenMPCR.expMPCR.expm1MPCR.floorMPCR.forwardsolveMPCR.gammaMPCR.gemmMPCR.is.doubleMPCR.is.finiteMPCR.is.floatMPCR.is.halfMPCR.is.infiniteMPCR.is.naMPCR.is.nanMPCR.is.singleMPCR.isSymmetricMPCR.La.svdMPCR.lgammaMPCR.logMPCR.log10MPCR.log2MPCR.maxMPCR.minMPCR.MultiplyMPCR.na.excludeMPCR.na.omitMPCR.ncolMPCR.normMPCR.nrowMPCR.object.sizeMPCR.PowerMPCR.printMPCR.qrMPCR.qr.QMPCR.qr.qtyMPCR.qr.qyMPCR.qr.RMPCR.rbindMPCR.rcondMPCR.repMPCR.roundMPCR.scaleMPCR.SerializeMPCR.showMPCR.sinMPCR.sinhMPCR.solveMPCR.sqrtMPCR.storage.modeMPCR.strMPCR.SubtractMPCR.svdMPCR.sweepMPCR.tMPCR.tanMPCR.tanhMPCR.tcrossprodMPCR.ToNumericMatrixMPCR.ToNumericVectorMPCR.trsmMPCR.truncMPCR.typeofMPCR.which.maxMPCR.which.minMPCRTileMPCRTile.cholMPCRTile.copyMPCRTile.gemmMPCRTile.GetSerializedTileMPCRTile.GetTileMPCRTile.trsmMPCRTile.UpdateTilencolnormnrowprintqrqr.Qqr.qtyqr.qyqr.Rrcondscalesolvestorage.modesvdsweepttypeofwhich.maxwhich.min

Dependencies:Rcpp

mpcr

Rendered fromMCPR.Rnwusingutils::Sweaveon Dec 08 2024.

Last update: 2024-01-12
Started: 2024-01-12

Readme and manuals

Help Manual

Help pageTopics
MPCR S4 ClassMPCR MPCR.DeSerialize MPCR.Serialize Rcpp_MPCR-class
MPCRTile S4 ClassMPCRTile MPCRTile.GetSerializedTile MPCRTile.GetTile MPCRTile.UpdateTile Rcpp_MPCRTile-class
Convertersas.MPCR Converters MPCR.ToNumericMatrix MPCR.ToNumericVector
Binary arithmetic numeric/MPCR objects.*,Rcpp_MPCR,BaseLinAlg-method *,Rcpp_MPCR,Rcpp_MPCR-method +,Rcpp_MPCR,BaseLinAlg-method +,Rcpp_MPCR,Rcpp_MPCR-method -,Rcpp_MPCR,BaseLinAlg-method -,Rcpp_MPCR,Rcpp_MPCR-method /,Rcpp_MPCR,BaseLinAlg-method /,Rcpp_MPCR,Rcpp_MPCR-method arithmetic MPCR.Add MPCR.Divide MPCR.Multiply MPCR.Power MPCR.Subtract ^,Rcpp_MPCR,BaseLinAlg-method ^,Rcpp_MPCR,Rcpp_MPCR-method
Binary comparison operators for numeric/MPCR objects.!=,Rcpp_MPCR,BaseLinAlg-method !=,Rcpp_MPCR,Rcpp_MPCR-method <,Rcpp_MPCR,BaseLinAlg-method <,Rcpp_MPCR,Rcpp_MPCR-method <=,Rcpp_MPCR,BaseLinAlg-method <=,Rcpp_MPCR,Rcpp_MPCR-method ==,Rcpp_MPCR,BaseLinAlg-method ==,Rcpp_MPCR,Rcpp_MPCR-method >,Rcpp_MPCR,BaseLinAlg-method >,Rcpp_MPCR,Rcpp_MPCR-method >=,Rcpp_MPCR,BaseLinAlg-method >=,Rcpp_MPCR,Rcpp_MPCR-method comparison
Extract or replace elements from an MPCR object.[,Rcpp_MPCR-method [<-,Rcpp_MPCR-method [[,Rcpp_MPCR-method [[<-,Rcpp_MPCR-method
dimensionsdimensions MPCR.ncol MPCR.nrow ncol,Rcpp_MPCR-method nrow,Rcpp_MPCR-method
copycopy MPCR.copy MPCRTile.copy
concatenateconcatenate MPCR.Concatenate MPCR.Concatenate,Rcpp_MPCR-method
bindMPCR.cbind MPCR.cbind,Rcpp_MPCR-method MPCR.rbind MPCR.rbind,Rcpp_MPCR-method
diagdiag diag,Rcpp_MPCR-method MPCR.diag
Min-Max Functionsextremes max,Rcpp_MPCR-method min,Rcpp_MPCR-method MPCR.max MPCR.min MPCR.which.max MPCR.which.min which.max,Rcpp_MPCR-method which.min,Rcpp_MPCR-method
Logarithms and Exponentialsexp,Rcpp_MPCR-method expm1,Rcpp_MPCR-method log log,Rcpp_MPCR-method log10,Rcpp_MPCR-method log2,Rcpp_MPCR-method MPCR.exp MPCR.expm1 MPCR.log MPCR.log10 MPCR.log2
Finite, infinite, and NaNsis.finite,Rcpp_MPCR-method is.infinite,Rcpp_MPCR-method is.nan,Rcpp_MPCR-method mathis MPCR.is.finite MPCR.is.infinite MPCR.is.nan
Miscellaneous mathematical functionsabs,Rcpp_MPCR-method miscmath MPCR.abs MPCR.sqrt sqrt,Rcpp_MPCR-method
NA'sMPCR.is.na MPCR.is.na,Rcpp_MPCR-method MPCR.na.exclude MPCR.na.exclude,Rcpp_MPCR-method MPCR.na.omit MPCR.na.omit,Rcpp_MPCR-method NA's
replicateMPCR.rep rep,Rcpp_MPCR-method replicate
Rounding functionsceiling,Rcpp_MPCR-method floor,Rcpp_MPCR-method MPCR.ceiling MPCR.floor MPCR.round MPCR.trunc round round,Rcpp_MPCR-method trunc,Rcpp_MPCR-method
scaleMPCR.scale scale scale,Rcpp_MPCR-method
sweepMPCR.sweep sweep sweep,Rcpp_MPCR-method
Special mathematical functions.gamma,Rcpp_MPCR-method lgamma,Rcpp_MPCR-method MPCR.gamma MPCR.lgamma specialmath
Trigonometric functionsacos,Rcpp_MPCR-method asin,Rcpp_MPCR-method atan,Rcpp_MPCR-method cos,Rcpp_MPCR-method MPCR.acos MPCR.asin MPCR.atan MPCR.cos MPCR.sin MPCR.tan sin,Rcpp_MPCR-method tan,Rcpp_MPCR-method trig
Hyperbolic functionsacosh,Rcpp_MPCR-method asinh,Rcpp_MPCR-method atanh,Rcpp_MPCR-method cosh,Rcpp_MPCR-method hyperbolic MPCR.acosh MPCR.asinh MPCR.atanh MPCR.cosh MPCR.sinh MPCR.tanh sinh,Rcpp_MPCR-method tanh,Rcpp_MPCR-method
transposeMPCR.t t,Rcpp_MPCR-method transpose
Metadata functionsCheck Precision MPCR.is.double MPCR.is.double,Rcpp_MPCR-method MPCR.is.float MPCR.is.float,Rcpp_MPCR-method MPCR.is.half MPCR.is.half,Rcpp_MPCR-method MPCR.is.single MPCR.is.single,Rcpp_MPCR-method
Metadata functionsmetadata MPCR.ChangePrecision MPCR.ChangePrecision,Rcpp_MPCR-method MPCR.object.size MPCR.object.size,Rcpp_MPCR-method MPCR.storage.mode MPCR.typeof storage.mode,Rcpp_MPCR-method typeof,Rcpp_MPCR-method
printMPCR.print MPCR.show MPCR.str print print,Rcpp_MPCR-method show,Rcpp_MPCR-method
cholesky decompositionchol chol,Rcpp_MPCR-method MPCR.chol
cholesky inversechol2inv chol2inv,Rcpp_MPCR-method MPCR.chol2inv
crossprodcrossprod crossprod,Rcpp_MPCR-method MPCR.crossprod MPCR.tcrossprod tcrossprod,Rcpp_MPCR-method
eigen decompositioneigen eigen,Rcpp_MPCR-method MPCR.eigen
isSymmetricisSymmetric isSymmetric,Rcpp_MPCR-method MPCR.isSymmetric
normMPCR.norm norm norm,Rcpp_MPCR-method
QR decompositionMPCR.qr MPCR.qr.Q MPCR.qr.qty MPCR.qr.qy MPCR.qr.R qr qr,Rcpp_MPCR-method qr.Q,ANY-method qr.R,ANY-method
reciprocal conditionMPCR.rcond rcond rcond,Rcpp_MPCR-method
solveMPCR.solve solve solve,Rcpp_MPCR-method
SVDLa.svd,Rcpp_MPCR-method MPCR.La.svd MPCR.svd svd svd,Rcpp_MPCR-method
Back/Forward solvebacksolve,Rcpp_MPCR,Rcpp_MPCR-method forwardsolve,Rcpp_MPCR,Rcpp_MPCR-method MPCR.backsolve MPCR.forwardsolve
MPCR GEMM (Matrix-Matrix Multiplication)MPCR GEMM MPCR.gemm MPCR.gemm,Rcpp_MPCR-method
MPCR TRSM (Triangular Solve)MPCR TRSM MPCR.trsm MPCR.trsm,Rcpp_MPCR-method
MPCRTile GEMM (Matrix-Matrix Multiplication)MPCRTile GEMM MPCRTile.gemm MPCRTile.gemm,Rcpp_MPCRTile-method
MPCRTile Chol ( Cholesky decomposition )chol,Rcpp_MPCRTile-method MPCRTile Chol MPCRTile.chol
MPCRTile TRSM (Triangular Solve)MPCRTile.trsm MPCRTile.trsm,Rcpp_MPCRTile-method