FLA_blas1_prototypes.h

Go to the documentation of this file.
00001 /*
00002    libflame
00003    An object-based infrastructure for developing high-performance
00004    dense linear algebra libraries.
00005 
00006    Copyright (C) 2009, The University of Texas
00007 
00008    libflame is free software; you can redistribute it and/or modify
00009    it under the terms of the GNU Lesser General Public License as
00010    published by the Free Software Foundation; either version 2.1 of
00011    the License, or (at your option) any later version.
00012 
00013    libflame is distributed in the hope that it will be useful, but
00014    WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00016    Lesser General Public License for more details.
00017 
00018    You should have received a copy of the GNU Lesser General Public
00019    License along with libflame; if you did not receive a copy, see
00020    http://www.gnu.org/licenses/.
00021 
00022    For more information, please contact us at flame@cs.utexas.edu or
00023    send mail to:
00024 
00025    Field G. Van Zee and/or
00026    Robert A. van de Geijn
00027    The University of Texas at Austin
00028    Department of Computer Sciences
00029    1 University Station C0500
00030    Austin TX 78712
00031 */
00032 
00033 // --- top-level wrapper prototypes --------------------------------------------
00034 
00035 FLA_Error FLA_Asum( FLA_Obj x, FLA_Obj asum_x );
00036 FLA_Error FLA_Axpy( FLA_Obj alpha, FLA_Obj A, FLA_Obj B );
00037 FLA_Error FLA_Axpys( FLA_Obj alpha0, FLA_Obj alpha1, FLA_Obj A, FLA_Obj beta, FLA_Obj B );
00038 FLA_Error FLA_Axpyt( FLA_Trans trans, FLA_Obj alpha, FLA_Obj A, FLA_Obj B );
00039 FLA_Error FLA_Copy( FLA_Obj A, FLA_Obj B );
00040 FLA_Error FLA_Copyr( FLA_Uplo uplo, FLA_Obj A, FLA_Obj B );
00041 FLA_Error FLA_Copyt( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00042 FLA_Error FLA_Dot( FLA_Obj x, FLA_Obj y, FLA_Obj rho );
00043 FLA_Error FLA_Dot2cs( FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00044 FLA_Error FLA_Dot2s( FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00045 FLA_Error FLA_Dotc( FLA_Conj conj, FLA_Obj x, FLA_Obj y, FLA_Obj rho );
00046 FLA_Error FLA_Dotcs( FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00047 FLA_Error FLA_Dots( FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00048 FLA_Error FLA_Iamax( FLA_Obj x, FLA_Obj index );
00049 FLA_Error FLA_Inv_scal( FLA_Obj alpha, FLA_Obj A );
00050 FLA_Error FLA_Inv_scalc( FLA_Conj conjalpha, FLA_Obj alpha, FLA_Obj A );
00051 FLA_Error FLA_Nrm2( FLA_Obj x, FLA_Obj norm_x );
00052 FLA_Error FLA_Scal( FLA_Obj alpha, FLA_Obj A );
00053 FLA_Error FLA_Scalc( FLA_Conj conjalpha, FLA_Obj alpha, FLA_Obj A );
00054 FLA_Error FLA_Scalr( FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A );
00055 FLA_Error FLA_Swap( FLA_Obj A, FLA_Obj B );
00056 FLA_Error FLA_Swapt( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00057 
00058 
00059 // --- top-level wrapper Fortran-77 prototypes ---------------------------------
00060 
00061 void FLA_F2C( fla_axpy_f      ) ( F_INT *alpha, F_INT *A, F_INT *B, F_INT *IERROR );
00062 void FLA_F2C( fla_copy_f      ) ( F_INT *A, F_INT *B, F_INT *IERROR );
00063 
00064 
00065 // --- task wrapper prototypes -------------------------------------------------
00066 
00067 FLA_Error FLA_Axpy_task( FLA_Obj alpha, FLA_Obj A, FLA_Obj B, fla_axpy_t* cntl );
00068 FLA_Error FLA_Copy_task( FLA_Obj A, FLA_Obj B, fla_copy_t* cntl );
00069 
00070 
00071 // --- internal wrapper prototypes ---------------------------------------------
00072 
00073 FLA_Error FLA_Axpy_internal( FLA_Obj alpha, FLA_Obj A, FLA_Obj B, fla_axpy_t* cntl );
00074 FLA_Error FLA_Copy_internal( FLA_Obj A, FLA_Obj B, fla_copy_t* cntl );
00075 
00076 
00077 // --- external wrapper prototypes ---------------------------------------------
00078 
00079 FLA_Error FLA_Asum_external( FLA_Obj x, FLA_Obj asum_x );
00080 FLA_Error FLA_Axpy_external( FLA_Obj alpha, FLA_Obj A, FLA_Obj B );
00081 FLA_Error FLA_Axpys_external( FLA_Obj alpha0, FLA_Obj alpha1, FLA_Obj A, FLA_Obj beta, FLA_Obj B );
00082 FLA_Error FLA_Axpyt_external( FLA_Trans trans, FLA_Obj alpha, FLA_Obj A, FLA_Obj B );
00083 FLA_Error FLA_Copy_external( FLA_Obj A, FLA_Obj B );
00084 FLA_Error FLA_Copyr_external( FLA_Uplo uplo, FLA_Obj A, FLA_Obj B );
00085 FLA_Error FLA_Copyt_external( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00086 FLA_Error FLA_Dot_external( FLA_Obj x, FLA_Obj y, FLA_Obj rho );
00087 FLA_Error FLA_Dotc_external( FLA_Conj conj, FLA_Obj x, FLA_Obj y, FLA_Obj rho );
00088 FLA_Error FLA_Dots_external( FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00089 FLA_Error FLA_Dotcs_external( FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00090 FLA_Error FLA_Dot2s_external( FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00091 FLA_Error FLA_Dot2cs_external( FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00092 FLA_Error FLA_Iamax_external( FLA_Obj x, FLA_Obj index );
00093 FLA_Error FLA_Inv_scal_external( FLA_Obj alpha, FLA_Obj A );
00094 FLA_Error FLA_Inv_scalc_external( FLA_Conj conjalpha, FLA_Obj alpha, FLA_Obj A );
00095 FLA_Error FLA_Nrm2_external( FLA_Obj x, FLA_Obj nrm_x );
00096 FLA_Error FLA_Scal_external( FLA_Obj alpha, FLA_Obj A );
00097 FLA_Error FLA_Scalc_external( FLA_Conj conjalpha, FLA_Obj alpha, FLA_Obj A );
00098 FLA_Error FLA_Scalr_external( FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A );
00099 FLA_Error FLA_Swap_external( FLA_Obj A, FLA_Obj B );
00100 FLA_Error FLA_Swapt_external( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00101 
00102 
00103 // --- external wrapper Fortran-77 prototypes ----------------------------------
00104 
00105 void FLA_F2C( fla_asum_external_f      ) ( F_INT *X, F_INT *rho, F_INT *IERROR );
00106 void FLA_F2C( fla_axpy_external_f      ) ( F_INT *alpha, F_INT *A, F_INT *B, F_INT *IERROR );
00107 void FLA_F2C( fla_axpys_external_f     ) ( F_INT *alpha0, F_INT *alpha1, F_INT *A, F_INT *beta, F_INT *B, F_INT *IERROR );
00108 void FLA_F2C( fla_axpyt_external_f     ) ( F_INT *trans, F_INT *alpha, F_INT *A, F_INT *B, F_INT *IERROR );
00109 void FLA_F2C( fla_copy_external_f      ) ( F_INT *A, F_INT *B, F_INT *IERROR );
00110 void FLA_F2C( fla_copyr_external_f     ) ( F_INT *uplo, F_INT *A, F_INT *B, F_INT *IERROR );
00111 void FLA_F2C( fla_copyt_external_f     ) ( F_INT *trans, F_INT *A, F_INT *B, F_INT *IERROR );
00112 void FLA_F2C( fla_dot_external_f       ) ( F_INT *X, F_INT *Y, F_INT *rho, F_INT *IERROR );
00113 void FLA_F2C( fla_dotc_external_f      ) ( F_INT *conj, F_INT *X, F_INT *Y, F_INT *rho, F_INT *IERROR );
00114 void FLA_F2C( fla_dots_external_f      ) ( F_INT *alpha, F_INT *X, F_INT *Y, F_INT *beta, F_INT *rho, F_INT *IERROR );
00115 void FLA_F2C( fla_dotcs_external_f     ) ( F_INT *conj, F_INT *alpha, F_INT *X, F_INT *Y, F_INT *beta, F_INT *rho, F_INT *IERROR );
00116 void FLA_F2C( fla_dot2s_external_f     ) ( F_INT *alpha, F_INT *X, F_INT *Y, F_INT *beta, F_INT *rho, F_INT *IERROR );
00117 void FLA_F2C( fla_dot2cs_external_f    ) ( F_INT *conj, F_INT *alpha, F_INT *X, F_INT *Y, F_INT *beta, F_INT *rho, F_INT *IERROR );
00118 void FLA_F2C( fla_iamax_external_f     ) ( F_INT *X, F_INT *index, F_INT *IERROR );
00119 void FLA_F2C( fla_inv_scal_external_f  ) ( F_INT *alpha, F_INT *A, F_INT *IERROR );
00120 void FLA_F2C( fla_inv_scalc_external_f ) ( F_INT *conjalpha, F_INT *alpha, F_INT *A, F_INT *IERROR );
00121 void FLA_F2C( fla_nrm2_external_f      ) ( F_INT *X, F_INT *rho, F_INT *IERROR );
00122 void FLA_F2C( fla_scal_external_f      ) ( F_INT *alpha, F_INT *A, F_INT *IERROR );
00123 void FLA_F2C( fla_scalc_external_f     ) ( F_INT *conjalpha, F_INT *alpha, F_INT *A, F_INT *IERROR );
00124 void FLA_F2C( fla_scalr_external_f     ) ( F_INT *uplo, F_INT *alpha, F_INT *A, F_INT *IERROR );
00125 void FLA_F2C( fla_swap_external_f      ) ( F_INT *A, F_INT *B, F_INT *IERROR );
00126 void FLA_F2C( fla_swapt_external_f     ) ( F_INT *trans, F_INT *A, F_INT *B, F_INT *IERROR );
00127 
00128 void FLA_F2C( fla_cdotu )( int* n, scomplex* x, int* incx, scomplex* y, int* incy, scomplex* rval );
00129 void FLA_F2C( fla_cdotc )( int* n, scomplex* x, int* incx, scomplex* y, int* incy, scomplex* rval );
00130 void FLA_F2C( fla_zdotu )( int* n, dcomplex* x, int* incx, dcomplex* y, int* incy, dcomplex* rval );
00131 void FLA_F2C( fla_zdotc )( int* n, dcomplex* x, int* incx, dcomplex* y, int* incy, dcomplex* rval );
00132 
00133 
00134 // --- check routine prototypes ------------------------------------------------
00135 
00136 // front-ends
00137 FLA_Error FLA_Asum_check( FLA_Obj x, FLA_Obj asum_x );
00138 FLA_Error FLA_Axpy_check( FLA_Obj alpha, FLA_Obj A, FLA_Obj B );
00139 FLA_Error FLA_Axpys_check( FLA_Obj alpha0, FLA_Obj alpha1, FLA_Obj A, FLA_Obj beta, FLA_Obj B );
00140 FLA_Error FLA_Axpyt_check( FLA_Trans trans, FLA_Obj alpha, FLA_Obj A, FLA_Obj B );
00141 FLA_Error FLA_Copy_check( FLA_Obj A, FLA_Obj B );
00142 FLA_Error FLA_Copyr_check( FLA_Uplo uplo, FLA_Obj A, FLA_Obj B );
00143 FLA_Error FLA_Copyt_check( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00144 FLA_Error FLA_Dot_check( FLA_Obj x, FLA_Obj y, FLA_Obj rho );
00145 FLA_Error FLA_Dotc_check( FLA_Conj conj, FLA_Obj x, FLA_Obj y, FLA_Obj rho );
00146 FLA_Error FLA_Dots_check( FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00147 FLA_Error FLA_Dotcs_check( FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00148 FLA_Error FLA_Dot2s_check( FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00149 FLA_Error FLA_Dot2cs_check( FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj beta, FLA_Obj rho );
00150 FLA_Error FLA_Iamax_check( FLA_Obj x, FLA_Obj index );
00151 FLA_Error FLA_Inv_scal_check( FLA_Obj alpha, FLA_Obj A );
00152 FLA_Error FLA_Inv_scalc_check( FLA_Conj conjalpha, FLA_Obj alpha, FLA_Obj A );
00153 FLA_Error FLA_Nrm2_check( FLA_Obj x, FLA_Obj nrm_x );
00154 FLA_Error FLA_Scal_check( FLA_Obj alpha, FLA_Obj A );
00155 FLA_Error FLA_Scalc_check( FLA_Conj conjalpha, FLA_Obj alpha, FLA_Obj A );
00156 FLA_Error FLA_Scalr_check( FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A );
00157 FLA_Error FLA_Swap_check( FLA_Obj A, FLA_Obj B );
00158 FLA_Error FLA_Swapt_check( FLA_Trans trans, FLA_Obj A, FLA_Obj B );
00159 
00160 // internal back-ends
00161 FLA_Error FLA_Axpy_internal_check( FLA_Obj alpha, FLA_Obj A, FLA_Obj B, fla_axpy_t* cntl );
00162 FLA_Error FLA_Copy_internal_check( FLA_Obj A, FLA_Obj B, fla_copy_t* cntl );
00163 

Generated on Mon Jul 6 05:45:48 2009 for libflame by  doxygen 1.5.9