NAG Library Function Document nag_dsymv (f16pcc)

Similar documents
NAG Library Function Document nag_dtrmv (f16pfc)

NAG Library Function Document nag_dtr_load (f16qgc)

NAG Library Function Document nag_zhpr2 (f16ssc)

NAG C Library Function Document nag_zhemv (f16scc)

NAG C Library Function Document nag_dgemv (f16pac)

NAG Library Function Document nag_zsymv (f16tac)

NAG C Library Function Document nag_zgemv (f16sac)

NAG C Library Function Document nag_zhpmv (f16sec)

NAG C Library Function Document nag_dsbmv (f16pdc)

NAG C Library Function Document nag_zhbmv (f16sdc)

NAG C Library Function Document nag_dgbmv (f16pbc)

NAG Library Function Document nag_dger (f16pmc)

NAG C Library Function Document nag_zger (f16smc)

NAG Library Function Document nag_zhpr2 (f16ssc)

NAG Library Function Document nag_dspr (f16pqc)

NAG Library Function Document nag_dsytrf (f07mdc)

NAG Library Function Document nag_dgbmv (f16pbc)

NAG Library Function Document nag_ztbcon (f07vuc)

NAG Library Function Document nag_dtpsv (f16plc)

NAG Library Function Document nag_dgetri (f07ajc)

NAG Library Function Document nag_dgglse (f08zac)

NAG Library Function Document nag_dpbtrf (f07hdc)

NAG Library Function Document nag_dtrsyl (f08qhc)

NAG Library Function Document nag_dtpttr (f01vcc)

NAG Library Function Document nag_real_sym_posdef_tridiag_lin_solve (f04bgc)

NAG Library Function Document nag_complex_gen_lin_solve (f04cac)

NAG Library Function Document nag_all_regsn (g02eac)

NAG Library Function Document nag_dtrttf (f01vec)

NAG Library Function Document nag_zaxpby (f16gcc)

NAG Library Function Document nag_herm_posdef_tridiag_lin_solve (f04cgc)

NAG Library Function Document nag_ztrttf (f01vfc)

NAG Library Function Document nag_asian_geom_price (s30sac)

NAG Library Function Document nag_mv_distance_mat (g03eac)

NAG Library Function Document nag_complex_tridiag_lin_solve (f04ccc)

NAG C Library Function Document nag_zsytri (f07nwc)

NAG Library Function Document nag_zhfrk (f16zqc)

NAG Library Function Document nag_rngs_copula_students_t (g05rbc)

NAG Library Function Document nag_rgsn_matrix_multi_normal (g05lyc)

NAG Library Function Document nag_rngs_varma_time_series (g05pcc)

NAG Library Function Document nag_1d_cheb_fit_constr (e02agc)

NAG C Library Function Document nag_binary_factor_service (g11sbc)

NAG Library Function Document nag_mv_ordinal_multidimscale (g03fcc)

NAG Library Function Document nag_dtfttp (f01vlc)

NAG Library Function Document nag_dsf_norm (f16rkc)

NAG Library Function Document nag_zhpev (f08gnc)

NAG Library Function Document nag_superlu_diagnostic_lu (f11mmc)

NAG Library Function Document nag_ztfttp (f01vmc)

NAG Library Function Document nag_zpbequ (f07htc)

NAG Library Function Document nag_real_cholesky_skyline_solve (f04mcc)

NAG Library Function Document nag_prob_lin_non_central_chi_sq (g01jcc)

NAG Library Function Document nag_dgetrf (f07adc)

NAG Library Function Document nag_dspsv (f07pac)

NAG Library Function Document nag_dgb_norm (f16rbc)

NAG Library Function Document nag_real_gen_matrix_exp (f01ecc)

NAG Library Function Document nag_rand_copula_clayton (g05rhc)

NAG Library Function Document nag_dsygv (f08sac)

NAG Library Function Document nag_bsm_greeks (s30abc)

NAG Library Function Document nag_asian_geom_greeks (s30sbc)

NAG Library Function Document nag_smooth_spline_fit (g10abc)

NAG C Library Function Document nag_zspcon (f07quc)

NAG Library Function Document nag_zgelsy (f08bnc)

NAG Library Function Document nag_rand_bivariate_copula_frank (g05rfc)

NAG Library Function Document nag_dgelsd (f08kcc)

NAG Library Function Document nag_kruskal_wallis_test (g08afc)

NAG C Library Function Document nag_linf_fit (e02gcc)

NAG Library Function Document nag_zgelss (f08knc)

NAG Library Function Document nag_zheevx (f08fpc)

NAG Library Function Document nag_dsbev (f08hac)

NAG C Library Function Document nag_dspcon (f07pgc)

NAG Library Function Document nag_dummy_vars (g04eac)

NAG Library Function Document nag_corr_cov (g02bxc)

NAG Library Function Document nag_partial_corr (g02byc)

NAG Library Function Document nag_mv_discrim (g03dac)

NAG Library Function Document nag_dgttrs (f07cec)

NAG Library Function Document nag_1d_cheb_intg (e02ajc)

NAG Library Function Document nag_mv_cluster_indicator (g03ejc)

NAG Library Function Document nag_ztzrzf (f08bvc)

NAG Library Function Document nag_2d_spline_eval (e02dec)

NAG Library Function Document nag_3d_shep_interp (e01tgc)

NAG C Library Function Document nag_dgbtrs (f07bec)

NAG Library Function Document nag_mesh2d_inc (d06aac)

NAG Library Function Document nag_tsa_multi_part_lag_corr (g13dnc)

NAG Library Function Document nag_rand_2_way_table (g05pzc)

NAG Library Function Document nag_matop_complex_gen_matrix_fun_num (f01flc)

NAG Library Function Document nag_glm_tran_model (g02gkc)

NAG Library Function Document nag_dstev (f08jac)

NAG Library Function Document nag_ztgsen (f08yuc)

NAG Library Function Document nag_2_sample_ks_test (g08cdc)

NAG Library Function Document nag_zhbevx (f08hpc)

NAG C Library Function Document nag_rank_regsn (g08rac)

NAG Library Function Document nag_matop_real_gen_matrix_fun_num (f01elc)

NAG Library Function Document nag_rand_arma (g05phc)

NAG C Library Function Document nag_rngs_varma_time_series (g05pcc)

NAG Library Function Document nag_anova_random (g04bbc)

NAG Library Function Document nag_zero_cont_func_brent_rcomm (c05azc)

NAG Library Function Document nag_robust_m_corr_user_fn_no_derr (g02hmc)

NAG Library Function Document nag_sum_sqs_update (g02btc)

NAG Library Function Document nag_real_symm_sparse_eigensystem_init (f12fac)

NAG Library Function Document nag_matop_complex_gen_matrix_cond_sqrt (f01kdc)

NAG Library Function Document. nag_matop_complex_gen_matrix_cond_num

Transcription:

f16 NAG Interface to BLAS f16pcc 1 Purpose NAG Library Function Document nag_dsymv (f16pcc) nag_dsymv (f16pcc) performs matrix-vector multiplication for a real symmetric matrix. 2 Specification #include <nag.h> #include <nagf16.h> void nag_dsymv (Nag_OrderType order, Nag_UploType uplo, Integer n, double alpha, const double a[], Integer pda, const double x[], Integer incx, double beta, double y[], Integer incy, NagError *fail) 3 Description nag_dsymv (f16pcc) performs the matrix-vector operation y Ax þ y, where A is an n by n real symmetric matrix, x and y are n element real vectors, and and are real scalars. 4 References The BLAS Technical Forum Standard (2001) http://www.netlib.org/blas/blast-forum 5 Arguments 1: order Nag_OrderType Input On entry: the order argument specifies the two-dimensional storage scheme being used, i.e., rowmajor ordering or column-major ordering. C language defined storage is specified by order ¼ Nag_RowMajor. See Section 3.2.1.3 in the Essential Introduction for a more detailed explanation of the use of this argument. Constraint: order ¼ Nag_RowMajor or Nag_ColMajor. 2: uplo Nag_UploType Input On entry: specifies whether the upper or lower triangular part of A is stored. uplo ¼ Nag_Upper The upper triangular part of A is stored. uplo ¼ Nag_Lower The lower triangular part of A is stored. Constraint: uplo ¼ Nag_Upper or Nag_Lower. 3: n Integer Input On entry: n, the order of the matrix A. Constraint: n 0. 4: alpha double Input On entry: the scalar. f16pcc.1

f16pcc NAG Library Manual 5: a½dimš const double Input Note: the dimension, dim, of the array a must be at least maxð1; pda nþ. On entry: the n by n symmetric matrix A. If order ¼ Nag_ColMajor, A ij is stored in a½ðj 1Þpda þ i 1Š. If order ¼ Nag_RowMajor, A ij is stored in a½ði 1Þpda þ j 1Š. If uplo ¼ Nag_Upper, the upper triangular part of A must be stored and the elements of the array below the diagonal are not referenced. If uplo ¼ Nag_Lower, the lower triangular part of A must be stored and the elements of the array above the diagonal are not referenced. 6: pda Integer Input On entry: the stride separating row or column elements (depending on the value of order) of the matrix A in the array a. Constraint: pda maxð1; nþ. 7: x½dimš const double Input Note: the dimension, dim, of the array x must be at least maxð1; 1 þ ðn 1ÞjincxjÞ. On entry: the vector x. 8: incx Integer Input On entry: the increment in the subscripts of x between successive elements of x. Constraint: incx 6¼ 0. 9: beta double Input On entry: the scalar. 10: y½dimš double Input/Output Note: the dimension, dim, of the array y must be at least maxð1; 1 þ ðn 1ÞjincyjÞ. On entry: the vector y. If beta ¼ 0, y need not be set. On exit: the updated vector y. 11: incy Integer Input On entry: the increment in the subscripts of y between successive elements of y. Constraint: incy 6¼ 0. 12: fail NagError * Input/Output The NAG error argument (see Section 3.6 in the Essential Introduction). 6 Error Indicators and Warnings NE_BAD_PARAM On entry, argument NE_INT On entry, incx ¼ hvaluei. Constraint: incx 6¼ 0. hvaluei had an illegal value. f16pcc.2

f16 NAG Interface to BLAS f16pcc On entry, incy ¼ hvaluei. Constraint: incy 6¼ 0. On entry, n ¼ hvaluei. Constraint: n 0. NE_INT_2 On entry, pda ¼ hvaluei, n ¼ hvaluei. Constraint: pda maxð1; nþ. 7 Accuracy The BLAS standard requires accurate implementations which avoid unnecessary over/underflow (see Section 2.7 of The BLAS Technical Forum Standard (2001)). 8 Further Comments None. 9 Example This example computes the matrix-vector product y ¼ Ax þ y where 0 1 1:0 2:0 3:0 A ¼ @ 2:0 4:0 5:0 A, 3:0 5:0 6:0 0 1 1:0 x ¼ @ 2:0 A, 3:0 0 1 1:0 y ¼ @ 2:0 A, 3:0 9.1 Program Text ¼ 1:5 and ¼ 1:0. /* nag_dsymv (f16pcc) Example Program. * * Copyright 2005 Numerical Algorithms Group. * * Mark 8, 2005. */ #include <stdio.h> #include <nag.h> #include <nag_stdlib.h> #include <nagf16.h> #include <nagx04.h> int main(int argc, char *argv[]) FILE *fpin, *fpout; /* Scalars */ f16pcc.3

f16pcc NAG Library Manual double alpha, beta; Integer exit_status, i, incx, incy, j, n, pda, xlen, ylen; /* Arrays */ double *a = 0, *x = 0, *y = 0; char nag_enum_arg[40]; /* Nag Types */ NagError fail; Nag_OrderType order; Nag_UploType uplo; #ifdef NAG_COLUMN_MAJOR #define A(I, J) a[(j-1)*pda + I - 1] order = Nag_ColMajor; #else #define A(I, J) a[(i-1)*pda + J - 1] order = Nag_RowMajor; #endif exit_status = 0; INIT_FAIL(fail); /* Check for command-line IO options */ fpin = nag_example_file_io(argc, argv, "-data", NULL); fpout = nag_example_file_io(argc, argv, "-results", NULL); fprintf(fpout, "nag_dsymv (f16pcc) Example Program Results\n\n"); /* Skip heading in data file */ fscanf(fpin, "%*[^\n] "); /* Read the problem dimension */ fscanf(fpin, "%ld%*[^\n] ", &n); /* Read uplo */ fscanf(fpin, "%s%*[^\n] ", nag_enum_arg); /* nag_enum_name_to_value(x04nac). * Converts NAG enum member name to value */ uplo = (Nag_UploType) nag_enum_name_to_value(nag_enum_arg); /* Read scalar parameters */ fscanf(fpin, "%lf%lf%*[^\n] ", &alpha, &beta); /* Read increment parameters */ fscanf(fpin, "%ld%ld%*[^\n] ", &incx, &incy); pda = n; xlen = MAX(1, 1 + (n - 1)*ABS(incx)); ylen = MAX(1, 1 + (n - 1)*ABS(incy)); if (n > 0) /* Allocate memory */ if (!(a = NAG_ALLOC(n*pda, double))!(x = NAG_ALLOC(xlen, double))!(y = NAG_ALLOC(ylen, double))) fprintf(fpout, "Allocation failure\n"); exit_status = -1; goto END; else fprintf(fpout, "Invalid n\n"); exit_status = 1; return exit_status; /* Input the matrix A and vectors x and y */ if (uplo == Nag_Upper) f16pcc.4

f16 NAG Interface to BLAS f16pcc for (i = 1; i <= n; ++i) for (j = i; j <= n; ++j) fscanf(fpin, "%lf", &A(i, j)); fscanf(fpin, "%*[^\n] "); else for (i = 1; i <= n; ++i) for (j = 1; j <= i; ++j) fscanf(fpin, "%lf", &A(i, j)); fscanf(fpin, "%*[^\n] "); for (i = 1; i <= xlen; ++i) fscanf(fpin, "%lf%*[^\n] ", &x[i - 1]); for (i = 1; i <= ylen; ++i) fscanf(fpin, "%lf%*[^\n] ", &y[i - 1]); /* nag_dsymv(f16pcc). * Symmetric matrix-vector multiply. * */ nag_dsymv(order, uplo, n, alpha, a, pda, x, incx, beta, y, incy, &fail); if (fail.code!= NE_NOERROR) fprintf(fpout, "Error from nag_dsymv.\n%s\n", fail.message); exit_status = 1; goto END; /* Print output vector y */ fprintf(fpout, "%s\n", " y"); for (i = 1; i <= ylen; ++i) fprintf(fpout, "%11f\n", y[i-1]); END: if (fpin!= stdin) fclose(fpin); if (fpout!= stdout) fclose(fpout); if (a) NAG_FREE(a); if (x) NAG_FREE(x); if (y) NAG_FREE(y); return exit_status; 9.2 Program Data nag_dsymv (f16pcc) Example Program Data 3 : n the dimension of matrix A Nag_Upper : uplo 1.5 1.0 : alpha, beta 1 1 : incx, incy 1.0 2.0 3.0 4.0 5.0 6.0 : the end of matrix A -1.0 2.0-3.0 : the end of vector x 1.0 2.0 3.0 : the end of vector y f16pcc.5

f16pcc NAG Library Manual 9.3 Program Results nag_dsymv (f16pcc) Example Program Results y -8.000000-11.500000-13.500000 f16pcc.6 (last)