/[ascend]/trunk/ascend4/solver/mtx_linal.h
ViewVC logotype

Contents of /trunk/ascend4/solver/mtx_linal.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Fri Oct 29 20:54:12 2004 UTC (18 years, 7 months ago) by aw0a
File MIME type: text/x-chdr
File size: 3005 byte(s)
Setting up web subdirectory in repository
1 /*
2 * mtx2: Ascend Sparse Matrix Package
3 * by Benjamin Andrew Allan
4 * Derived from mtx by Karl Michael Westerberg
5 * Created: 5/3/90
6 * Version: $Revision: 1.4 $
7 * Version control file: $RCSfile: mtx_linal.h,v $
8 * Date last modified: $Date: 1997/07/18 12:15:02 $
9 * Last modified by: $Author: mthomas $
10 *
11 * This file is part of the SLV solver.
12 *
13 * Copyright (C) 1996 Benjamin Andrew Allan
14 *
15 * The SLV solver is free software; you can redistribute
16 * it and/or modify it under the terms of the GNU General Public License as
17 * published by the Free Software Foundation; either version 2 of the
18 * License, or (at your option) any later version.
19 *
20 * The SLV solver is distributed in hope that it will be
21 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 * General Public License for more details.
24 *
25 * You should have received a copy of the GNU General Public License along with
26 * the program; if not, write to the Free Software Foundation, Inc., 675
27 * Mass Ave, Cambridge, MA 02139 USA. Check the file named COPYING.
28 * COPYING is found in ../compiler.
29 */
30 #ifndef __MTX_LINAL_H_SEEN__
31 #define __MTX_LINAL_H_SEEN__
32 /* requires #include "mtx.h" */
33
34 extern void mtx_householder_transform_region(mtx_matrix_t,
35 const real64,
36 const mtx_sparse_t *,
37 const mtx_region_t *,
38 real64,
39 boolean);
40 /**
41 ***
42 -$- mtx_householder_transform_region(mtx,coef,orgsp,reg,droptol,transpose);
43 *** mtx_matrix_t mtx;
44 *** real64 coef,droptol;
45 *** mtx_sparse_t *sp;
46 *** mtx_region_t *reg;
47 *** real64 droptol;
48 *** boolean transpose;
49 ***
50 *** Does a sparse Householder transformation to the matrix A
51 *** denoted by region, resulting in Anew.
52 *** Mathematically: Anew = (I - coef * u dot Transpose[u]) dot A.
53 *** Slightly faster in the case of coef = 1.0.
54 *** Returns immediately in the case of coef = 0.0.
55 *** Note following unusual assumptions, however:
56 *** 1)The user has already cleared out the leading column in the
57 *** region and we will not be doing anything to it. This is usually
58 *** the case since that column is where u was derived from.
59 *** 2)The sparse, sp, supplied by the user contains the nonzero
60 *** elements of u and is indexed by org row number.
61 *** Note that a soft zero in u will not hurt us: we skip it.
62 *** 3)There are no elements in the regions to the left and the right
63 *** of the region.
64 ***
65 *** mtx_ENTIRE_MATRIX is not a valid region for this function.
66 ***
67 *** Current bugs (11/95)
68 *** ignores the transpose and droptol arguments.
69 *** does not remove soft zeroes created when 2 numbers add to zero.
70 **/
71
72 #endif /* __MTX_LINAL_H_SEEN__ */

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22