@@ -549,7 +549,7 @@ function (iterator::LOBPCGIterator{Generalized})(residualTolerance, log) where {
549
549
push! (iterator. residualNormsHistory, iterator. residuals[1 : sizeX])
550
550
end
551
551
update_mask! (iterator, residualTolerance)
552
- iterator. currentBlockSize[] == 0 && return
552
+ iterator. currentBlockSize[] == 0 && return
553
553
bs = iterator. currentBlockSize[]
554
554
# Update active R blocks
555
555
update_active! (iterator. activeMask, bs, (iterator. activeRBlocks. block, iterator. RBlocks. block))
@@ -596,24 +596,6 @@ function (iterator::LOBPCGIterator{Generalized})(residualTolerance, log) where {
596
596
return
597
597
end
598
598
599
- function dense_solver (A, B, X, largest)
600
- warn (" The problem size is small compared to the block size. Using dense eigensolver instead of LOBPCG." )
601
- # Define the closed range of indices of eigenvalues to return.
602
- n = size (X, 1 )
603
- sizeX = size (X, 2 )
604
- eigvals = largest ? (n - sizeX + 1 , n) : (1 , sizeX)
605
- A_dense = A* eye (n)
606
- if B isa Void
607
- realdiag! (A_dense)
608
- return eig (Hermitian (A_dense))
609
- else
610
- B_dense = B* eye (n)
611
- realdiag! (A_dense)
612
- realdiag! (B_dense)
613
- return eig (Hermitian (A_dense), Hermitian (B_dense))
614
- end
615
- end
616
-
617
599
"""
618
600
The Locally Optimal Block Preconditioned Conjugate Gradient Method (LOBPCG)
619
601
@@ -670,12 +652,6 @@ function lobpcg(A, B, largest, X0;
670
652
Y = C
671
653
n = size (X, 1 )
672
654
sizeX = size (X, 2 )
673
- if Y isa Void
674
- n < 5 * sizeX && return dense_solver (A, B, X, largest)
675
- else
676
- sizeY = size (Y, 2 )
677
- (n - sizeY) < 5 * sizeX && throw (" The dense eigensolver does not support constraints." )
678
- end
679
655
sizeX > n && throw (" X column dimension exceeds the row dimension" )
680
656
681
657
iterator = LOBPCGIterator (A, B, X, largest, M, Y)
@@ -730,17 +706,6 @@ function lobpcg!(λ::AbstractVector, X, A, B, largest=true; log=false,
730
706
Y = C
731
707
n = size (X, 1 )
732
708
sizeX = size (X, 2 )
733
- if Y isa Void
734
- if n < 5 * sizeX
735
- lambda, vectors = dense_solver (A, B, X, largest)
736
- λ .= lambda
737
- X .= vectors
738
- return λ, X
739
- end
740
- else
741
- sizeY = size (Y, 2 )
742
- (n - sizeY) < 5 * sizeX && throw (" The dense eigensolver does not support constraints." )
743
- end
744
709
sizeX > n && throw (" X column dimension exceeds the row dimension" )
745
710
746
711
iterator = LOBPCGIterator (A, B, X, largest, M, Y)
0 commit comments