Ipopt
trunk
|
00001 // Copyright (C) 2004, 2006 International Business Machines and others. 00002 // All Rights Reserved. 00003 // This code is published under the Eclipse Public License. 00004 // 00005 // $Id$ 00006 // 00007 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13 00008 00009 #ifndef __IPBLAS_HPP__ 00010 #define __IPBLAS_HPP__ 00011 00012 #include "IpUtils.hpp" 00013 00014 namespace Ipopt 00015 { 00016 // If CBLAS is not available, this is our own interface to the Fortran 00017 // implementation 00018 00021 Number IpBlasDdot(Index size, const Number *x, Index incX, const Number *y, 00022 Index incY); 00023 00025 Number IpBlasDnrm2(Index size, const Number *x, Index incX); 00026 00028 Number IpBlasDasum(Index size, const Number *x, Index incX); 00029 00032 Index IpBlasIdamax(Index size, const Number *x, Index incX); 00033 00036 void IpBlasDcopy(Index size, const Number *x, Index incX, Number *y, 00037 Index incY); 00038 00041 void IpBlasDaxpy(Index size, Number alpha, const Number *x, Index incX, 00042 Number *y, Index incY); 00043 00046 void IpBlasDscal(Index size, Number alpha, Number *x, Index incX); 00047 00050 void IpBlasDgemv(bool trans, Index nRows, Index nCols, Number alpha, 00051 const Number* A, Index ldA, const Number* x, 00052 Index incX, Number beta, Number* y, Index incY); 00053 00056 void IpBlasDsymv(Index n, Number alpha, const Number* A, Index ldA, 00057 const Number* x, Index incX, Number beta, Number* y, 00058 Index incY); 00059 00061 void IpBlasDgemm(bool transa, bool transb, Index m, Index n, Index k, 00062 Number alpha, const Number* A, Index ldA, const Number* B, 00063 Index ldB, Number beta, Number* C, Index ldC); 00064 00067 void IpBlasDsyrk(bool trans, Index ndim, Index nrank, 00068 Number alpha, const Number* A, Index ldA, 00069 Number beta, Number* C, Index ldC); 00070 00073 void IpBlasDtrsm(bool trans, Index ndim, Index nrhs, Number alpha, 00074 const Number* A, Index ldA, Number* B, Index ldB); 00075 00076 } // namespace Ipopt 00077 00078 #endif