The computational effort of the conventional diagonalization scheme scales as the third power of the number of basis orbitals, which means that the part could be a bottleneck when large-scale systems are calculated. On the other hand, the O() methods can solve the eigenvalue problem in O() operation in exchange for accuracy. Thus, O() methods could be efficient for large-scale systems, while a careful consideration is always required for the accuracy. In OpenMX Ver. 3.6, three O() methods are available: a divide-conquer (DC) method [33], a generalized divide-conquer (DC) method [33], and a Krylov subspace method [28]. In the following subsections each O() method is illustrated by examples.