Garfield++
5.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Toggle main menu visibility
Main Page
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
i
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Functions
a
b
c
d
e
f
g
i
l
m
n
o
p
q
r
s
t
y
Variables
a
b
c
d
e
f
g
i
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Typedefs
Enumerations
Enumerator
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Typedefs
Enumerations
Enumerator
Related Symbols
a
c
k
o
p
s
u
v
Files
File List
File Members
All
_
a
b
c
d
e
f
g
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
i
k
l
m
n
p
r
s
t
u
v
w
Variables
a
b
d
e
f
g
i
l
m
n
o
p
r
s
t
v
w
x
y
z
Typedefs
Macros
_
a
c
d
e
f
g
i
l
m
n
p
q
r
s
t
u
v
x
z
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Loading...
Searching...
No Matches
inverse.h
Go to the documentation of this file.
1
#ifndef INVERSE_H
2
#define INVERSE_H
3
/*
4
Various matrix inversions performed upon arrays of DynLinArr and
5
DynArr classes.
6
7
8
Copyright (c) 2001 Igor B. Smirnov
9
10
The file can be used, copied, modified, and distributed
11
according to the terms of GNU Lesser General Public License version 2.1
12
as published by the Free Software Foundation,
13
and provided that the above copyright notice, this permission notice,
14
and notices about any modifications of the original text
15
appear in all copies and in supporting documentation.
16
The file is provided "as is" without express or implied warranty.
17
*/
18
19
#include "
wcpplib/safetl/AbsArr.h
"
20
#include "
wcpplib/math/DoubleAc.h
"
21
22
namespace
Heed
{
23
24
/// Matrix inversion
25
/// szero == 1 indicates that the calculations are terminated
26
/// owing to an attempt to divide by 0. The final matrix is not correct.
27
/// serr == 1 indicates that the interval precision is broken
28
/// (but the final matrix may be provided if szero=0).
29
/// s_stop is a directive to stop if the interval precision is broken.
30
void
inverse_DynArr_prot
(
const
DynArr<DoubleAc>
& mi,
DynArr<DoubleAc>
& mr,
31
int
& szero,
int
& serr,
int
s_stop = 1);
32
33
void
inverse_DynArr
(
const
DynArr<double>
& mi,
DynArr<double>
& mr,
int
& serr);
34
35
/// Call inverse_DynArr_prot two times, first with inbuilt precision
36
/// and the second time with the given precision.
37
/// serr1 means the inversion cannot be done in a numerically precise way.
38
/// In this case mr2 and serr2 are not initialised.
39
/// If serr1 == 0, mr2 and serr2 are always calculated.
40
/// If szero == 1, serr1 == 1 too.
41
void
inverse_DynArr
(
const
DynArr<DoubleAc>
& mi,
DynArr<DoubleAc>
& mr1,
42
int
& szero,
int
& serr1,
DynArr<DoubleAc>
& mr2,
int
& serr2);
43
44
void
inverse_DynArr
(
const
DynArr<double>
& mi,
45
const
DynLinArr<int>
& s_var,
// 1 if variable
46
DynArr<double>
& mr,
int
& serr);
47
void
inverse_DynArr_prot
(
const
DynArr<DoubleAc>
& mi,
48
const
DynLinArr<int>
& s_var,
// 1 if variable
49
DynArr<DoubleAc>
& mr,
int
& szero,
int
& serr,
50
int
s_stop = 1);
51
52
/// Pack the matrix, call the same function declared without s_var
53
/// and unpack the result.
54
void
inverse_DynArr
(
const
DynArr<DoubleAc>
& mi,
55
const
DynLinArr<int>
& s_var,
// 1 if variable
56
DynArr<DoubleAc>
& mr1,
int
& szero,
int
& serr1,
57
DynArr<DoubleAc>
& mr2,
int
& serr2);
58
59
DoubleAc
determinant_DynArr
(
const
DynArr<DoubleAc>
& mi,
60
long
q = 0);
// default means total matrix
61
62
DoubleAc
determinant_DynArr
(
const
DynArr<DoubleAc>
& mi,
63
const
DynLinArr<int>
& s_var,
// 1 if variable
64
long
q = 0);
// default means total matrix
65
// counts active rows and columns
66
}
67
#endif
AbsArr.h
DoubleAc.h
Heed::DoubleAc
Definition
DoubleAc.h:44
Heed::DynArr
Definition
AbsArr.h:1363
Heed::DynLinArr
Definition
AbsArr.h:102
Heed
Definition
BGMesh.cpp:6
Heed::determinant_DynArr
DoubleAc determinant_DynArr(const DynArr< DoubleAc > &mi, long q)
Definition
inverse.cpp:358
Heed::inverse_DynArr_prot
void inverse_DynArr_prot(const DynArr< DoubleAc > &mi, DynArr< DoubleAc > &mr, int &szero, int &serr, int s_stop)
Definition
inverse.cpp:17
Heed::inverse_DynArr
void inverse_DynArr(const DynArr< double > &mi, DynArr< double > &mr, int &serr)
Definition
inverse.cpp:99
garfieldpp-5.0
Heed
wcpplib
matrix
inverse.h
Generated by
1.13.2