Interface for extension of LMC designs

Contains functions to generate and extend orthogonal arrays.

Enums

enum dfilter_t

Values:

enumerator DFILTER_NONE

no filtering on D-efficiency

enumerator DFILTER_BASIC

filtering on D-efficiency

enumerator DFILTER_MULTI

filtering on D-efficiency with multi column prediction

enum dcalc_mode

Values:

enumerator DCALC_ALWAYS

always calculate efficiency

enumerator DCALC_COND

only calculate efficiency for LMC_LESS

Functions

arraylist_t extend_arraylist(const arraylist_t &array_list, arraydata_t &array_class, OAextend const &oaextend_options)

Extend a list of orthogonal arrays

Parameters:
  • array_list – The list of arrays to be extended

  • array_class – Class of arrays to generate

  • oaextend_options – Parameters for the extension algorithm

Returns:

List of all generated arrays

arraylist_t extend_arraylist(const arraylist_t &array_list, const arraydata_t &arrayclass)

Extend a list of arrays with default options

int extend_arraylist(const arraylist_t &array_list, arraydata_t &array_class, OAextend const &oaextend_options, colindex_t extensioncol, arraylist_t &extensions)

Extend a list of orthogonal arrays

Parameters:
  • array_list – The list of arrays to be extended

  • array_class – Class of arrays to generate

  • oaextend_options – Parameters for the extension algorithm

  • extensioncol – Index of column to be added to the designs

  • extensions – List to append generated designs to

Returns:

List of all generated arrays

Returns:

Number of candidate arrays generated

arraylist_t extend_array(const array_link &array, arraydata_t &array_class, OAextend const &oaextend)

Extend a single orthogonal array

Parameters:
  • array – The array to be extended

  • array_class – Class of arrays to generate

  • oaextend – Parameters for the extension algorithm

arraylist_t extend_array(const array_link &array, arraydata_t &arrayclass)

Extend a single orthogonal array with the default LMC algorithm

int extend_array(const array_link &array, const arraydata_t *arrayclass, const colindex_t extension_column, arraylist_t &extensions, OAextend const &oaextend)

Extend an orthogonal array with a single column

Parameters:
  • array – Array to extend

  • arrayclass – Array data for the full array

  • extension_column – Column to extend

  • extensions – List to which generated valid extensions are added

  • oaextend – Structure with options

Returns:

Number of candidate extensions generated

arraylist_t runExtendRoot(arraydata_t arrayclass, int max_number_columns, int verbose = 0)

Run the LMC extension algorithm starting with the root array

class OAextend
#include <extend.h>

Options for the extend code.

class containing parameters of the extension and LMC algorithm

Public Types

enum extendarray_mode_t

Specification of how to use the generated extensions.

Values:

enumerator APPENDEXTENSION

append extension column to extension list

enumerator APPENDFULL

append full array to extension list

enumerator STOREARRAY

store extension to disk

enumerator NONE

do not store generated extensions

Public Functions

inline OAextend()

Options for the extension algorithm

inline OAextend(const OAextend &o)

Options for the extension algorithm

inline OAextend(arraydata_t &arrayclass)

Options for the extension algorithm

The algorithm is automatically determined from the specified arrayclass.

void setAlgorithm(algorithm_t algorithm, arraydata_t *ad = 0)

Set the algorithm to use for LMC checks.

void setAlgorithmAuto(arraydata_t *ad = 0)

Set the algorithm automatically.

inline algorithm_t getAlgorithm() const

Return algorithm used.

inline std::string getAlgorithmName() const

Return algorithm used (as string)

void updateArraydata(arraydata_t *arrayclass = 0) const

update the options structuer with the specified class of designs

void info(int verbose = 1) const

print configuration to stdout

std::string __repr__() const

Public Members

double singleExtendTime

time before printing progress of single extension, [seconds]

int nLMC

number of arrays LMC tested before printing progress of single extension

int checkarrays

perform LMC test after generation of array

int check_maximal

if true then return at once if a single extension has been found

int use_row_symmetry

adds a symmetry check to the extension algorithm based in symmetry of row permutations

int init_column_previous

init column with previous column in extension (if in the same column group)

extendarray_mode_t extendarraymode

determines how the extension arrays are stored

arrayfile_t storefile
j5structure_t j5structure

Public Static Functions

static inline algorithm_t getPreferredAlgorithm(const arraydata_t &arrayclass, int verbose = 0)

Return preferred extension algorithm

Parameters:
  • arrayclass – Class of designs to extend

  • verbose – Verbosity level

Returns:

Algorithm selected to be used for this class

Private Members

algorithm_t algmode

Algorithm mode.

struct dextend_t
#include <extend.h>

Structure for dynamic extension of arrays based on D-efficiencies.

Public Functions

inline dextend_t()
inline void resize(int nn)
void DefficiencyFilter(double Dfinal, int k, int kfinal, double Lmax, int verbose = 1)

perform filtering using D-efficiency

std::vector<int> filterArrays(const array_link &al, const arraylist_t &earrays, arraylist_t &earraysout, std::vector<std::vector<double>> &edata, int verbose = 1)

filter the arrays based on values in filter

Public Members

std::vector<lmc_t> lmctype

results of minimal form calculations

std::vector<int> lastcol

last column changed in lmc check

std::vector<double> Deff

calculated efficiency values

std::vector<int> filter

indices of filtered arrays

dfilter_t filtermode
dcalc_mode Dcheck
int directcheck

perform immediate LMC check in extension

long ntotal

total number of arrays found

long nlmc

total number of arrays found in LMC form

long n

total number of arrays found passing all tests

double DmaxDiscard
long nmaxrnktotal

Public Static Attributes

static const int NO_VALUE = 0