1use ket::prelude::*;
6
7fn main() -> Result<(), KetError> {
8 set_log_level(4);
9
10 let config = Configuration {
11 num_qubits: 12,
12 qpu: Some(QPU::new(
13 Some(vec![
19 (0, 4),
20 (0, 1),
21 (1, 2),
22 (1, 5),
23 (2, 3),
24 (2, 6),
25 (3, 7),
26 (4, 8),
27 (4, 5),
28 (5, 9),
29 (5, 6),
30 (6, 10),
31 (6, 7),
32 (7, 11),
33 (8, 9),
34 (9, 10),
35 (10, 11),
36 ]),
37 12,
38 Default::default(),
39 Default::default(),
40 )),
41 ..Default::default()
42 };
43
44 let mut process = Process::new(config);
45
46 let size = 6;
47
48 let qubits: Vec<_> = (0..size).map(|_| process.alloc().unwrap()).collect();
49 ctrl(&mut process, &qubits[1..], |process| {
50 process.gate(QuantumGate::PauliZ, qubits[0])
51 })?;
52
53 let _ = process.sample(&qubits, 1024)?;
54 process.transpile();
55
56 println!("Instructions:");
57 for line in process.instructions() {
58 println!("\t{:?}", line);
59 }
60
61 println!("ISA Instructions:");
62 if let Some(isa) = process.isa_instructions() {
63 for line in isa {
64 println!("\t{:?}", line);
65 }
66 }
67
68 Ok(())
69}