00001 /* ========================================================================== */ 00002 /* === umfpack_scale ======================================================== */ 00003 /* ========================================================================== */ 00004 00005 /* -------------------------------------------------------------------------- */ 00006 /* UMFPACK Version 4.3 (Jan. 16, 2004), Copyright (c) 2004 by Timothy A. */ 00007 /* Davis. All Rights Reserved. See ../README for License. */ 00008 /* email: davis@cise.ufl.edu CISE Department, Univ. of Florida. */ 00009 /* web: http://www.cise.ufl.edu/research/sparse/umfpack */ 00010 /* -------------------------------------------------------------------------- */ 00011 00012 int umfpack_di_scale 00013 ( 00014 double X [ ], 00015 const double B [ ], 00016 void *Numeric 00017 ) ; 00018 00019 long umfpack_dl_scale 00020 ( 00021 double X [ ], 00022 const double B [ ], 00023 void *Numeric 00024 ) ; 00025 00026 int umfpack_zi_scale 00027 ( 00028 double Xx [ ], double Xz [ ], 00029 const double Bx [ ], const double Bz [ ], 00030 void *Numeric 00031 ) ; 00032 00033 long umfpack_zl_scale 00034 ( 00035 double Xx [ ], double Xz [ ], 00036 const double Bx [ ], const double Bz [ ], 00037 void *Numeric 00038 ) ; 00039 00040 /* 00041 double int Syntax: 00042 00043 #include "umfpack.h" 00044 void *Numeric ; 00045 double *B, *X ; 00046 status = umfpack_di_scale (X, B, Numeric) ; 00047 00048 double long Syntax: 00049 00050 #include "umfpack.h" 00051 void *Numeric ; 00052 double *B, *X ; 00053 status = umfpack_dl_scale (X, B, Numeric) ; 00054 00055 complex int Syntax: 00056 00057 #include "umfpack.h" 00058 void *Numeric ; 00059 double *Bx, *Bz, *Xx, *Xz ; 00060 status = umfpack_zi_scale (Xx, Xz, Bx, Bz, Numeric) ; 00061 00062 complex long Syntax: 00063 00064 #include "umfpack.h" 00065 void *Numeric ; 00066 double *Bx, *Bz, *Xx, *Xz ; 00067 status = umfpack_zl_scale (Xx, Xz, Bx, Bz, Numeric) ; 00068 00069 Purpose: 00070 00071 Given LU factors computed by umfpack_*_numeric (PAQ=LU, PRAQ=LU, or 00072 P(R\A)Q=LU), and a vector B, this routine computes X = B, X = R*B, or 00073 X = R\B, as appropriate. X and B must be vectors equal in length to the 00074 number of rows of A. 00075 00076 Returns: 00077 00078 The status code is returned. UMFPACK_OK is returned if successful. 00079 UMFPACK_ERROR_invalid_Numeric_object is returned in the Numeric 00080 object is invalid. UMFPACK_ERROR_argument_missing is returned if 00081 any of the input vectors are missing (X and B for the real version, 00082 and Xx, Xz, Bx, and Bz for the complex version). 00083 00084 Arguments: 00085 00086 double X [n_row] ; Output argument. 00087 or: 00088 double Xx [n_row] ; Output argument, real part. 00089 double Xz [n_row] ; Output argument, imaginary part. 00090 00091 The output vector X. 00092 00093 double B [n_row] ; Input argument, not modified. 00094 or: 00095 double Bx [n_row] ; Input argument, not modified, real part. 00096 double Bz [n_row] ; Input argument, not modified, imaginary part. 00097 00098 The input vector B. 00099 00100 void *Numeric ; Input argument, not modified. 00101 00102 Numeric must point to a valid Numeric object, computed by 00103 umfpack_*_numeric. 00104 00105 */