---
name: "dlamsh"
section: "3"
platform: "linux"
package: "scalapack-doc"
version: "1.5-11"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/dlamsh"
---

# dlamsh(3)

send multiple shifts through a small (single node) matrix to see how consecutive small subdiagonal elements are modified by subsequent shifts in an effort to maximize the number of bulges that can be sent through

## NAME

DLAMSH - send multiple shifts through a small (single node) matrix to  see how consecutive small subdiagonal elements are modified by  subsequent shifts in an effort to maximize the number of bulges  that can be sent through

## SYNOPSIS

- SUBROUTINE DLAMSH

  ( S, LDS, NBULGE, JBLK, H, LDH, N, ULP )

- INTEGER

  LDS, NBULGE, JBLK, LDH, N

- DOUBLE

  PRECISION ULP

- DOUBLE

  PRECISION S(LDS,\*), H(LDH,\*)

## PURPOSE

DLAMSH sends multiple shifts through a small (single node) matrix to\
    see how consecutive small subdiagonal elements are modified by \
    subsequent shifts in an effort to maximize the number of bulges \
    that can be sent through. DLAMSH should only be called when there are multiple shifts/bulges \
    (NBULGE \> 1) and the first shift is starting in the middle of an\
    unreduced Hessenberg matrix because of two or more consecutive small\
    subdiagonal elements.\

## ARGUMENTS

- S (local input/output) DOUBLE PRECISION array, (LDS,\*)

  On entry, the matrix of shifts.  Only the 2x2 diagonal of S is referenced.  It is assumed that S has JBLK double shifts (size 2). On exit, the data is rearranged in the best order for  applying.

- LDS (local input) INTEGER

  On entry, the leading dimension of S.  Unchanged on exit. 1 \< NBULGE \<= JBLK \<= LDS/2

- NBULGE (local input/output) INTEGER

  On entry, the number of bulges to send through H ( \>1 ). NBULGE should be less than the maximum determined (JBLK). 1 \< NBULGE \<= JBLK \<= LDS/2 On exit, the maximum number of bulges that can be sent  through.

- JBLK (local input) INTEGER

  On entry, the number of shifts determined for S. Unchanged on exit.

- H (local input/output) DOUBLE PRECISION array (LDH,N)

  On entry, the local matrix to apply the shifts on. H should be aligned so that the starting row is 2. On exit, the data is destroyed.

- LDS (local input) INTEGER

  On entry, the leading dimension of S.  Unchanged on exit.

- N (local input) INTEGER

  On entry, the size of H.  If all the bulges are expected to go through, N should be at least 4\*NBULGE+2. Otherwise, NBULGE may be reduced by this routine.

- ULP (local input) DOUBLE PRECISION

  On entry, machine precision Unchanged on exit.

  Implemented by:  G. Henry, May 1, 1997
