The Classiq platform is all you need for creating any quantum program. Read more for the details.
flowchart
IDEInput[<a href='https://platform.classiq.io/'>Classiq IDE</a>]
SDKInput[<a href='https://docs.classiq.io/latest/getting-started/python-sdk/'>Classiq python SDK</a>]
Model[<a href='https://docs.classiq.io/latest/user-guide/platform/qmod/'>Quantum Model</a>]
Synthesis[<a href='https://docs.classiq.io/latest/user-guide/platform/synthesis/'>Synthesis Engine</a>]
QuantumProgram[Quantum Program]
Execution[<a href='https://docs.classiq.io/latest/user-guide/platform/executor/'>Execution</a>]
Analyze[<a href='https://docs.classiq.io/latest/user-guide/platform/analyzer/'>Analyze & Debug</a>]
ExternalProgram[<a href='https://docs.classiq.io/latest/user-guide/platform/executor/alternative-formats/'>Any Format, e.g QASM</a>]
IBM[IBM]
Amazon[Amazon Braket]
Azure[Azure Quantum]
Nvidia[Nvidia]
IDEInput --> Model;
SDKInput --> Model;
Model --> Synthesis;
Synthesis --> QuantumProgram;
ExternalProgram <--> QuantumProgram;
QuantumProgram --> Analyze;
QuantumProgram --> Execution;
Execution --> IBM
Execution --> Amazon
Execution --> Azure
Execution --> Nvidia
⚛️ Platform | 👋 Join Slack | 📖 Documentation | Getting Started
You can find a wide collection of quantum functions, algorithms, applications and tutorials built with Classiq.
Usage Example - Portfolio Optimization:
Go to the Portfolio optimization directory: applications/finance/portfolio_optimizaition
- Sign up to the classiq platform
- Upload the
.qmod
file to the synthesis tab
- Start with downloading Classiq:
pip install -U classiq
- Download the
.ipynb
file - Run the notebook in your preferred environment
With Classiq, you can build anything. Classiq provides a powerful modeling language to describe any quantum program, which can then be synthesized and executed on any hardware or simulator. Explore our Documentation to learn everything.
- Create a model (paste in the
model
tab)
qfunc get_3(output x: qbit[2]){
allocate<2>(x);
X(x[0:1]);
X(x[1:2]);
}
qfunc get_5(output x: qbit[3]){
allocate<3>(x);
X(x[0:1]);
X(x[2:3]);
}
qfunc main(output res: qbit[4]){
a: qbit[2];
b: qbit[3];
get_3(a);
get_5(b);
res = a + b;
}
- Press Synthesize:
- Press Execute:
- Press Run:
- View Results:
from classiq import (
QArray,
Output,
allocate,
QFunc,
X,
QNum,
synthesize,
create_model,
show,
execute,
)
@QFunc
def get_3(x: Output[QArray]) -> None:
allocate(2, x)
X(x[0])
X(x[1])
@QFunc
def get_5(x: Output[QArray]) -> None:
allocate(3, x)
X(x[0])
X(x[2])
@QFunc
def main(res: Output[QNum]) -> None:
a = QNum("a")
b = QNum("b")
get_3(a)
get_5(b)
res |= a + b # should be 8
qprog = synthesize(create_model(main))
show(qprog)
result = execute(qprog).result()
print(result[0].value.parsed_counts)
Have questions? Feedback? Something to share? Welcome to join our open Slack Community