private int GetOrthogonalCount(int targetParameter) { int stepCount = Repetitions * Tracks; for (int parameter = 0; parameter < 4; parameter++) { if (targetParameter == parameter) { continue; } stepCount *= StimDimensions.GetSteps(parameter); } return(stepCount); }
public void Initialize(double taskGuessRate) { trial = 0; repetitions = 0; correctCount = 0; stepBag = new DepletableBag <ConstantStimSet>() { AutoRefill = false }; int dim1Limit = StimDimensions.GetSteps(0); int dim2Limit = StimDimensions.GetSteps(1); int dim3Limit = StimDimensions.GetSteps(2); int dim4Limit = StimDimensions.GetSteps(3); for (int dim1 = 0; dim1 < dim1Limit; dim1++) { for (int dim2 = 0; dim2 < dim2Limit; dim2++) { for (int dim3 = 0; dim3 < dim3Limit; dim3++) { for (int dim4 = 0; dim4 < dim4Limit; dim4++) { //One copy for each track for (int track = 0; track < Tracks; track++) { stepBag.Add(new ConstantStimSet(dim1, dim2, dim3, dim4)); } } } } } this.taskGuessRate = taskGuessRate; }