qlinks.builders package#
Submodules#
qlinks.builders.optimized_sparse module#
- class qlinks.builders.optimized_sparse.OptimizedSparseBuildStats(n_basis: 'int', n_terms: 'int', n_raw_actions: 'int', n_kept_actions: 'int', n_missing_actions: 'int', nnz: 'int', n_scratch_arrays: 'int')[source]#
Bases:
object- Parameters:
n_basis (int)
n_terms (int)
n_raw_actions (int)
n_kept_actions (int)
n_missing_actions (int)
nnz (int)
n_scratch_arrays (int)
- n_basis: int#
- n_terms: int#
- n_raw_actions: int#
- n_kept_actions: int#
- n_missing_actions: int#
- nnz: int#
- n_scratch_arrays: int#
- __init__(n_basis, n_terms, n_raw_actions, n_kept_actions, n_missing_actions, nnz, n_scratch_arrays)#
- Parameters:
n_basis (int)
n_terms (int)
n_raw_actions (int)
n_kept_actions (int)
n_missing_actions (int)
nnz (int)
n_scratch_arrays (int)
- Return type:
None
- class qlinks.builders.optimized_sparse.OptimizedSparseBuildResult(matrix: 'Any', stats: 'OptimizedSparseBuildStats')[source]#
Bases:
object- Parameters:
matrix (Any)
stats (OptimizedSparseBuildStats)
- matrix: Any#
- stats: OptimizedSparseBuildStats#
- __init__(matrix, stats)#
- Parameters:
matrix (Any)
stats (OptimizedSparseBuildStats)
- Return type:
None
- class qlinks.builders.optimized_sparse.OptimizedSparseHamiltonianBuilder(dtype=<class 'numpy.complex128'>, on_missing='skip', drop_zero_atol=0.0, backend='scipy')[source]#
Bases:
objectSparse Hamiltonian builder using LocalUpdateAction.
Main optimization#
Operators do not allocate full output configurations. They only return local updates. The builder owns one scratch array and reuses it for every action.
Matrix convention#
For each column basis state |config_col>, and action
coefficient, variable_indices, new_values
we construct
config_row = config_col with local updates applied
and insert
H[row, col] += coefficient
- dtype: DTypeLike#
- on_missing: Literal['skip', 'raise']#
- drop_zero_atol: float#
- backend: Literal['scipy', 'cupy', 'auto'] | SparseBackend#
- build(basis, operators)[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalUpdateOperator | DiagonalLocalOperator])
- Return type:
Any
- build_with_stats(basis, operators)[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalUpdateOperator | DiagonalLocalOperator])
- Return type:
- __init__(dtype=<class 'numpy.complex128'>, on_missing='skip', drop_zero_atol=0.0, backend='scipy')#
- Parameters:
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- Return type:
None
- Parameters:
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- qlinks.builders.optimized_sparse.build_optimized_sparse_hamiltonian(basis, operators, *, dtype=<class 'numpy.complex128'>, on_missing='skip', drop_zero_atol=0.0, backend='scipy')[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalUpdateOperator | DiagonalLocalOperator])
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- Return type:
Any
qlinks.builders.sparse module#
- class qlinks.builders.sparse.SparseBuildStats(n_basis: 'int', n_terms: 'int', n_raw_actions: 'int', n_kept_actions: 'int', n_missing_actions: 'int', nnz: 'int')[source]#
Bases:
object- Parameters:
n_basis (int)
n_terms (int)
n_raw_actions (int)
n_kept_actions (int)
n_missing_actions (int)
nnz (int)
- n_basis: int#
- n_terms: int#
- n_raw_actions: int#
- n_kept_actions: int#
- n_missing_actions: int#
- nnz: int#
- __init__(n_basis, n_terms, n_raw_actions, n_kept_actions, n_missing_actions, nnz)#
- Parameters:
n_basis (int)
n_terms (int)
n_raw_actions (int)
n_kept_actions (int)
n_missing_actions (int)
nnz (int)
- Return type:
None
- class qlinks.builders.sparse.SparseBuildResult(matrix: 'Any', stats: 'SparseBuildStats')[source]#
Bases:
object- Parameters:
matrix (Any)
stats (SparseBuildStats)
- matrix: Any#
- stats: SparseBuildStats#
- __init__(matrix, stats)#
- Parameters:
matrix (Any)
stats (SparseBuildStats)
- Return type:
None
- class qlinks.builders.sparse.SparseHamiltonianBuilder(dtype: 'npt.DTypeLike' = <class 'numpy.complex128'>, on_missing: 'MissingActionPolicy' = 'skip', combine_duplicates: 'bool' = True, drop_zero_atol: 'float' = 0.0, backend: 'SparseBackendName | SparseBackend' = 'scipy')[source]#
Bases:
object- Parameters:
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
combine_duplicates (bool)
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- dtype: DTypeLike#
- on_missing: Literal['skip', 'raise']#
- combine_duplicates: bool#
- drop_zero_atol: float#
- backend: Literal['scipy', 'cupy', 'auto'] | SparseBackend#
- build(basis, operators)[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalOperator])
- Return type:
Any
- build_with_stats(basis, operators)[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalOperator])
- Return type:
- __init__(dtype=<class 'numpy.complex128'>, on_missing='skip', combine_duplicates=True, drop_zero_atol=0.0, backend='scipy')#
- Parameters:
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
combine_duplicates (bool)
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- Return type:
None
- qlinks.builders.sparse.build_sparse_hamiltonian(basis, operators, *, dtype=<class 'numpy.complex128'>, on_missing='skip', combine_duplicates=True, drop_zero_atol=0.0, backend='scipy')[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalOperator])
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
combine_duplicates (bool)
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- Return type:
Any
Module contents#
- class qlinks.builders.SparseBuildResult(matrix: 'Any', stats: 'SparseBuildStats')[source]#
Bases:
object- Parameters:
matrix (Any)
stats (SparseBuildStats)
- matrix: Any#
- stats: SparseBuildStats#
- __init__(matrix, stats)#
- Parameters:
matrix (Any)
stats (SparseBuildStats)
- Return type:
None
- class qlinks.builders.SparseBuildStats(n_basis: 'int', n_terms: 'int', n_raw_actions: 'int', n_kept_actions: 'int', n_missing_actions: 'int', nnz: 'int')[source]#
Bases:
object- Parameters:
n_basis (int)
n_terms (int)
n_raw_actions (int)
n_kept_actions (int)
n_missing_actions (int)
nnz (int)
- n_basis: int#
- n_terms: int#
- n_raw_actions: int#
- n_kept_actions: int#
- n_missing_actions: int#
- nnz: int#
- __init__(n_basis, n_terms, n_raw_actions, n_kept_actions, n_missing_actions, nnz)#
- Parameters:
n_basis (int)
n_terms (int)
n_raw_actions (int)
n_kept_actions (int)
n_missing_actions (int)
nnz (int)
- Return type:
None
- class qlinks.builders.SparseHamiltonianBuilder(dtype: 'npt.DTypeLike' = <class 'numpy.complex128'>, on_missing: 'MissingActionPolicy' = 'skip', combine_duplicates: 'bool' = True, drop_zero_atol: 'float' = 0.0, backend: 'SparseBackendName | SparseBackend' = 'scipy')[source]#
Bases:
object- Parameters:
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
combine_duplicates (bool)
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- dtype: DTypeLike#
- on_missing: Literal['skip', 'raise']#
- combine_duplicates: bool#
- drop_zero_atol: float#
- backend: Literal['scipy', 'cupy', 'auto'] | SparseBackend#
- build(basis, operators)[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalOperator])
- Return type:
Any
- build_with_stats(basis, operators)[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalOperator])
- Return type:
- __init__(dtype=<class 'numpy.complex128'>, on_missing='skip', combine_duplicates=True, drop_zero_atol=0.0, backend='scipy')#
- Parameters:
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
combine_duplicates (bool)
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- Return type:
None
- qlinks.builders.build_sparse_hamiltonian(basis, operators, *, dtype=<class 'numpy.complex128'>, on_missing='skip', combine_duplicates=True, drop_zero_atol=0.0, backend='scipy')[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalOperator])
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
combine_duplicates (bool)
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- Return type:
Any
- qlinks.builders.is_hermitian_sparse(matrix, *, atol=1e-12, backend='auto')[source]#
- Parameters:
matrix (Any)
atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- Return type:
bool
- class qlinks.builders.OptimizedSparseBuildResult(matrix: 'Any', stats: 'OptimizedSparseBuildStats')[source]#
Bases:
object- Parameters:
matrix (Any)
stats (OptimizedSparseBuildStats)
- matrix: Any#
- stats: OptimizedSparseBuildStats#
- __init__(matrix, stats)#
- Parameters:
matrix (Any)
stats (OptimizedSparseBuildStats)
- Return type:
None
- class qlinks.builders.OptimizedSparseBuildStats(n_basis: 'int', n_terms: 'int', n_raw_actions: 'int', n_kept_actions: 'int', n_missing_actions: 'int', nnz: 'int', n_scratch_arrays: 'int')[source]#
Bases:
object- Parameters:
n_basis (int)
n_terms (int)
n_raw_actions (int)
n_kept_actions (int)
n_missing_actions (int)
nnz (int)
n_scratch_arrays (int)
- n_basis: int#
- n_terms: int#
- n_raw_actions: int#
- n_kept_actions: int#
- n_missing_actions: int#
- nnz: int#
- n_scratch_arrays: int#
- __init__(n_basis, n_terms, n_raw_actions, n_kept_actions, n_missing_actions, nnz, n_scratch_arrays)#
- Parameters:
n_basis (int)
n_terms (int)
n_raw_actions (int)
n_kept_actions (int)
n_missing_actions (int)
nnz (int)
n_scratch_arrays (int)
- Return type:
None
- class qlinks.builders.OptimizedSparseHamiltonianBuilder(dtype=<class 'numpy.complex128'>, on_missing='skip', drop_zero_atol=0.0, backend='scipy')[source]#
Bases:
objectSparse Hamiltonian builder using LocalUpdateAction.
Main optimization#
Operators do not allocate full output configurations. They only return local updates. The builder owns one scratch array and reuses it for every action.
Matrix convention#
For each column basis state |config_col>, and action
coefficient, variable_indices, new_values
we construct
config_row = config_col with local updates applied
and insert
H[row, col] += coefficient
- dtype: DTypeLike#
- on_missing: Literal['skip', 'raise']#
- drop_zero_atol: float#
- backend: Literal['scipy', 'cupy', 'auto'] | SparseBackend#
- build(basis, operators)[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalUpdateOperator | DiagonalLocalOperator])
- Return type:
Any
- build_with_stats(basis, operators)[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalUpdateOperator | DiagonalLocalOperator])
- Return type:
- __init__(dtype=<class 'numpy.complex128'>, on_missing='skip', drop_zero_atol=0.0, backend='scipy')#
- Parameters:
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- Return type:
None
- Parameters:
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- qlinks.builders.build_optimized_sparse_hamiltonian(basis, operators, *, dtype=<class 'numpy.complex128'>, on_missing='skip', drop_zero_atol=0.0, backend='scipy')[source]#
- Parameters:
basis (Basis)
operators (Sequence[LocalUpdateOperator | DiagonalLocalOperator])
dtype (DTypeLike)
on_missing (Literal['skip', 'raise'])
drop_zero_atol (float)
backend (Literal['scipy', 'cupy', 'auto'] | ~qlinks.backends.sparse.SparseBackend)
- Return type:
Any