C H A P T E R 16 |
Summary of Other Sun S3L Routines |
This chapter provides a summary listing of routines that are in Sun S3L, but are not discussed in detail elsewhere in this manual. The discussion is separated into two sections, as follows:
For detailed descriptions of these routines, refer to the Sun S3L Software Reference Manual.
The following Sun S3L routines support the computation of the discrete Walsh/Hadamard transform of 1D and 2D Sun S3L arrays:
S3L_walsh_setup S3L_walsh S3L_walsh_free_setup |
Sun S3L computes the unordered Hadamard transform, whose matrix is a permutation of the ordered Hadamard and Walsh transforms. The transform can be computed either in place or out of place.
If computed in-place, the result is in a and in order. If it is computed out of place, the result is in b and out of order.
Sun S3L provides the following routine for computing selected eigenpairs of dense or sparse matrices using iterative methods:
S3L_eigen_iter |
Eigenpair selection can be based on user-specified properties, such as largest magnitude. When computing eigenpairs in densely populated arrays, the multiple-instance paradigm can be used to shorten the time to solution.
The following Sun S3L routines compute the prices of vanilla and certain exotic stock option prices. Optional support for hedge statistics (Greeks) is also provided.
S3L_fin_fd_1D S3L_fin_fd_2D |
Both use fourth-order, unconditionally stable, oscillation-free finite-difference method to solve 1D and 2D Black-Scholes partial differential equations.
Sun S3L provides routines for computing the discrete cosine transform Type IV and discrete sine transform of 1D, 2D, and 3D Sun S3L arrays. The arrays have to be real (S3L_float or S3L_double).
The discrete cosine transform routines are:
S3L_dct_iv_setup S3L_dct_iv S3L_dct_iv_setup |
The discrete sine transform routines are:
S3L_dst_setup S3L_dst S3L_dst_free_setup |
The following routines are provided for quadratic programming optimization:
S3L_qp S3L_qp_attr_set S3L_qp_attr_destroy S3L_qp_attr_init |
S3L_qp applies an interior point method to solve a linear/quadratic optimization problem. The other routines are used to define certain attributes, such as the type of solver to be used, and to release the array handle associated with the specified attributes.
Sun S3L also provides the following routine for solving linear/quadratic optimization problems for sparse Sun S3L arrays.
S3L_lp_sparse |
Sun S3L provides the following routines for computing Cholesky factors and solving systems of distributed linear equations:
S3L_cholesky_factor S3L_cholesky_solve S3L_cholesky_invert |
For each square matrix A in the parallel array a, S3L_cholesky_factor computes the Cholesky factorization. The factorization has the form A = U' x U, where U is an upper triangular matrix.
S3L_cholesky_solve uses the factors computed by S3L_cholesky_factor to solve a system of distributed linear equations of the form AX = B for each square matrix A in the parallel array a.
S3L_cholesky_invert computes the inverse of each square matrix instance A of the parallel array a. It does this by inverting the Cholesky factor U and then computing inverse(U) * inverse(U)'.
The following routines can be used to solve banded and triangular systems:
S3L_gen_band_factor S3L_gen_band_solve S3L_gen_band_free_factors S3L_gen_trid_factor S3L_gen_trid_solve S3L_gen_trid_free_factors |
S3L_gen_band_factor performs the LU factorization of an n x n general banded array and S3L_gen_band_solve solves the banded system represented by the factorization results. S3L_gen_band_free_factors frees the internal data structures associated with the banded matrix factorization.
S3L_gen_trid_factor factors a tridiagonal matrix whose diagonal is stored in a vector. S3L_gen_trid_solve solves a tridiagonal system using the factors supplied by an earlier call to S3L_gen_trid_factor. S3L_gen_trid_free_factors frees the internal data structures associated with a prior tridiagonal factorization.
Both S3L_gen_band_factor and S3L_gen_trid_factor operate on arrays of rank 3 and greater in 2D slices, using the multiple-instance method to reduce overall execution time.
Sun S3L provides the following routine for finding selected eigenvalues and, optionally, eigenvectors of Hermitian matrices:
S3L_sym_eigen |
Various controls can be placed on the selection process, such as specifying a range of values or range of indices within which the eigenvalues must lie.
The following routine can be used to compute the condition numbers of square arrays:
S3L_condition_number |
Internal LU factorization is used in combination with a norm as specified by a calling argument. The norm can be either 1-norm or infinity norm.
Sun S3L provides the following routine for finding the least-squares solution of an overdetermined system (m >= n):
S3L_gen_lsq |
For an underdetermined system (m < n), S3L_gen_lsq finds the minimum norm solution.
The following routine computes the singular value of a parallel array and, optionally, the right and/or left singular vectors:
S3L_gen_svd |
The following routine uses an iterative algorithm, with or without preconditioning, to solve a linear system of equations of the form Ax = b:
S3L_gen_iter_solve |
Sun S3L provides the following routines for computing the 1D or 2D autocorrelation of a signal represented by a parallel array:
S3L_acorr_setup S3L_acorr S3L_acorr_free_setup |
Sun S3L provides the following routines for computing the 1D or 2D convolution of a signal represented by a parallel array, using a filter contained in a second parallel array:
S3L_conv_setup S3L_conv S3L_conv_free_setup |
Sun S3L provides the following routines for computing the 1D or 2D deconvolution of a signal represented by a parallel array:
S3L_deconv_setup S3L_deconv S3L_deconv_free_setup |
Sun S3L includes a family of routines that computes the grade of the elements of a parallel array. Grading is done in either descending or ascending order and is done either across the whole array or along a specified axis. These routines are:
S3L_grade_up S3L_grade_down S3L_grade_detailed_up S3L_grade_detailed_down |
Sun S3L includes a family of routines that sorts the elements of a parallel array. Sorting is done in either descending or ascending order and is done either across the whole array or along a specified axis. These routines are:
S3L_sort S3L_sort_up S3L_sort_down S3L_sort_detailed S3L_sort_detailed_up S3L_sort_detailed_down |
The following routine performs a general permutation of the axes of a parallel array:
S3L_trans |
Sun S3L includes a variety of routines that can be used to alter the values of individual elements or particular subsets of elements in parallel arrays.
The following routines perform operations that involve one or two operands:
S3L_array_op1 S3L_array_op2 S3L_array_scalar_op2 |
S3L_array_op1 and S3L_array_op2 both operate on elements contained in one (op1) or two (op2) arrays. S3L_array_scalar_op2 operations involve an array and a scalar.
The following routine performs a circular shift of a specified distance along a specified axis of an array:
S3L_cshift |
The following routine applies a user-defined function to some or all elements of an array:
S3L_forall |
The following routines perform a predefined reduction function over all elements of an array or along a specified axis of an array:
S3L_reduce S3L_reduce_axis |
The following routine sets all elements in an array to zero:
S3L_zero_elements |
The following routine copies the contents of one parallel array into a second parallel array:
Copyright © 2003, Sun Microsystems, Inc. All rights reserved.