MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
ldl.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/libraries/libmbmath/ldl.h,v 1.19 2017/01/12 14:43:53 masarati Exp $ */
2 /*
3  * This library comes with MBDyn (C), a multibody analysis code.
4  * http://www.mbdyn.org
5  *
6  * Copyright (C) 1996-2017
7  *
8  * Pierangelo Masarati <masarati@aero.polimi.it>
9  *
10  * Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano
11  * via La Masa, 34 - 20156 Milano, Italy
12  * http://www.aero.polimi.it
13  *
14  * Changing this copyright notice is forbidden.
15  *
16  * This program is free software; you can redistribute it and/or modify
17  * it under the terms of the GNU General Public License as published by
18  * the Free Software Foundation (version 2 of the License).
19  *
20  *
21  * This program is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24  * GNU General Public License for more details.
25  *
26  * You should have received a copy of the GNU General Public License
27  * along with this program; if not, write to the Free Software
28  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29  */
30 
31 #ifndef LDL_H
32 #define LDL_H
33 
34 #include "ac/f2c.h"
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif /* __cplusplus */
39 
40 /*
41  ********************** UPDLDL_ADD ***********************
42  *
43  * subroutine updldl_add(ldl, nrdldl, n, x, z, nrdz, nz, y)
44  *
45  * Esegue una modifica di rango unitario del problema dei minimi quadrati
46  * in ricorsione all'aggiunta di un vettore, ovvero aggiorna la
47  * fattorizzazione LDL della matrice normale B = B + xx' e la matrice
48  * dei termini noti Z = Z + xy'.
49  *
50  * Parametri: ldl = matrice contenente L e D
51  * nrdldl = numero di righe del dimension di LDL
52  * n = ordine di LDL
53  * x = vettore dei coefficienti da 'aggiungere'
54  * z = matrice dei termini noti
55  * nrdz = numero di righe del dimension di Z
56  * nz = numero di termini noti
57  * y = vettore dei termini noti da 'aggiungere'
58  */
59 
60 extern int __FC_DECL__(uldlad) (doublereal* ldl,
61  integer* nrdldl,
62  integer* n,
63  doublereal* x,
64  doublereal* z,
65  integer* nrdz,
66  integer* nz,
67  doublereal* y);
68 
69 /*
70  ********************** LDL_SOLVE ***********************
71  *
72  * subroutine ldl_solve(ldl, nrdldl, b, nrdb, n, nvet)
73  *
74  * Solutore di un sistema fattorizzato LDL', LDL'x = b
75  *
76  * Parametri: ldl = matrice contenente L e D
77  * nrdldl = numero di righe del dimension di LDL
78  * b = matrice dei termini noti
79  * nrdb = numero di righe del dimension di B
80  * n = ordine di LDL, nonche' dei termini noti
81  * nvet = numero di termini noti (numero di colonne di B)
82  *
83  * Restituisce: la soluzione sovrascritta in B.
84  */
85 
86 extern int __FC_DECL__(ldlsol) (doublereal* ldl,
87  integer* nrdldl,
88  doublereal* b,
89  integer* nrdb,
90  integer* n,
91  integer* nvet);
92 
93 #ifdef __cplusplus
94 }
95 #endif /* __cplusplus */
96 
97 #endif /* LDL_H */
int ldlsol(doublereal *ldl, integer *nrdldl, doublereal *b, integer *nrdb, integer *n, integer *nvet)
int uldlad(doublereal *ldl, integer *nrdldl, integer *n, doublereal *x, doublereal *z, integer *nrdz, integer *nz, doublereal *y)
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51