Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python precision #184

Merged
merged 6 commits into from
Dec 13, 2024
Merged

Python precision #184

merged 6 commits into from
Dec 13, 2024

Conversation

KowerKoint
Copy link
Contributor

Pythonでも好きな精度を選べるようにしました。
現状どうせf64とf32の両方でライブラリがコンパイルされていて、バイナリサイズが大きくなることもなさそうだと思ったので標準で両方サポートしていいと思っています。
今後f16,f32,f128などをサポートするならライブラリのコンパイル時点でオプションで選べるようにすべきそうですが…

from scaluq.f64 import StateVector
from scaluq.f64.gate import X

のように精度でサブモジュールを切って使えるようにしていますが、

from scaluq import StateVector
from scaluq.gate import X

のように1つ上の階層からもデフォルトとしてf64のものを使えるようにするか迷っているので意見がほしいです。
従来通り精度を選ばなくても使えるのがいいところですが、メンテナにとってもユーザーにとっても階層構造がわかりにくくなる懸念があります。

@KowerKoint KowerKoint marked this pull request as ready for review November 22, 2024 02:53
"Vector representation of quantum state.\n\n.. note:: Qubit index is "
"start from 0. If the amplitudes of $\\ket{b_{n-1}\\dots b_0}$ is "
"$b_i$, the state is $\\sum_i b_i 2^i$.")
nb::class_<StateVector<Fp>>(m,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#94 からmainに入っているリッチなDocStringを反映

@gandalfr-KY
Copy link
Contributor

ありがとうございます.
個人的にはscaluq.f64からでよいと思います!

Copy link
Contributor

@Glacialte Glacialte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ほとんど良いと思います!ありがとうございます
READMEに精度指定のトレードオフの話を書いて、サンプルコードを精度指定版に修正するとより親切かなと思います

@Glacialte
Copy link
Contributor

あと、僕もscaluq.f64からでよいと思います

@KowerKoint
Copy link
Contributor Author

README更新しました。

@KowerKoint KowerKoint merged commit 3ea7568 into set-precision-cmake Dec 13, 2024
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants