Parallel Colt 0.7.2

cern.colt.matrix.tfloat.algo Class SmpFloatBlas

```java.lang.Object
cern.colt.matrix.tfloat.algo.SmpFloatBlas
```
All Implemented Interfaces:
FloatBlas

`public class SmpFloatBlasextends Objectimplements FloatBlas`

Parallel implementation of the Basic Linear Algebra System for symmetric multi processing boxes. In all cases, no or only marginal speedup is seen for small problem sizes; they are detected and the sequential algorithm is used.

Version:
0.9, 16/04/2000
Author:
wolfgang.hoschek@cern.ch, Piotr Wendykier (piotr.wendykier@gmail.com)

Constructor Summary
`SmpFloatBlas()`

Method Summary
` void` ```assign(FloatMatrix2D A, FloatFunction function)```
Assigns the result of a function to each cell; x[row,col] = function(x[row,col]).
` void` ```assign(FloatMatrix2D A, FloatMatrix2D B, FloatFloatFunction function)```
Assigns the result of a function to each cell; x[row,col] = function(x[row,col],y[row,col]).
` float` `dasum(FloatMatrix1D x)`
Returns the sum of absolute values; |x[0]| + |x[1]| + ...
` void` ```daxpy(float alpha, FloatMatrix1D x, FloatMatrix1D y)```
Combined vector scaling; y = y + alpha*x.
` void` ```daxpy(float alpha, FloatMatrix2D A, FloatMatrix2D B)```
Combined matrix scaling; B = B + alpha*A.
` void` ```dcopy(FloatMatrix1D x, FloatMatrix1D y)```
Vector assignment (copying); y = x.
` void` ```dcopy(FloatMatrix2D A, FloatMatrix2D B)```
Matrix assignment (copying); B = A.
` float` ```ddot(FloatMatrix1D x, FloatMatrix1D y)```
Returns the dot product of two vectors x and y, which is Sum(x[i]*y[i]).
` void` ```dgemm(boolean transposeA, boolean transposeB, float alpha, FloatMatrix2D A, FloatMatrix2D B, float beta, FloatMatrix2D C)```
Generalized linear algebraic matrix-matrix multiply; C = alpha*A*B + beta*C.
` void` ```dgemv(boolean transposeA, float alpha, FloatMatrix2D A, FloatMatrix1D x, float beta, FloatMatrix1D y)```
Generalized linear algebraic matrix-vector multiply; y = alpha*A*x + beta*y.
` void` ```dger(float alpha, FloatMatrix1D x, FloatMatrix1D y, FloatMatrix2D A)```
Performs a rank 1 update; A = A + alpha*x*y'.
` float` `dnrm2(FloatMatrix1D x)`
Return the 2-norm; sqrt(x[0]^2 + x[1]^2 + ...).
` void` ```drot(FloatMatrix1D x, FloatMatrix1D y, float c, float s)```
Applies a givens plane rotation to (x,y); x = c*x + s*y; y = c*y - s*x.
` void` ```drotg(float a, float b, float[] rotvec)```
Constructs a Givens plane rotation for (a,b).
` void` ```dscal(float alpha, FloatMatrix1D x)```
Vector scaling; x = alpha*x.
` void` ```dscal(float alpha, FloatMatrix2D A)```
Matrix scaling; A = alpha*A.
` void` ```dswap(FloatMatrix1D x, FloatMatrix1D y)```
Swaps the elements of two vectors; y <==> x.
` void` ```dswap(FloatMatrix2D A, FloatMatrix2D B)```
Swaps the elements of two matrices; B <==> A.
` void` ```dsymv(boolean isUpperTriangular, float alpha, FloatMatrix2D A, FloatMatrix1D x, float beta, FloatMatrix1D y)```
Symmetric matrix-vector multiplication; y = alpha*A*x + beta*y.
` void` ```dtrmv(boolean isUpperTriangular, boolean transposeA, boolean isUnitTriangular, FloatMatrix2D A, FloatMatrix1D x)```
Triangular matrix-vector multiplication; x = A*x or x = A'*x.
` int` `idamax(FloatMatrix1D x)`
Returns the index of largest absolute value; i such that |x[i]| == max(|x[0]|,|x[1]|,...)..

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

SmpFloatBlas

`public SmpFloatBlas()`
Method Detail

assign

```public void assign(FloatMatrix2D A,
FloatFunction function)```
Description copied from interface: `FloatBlas`
Assigns the result of a function to each cell; x[row,col] = function(x[row,col]).

Specified by:
`assign` in interface `FloatBlas`
Parameters:
`A` - the matrix to modify.
`function` - a function object taking as argument the current cell's value.
`FloatFunctions`

assign

```public void assign(FloatMatrix2D A,
FloatMatrix2D B,
FloatFloatFunction function)```
Description copied from interface: `FloatBlas`
Assigns the result of a function to each cell; x[row,col] = function(x[row,col],y[row,col]).

Specified by:
`assign` in interface `FloatBlas`
Parameters:
`A` - the matrix to modify.
`B` - the secondary matrix to operate on.
`function` - a function object taking as first argument the current cell's value of this, and as second argument the current cell's value of y,
`FloatFunctions`

dasum

`public float dasum(FloatMatrix1D x)`
Description copied from interface: `FloatBlas`
Returns the sum of absolute values; |x[0]| + |x[1]| + ... . In fact equivalent to x.aggregate(cern.jet.math.Functions.plus, cern.jet.math.Functions.abs) .

Specified by:
`dasum` in interface `FloatBlas`
Parameters:
`x` - the first vector.

daxpy

```public void daxpy(float alpha,
FloatMatrix1D x,
FloatMatrix1D y)```
Description copied from interface: `FloatBlas`
Combined vector scaling; y = y + alpha*x. In fact equivalent to y.assign(x,cern.jet.math.Functions.plusMult(alpha)).

Specified by:
`daxpy` in interface `FloatBlas`
Parameters:
`alpha` - a scale factor.
`x` - the first source vector.
`y` - the second source vector, this is also the vector where results are stored.

daxpy

```public void daxpy(float alpha,
FloatMatrix2D A,
FloatMatrix2D B)```
Description copied from interface: `FloatBlas`
Combined matrix scaling; B = B + alpha*A. In fact equivalent to B.assign(A,cern.jet.math.Functions.plusMult(alpha)).

Specified by:
`daxpy` in interface `FloatBlas`
Parameters:
`alpha` - a scale factor.
`A` - the first source matrix.
`B` - the second source matrix, this is also the matrix where results are stored.

dcopy

```public void dcopy(FloatMatrix1D x,
FloatMatrix1D y)```
Description copied from interface: `FloatBlas`
Vector assignment (copying); y = x. In fact equivalent to y.assign(x).

Specified by:
`dcopy` in interface `FloatBlas`
Parameters:
`x` - the source vector.
`y` - the destination vector.

dcopy

```public void dcopy(FloatMatrix2D A,
FloatMatrix2D B)```
Description copied from interface: `FloatBlas`
Matrix assignment (copying); B = A. In fact equivalent to B.assign(A).

Specified by:
`dcopy` in interface `FloatBlas`
Parameters:
`A` - the source matrix.
`B` - the destination matrix.

ddot

```public float ddot(FloatMatrix1D x,
FloatMatrix1D y)```
Description copied from interface: `FloatBlas`
Returns the dot product of two vectors x and y, which is Sum(x[i]*y[i]). In fact equivalent to x.zDotProduct(y).

Specified by:
`ddot` in interface `FloatBlas`
Parameters:
`x` - the first vector.
`y` - the second vector.
Returns:
the sum of products.

dgemm

```public void dgemm(boolean transposeA,
boolean transposeB,
float alpha,
FloatMatrix2D A,
FloatMatrix2D B,
float beta,
FloatMatrix2D C)```
Description copied from interface: `FloatBlas`
Generalized linear algebraic matrix-matrix multiply; C = alpha*A*B + beta*C. In fact equivalent to A.zMult(B,C,alpha,beta,transposeA,transposeB). Note: Matrix shape conformance is checked after potential transpositions.

Specified by:
`dgemm` in interface `FloatBlas`
Parameters:
`transposeA` - set this flag to indicate that the multiplication shall be performed on A'.
`transposeB` - set this flag to indicate that the multiplication shall be performed on B'.
`alpha` - a scale factor.
`A` - the first source matrix.
`B` - the second source matrix.
`beta` - a scale factor.
`C` - the third source matrix, this is also the matrix where results are stored.

dgemv

```public void dgemv(boolean transposeA,
float alpha,
FloatMatrix2D A,
FloatMatrix1D x,
float beta,
FloatMatrix1D y)```
Description copied from interface: `FloatBlas`
Generalized linear algebraic matrix-vector multiply; y = alpha*A*x + beta*y. In fact equivalent to A.zMult(x,y,alpha,beta,transposeA). Note: Matrix shape conformance is checked after potential transpositions.

Specified by:
`dgemv` in interface `FloatBlas`
Parameters:
`transposeA` - set this flag to indicate that the multiplication shall be performed on A'.
`alpha` - a scale factor.
`A` - the source matrix.
`x` - the first source vector.
`beta` - a scale factor.
`y` - the second source vector, this is also the vector where results are stored.

dger

```public void dger(float alpha,
FloatMatrix1D x,
FloatMatrix1D y,
FloatMatrix2D A)```
Description copied from interface: `FloatBlas`
Performs a rank 1 update; A = A + alpha*x*y'. Example:
```         A = { {6,5}, {7,6} }, x = {1,2}, y = {3,4}, alpha = 1 -->
A = { {9,9}, {13,14} }

```

Specified by:
`dger` in interface `FloatBlas`
Parameters:
`alpha` - a scalar.
`x` - an m element vector.
`y` - an n element vector.
`A` - an m by n matrix.

dnrm2

`public float dnrm2(FloatMatrix1D x)`
Description copied from interface: `FloatBlas`
Return the 2-norm; sqrt(x[0]^2 + x[1]^2 + ...). In fact equivalent to Math.sqrt(Algebra.DEFAULT.norm2(x)).

Specified by:
`dnrm2` in interface `FloatBlas`
Parameters:
`x` - the vector.

drot

```public void drot(FloatMatrix1D x,
FloatMatrix1D y,
float c,
float s)```
Description copied from interface: `FloatBlas`
Applies a givens plane rotation to (x,y); x = c*x + s*y; y = c*y - s*x.

Specified by:
`drot` in interface `FloatBlas`
Parameters:
`x` - the first vector.
`y` - the second vector.
`c` - the cosine of the angle of rotation.
`s` - the sine of the angle of rotation.

drotg

```public void drotg(float a,
float b,
float[] rotvec)```
Description copied from interface: `FloatBlas`
Constructs a Givens plane rotation for (a,b). Taken from the LINPACK translation from FORTRAN to Java, interface slightly modified. In the LINPACK listing DROTG is attributed to Jack Dongarra

Specified by:
`drotg` in interface `FloatBlas`
Parameters:
`a` - rotational elimination parameter a.
`b` - rotational elimination parameter b.
`rotvec` - Must be at least of length 4. On output contains the values {a,b,c,s}.

dscal

```public void dscal(float alpha,
FloatMatrix1D x)```
Description copied from interface: `FloatBlas`
Vector scaling; x = alpha*x. In fact equivalent to x.assign(cern.jet.math.Functions.mult(alpha)).

Specified by:
`dscal` in interface `FloatBlas`
Parameters:
`alpha` - a scale factor.
`x` - the first vector.

dscal

```public void dscal(float alpha,
FloatMatrix2D A)```
Description copied from interface: `FloatBlas`
Matrix scaling; A = alpha*A. In fact equivalent to A.assign(cern.jet.math.Functions.mult(alpha)).

Specified by:
`dscal` in interface `FloatBlas`
Parameters:
`alpha` - a scale factor.
`A` - the matrix.

dswap

```public void dswap(FloatMatrix1D x,
FloatMatrix1D y)```
Description copied from interface: `FloatBlas`
Swaps the elements of two vectors; y <==> x. In fact equivalent to y.swap(x).

Specified by:
`dswap` in interface `FloatBlas`
Parameters:
`x` - the first vector.
`y` - the second vector.

dswap

```public void dswap(FloatMatrix2D A,
FloatMatrix2D B)```
Description copied from interface: `FloatBlas`
Swaps the elements of two matrices; B <==> A.

Specified by:
`dswap` in interface `FloatBlas`
Parameters:
`A` - the first matrix.
`B` - the second matrix.

dsymv

```public void dsymv(boolean isUpperTriangular,
float alpha,
FloatMatrix2D A,
FloatMatrix1D x,
float beta,
FloatMatrix1D y)```
Description copied from interface: `FloatBlas`
Symmetric matrix-vector multiplication; y = alpha*A*x + beta*y. Where alpha and beta are scalars, x and y are n element vectors and A is an n by n symmetric matrix. A can be in upper or lower triangular format.

Specified by:
`dsymv` in interface `FloatBlas`
Parameters:
`isUpperTriangular` - is A upper triangular or lower triangular part to be used?
`alpha` - scaling factor.
`A` - the source matrix.
`x` - the first source vector.
`beta` - scaling factor.
`y` - the second vector holding source and destination.

dtrmv

```public void dtrmv(boolean isUpperTriangular,
boolean transposeA,
boolean isUnitTriangular,
FloatMatrix2D A,
FloatMatrix1D x)```
Description copied from interface: `FloatBlas`
Triangular matrix-vector multiplication; x = A*x or x = A'*x. Where x is an n element vector and A is an n by n unit, or non-unit, upper or lower triangular matrix.

Specified by:
`dtrmv` in interface `FloatBlas`
Parameters:
`isUpperTriangular` - is A upper triangular or lower triangular?
`transposeA` - set this flag to indicate that the multiplication shall be performed on A'.
`isUnitTriangular` - true --> A is assumed to be unit triangular; false --> A is not assumed to be unit triangular
`A` - the source matrix.
`x` - the vector holding source and destination.

idamax

`public int idamax(FloatMatrix1D x)`
Description copied from interface: `FloatBlas`
Returns the index of largest absolute value; i such that |x[i]| == max(|x[0]|,|x[1]|,...)..

Specified by:
`idamax` in interface `FloatBlas`
Parameters:
`x` - the vector to search through.
Returns:
the index of largest absolute value (-1 if x is empty).

Parallel Colt 0.7.2