R Under development (unstable) (2023-12-09 r85665 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > suppressPackageStartupMessages(library(float)) > set.seed(1234) > tol = 1e-6 > > same = function(test, truth) stopifnot(all.equal(test, truth, tol=tol)) > > x1 = matrix(stats::rnorm(30), 10) > x2 = matrix(stats::rnorm(30), 10) > x3 = matrix(1:30, 10) > > s1 = fl(x1) > s2 = fl(x2) > > > > ### Addition > test = dbl(s1 + s2) > truth = x1 + x2 > same(test, truth) > test = s1 + x2 > same(test, truth) > test = x2 + s1 > same(test, truth) > > test = dbl(s1 + x3) > truth = x1 + x3 > same(test, truth) > test = dbl(x3 + s1) > same(test, truth) > > test = dbl(s1 + 1L) > truth = x1 + 1 > same(test, truth) > test = s1 + 1.0 > same(test, truth) > > > > ### Multiplication > test = dbl(s1 * s2) > truth = x1 * x2 > same(test, truth) > test = s1 * x2 > same(test, truth) > test = x2 * s1 > same(test, truth) > > test = dbl(s1 * x3) > truth = x1 * x3 > same(test, truth) > test = dbl(x3 * s1) > same(test, truth) > > test = dbl(s1 * 1L) > truth = x1 * 1L > same(test, truth) > test = s1 * 1.0 > same(test, truth) > > > > ### Subtraction > test = dbl(s1 - s2) > truth = x1 - x2 > same(test, truth) > test = s1 - x2 > same(test, truth) > > truth = x2 - x1 > test = x2 - s1 > same(test, truth) > > test = dbl(s1 - x3) > truth = x1 - x3 > same(test, truth) > > truth = x3 - x1 > test = dbl(x3 - s1) > same(test, truth) > > test = dbl(s1 - 1L) > truth = x1 - 1L > same(test, truth) > test = s1 - 1.0 > same(test, truth) > > > > ### Division > test = dbl(s1 / s2) > truth = x1 / x2 > same(test, truth) > test = s1 / x2 > same(test, truth) > > truth = x2 / x1 > test = x2 / s1 > same(test, truth) > > test = dbl(s1 / x3) > truth = x1 / x3 > same(test, truth) > > truth = x3 / x1 > test = dbl(x3 / s1) > same(test, truth) > > test = dbl(s1 / 1L) > truth = x1 / 1L > same(test, truth) > test = s1 / 1.0 > same(test, truth) > > > > ### Power > test = dbl(s1 ^ s2) > truth = x1 ^ x2 > same(test, truth) > test = s1 ^ x2 > same(test, truth) > > truth = x2 ^ x1 > test = x2 ^ s1 > same(test, truth) > > test = dbl(s1 ^ x3) > truth = x1 ^ x3 > same(test, truth) > > truth = x3 ^ x1 > test = dbl(x3 ^ s1) > same(test, truth) > > test = dbl(s1 ^ 1L) > truth = x1 ^ 1L > same(test, truth) > test = s1 ^ 1.0 > same(test, truth) > > proc.time() user system elapsed 0.50 0.03 0.46