Search Results blas_swap
Overview
SYS.UTL_NLA is the Oracle-supplied PL/SQL wrapper for the Netlib Linear Algebra (NLA) libraries, exposing the BLAS (Basic Linear Algebra Subprograms) and LAPACK numerical routines directly to the database server. Within Oracle E-Business Suite 12.1.1 and 12.2.2 this package is not an EBS business object; it is a low-level mathematical utility installed by the database tier that EBS code can call whenever vector, matrix, or eigenvalue computations are required inside PL/SQL. The package is owned by SYS and classified as OTHER in the ETRM repository, confirming that it carries no application-level business rules and is not shipped as part of any EBS product schema. Its 109 documented subprograms cover the BLAS Level 1, 2, and 3 families plus selected LAPACK drivers, and it is referenced by zero other packages in the ETRM dependency map, indicating that no standard EBS package calls it through a declared dependency.
The user search term utl_nla_array_dbl refers to the collection type declared in the package specification for passing double-precision (BINARY_DOUBLE) arrays to these routines. The companion type is UTL_NLA_ARRAY_FLT for BINARY_FLOAT arrays.
Key Procedures and Functions
The package specification declares several subtypes that govern routine behaviour: SCALAR_DOUBLE, SCALAR_FLOAT, and FLAG. Flag parameters use documented single-character codes for transpose ('N'/'T'), triangular storage ('U'/'L'), diagonal form ('N'/'U'), side ('L'/'R'), array packing ('R' row-major / 'C' column-major), and LAPACK job selection ('N' eigenvalues only, 'V' eigenvalues and eigenvectors).
Documented procedures include, among the 109 total:
- UNIT_TEST_BLAS and UNIT_TEST_LAPACK — internal self-test entry points that verify the installed native libraries operate correctly.
- BLAS_SWAP — swaps the contents of two vectors of size n.
- BLAS_SCAL — scales a vector by a constant.
- BLAS_COPY — copies one vector into another.
- BLAS_AXPY — computes the vector update y := alpha*x + y.
- BLAS_DOT — returns the dot product of two vectors.
- BLAS_NRM2 — returns the Euclidean norm of a vector.
- BLAS_ASUM — returns the sum of absolute values of vector elements.
- BLAS_IAMAX — returns the index of the element of largest absolute value.
- BLAS_ROT and BLAS_ROTG — apply and generate Givens plane rotations.
- BLAS_GEMV, BLAS_GBMV, BLAS_SYMV, BLAS_SBMV, BLAS_SPMV — Level 2 matrix-vector products for general, banded, symmetric, symmetric-banded, and symmetric-packed matrices.
- BLAS_TRMV, BLAS_TBMV, BLAS_TPMV — Level 2 triangular matrix-vector products in full, banded, and packed storage.
Each Level 1 routine accepts an integer size argument, the vector array, and an increment argument controlling stride through the array.
Tables Accessed
The ETRM metadata records no base tables referenced by SYS.UTL_NLA, directly or through APPS synonyms. This is consistent with its nature: the package performs purely in-memory numerical computation on the array parameters passed by the caller. Any persistence of computational results is the responsibility of the invoking code, not of UTL_NLA itself.
Usage Notes
SYS.UTL_NLA is typically invoked from custom PL/SQL and from server-side EBS extensions where statistical, engineering, or financial modelling requires matrix operations. It is not exposed through standard Oracle Forms or concurrent programs, and no seeded EBS concurrent program or form is documented as calling it. Because the package is SYS-owned, custom code must reference it with the SYS schema prefix or rely on an appropriate synonym and execute privilege grant; direct grants to the APPS schema are commonly required before use. Applications should call the routines with correctly dimensioned UTL_NLA_ARRAY_DBL or UTL_NLA_ARRAY_FLT arrays and observe the documented flag conventions. The UNIT_TEST_* procedures can be executed to validate that the underlying native library is functional after database installation or upgrade to 12.1.1 or 12.2.2.