# 19/5/2012 Report

## Introduction

After analysing the functions of Doe_beta toolbox, a list was set up, consisting of high,medium and low priority functions. High priority functions should include a completed API, unitary tests, extensive user documentation and a demo, while medium and low priority functions may not meet some of the above requirements.

## High Priority Functions

Latin Hypercube Designs

```X = doetbx_lhsdesign(n,p) // LHS Design (without improvement).

X = doetbx_lhsdesign(n,p,'criterion',criterion) // Optimized LHS Design based on a criterion. Criterion can be 'maximin','correlation' or 'centered'.```

Factorial Design

```X = doetbx_fullfact(levels) // A full factorial design

X = doetbx_ff2n(n)             // A full factorial design with 2 levels

X = doetbx_fracfact(generators) // A fractional factorial design

X = doetbx_star(nb_var) // Star Design of Experiments

X = doetbx_yates(y,sort_eff) // Yates Algorithm

X = doetbx_ryates(ef) // Inverse Yates Algorithm```

Response Surface Designs

```X = doetbx_bbdesign(n)   // Box-Behnken design

X = doetbx_ccdesign(n)   // Central composite design```

Optimal Designs

```X = doetbx_optdesign(n) // Optimal design (a-optimal)

X = doetbx_optdesign(n,'criterion',criterion) // Optimal Design based on a criterion. Criterion can be 'a' for A-Optimal, 'd' for D-Optimal, 'g' for G-Optimal and 'o' for O-Optimal Design.

X = mtlb_doptdesign(n) // Matlab compatible D-optimal Design```

Supersaturated Designs

```X = doetbx_comp_ssd(M_doe, model) // Supersaturated Design ('a-optimal').

X = doetbx_comp_ssd(M_doe, model,'criterion',criterion) // Supersaturated Design based on a criterion. Criterion can be 'a-optimal', 'd-optimal', 'average-khi2', 'maximum-khi2', 'r-value'(correlation coefficient).```

Regression Analysis

```X = doetbx_poly_model(mod_type, nb_var, order) // Produces a polynomial model

X = doetbx_model_select(nb_var, model_old, measures, Log,criterion) // Produces a new polynomial model using forward or backward selection. Default is 'forward'.

X = doetbx_plot_model(meas_learn, estim_learn, meas_valid, estim_valid) // Plots regression line and residuals distribution

X = doetbx_build_regression_matrix(H,model,build) // Regression matrix of a model

X = doetbx_var_regression_matrix(H, x, model, sigma) // Regression matrix of the variance of a model

X = doetbx_lars(X, y, method, stop, useGram, Gram, _trace) // Least Angle Regression or Lasso Regression

X = doetbx_rsquared(Y,Y_model) // R^2^ Computation```

General Functions

`X = doetbx_unnorm_doe_matrix(H, min_levels, max_levels) // Adjusts high and low values of a design to specified maximum and minimum values`

## Medium Priority

```doetbx_comp_WD2_crit.sci // Wrap-around L2 discrepancy criterion

doetbx_comp_CL2_crit(Data).sci // Centered L2 discrepancy criterion

doetbx_crossvalidate.sci // K-flod cross validation

doetbx_cvplot.sci // Plots cross validation results```

## Low Priority

```doetbx_prbs.sci // A pseudo random binary signal generator

doetbx_merge.sci // Merges two samples

doetbx_diff.sci // Computes the difference of two samples

doetbx_scramble.sci // Permutes a sample

doetbx_standardize.sci // Center and normalize a sample

doetbx_normalize.sci // Normalises a sample```

## Internal functions

These functions are necessary for the computations, but must not be available at the user-level. Hence, no help page has to be created. But a unit test is required, to make sure that the functions are correctly working. In the future, these functions may be moved to another toolbox where they would be public function (e.g. a statistics toolbox).

```X = doetbx_comp_*_opti_crit(M_doe, model) // Called by ''doetbx_*_opti(n,'*')'', * can be 'a', 'd', 'g', 'o'

doetbx_repeat_center(nb_var,nb_center) // Repeats the center point in a Design, Called by ''doe_box_benkhen.sci'' in doe_beta1 toolbox

repchar.sci // Called by build_regression_matrix.sci

randperm.sci // An Octave function that returns a permutation of the numbers from 1 to the input integer

doe_opti_permu.sci // Optimises a design of experiments

doe_union.sci // Merges two samples, Called by ''doe_composite.sci'' in doe_beta1 toolbox```

## Functions out of the scope of the DOE toolbox

These functions are useful, but do not fit in the scope of the DOE toolbox. If these functions are called internaly by functions from the toolbox, a dependency can be created (in the readme.txt and in the ATOMS module).

```doe_hammersley.sci

doe_halton.sci

doe_faure.sci

doe_sobol.sci

doe_test_mean.sci

doe_test_var.sci

doe_test_significance.sci

doe_kurtosis.sci

doe_skewness.sci

doe_prime.sci

isprime.sci```

2022-09-08 09:26