1 SUBROUTINE dmmdda( M, N, ALPHA, A, LDA, BETA, B, LDB )
10 DOUBLE PRECISION ALPHA, BETA
13 DOUBLE PRECISION A( LDA, * ), B( LDB, * )
68 DOUBLE PRECISION ONE, ZERO
69 parameter( one = 1.0d+0, zero = 0.0d+0 )
75 EXTERNAL daxpy, dcopy, dscal
79 IF( beta.EQ.one )
THEN
80 IF( alpha.EQ.zero )
THEN
82 CALL dcopy( m, b( 1, j ), 1, a( 1, j ), 1 )
87 ELSE IF( alpha.NE.one )
THEN
90 a( i, j ) = b( i, j ) + alpha * a( i, j )
95 CALL daxpy( m, one, b( 1, j ), 1, a( 1, j ), 1 )
101 ELSE IF( beta.NE.zero )
THEN
102 IF( alpha.EQ.zero )
THEN
105 a( i, j ) = beta * b( i, j )
108 ELSE IF( alpha.NE.one )
THEN
111 a( i, j ) = beta * b( i, j ) + alpha * a( i, j )
116 CALL daxpy( m, beta, b( 1, j ), 1, a( 1, j ), 1 )
123 IF( alpha.EQ.zero )
THEN
129 ELSE IF( alpha.NE.one )
THEN
131 CALL dscal( m, alpha, a( 1, j ), 1 )