mxdpgs Subroutine

public pure subroutine mxdpgs(n, a, alf)

scaling of a dense symmetric positive definite matrix a+e using the factorization a+e=l*d*trans(l) obtained by the subroutine mxdpgf.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

order of the matrix a.

real(kind=wp), intent(inout) :: a(*)

a(n*(n+1)/2) factorization a+e=l*d*trans(l) obtained by the subroutine mxdpgf.

real(kind=wp), intent(in) :: alf

scaling factor.


Called by

proc~~mxdpgs~~CalledByGraph proc~mxdpgs mxdpgs proc~bfgs_variable_metric_update bfgs_variable_metric_update proc~bfgs_variable_metric_update->proc~mxdpgs proc~psqp psqp_class%psqp proc~psqp->proc~bfgs_variable_metric_update proc~psqpn psqp_class%psqpn proc~psqpn->proc~psqp

Source Code

      pure subroutine mxdpgs(n,a,alf)

      real(wp),intent(in) :: alf  !! scaling factor.
      integer,intent(in) :: n  !! order of the matrix a.
      real(wp),intent(inout) :: a(*)  !! `a(n*(n+1)/2)` factorization `a+e=l*d*trans(l)`
                                      !! obtained by the subroutine [[mxdpgf]].

      integer :: i , j

      j = 0
      do i = 1 , n
         j = j + i
         a(j) = a(j)*alf
      end do

      end subroutine mxdpgs