Skip to content

Commit 0d52275

Browse files
committed
Updated to version 0.1.8 (Under Development)
1 parent 97f6cd5 commit 0d52275

File tree

83 files changed

+1635
-1028
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+1635
-1028
lines changed

R/aaa00_broadcast_help.R

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@
7979
#' \link[=sd_lc]{simple linear algebra functions for statistics}. \cr
8080
#' \cr
8181
#' And 'broadcast' comes with some helper functions: \cr
82-
#' \link{bc_dim}, \link{ndim}, \link{lst.ndim}, \link{rep_dim}, \link{vector2array}. \cr \cr
82+
#' \link{checkNA}, \link{checkNULL}, \cr
83+
#' \link{bc_dim}, \link{ndim}, \link{lst.ndim}, \link{rep_dim}, \cr
84+
#' \link{vector2array}. \cr \cr
8385
#'
8486
#'
8587
#' @section Supported Structures:

R/linear_algebra_stats.R

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,31 @@ ecumprob <- function(y, sim, eps = 0.0) {
4646
return(numeric(0L))
4747
}
4848

49+
intmax <- 2^31 - 1L
50+
4951
if(is.null(dim(sim))) {
5052
message("`sim` is given as a dimensionless vector, and will be treated as a matrix with 1 row and `length(sim)` columns")
5153
}
5254
else if(ndim(sim) != 2L) {
5355
stop("`sim` must be a matrix (or data.frame)")
5456
}
5557

56-
if(.nsim(sim) < 500L) {
58+
if(.ecp_nsim(sim) < 500L) {
5759
stop("at least 500 columns of simulated values must be provided")
5860
}
61+
if(.ecp_nsim(sim) >= intmax) {
62+
stop("long vectors not supported")
63+
}
5964

6065
if(!is.numeric(y) && !is.logical(y)) {
6166
stop("`y` must be numeric or logical")
6267
}
6368
if(!is.null(dim(y))) {
6469
stop("`y` must be a vector")
6570
}
71+
if(.ecp_nobs(y, sim) > intmax) {
72+
stop("long vectors not supported")
73+
}
6674

6775
if(!is.numeric(eps) || length(eps) != 1L) {
6876
stop("`eps` must be a numeric scalar")
@@ -146,11 +154,27 @@ ecumprob <- function(y, sim, eps = 0.0) {
146154

147155
#' @keywords internal
148156
#' @noRd
149-
.nsim <- function(x) {
150-
if(is.null(dim(x))) {
151-
return(length(x))
157+
.ecp_nsim <- function(sim) {
158+
if(is.null(dim(sim))) {
159+
return(length(sim))
160+
}
161+
else {
162+
return(ncol(sim))
163+
}
164+
}
165+
166+
#' @keywords internal
167+
#' @noRd
168+
.ecp_nobs <- function(y, sim) {
169+
if(is.null(dim(sim))) {
170+
sim.nobs <- 1L
152171
}
153172
else {
154-
return(ncol(x))
173+
sim.nobs <- nrow(sim)
155174
}
175+
176+
y.nobs <- length(y)
177+
178+
nobs <- max(y.nobs, sim.nobs)
179+
return(nobs)
156180
}

broadcast_0.1.8.pdf

59 Bytes
Binary file not shown.

docs/about/g_unit_test_covr.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ <h1 class="title">Unit Test Coverage Report</h1>
204204
<p>&nbsp;</p>
205205
<p>The unit tests employed by the ‘broadcast’ package have a test coverage of over 95%.<br>
206206
For the sake of transparency, the unit tests coverage report, produced by the <a href="https://github.com/r-lib/covr">covr</a> package, is provided here:</p>
207-
<pre><code>broadcast Coverage: 96.55%
207+
<pre><code>broadcast Coverage: 96.51%
208208
R/internal_typefuns.R: 79.66%
209209
src/C_arraysize_overflow.c: 85.71%
210210
src/rcpp_bc_ifelse.cpp: 85.71%
@@ -213,6 +213,7 @@ <h1 class="title">Unit Test Coverage Report</h1>
213213
src/rcpp_any_nonarray.cpp: 90.00%
214214
R/hier2dim.R: 90.32%
215215
src/rcpp_bc_bit.cpp: 91.43%
216+
R/linear_algebra_stats.R: 92.00%
216217
R/internal_acast.R: 92.11%
217218
src/rcpp_hier2dim.cpp: 92.20%
218219
R/internal_bind.R: 92.31%
@@ -222,7 +223,6 @@ <h1 class="title">Unit Test Coverage Report</h1>
222223
R/rep_dim.R: 93.33%
223224
R/broadcaster.R: 93.62%
224225
R/internal_functions.R: 93.75%
225-
R/linear_algebra_stats.R: 93.75%
226226
src/C_make_dcp.c: 93.75%
227227
src/rcpp_bcRel_bit.cpp: 94.12%
228228
R/typecast.R: 94.64%

docs/about/h_technical_details.html

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -272,8 +272,8 @@ <h2 data-number="2.1" class="anchored" data-anchor-id="regular-arithmetic-operat
272272

273273
<script>
274274

275-
function styleCell_vut2qfwzzxzm8lsowziq(i, j, css_id) {
276-
var table = document.getElementById("tinytable_vut2qfwzzxzm8lsowziq");
275+
function styleCell_reut6rq3nqfx9z96j4bu(i, j, css_id) {
276+
var table = document.getElementById("tinytable_reut6rq3nqfx9z96j4bu");
277277
var cell = table.rows[i]?.cells[j]; // Safe navigation to avoid errors
278278
if (cell) {
279279
console.log(`Styling cell at (${i}, ${j}) with class ${css_id}`);
@@ -283,16 +283,16 @@ <h2 data-number="2.1" class="anchored" data-anchor-id="regular-arithmetic-operat
283283
}
284284
}
285285
function insertSpanRow(i, colspan, content) {
286-
var table = document.getElementById('tinytable_vut2qfwzzxzm8lsowziq');
286+
var table = document.getElementById('tinytable_reut6rq3nqfx9z96j4bu');
287287
var newRow = table.insertRow(i);
288288
var newCell = newRow.insertCell(0);
289289
newCell.setAttribute("colspan", colspan);
290290
// newCell.innerText = content;
291291
// this may be unsafe, but innerText does not interpret <br>
292292
newCell.innerHTML = content;
293293
}
294-
function spanCell_vut2qfwzzxzm8lsowziq(i, j, rowspan, colspan) {
295-
var table = document.getElementById("tinytable_vut2qfwzzxzm8lsowziq");
294+
function spanCell_reut6rq3nqfx9z96j4bu(i, j, rowspan, colspan) {
295+
var table = document.getElementById("tinytable_reut6rq3nqfx9z96j4bu");
296296
const targetRow = table.rows[i];
297297
const targetCell = targetRow.cells[j];
298298
for (let r = 0; r < rowspan; r++) {
@@ -322,26 +322,26 @@ <h2 data-number="2.1" class="anchored" data-anchor-id="regular-arithmetic-operat
322322
window.addEventListener('load', function () {
323323
var cellsToStyle = [
324324
// tinytable style arrays after
325-
{ positions: [ { i: 0, j: 0 }, { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_vicd8fa2t7spqe4u0mml',},
326-
{ positions: [ { i: 7, j: 0 }, { i: 7, j: 1 }, { i: 7, j: 2 }, ], css_id: 'tinytable_css_pixtxwqho24m79oun7d7',},
325+
{ positions: [ { i: 7, j: 0 }, { i: 7, j: 1 }, { i: 7, j: 2 }, ], css_id: 'tinytable_css_trarlh6z6t33q2w4bjb7',},
326+
{ positions: [ { i: 0, j: 0 }, { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_632c4tabyx1bke2qibod',},
327327
];
328328

329329
// Loop over the arrays to style the cells
330330
cellsToStyle.forEach(function (group) {
331331
group.positions.forEach(function (cell) {
332-
styleCell_vut2qfwzzxzm8lsowziq(cell.i, cell.j, group.css_id);
332+
styleCell_reut6rq3nqfx9z96j4bu(cell.i, cell.j, group.css_id);
333333
});
334334
});
335335
});
336336
</script>
337337

338338
<style>
339339
/* tinytable css entries after */
340-
.table td.tinytable_css_vicd8fa2t7spqe4u0mml, .table th.tinytable_css_vicd8fa2t7spqe4u0mml { border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; }
341-
.table td.tinytable_css_pixtxwqho24m79oun7d7, .table th.tinytable_css_pixtxwqho24m79oun7d7 { border-bottom: solid #d3d8dc 0.1em; }
340+
.table td.tinytable_css_trarlh6z6t33q2w4bjb7, .table th.tinytable_css_trarlh6z6t33q2w4bjb7 { border-bottom: solid #d3d8dc 0.1em; }
341+
.table td.tinytable_css_632c4tabyx1bke2qibod, .table th.tinytable_css_632c4tabyx1bke2qibod { border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; }
342342
</style>
343343
<div class="container">
344-
<table class="table table-borderless" id="tinytable_vut2qfwzzxzm8lsowziq" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing="true">
344+
<table class="table table-borderless" id="tinytable_reut6rq3nqfx9z96j4bu" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing="true">
345345
<thead>
346346

347347
<tr>
@@ -405,8 +405,8 @@ <h2 data-number="2.2" class="anchored" data-anchor-id="complex-arithmetic-operat
405405

406406
<script>
407407

408-
function styleCell_bkv1q093th12zd3pcqyf(i, j, css_id) {
409-
var table = document.getElementById("tinytable_bkv1q093th12zd3pcqyf");
408+
function styleCell_799q35p7q139atpkre5m(i, j, css_id) {
409+
var table = document.getElementById("tinytable_799q35p7q139atpkre5m");
410410
var cell = table.rows[i]?.cells[j]; // Safe navigation to avoid errors
411411
if (cell) {
412412
console.log(`Styling cell at (${i}, ${j}) with class ${css_id}`);
@@ -416,16 +416,16 @@ <h2 data-number="2.2" class="anchored" data-anchor-id="complex-arithmetic-operat
416416
}
417417
}
418418
function insertSpanRow(i, colspan, content) {
419-
var table = document.getElementById('tinytable_bkv1q093th12zd3pcqyf');
419+
var table = document.getElementById('tinytable_799q35p7q139atpkre5m');
420420
var newRow = table.insertRow(i);
421421
var newCell = newRow.insertCell(0);
422422
newCell.setAttribute("colspan", colspan);
423423
// newCell.innerText = content;
424424
// this may be unsafe, but innerText does not interpret <br>
425425
newCell.innerHTML = content;
426426
}
427-
function spanCell_bkv1q093th12zd3pcqyf(i, j, rowspan, colspan) {
428-
var table = document.getElementById("tinytable_bkv1q093th12zd3pcqyf");
427+
function spanCell_799q35p7q139atpkre5m(i, j, rowspan, colspan) {
428+
var table = document.getElementById("tinytable_799q35p7q139atpkre5m");
429429
const targetRow = table.rows[i];
430430
const targetCell = targetRow.cells[j];
431431
for (let r = 0; r < rowspan; r++) {
@@ -455,26 +455,26 @@ <h2 data-number="2.2" class="anchored" data-anchor-id="complex-arithmetic-operat
455455
window.addEventListener('load', function () {
456456
var cellsToStyle = [
457457
// tinytable style arrays after
458-
{ positions: [ { i: 4, j: 0 }, { i: 4, j: 1 }, { i: 4, j: 2 }, ], css_id: 'tinytable_css_fxy7kj71njfu0ni23wrl',},
459-
{ positions: [ { i: 0, j: 0 }, { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_2e5ndbferf280d651b3m',},
458+
{ positions: [ { i: 4, j: 0 }, { i: 4, j: 1 }, { i: 4, j: 2 }, ], css_id: 'tinytable_css_nkznb59bct5rfuizrl3n',},
459+
{ positions: [ { i: 0, j: 0 }, { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_5ux76j1oos0z554ufpog',},
460460
];
461461

462462
// Loop over the arrays to style the cells
463463
cellsToStyle.forEach(function (group) {
464464
group.positions.forEach(function (cell) {
465-
styleCell_bkv1q093th12zd3pcqyf(cell.i, cell.j, group.css_id);
465+
styleCell_799q35p7q139atpkre5m(cell.i, cell.j, group.css_id);
466466
});
467467
});
468468
});
469469
</script>
470470

471471
<style>
472472
/* tinytable css entries after */
473-
.table td.tinytable_css_fxy7kj71njfu0ni23wrl, .table th.tinytable_css_fxy7kj71njfu0ni23wrl { border-bottom: solid #d3d8dc 0.1em; }
474-
.table td.tinytable_css_2e5ndbferf280d651b3m, .table th.tinytable_css_2e5ndbferf280d651b3m { border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; }
473+
.table td.tinytable_css_nkznb59bct5rfuizrl3n, .table th.tinytable_css_nkznb59bct5rfuizrl3n { border-bottom: solid #d3d8dc 0.1em; }
474+
.table td.tinytable_css_5ux76j1oos0z554ufpog, .table th.tinytable_css_5ux76j1oos0z554ufpog { border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; }
475475
</style>
476476
<div class="container">
477-
<table class="table table-borderless" id="tinytable_bkv1q093th12zd3pcqyf" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing="true">
477+
<table class="table table-borderless" id="tinytable_799q35p7q139atpkre5m" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing="true">
478478
<thead>
479479

480480
<tr>
@@ -523,8 +523,8 @@ <h2 data-number="2.3" class="anchored" data-anchor-id="logical-operators"><span
523523

524524
<script>
525525

526-
function styleCell_ul7qtlwuxsmdwevqemss(i, j, css_id) {
527-
var table = document.getElementById("tinytable_ul7qtlwuxsmdwevqemss");
526+
function styleCell_49uf2h84pwbc1ic63yhi(i, j, css_id) {
527+
var table = document.getElementById("tinytable_49uf2h84pwbc1ic63yhi");
528528
var cell = table.rows[i]?.cells[j]; // Safe navigation to avoid errors
529529
if (cell) {
530530
console.log(`Styling cell at (${i}, ${j}) with class ${css_id}`);
@@ -534,16 +534,16 @@ <h2 data-number="2.3" class="anchored" data-anchor-id="logical-operators"><span
534534
}
535535
}
536536
function insertSpanRow(i, colspan, content) {
537-
var table = document.getElementById('tinytable_ul7qtlwuxsmdwevqemss');
537+
var table = document.getElementById('tinytable_49uf2h84pwbc1ic63yhi');
538538
var newRow = table.insertRow(i);
539539
var newCell = newRow.insertCell(0);
540540
newCell.setAttribute("colspan", colspan);
541541
// newCell.innerText = content;
542542
// this may be unsafe, but innerText does not interpret <br>
543543
newCell.innerHTML = content;
544544
}
545-
function spanCell_ul7qtlwuxsmdwevqemss(i, j, rowspan, colspan) {
546-
var table = document.getElementById("tinytable_ul7qtlwuxsmdwevqemss");
545+
function spanCell_49uf2h84pwbc1ic63yhi(i, j, rowspan, colspan) {
546+
var table = document.getElementById("tinytable_49uf2h84pwbc1ic63yhi");
547547
const targetRow = table.rows[i];
548548
const targetCell = targetRow.cells[j];
549549
for (let r = 0; r < rowspan; r++) {
@@ -573,26 +573,26 @@ <h2 data-number="2.3" class="anchored" data-anchor-id="logical-operators"><span
573573
window.addEventListener('load', function () {
574574
var cellsToStyle = [
575575
// tinytable style arrays after
576-
{ positions: [ { i: 2, j: 0 }, { i: 2, j: 1 }, { i: 2, j: 2 }, ], css_id: 'tinytable_css_qr7h3a2n8efgkiq408tc',},
577-
{ positions: [ { i: 0, j: 0 }, { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_p7y17jmubcjh8ha7zn48',},
576+
{ positions: [ { i: 2, j: 0 }, { i: 2, j: 1 }, { i: 2, j: 2 }, ], css_id: 'tinytable_css_sd5qptc5rk71qshsk8pz',},
577+
{ positions: [ { i: 0, j: 0 }, { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_e7o1jwaujwtquh1q690u',},
578578
];
579579

580580
// Loop over the arrays to style the cells
581581
cellsToStyle.forEach(function (group) {
582582
group.positions.forEach(function (cell) {
583-
styleCell_ul7qtlwuxsmdwevqemss(cell.i, cell.j, group.css_id);
583+
styleCell_49uf2h84pwbc1ic63yhi(cell.i, cell.j, group.css_id);
584584
});
585585
});
586586
});
587587
</script>
588588

589589
<style>
590590
/* tinytable css entries after */
591-
.table td.tinytable_css_qr7h3a2n8efgkiq408tc, .table th.tinytable_css_qr7h3a2n8efgkiq408tc { border-bottom: solid #d3d8dc 0.1em; }
592-
.table td.tinytable_css_p7y17jmubcjh8ha7zn48, .table th.tinytable_css_p7y17jmubcjh8ha7zn48 { border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; }
591+
.table td.tinytable_css_sd5qptc5rk71qshsk8pz, .table th.tinytable_css_sd5qptc5rk71qshsk8pz { border-bottom: solid #d3d8dc 0.1em; }
592+
.table td.tinytable_css_e7o1jwaujwtquh1q690u, .table th.tinytable_css_e7o1jwaujwtquh1q690u { border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; }
593593
</style>
594594
<div class="container">
595-
<table class="table table-borderless" id="tinytable_ul7qtlwuxsmdwevqemss" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing="true">
595+
<table class="table table-borderless" id="tinytable_49uf2h84pwbc1ic63yhi" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing="true">
596596
<thead>
597597

598598
<tr>
@@ -631,8 +631,8 @@ <h2 data-number="2.4" class="anchored" data-anchor-id="bit-wise-operators"><span
631631

632632
<script>
633633

634-
function styleCell_b695q5asxidfoyfipc3r(i, j, css_id) {
635-
var table = document.getElementById("tinytable_b695q5asxidfoyfipc3r");
634+
function styleCell_ckl8o2gdhex01cj18zne(i, j, css_id) {
635+
var table = document.getElementById("tinytable_ckl8o2gdhex01cj18zne");
636636
var cell = table.rows[i]?.cells[j]; // Safe navigation to avoid errors
637637
if (cell) {
638638
console.log(`Styling cell at (${i}, ${j}) with class ${css_id}`);
@@ -642,16 +642,16 @@ <h2 data-number="2.4" class="anchored" data-anchor-id="bit-wise-operators"><span
642642
}
643643
}
644644
function insertSpanRow(i, colspan, content) {
645-
var table = document.getElementById('tinytable_b695q5asxidfoyfipc3r');
645+
var table = document.getElementById('tinytable_ckl8o2gdhex01cj18zne');
646646
var newRow = table.insertRow(i);
647647
var newCell = newRow.insertCell(0);
648648
newCell.setAttribute("colspan", colspan);
649649
// newCell.innerText = content;
650650
// this may be unsafe, but innerText does not interpret <br>
651651
newCell.innerHTML = content;
652652
}
653-
function spanCell_b695q5asxidfoyfipc3r(i, j, rowspan, colspan) {
654-
var table = document.getElementById("tinytable_b695q5asxidfoyfipc3r");
653+
function spanCell_ckl8o2gdhex01cj18zne(i, j, rowspan, colspan) {
654+
var table = document.getElementById("tinytable_ckl8o2gdhex01cj18zne");
655655
const targetRow = table.rows[i];
656656
const targetCell = targetRow.cells[j];
657657
for (let r = 0; r < rowspan; r++) {
@@ -681,26 +681,26 @@ <h2 data-number="2.4" class="anchored" data-anchor-id="bit-wise-operators"><span
681681
window.addEventListener('load', function () {
682682
var cellsToStyle = [
683683
// tinytable style arrays after
684-
{ positions: [ { i: 2, j: 0 }, { i: 2, j: 1 }, { i: 2, j: 2 }, ], css_id: 'tinytable_css_bf6yubde2t4bab7e7jb9',},
685-
{ positions: [ { i: 0, j: 0 }, { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_8o3ltu0459mtm7y0bxh1',},
684+
{ positions: [ { i: 2, j: 0 }, { i: 2, j: 1 }, { i: 2, j: 2 }, ], css_id: 'tinytable_css_ptkl3ggmpftmhbpoae5s',},
685+
{ positions: [ { i: 0, j: 0 }, { i: 0, j: 1 }, { i: 0, j: 2 }, ], css_id: 'tinytable_css_cxjgpvdijc2z4kvz8wvz',},
686686
];
687687

688688
// Loop over the arrays to style the cells
689689
cellsToStyle.forEach(function (group) {
690690
group.positions.forEach(function (cell) {
691-
styleCell_b695q5asxidfoyfipc3r(cell.i, cell.j, group.css_id);
691+
styleCell_ckl8o2gdhex01cj18zne(cell.i, cell.j, group.css_id);
692692
});
693693
});
694694
});
695695
</script>
696696

697697
<style>
698698
/* tinytable css entries after */
699-
.table td.tinytable_css_bf6yubde2t4bab7e7jb9, .table th.tinytable_css_bf6yubde2t4bab7e7jb9 { border-bottom: solid #d3d8dc 0.1em; }
700-
.table td.tinytable_css_8o3ltu0459mtm7y0bxh1, .table th.tinytable_css_8o3ltu0459mtm7y0bxh1 { border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; }
699+
.table td.tinytable_css_ptkl3ggmpftmhbpoae5s, .table th.tinytable_css_ptkl3ggmpftmhbpoae5s { border-bottom: solid #d3d8dc 0.1em; }
700+
.table td.tinytable_css_cxjgpvdijc2z4kvz8wvz, .table th.tinytable_css_cxjgpvdijc2z4kvz8wvz { border-top: solid #d3d8dc 0.1em; border-bottom: solid #d3d8dc 0.05em; }
701701
</style>
702702
<div class="container">
703-
<table class="table table-borderless" id="tinytable_b695q5asxidfoyfipc3r" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing="true">
703+
<table class="table table-borderless" id="tinytable_ckl8o2gdhex01cj18zne" style="width: auto; margin-left: auto; margin-right: auto;" data-quarto-disable-processing="true">
704704
<thead>
705705

706706
<tr>

docs/man/aaa00_broadcast_help.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ <h3 class="anchored" data-anchor-id="functions">Functions</h3>
430430
<p><a href="../man/bc_strrep.html">bc_strrep</a>: Broadcasted version of strrep. <br> <br></p>
431431
</li>
432432
</ul>
433-
<p><b>Other functions</b> <br> ‘broadcast’ provides <a href="../man/typecast.html">type-casting</a> functions, which preserve names and dimensions - convenient for arrays. <br> <br> ‘broadcast’ also provides <a href="../man/linear_algebra_stats.html">simple linear algebra functions for statistics</a>. <br> <br> And ‘broadcast’ comes with some helper functions: <br> <a href="../man/bc_dim.html">bc_dim</a>, <a href="../man/ndim.html">ndim</a>, <a href="../man/ndim.html">lst.ndim</a>, <a href="../man/rep_dim.html">rep_dim</a>, <a href="../man/vector2array.html">vector2array</a>. <br> <br></p>
433+
<p><b>Other functions</b> <br> ‘broadcast’ provides <a href="../man/typecast.html">type-casting</a> functions, which preserve names and dimensions - convenient for arrays. <br> <br> ‘broadcast’ also provides <a href="../man/linear_algebra_stats.html">simple linear algebra functions for statistics</a>. <br> <br> And ‘broadcast’ comes with some helper functions: <br> <a href="../man/checkmissing.html">checkNA</a>, <a href="../man/checkmissing.html">checkNULL</a>, <br> <a href="../man/bc_dim.html">bc_dim</a>, <a href="../man/ndim.html">ndim</a>, <a href="../man/ndim.html">lst.ndim</a>, <a href="../man/rep_dim.html">rep_dim</a>, <br> <a href="../man/vector2array.html">vector2array</a>. <br> <br></p>
434434
</section>
435435
<section id="supported-structures" class="level3">
436436
<h3 class="anchored" data-anchor-id="supported-structures">Supported Structures</h3>

0 commit comments

Comments
 (0)