Table of Contents
Chop
Numerics inside a computer is not exact. Quanty represents numbers by doubles, which can store numbers with about 16 digits accuracy. The fact that you only have 16 digits can lead to number-loss and situations where numbers that should be zero are close to zero but not exactly zero. An example in base 10: If you represent $1/3$ by $0.3333333333333333$ then $1-3\times0.3333333333333333 = 0.00000000000000001$. In Quanty you can remove these small numbers with the command Chop().
For an operator O, O.Chop() or O.Chop($\epsilon$) Removes small (smaller than $\epsilon$) numbers from the operator. The standard value (when the argument is omitted) for $\epsilon = 2.2 \times 10^{−15}$. O.Chop() returns nil and changes the value of O.
Example
We define: $$O=3.4+1.2a^{\dagger}_{0}\,a^{\phantom{\dagger}}_{0}+(2.5+0.0000000001I)a^{\dagger}_{1}\,a^{\phantom{\dagger}}_{2},$$ and remove the small complex part with the command Chop()
Input
- Example.Quanty
NF=3 NB=0 O = NewOperator(NF,NB,{{3.4},{0,-0,1.2},{1,-2,2.5+0.0000000001*I}}) print(O) O.Chop(0.00001) print(O)
Result
Operator: Operator QComplex = 2 (Real==0 or Complex==1 or Mixed==2) MaxLength = 2 (largest number of product of lader operators) NFermionic modes = 3 (Number of fermionic modes (site, spin, orbital, ...) in the one particle basis) NBosonic modes = 0 (Number of bosonic modes (phonon modes, ...) in the one particle basis) Operator of Length 0 QComplex = 0 (Real==0 or Complex==1) N = 1 (number of operators of length 0) | 3.400000000000000E+00 Operator of Length 2 QComplex = 1 (Real==0 or Complex==1) N = 2 (number of operators of length 2) C 0 A 0 | 1.200000000000000E+00 0.000000000000000E+00 C 1 A 2 | 2.500000000000000E+00 1.000000000000000E-10 Operator: Operator QComplex = 0 (Real==0 or Complex==1 or Mixed==2) MaxLength = 2 (largest number of product of lader operators) NFermionic modes = 3 (Number of fermionic modes (site, spin, orbital, ...) in the one particle basis) NBosonic modes = 0 (Number of bosonic modes (phonon modes, ...) in the one particle basis) Operator of Length 0 QComplex = 0 (Real==0 or Complex==1) N = 1 (number of operators of length 0) | 3.400000000000000E+00 Operator of Length 2 QComplex = 0 (Real==0 or Complex==1) N = 2 (number of operators of length 2) C 0 A 0 | 1.200000000000000E+00 C 1 A 2 | 2.500000000000000E+00