abstractions 118
algebra. See linear algebra
ancilla qubits 131
basis states 51
issues with sending over network 138–139
modifying messages 139
Boolean object 97
Boolean source 96
boolean type 56
breaking encryption 6
classical computers, evolutions in 12
Classic.randomBit() method 26–29, 121
classicsearch application 188
Classic.search method 193, 196
CloudQuantumExcecutionEnvironment constructor 135
communication. See secure communication
control qubit 80
from functions to oracles 170–173
properties of functions 161–165
reversible quantum gates 165–167
when solution is not the problem 159–161
disruptive parts of quantum computing 11–13
evolutions in classical computers 12
revolution in quantum computers 12
converting to probability vectors 79–80
predicting heads or tails 69
evolutions in classical computers 12
reasons for learning quantum computing 10–11
exponential problems 55
exponential time 6
f(x) balanced function 180
f(x) constant function 180
f4 constant function 172
factorization, classic vs. quantum 209–211
factor method 213
findPersonByAgeAndCountry method 188–189
from functions to oracles 170–173
creating periodic function using 224–226
gate representation for quantum entanglement 79–83
converting to probability vectors 79–80
Pauli-X gate 39
reversible quantum gates 165–167
experimental evidence 165 – 166
git commands 230
GPU (graphics processing unit) 13
building “Hello World” program using 24–25
running HelloStrange program using 232–233
Grover's search 184
classical search problems 185–191
searching using a function 189–191
overview 184
H class 42
hellostrange demo application 232
Java APIs vs. implementations 27–28
obtaining and installing Strange code 28–29
library overview 29
running first demo with Strange 20–23
high-level Java API 19
hostname 95
IDE (integrated development environment) 229
IllegalArgumentException 42
installing Strange demo code 230
inverse quantum Fourier transform 226
inverter 37
java command 229
JavaFX controls module 44
java.net.Socket class 93
for quantum computing simulators 119
approaches 119
resources for other languages 119
matrix-matrix multiplication 235
matrix-vector multiplication 234
tensor product 236
linear time 6
List object 187
manyExecution function 66
Math.random() function 71
matrix that works for all gates 62–63
applying to qubit in superposition 60–62
matrix-matrix multiplication 235
matrix-vector multiplication 234
building Hello World program using 23–24
running HelloStrange program using 231–232
mavenLocal() method 29
measurement operation 101
mvn command 232
n/2 function evaluations 188, 191, 203
networking. See quantum networking
nonpolynomial (exponential) scaling 16
nonpolynomial time 6
oracles 161
org.redfx.javaqc.ch02.hellostrange package 26
org.redfx.strange.algorithm.Classic class 120
org.redfx.strangefx.render.Renderer class 44
org.redfx.strange.gate.Measurement class 101
org.redfx.strange.gate package 42
org.redfx.strange.local package 41
org.redfx.strange package 41
params parameter 135
Pauli-X gate 39
applying to qubit in superposition 60–62
creating using quantum gates 224–226
example 162
periodicity 214
Person class 187
Person instance 187
polynomial in quantum 8
polynomial time 6
portnumber 95
prepareStep 155
probability vectors 54–58, 79–80
Program class 41
Program.initializeQubit (int index, double alpha) method 107
Q# language 119
QKD (quantum key distribution) 137
QKD application in Java 155–158
executing application 156
initializing variables 155
preparing steps 155
-q option 232
-q parameter 233
QPU (quantum processing unit) 13
quantum black box 167
quantum circuits, visualizing 43–45
abstracting software for quantum computers 14–16
evolutions in classical computers 12
revolution in quantum computers 12
reasons for learning quantum computing 10–11
from quantum to computing or from computing to quantum 17–18
revolution in quantum computers 12
quantum entanglement 75
QuantumExecutionEnvironment 41–42, 65–66, 135
quantum Fourier transform, inverse 226
measurements 101
classical networking in Java 92 – 96
physical limitations on transferring qubits 99
goal of 102
quantum and classical communication 108–109
topology of quantum network 90–92
quantum NOT gate 100
Qubit class 97
Program class 41
QuantumExecutionEnvironment interface 41
manipulating and measuring 37–39
one qubit 34
physical limitations on transferring 99
randomBit() function 25, 27, 29, 71, 122
repeaters 99
reversible quantum gates 165–167
revolution in quantum computers 12
search algorithm. See Grover’s search
search architecture, traditional 183–184
issues with sending bits over network 138–139
quantum key distribution 142
applying two Hadamard gates 146–147
sending qubits in superposition 147–150
calculating the periodicity 226–227
classic factorization vs. quantum factorization 209–211
creating periodic function using quantum gates 224–226
implementation challenges 227–228
multidisciplinary problem 211
quantum arithmetic as introduction to 128
quantum-based implementation 222–224
classic period finding 218–219
solving different problem 215–218
summary 228
SimpleQuantumExecutionEnvironment 41, 89, 135
singleExecution function 66
solution argument 197
source instance 97
state vector 193
Step instance 65
creating own circuits with 128–133
next steps 133
quantum arithmetic as introduction to Shor’s algorithm 128
quantum arithmetic with carry bit 131–133
obtaining and installing code for Strange library 28–29
library overview 29
obtaining and installing demo code 230
Program class 41
QuantumExecutionEnvironment interface 41
StrangeBridge class 87
debugging Strange code 124–128
visualization of circuits 123–124
matrix that works for all gates 62–63
secure communication using 145–150
applying two Hadamard gates 146–147
sending qubits in superposition 147–150
state of quantum system as probability vector 54–58
superPositionStep 156
superPositionStep2 156
target qubit 80
teleportation, quantum 102–109
goal of 102
quantum and classical communication 108–109
tensor product 236
ToIntFunction function 189
user interface (presentation layer) 183
version key 29
-version parameter 229
X class 42
52.15.59.163