Orthogonal Arrays based on Owen from Statlib. Still available here
Linux & MacOS | Windows | Code Coverage | Actions | CodeQL | Linter |
---|---|---|---|---|---|
Doxygen code documentation
Notes on each orthogonal array are from Owen.
The addelkemp
program produces OA( 2q^2, k, q, 2 )
, k <= 2q+1
,
for odd prime powers q
. Even prime powers may be produced using
bosebush
.
int q = 2;
int ncol = 2*q;
int n = 2*q*q;
oacpp::COrthogonalArray coa;
coa.addelkemp(q, ncol, &n);
coa.getoa();
The addelkemp3
program produces OA( 2\*q^3, k, q, 2 )
, k <= 2q^2+2q+1
,
for prime powers q
. q
may be an odd prime power, or q
may
be 2
or 4
.
int q = 3;
int ncol = 2*q*q + 2*q + 1;
int n;
oacpp::COrthogonalArray coa;
coa.addelkemp3(q, ncol, &n);
coa.getoa();
The bose
program produces OA( q^2, k, q, 2 )
, k <= q+1
for prime powers q
.
int q = 2;
int ncol = q;
int n = 0;
oacpp::COrthogonalArray coa;
coa.bose(q, ncol, &n);
coa.getoa();
The bosebush
program produces OA( 2q^2, k, q, 2 )
, k <= 2q+1
,
for powers of 2
, q=2^r
.
int q = 8;
int ncol = 5;
int n = 0;
oacpp::COrthogonalArray coa;
coa.bosebush(q, ncol, &n);
coa.getoa();
The bush
program produces OA( q^3, k, q, 3 )
, k <= q+1
for prime powers q
.
int q = 3;
int ncol = 3;
int n = 0;
oacpp::COrthogonalArray coa;
coa.bush(q, ncol, &n);
coa.getoa();
The bosebushl
program produces OA( lambda*q^2, k, q, 2 )
,
k <= lambda*q+1
, for prime powers q
and lambda > 1
. Both q
and
lambda
must be powers of the same prime.
int q = 2;
int ncol = q;
int lambda = 2;
int n = 0;
oacpp::COrthogonalArray coa;
coa.bosebushl(lambda, q, ncol, &n);
coa.getoa();
The bush
program produces OA( q^t, k, q, t )
, k <= q+1
, t>=3
,
for prime powers q
.
int q = 3;
int ncol = 3;
int str = 2;
int n = 0;
oacpp::COrthogonalArray coa;
coa.busht(str, q, ncol, &n);
coa.getoa();