Skip to content

Commit 941f61c

Browse files
author
nofa
committed
initial setup
1 parent 3b5b7e4 commit 941f61c

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.jdoe.algorithms;
2+
3+
public class CompositeDOE {
4+
5+
public static void centralCompositeDesign() {
6+
7+
}
8+
9+
}
10+
11+
//<-----------------------------STEPS---------------------------------->
12+
13+
/**
14+
* Detailed Steps to Port Central Composite Design Script to Java 1. Create CompositeDOE Class Structure Create CompositeDOE.java in
15+
* com.jdoe.algorithms package Add imports: org.apache.commons.math3.linear.* for matrix operations Define method signature: public static
16+
* RealMatrix centralCompositeDesign(int n, int[] center, String alpha, String face) Set default parameters handling for center, alpha, and
17+
* face 2. Implement Input Validation Logic Add assertion: assert n > 1 : "\"n\" must be an integer greater than 1" Validate alpha parameter
18+
* with: alpha.toLowerCase() and check against allowed values Validate face parameter with: face.toLowerCase() and check against allowed
19+
* values Validate center array length: if (center.length != 2) throw IllegalArgumentException Format error messages to match Python
20+
* implementation 3. Implement Star Point Generation Create StarDOE.java class with star method Calculate alpha based on alpha type: For
21+
* orthogonal: alpha = Math.pow(2 * factorial(n), 0.25) where factorial(n) = n! For rotatable: alpha = Math.pow(2, 0.5) for 2D, Math.pow(3,
22+
* 0.5) for 3D, etc. Generate 2n star points with values [±alpha, 0, ..., 0], [0, ±alpha, ..., 0], etc. Return both star matrix and alpha
23+
* value as an Object array 4. Enhance FactorialDOE Class Add ff2n method that generates 2-level factorial design Create 2^n × n matrix with
24+
* values -1 and +1 Use bit manipulation: for each row i and column j, set value to ((i >> j) & 1) == 0 ? -1 : 1 Return RealMatrix object 5.
25+
* Create UnionDOE Class Implement union method that combines two matrices vertically Use Array2DRowRealMatrix constructor to create new
26+
* matrix with combined rows Copy data from both input matrices to the result matrix Return the concatenated matrix 6. Create
27+
* RepeatCenterDOE Class Implement repeatCenter method that generates center points Create repeats × n matrix filled with zeros Use new
28+
* Array2DRowRealMatrix(repeats, n) to initialize matrix Return the center point matrix 7. Implement Core Algorithm Logic Initialize H1 and
29+
* H2 matrices based on face type For inscribed (cci): scale factorial points H1 = H1.scalarMultiply(1.0/a) For faced (ccf): set alpha to
30+
* 1.0 For circumscribed (ccc): keep original factorial points Generate center points C1 and C2 using repeatCenter Combine matrices: H1 =
31+
* union(H1, C1), H2 = union(H2, C2), H = union(H1, H2) 8. Handle Matrix Operations Implement matrix scaling using scalarMultiply() method
32+
* from Commons Math Ensure all matrix dimensions are compatible for union operations Use getSubMatrix() and setSubMatrix() for matrix
33+
* manipulations Return final RealMatrix object 9. Create Unit Tests Create CompositeDOETest.java with comprehensive test cases Test all
34+
* three face types: ccc, cci, ccf Test both alpha types: orthogonal, rotatable Validate matrix dimensions: (2^n + 2n + sum(center)) × n
35+
* Verify center point counts and star point distances 10. Add Documentation and Error Handling Add JavaDoc explaining parameters, return
36+
* value, and exceptions Implement proper exception handling for invalid inputs Include example usage in documentation Follow the same error
37+
* message format as Python implementation
38+
*/

0 commit comments

Comments
 (0)