-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
88 lines (68 loc) · 13.8 KB
/
Copy pathMain.java
File metadata and controls
88 lines (68 loc) · 13.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import ITE.*;
import java.util.ArrayList;
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
// ( ( !BSTOP and !BEMERG and BSTART ) and ( (!SP1 or LBE) or ( !SP1 xor LBE ) ) and !ALRME_CX_CHEIA and STG and (!SP1 or LBE) )
//testar - ((!(BSTOP)*!(BEMERG)*BSTART)*(!SP1+LBE)*!(ALRME_CX_CHEIA)*STG*(!(SP1)+LBE))
ROBDD robdd = new ROBDD("((!(BSTOP)*!(BEMERG)*BSTART)*((!(SP1)+LBE)+(!(!(!(SP1)+LBE)+!(!(SP1)+!(LBE))))*!(ALRME_CX_CHEIA)*STG*(!(SP1)+LBE)))");
robdd.setWeightingOrdering();
robdd.setWindowOrdering(3,2);
// robdd.setMin();
//robdd.setOrdering("x1<x3<x5<x7<x2<x4<x6<x8<");
// robdd.setMin();
//robdd.setOrdering("SF2<SG3<SG4<SG1<SG2<SF1<");
//robdd.setMin();
System.out.println(robdd.size());
System.out.println(robdd.getITE());
System.out.println(robdd.getOrdering());
robdd.getAllPaths().forEach(path->{
System.out.println(path);
});
/*
robdd.setMin();
System.out.println(robdd.getOrdering());
*/
}
}
/*
Important applications that can be mentioned for ROBDDs are: digital circuit design - minimizing the size of a ROBDD that represents a Boolean function describing a circuit transfers directly to a smaller chip area; formal verification of combinational circuits; analysis of sequential systems; symbolic model checking.
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Operations op = new Operations();
Ordering order = new Ordering();
String expression = "(x1+x2)*(x3+x4)";
Tree t = new Tree();
//t.setOrdering("x[1]<x[3]<x[5]<x[7]<x[9]<x[11]<x[13]<x[15]<x[17]<x[19]<x[21]<x[23]<x[2]<x[4]<x[6]<x[8]<x[10]<x[12]<x[14]<x[16]<x[18]<x[20]<x[22]<x[24]<");
//t.setOrdering(order.weighting(expression));
t.setOrdering("x1<x2<x3<x4<");
//Node root = order.getMin(expression);
//Node root = t.generateG(expression);
//Node root = order.window(expression,4,"SF2");//SF1<SF2<SG1<SG2<SG3<SG4<
//System.out.println(root.bOrdering);
//System.out.println(t.getOrdering());
//System.out.println("size = "+op.count(root));
//System.out.println(root.expression);
Node root = order.window(expression,t.getOrdering(),3,1);//SF1<SF2<SG1<SG2<SG3<SG4<
for (String i : t.allReducedPaths(root) ) {
System.out.println(i);
}
System.out.println(root.bOrdering);
//System.out.println(t.getOrdering());
System.out.println("size = "+op.count(root));
System.out.println(root.expression);
//System.out.println(order.weighting(expression));
}
}
*/
//(∼(SF1 ∨ SF2) ∧ ∼((SG1 ∧ (SG2 ∨ SG3)) ∨ (SG2 ∧ SG3)))
//(!(SF1 + SF2) * !((SG1 * (SG2 + SG3)) + (SG2 * SG3)))*(SG3+SG4)
//(∼(SF1∨SF2)∧∼((SG1∧(SG2vSG3))∨(SG2∧SG3)))⟩.
//(!(SF1+SF2)*!((SG1*(SG2+SG3))+(SG2*SG3)))
//((((((((x[1]*x[2])+(x[3]*x[4]))+(x[5])*x[6]))+(x[7]*x[8]))+(x[9]*x[10]))+(x[11]*x[12]))+(x[13]*x[14]))
//1<3<5<7<9<11<13<2<4<6<8<10<12<14<
//((((((((x[1]*x[2])+(x[3]*x[4]))+(x[5])*x[6]))+(x[7]*x[8]))+(x[9]*x[10]))+(x[11]*x[12]))+(x[13]*x[14]))
//(x[1],(x[3],(x[5],(x[7],(x[9],(x[11],(x[13],(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0))))))),(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,0))))))),(x[13],(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[14],1,0)))))),(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[10],1,0))))))),(x[11],(x[13],(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[12],1,(x[14],1,0)))))),(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[12],1,0)))))),(x[13],(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[6],1,(x[8],1,0))))))),(x[9],(x[11],(x[13],(x[2],1,(x[4],1,(x[6],1,(x[10],1,(x[12],1,(x[14],1,0)))))),(x[2],1,(x[4],1,(x[6],1,(x[10],1,(x[12],1,0)))))),(x[13],(x[2],1,(x[4],1,(x[6],1,(x[10],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[6],1,(x[10],1,0)))))),(x[11],(x[13],(x[2],1,(x[4],1,(x[6],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[6],1,(x[12],1,0))))),(x[13],(x[2],1,(x[4],1,(x[6],1,(x[14],1,0)))),(x[2],1,(x[4],1,(x[6],1,0))))))),(x[7],(x[9],(x[11],(x[13],(x[2],1,(x[4],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0)))))),(x[2],1,(x[4],1,(x[8],1,(x[10],1,(x[12],1,0)))))),(x[13],(x[2],1,(x[4],1,(x[8],1,(x[10],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[8],1,(x[10],1,0)))))),(x[11],(x[13],(x[2],1,(x[4],1,(x[8],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[8],1,(x[12],1,0))))),(x[13],(x[2],1,(x[4],1,(x[8],1,(x[14],1,0)))),(x[2],1,(x[4],1,(x[8],1,0)))))),(x[9],(x[11],(x[13],(x[2],1,(x[4],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[10],1,(x[12],1,0))))),(x[13],(x[2],1,(x[4],1,(x[10],1,(x[14],1,0)))),(x[2],1,(x[4],1,(x[10],1,0))))),(x[11],(x[13],(x[2],1,(x[4],1,(x[12],1,(x[14],1,0)))),(x[2],1,(x[4],1,(x[12],1,0)))),(x[13],(x[2],1,(x[4],1,(x[14],1,0))),(x[2],1,(x[4],1,0))))))),(x[5],(x[7],(x[9],(x[11],(x[13],(x[2],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0)))))),(x[2],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,0)))))),(x[13],(x[2],1,(x[6],1,(x[8],1,(x[10],1,(x[14],1,0))))),(x[2],1,(x[6],1,(x[8],1,(x[10],1,0)))))),(x[11],(x[13],(x[2],1,(x[6],1,(x[8],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[6],1,(x[8],1,(x[12],1,0))))),(x[13],(x[2],1,(x[6],1,(x[8],1,(x[14],1,0)))),(x[2],1,(x[6],1,(x[8],1,0)))))),(x[9],(x[11],(x[13],(x[2],1,(x[6],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[6],1,(x[10],1,(x[12],1,0))))),(x[13],(x[2],1,(x[6],1,(x[10],1,(x[14],1,0)))),(x[2],1,(x[6],1,(x[10],1,0))))),(x[11],(x[13],(x[2],1,(x[6],1,(x[12],1,(x[14],1,0)))),(x[2],1,(x[6],1,(x[12],1,0)))),(x[13],(x[2],1,(x[6],1,(x[14],1,0))),(x[2],1,(x[6],1,0)))))),(x[7],(x[9],(x[11],(x[13],(x[2],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[8],1,(x[10],1,(x[12],1,0))))),(x[13],(x[2],1,(x[8],1,(x[10],1,(x[14],1,0)))),(x[2],1,(x[8],1,(x[10],1,0))))),(x[11],(x[13],(x[2],1,(x[8],1,(x[12],1,(x[14],1,0)))),(x[2],1,(x[8],1,(x[12],1,0)))),(x[13],(x[2],1,(x[8],1,(x[14],1,0))),(x[2],1,(x[8],1,0))))),(x[9],(x[11],(x[13],(x[2],1,(x[10],1,(x[12],1,(x[14],1,0)))),(x[2],1,(x[10],1,(x[12],1,0)))),(x[13],(x[2],1,(x[10],1,(x[14],1,0))),(x[2],1,(x[10],1,0)))),(x[11],(x[13],(x[2],1,(x[12],1,(x[14],1,0))),(x[2],1,(x[12],1,0))),(x[13],(x[2],1,(x[14],1,0)),(x[2],1,0))))))),(x[3],(x[5],(x[7],(x[9],(x[11],(x[13],(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0)))))),(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,0)))))),(x[13],(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[14],1,0))))),(x[4],1,(x[6],1,(x[8],1,(x[10],1,0)))))),(x[11],(x[13],(x[4],1,(x[6],1,(x[8],1,(x[12],1,(x[14],1,0))))),(x[4],1,(x[6],1,(x[8],1,(x[12],1,0))))),(x[13],(x[4],1,(x[6],1,(x[8],1,(x[14],1,0)))),(x[4],1,(x[6],1,(x[8],1,0)))))),(x[9],(x[11],(x[13],(x[4],1,(x[6],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[4],1,(x[6],1,(x[10],1,(x[12],1,0))))),(x[13],(x[4],1,(x[6],1,(x[10],1,(x[14],1,0)))),(x[4],1,(x[6],1,(x[10],1,0))))),(x[11],(x[13],(x[4],1,(x[6],1,(x[12],1,(x[14],1,0)))),(x[4],1,(x[6],1,(x[12],1,0)))),(x[13],(x[4],1,(x[6],1,(x[14],1,0))),(x[4],1,(x[6],1,0)))))),(x[7],(x[9],(x[11],(x[13],(x[4],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[4],1,(x[8],1,(x[10],1,(x[12],1,0))))),(x[13],(x[4],1,(x[8],1,(x[10],1,(x[14],1,0)))),(x[4],1,(x[8],1,(x[10],1,0))))),(x[11],(x[13],(x[4],1,(x[8],1,(x[12],1,(x[14],1,0)))),(x[4],1,(x[8],1,(x[12],1,0)))),(x[13],(x[4],1,(x[8],1,(x[14],1,0))),(x[4],1,(x[8],1,0))))),(x[9],(x[11],(x[13],(x[4],1,(x[10],1,(x[12],1,(x[14],1,0)))),(x[4],1,(x[10],1,(x[12],1,0)))),(x[13],(x[4],1,(x[10],1,(x[14],1,0))),(x[4],1,(x[10],1,0)))),(x[11],(x[13],(x[4],1,(x[12],1,(x[14],1,0))),(x[4],1,(x[12],1,0))),(x[13],(x[4],1,(x[14],1,0)),(x[4],1,0)))))),(x[5],(x[7],(x[9],(x[11],(x[13],(x[6],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[6],1,(x[8],1,(x[10],1,(x[12],1,0))))),(x[13],(x[6],1,(x[8],1,(x[10],1,(x[14],1,0)))),(x[6],1,(x[8],1,(x[10],1,0))))),(x[11],(x[13],(x[6],1,(x[8],1,(x[12],1,(x[14],1,0)))),(x[6],1,(x[8],1,(x[12],1,0)))),(x[13],(x[6],1,(x[8],1,(x[14],1,0))),(x[6],1,(x[8],1,0))))),(x[9],(x[11],(x[13],(x[6],1,(x[10],1,(x[12],1,(x[14],1,0)))),(x[6],1,(x[10],1,(x[12],1,0)))),(x[13],(x[6],1,(x[10],1,(x[14],1,0))),(x[6],1,(x[10],1,0)))),(x[11],(x[13],(x[6],1,(x[12],1,(x[14],1,0))),(x[6],1,(x[12],1,0))),(x[13],(x[6],1,(x[14],1,0)),(x[6],1,0))))),(x[7],(x[9],(x[11],(x[13],(x[8],1,(x[10],1,(x[12],1,(x[14],1,0)))),(x[8],1,(x[10],1,(x[12],1,0)))),(x[13],(x[8],1,(x[10],1,(x[14],1,0))),(x[8],1,(x[10],1,0)))),(x[11],(x[13],(x[8],1,(x[12],1,(x[14],1,0))),(x[8],1,(x[12],1,0))),(x[13],(x[8],1,(x[14],1,0)),(x[8],1,0)))),(x[9],(x[11],(x[13],(x[10],1,(x[12],1,(x[14],1,0))),(x[10],1,(x[12],1,0))),(x[13],(x[10],1,(x[14],1,0)),(x[10],1,0))),(x[11],(x[13],(x[12],1,(x[14],1,0)),(x[12],1,0)),(x[13],(x[14],1,0),0)))))))
//(x[1],(x[3],(x[5],(x[7],(x[9],(x[11],(x[13],(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0))))))),(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,0))))))),(x[13],(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[14],1,0)))))),(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[10],1,0))))))),(x[11],(x[13],(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[12],1,(x[14],1,0)))))),(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[12],1,0)))))),(x[13],(x[2],1,(x[4],1,(x[6],1,(x[8],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[6],1,(x[8],1,0))))))),(x[9],(x[11],(x[13],(x[2],1,(x[4],1,(x[6],1,(x[10],1,(x[12],1,(x[14],1,0)))))),(x[2],1,(x[4],1,(x[6],1,(x[10],1,(x[12],1,0)))))),(x[13],(x[2],1,(x[4],1,(x[6],1,(x[10],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[6],1,(x[10],1,0)))))),(x[11],(x[13],(x[2],1,(x[4],1,(x[6],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[6],1,(x[12],1,0))))),(x[13],(x[2],1,(x[4],1,(x[6],1,(x[14],1,0)))),(x[2],1,(x[4],1,(x[6],1,0))))))),(x[7],(x[9],(x[11],(x[13],(x[2],1,(x[4],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0)))))),(x[2],1,(x[4],1,(x[8],1,(x[10],1,(x[12],1,0)))))),(x[13],(x[2],1,(x[4],1,(x[8],1,(x[10],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[8],1,(x[10],1,0)))))),(x[11],(x[13],(x[2],1,(x[4],1,(x[8],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[8],1,(x[12],1,0))))),(x[13],(x[2],1,(x[4],1,(x[8],1,(x[14],1,0)))),(x[2],1,(x[4],1,(x[8],1,0)))))),(x[9],(x[11],(x[13],(x[2],1,(x[4],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[4],1,(x[10],1,(x[12],1,0))))),(x[13],(x[2],1,(x[4],1,(x[10],1,(x[14],1,0)))),(x[2],1,(x[4],1,(x[10],1,0))))),(x[11],(x[13],(x[2],1,(x[4],1,(x[12],1,(x[14],1,0)))),(x[2],1,(x[4],1,(x[12],1,0)))),(x[13],(x[2],1,(x[4],1,(x[14],1,0))),(x[2],1,(x[4],1,0))))))),(x[5],(x[7],(x[9],(x[11],(x[13],(x[2],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0)))))),(x[2],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,0)))))),(x[13],(x[2],1,(x[6],1,(x[8],1,(x[10],1,(x[14],1,0))))),(x[2],1,(x[6],1,(x[8],1,(x[10],1,0)))))),(x[11],(x[13],(x[2],1,(x[6],1,(x[8],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[6],1,(x[8],1,(x[12],1,0))))),(x[13],(x[2],1,(x[6],1,(x[8],1,(x[14],1,0)))),(x[2],1,(x[6],1,(x[8],1,0)))))),(x[9],(x[11],(x[13],(x[2],1,(x[6],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[6],1,(x[10],1,(x[12],1,0))))),(x[13],(x[2],1,(x[6],1,(x[10],1,(x[14],1,0)))),(x[2],1,(x[6],1,(x[10],1,0))))),(x[11],(x[13],(x[2],1,(x[6],1,(x[12],1,(x[14],1,0)))),(x[2],1,(x[6],1,(x[12],1,0)))),(x[13],(x[2],1,(x[6],1,(x[14],1,0))),(x[2],1,(x[6],1,0)))))),(x[7],(x[9],(x[11],(x[13],(x[2],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[2],1,(x[8],1,(x[10],1,(x[12],1,0))))),(x[13],(x[2],1,(x[8],1,(x[10],1,(x[14],1,0)))),(x[2],1,(x[8],1,(x[10],1,0))))),(x[11],(x[13],(x[2],1,(x[8],1,(x[12],1,(x[14],1,0)))),(x[2],1,(x[8],1,(x[12],1,0)))),(x[13],(x[2],1,(x[8],1,(x[14],1,0))),(x[2],1,(x[8],1,0))))),(x[9],(x[11],(x[13],(x[2],1,(x[10],1,(x[12],1,(x[14],1,0)))),(x[2],1,(x[10],1,(x[12],1,0)))),(x[13],(x[2],1,(x[10],1,(x[14],1,0))),(x[2],1,(x[10],1,0)))),(x[11],(x[13],(x[2],1,(x[12],1,(x[14],1,0))),(x[2],1,(x[12],1,0))),(x[13],(x[2],1,(x[14],1,0)),(x[2],1,0))))))),(x[3],(x[5],(x[7],(x[9],(x[11],(x[13],(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0)))))),(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[12],1,0)))))),(x[13],(x[4],1,(x[6],1,(x[8],1,(x[10],1,(x[14],1,0))))),(x[4],1,(x[6],1,(x[8],1,(x[10],1,0)))))),(x[11],(x[13],(x[4],1,(x[6],1,(x[8],1,(x[12],1,(x[14],1,0))))),(x[4],1,(x[6],1,(x[8],1,(x[12],1,0))))),(x[13],(x[4],1,(x[6],1,(x[8],1,(x[14],1,0)))),(x[4],1,(x[6],1,(x[8],1,0)))))),(x[9],(x[11],(x[13],(x[4],1,(x[6],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[4],1,(x[6],1,(x[10],1,(x[12],1,0))))),(x[13],(x[4],1,(x[6],1,(x[10],1,(x[14],1,0)))),(x[4],1,(x[6],1,(x[10],1,0))))),(x[11],(x[13],(x[4],1,(x[6],1,(x[12],1,(x[14],1,0)))),(x[4],1,(x[6],1,(x[12],1,0)))),(x[13],(x[4],1,(x[6],1,(x[14],1,0))),(x[4],1,(x[6],1,0)))))),(x[7],(x[9],(x[11],(x[13],(x[4],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[4],1,(x[8],1,(x[10],1,(x[12],1,0))))),(x[13],(x[4],1,(x[8],1,(x[10],1,(x[14],1,0)))),(x[4],1,(x[8],1,(x[10],1,0))))),(x[11],(x[13],(x[4],1,(x[8],1,(x[12],1,(x[14],1,0)))),(x[4],1,(x[8],1,(x[12],1,0)))),(x[13],(x[4],1,(x[8],1,(x[14],1,0))),(x[4],1,(x[8],1,0))))),(x[9],(x[11],(x[13],(x[4],1,(x[10],1,(x[12],1,(x[14],1,0)))),(x[4],1,(x[10],1,(x[12],1,0)))),(x[13],(x[4],1,(x[10],1,(x[14],1,0))),(x[4],1,(x[10],1,0)))),(x[11],(x[13],(x[4],1,(x[12],1,(x[14],1,0))),(x[4],1,(x[12],1,0))),(x[13],(x[4],1,(x[14],1,0)),(x[4],1,0)))))),(x[5],(x[7],(x[9],(x[11],(x[13],(x[6],1,(x[8],1,(x[10],1,(x[12],1,(x[14],1,0))))),(x[6],1,(x[8],1,(x[10],1,(x[12],1,0))))),(x[13],(x[6],1,(x[8],1,(x[10],1,(x[14],1,0)))),(x[6],1,(x[8],1,(x[10],1,0))))),(x[11],(x[13],(x[6],1,(x[8],1,(x[12],1,(x[14],1,0)))),(x[6],1,(x[8],1,(x[12],1,0)))),(x[13],(x[6],1,(x[8],1,(x[14],1,0))),(x[6],1,(x[8],1,0))))),(x[9],(x[11],(x[13],(x[6],1,(x[10],1,(x[12],1,(x[14],1,0)))),(x[6],1,(x[10],1,(x[12],1,0)))),(x[13],(x[6],1,(x[10],1,(x[14],1,0))),(x[6],1,(x[10],1,0)))),(x[11],(x[13],(x[6],1,(x[12],1,(x[14],1,0))),(x[6],1,(x[12],1,0))),(x[13],(x[6],1,(x[14],1,0)),(x[6],1,0))))),(x[7],(x[9],(x[11],(x[13],(x[8],1,(x[10],1,(x[12],1,(x[14],1,0)))),(x[8],1,(x[10],1,(x[12],1,0)))),(x[13],(x[8],1,(x[10],1,(x[14],1,0))),(x[8],1,(x[10],1,0)))),(x[11],(x[13],(x[8],1,(x[12],1,(x[14],1,0))),(x[8],1,(x[12],1,0))),(x[13],(x[8],1,(x[14],1,0)),(x[8],1,0)))),(x[9],(x[11],(x[13],(x[10],1,(x[12],1,(x[14],1,0))),(x[10],1,(x[12],1,0))),(x[13],(x[10],1,(x[14],1,0)),(x[10],1,0))),(x[11],(x[13],(x[12],1,(x[14],1,0)),(x[12],1,0)),(x[13],(x[14],1,0),0)))))))
//(((((((((((((x[1]*x[2])+(x[3]*x[4]))+(x[5])*x[6]))+(x[7]*x[8]))+(x[9]*x[10]))+(x[11]*x[12]))+(x[13]*x[14])))+(x[15]*x[16]))+(x[17]*x[18]))+(x[19]*x[20]))+(x[21]*x[22]))+(x[23]*x[24])