Utils methods:

tqix.pis.util.get_Nds(d)

to get number of qubits from dimension d

Parameters:

d (int) – dimension

Returns:

N

Return type:

number of qubits

tqix.pis.util.get_dim(N)

to get dimension from number of qubits N

Parameters:

N (int) – number of qubits

Returns:

d

Return type:

dimension

tqix.pis.util.get_num_block(N)

to get number of block

Parameters:

N (int) – number of qubits

Returns:

Nbj

Return type:

Number of block j

tqix.pis.util.get_array_block(N)

an array of block

Parameters:

N (int) – number of qubits

Returns:

array_block

Return type:

list

tqix.pis.util.get_jmin(N)

to get j min

Parameters:

N (int) – number of qubits

Returns:

jmin - min of j

Return type:

int

tqix.pis.util.get_jarray(N)

to get array of j from N

Parameters:

N (int) – number of qubits

Returns:

jarray - a array of j

Return type:

list

tqix.pis.util.get_marray(j)

to get array of m from j

Parameters:

j (int) – j index

Returns:

marray - a array of j

Return type:

list

tqix.pis.util.get_vidx(j, m)

to get index in vector state from j,m

Parameters:
  • j (int) – j index

  • m (int) – m index

Returns:

vidx

Return type:

int

tqix.pis.util.get_mm1_idx_max(N)

to get mm1 or ik

Parameters:

N (int) – number of qubits

Returns:

[mm1,ik]

Return type:

list

tqix.pis.util.get_midx(N, j, m, m1, block)
to get index in density matrix

ref. qutip

Parameters:
  • N (int) – number of qubits

  • j (int) – j index

  • m (int) – m index

  • m1 (int) – m1 index

  • block (list) – list of blocks

Returns:

(i,k)

Return type:

tuple

tqix.pis.util.get_jmm1_idx(N)

get index i,k of density matrix from j,m,m1

and revert j,m,m1 from i,k

ref. qutip

Parameters:

N (int) – number of qubits

Returns:

[jmm1,ik]

Return type:

list

tqix.pis.util.get_A(j, m, type='')
Parameters:
  • j (int) – j index

  • m (int) – m index

  • type (str, optional) – type of A, defaults to “”

Returns:

A_{type}

Return type:

float

tqix.pis.util.get_B(j, m, type='')
Parameters:
  • j (int) – j index

  • m (int) – m index

  • type (str, optional) – type of B, defaults to “”

Returns:

B_{type}

Return type:

float

tqix.pis.util.get_D(j, m, type='')
Parameters:
  • j (int) – j index

  • m (int) – m index

  • type (str, optional) – type of D, defaults to “”

Returns:

D_{type}

Return type:

float

tqix.pis.util.get_Lambda(N, j, type='')
Parameters:
  • N (int) – number of qubits

  • j (int) – j index

  • type (str, optional) – type of lambda, defaults to “”

Returns:

Lambda_{type}

Return type:

float

tqix.pis.util.get_alpha(N, j)
Parameters:
  • N (int) – number of qubits

  • j (int) – j index

Returns:

alpha

Return type:

float

tqix.pis.util.dicke_bx(N, jmm1)

create a dicke basis follow jmm1 jmm1 as {(j,m,m1):p}

Parameters:
  • N (int) – number of qubits

  • jmm1 (dict) – store p value at j,m,m1 indexes

Returns:

new state

Return type:

ndarray, tensor, sparse

tqix.pis.util.dicke_bx1(N, jmm1, ik, dim)

create a dicke basis follow jmm1

jmm1 as {(j,m,m1):p}

Parameters:
  • N (int) – number of qubits

  • jmm1 (dict) – stores p value at j,m,m1 indexes

  • ik (dict) – stores i,k indexes wrt j,m,m1

  • dim (int) – dimension of rho

Returns:

new state

Return type:

ndarray, tensor, sparse

tqix.pis.util.isclose(a, b, rel_tol=1e-09, abs_tol=0.0)

Check if 2 numbers is closed

Parameters:
  • a (float) – first number

  • b (float) – second number

  • rel_tol (float, optional) – defaults to 1e-09

  • abs_tol (float, optional) – defaults to 0.0

Returns:

True/False

Return type:

bool

tqix.pis.util.fit(objective_function, optimizer, init_params, return_loss_hist=None, loss_break=None, return_time_iters=None)
Parameters:
  • objective_function (func) – objetive function to minimize

  • optimizer (func) – optimizer function

  • init_params (list) – list of initial parameters

  • return_loss_hist (bool, optional) – return history of objective values, defaults to None

  • loss_break (bool, optional) – early stopping, defaults to None

  • return_time_iters (bool, optional) – return time each iterations, defaults to None

Returns:

output

Return type:

tuple