Main Page | Namespace List | Class List | File List | Namespace Members | Class Members | File Members

ilss_par.cpp File Reference

#include <mpi.h>
#include <mpe.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <iomanip>
#include <imatrix.hpp>
#include <mvi_util.hpp>
#include "ilss_par.hpp"

Constants

const real zerotest = 1e6
const real delta = 1e-15
const real eps1 = 1e-15
const real sqrt_01 = 0.31622777
const real limit = 1e20

Functions

static ivector null (ivector A)
static imatrix transp (imatrix &A)
real REL (rvector A, rvector B)
bool TOO_BAD (ivector &A)
void GUESS_ZEROES (rvector &x0, rvector &x1)
void LSS (imatrix &A, ivector &b, ivector &Y, imatrix &MyA, vector< int > &mycolumns, intvector &mycol, bool distribute, int procs, int mypid, int &errc, int &commerrc, rmatrix &R1, rmatrix &R2, imatrix &C, int &FLAGS, ofstream &ausg)
void LSS (imatrix &A, ivector &b, ivector &Y, imatrix &MyA, vector< int > &mycolumns, intvector &mycol, bool distribute, int procs, int mypid, int &errc, int &commerrc, ofstream &ausg)
void LSS (imatrix &A, ivector &b, ivector &Y, int procs, int mypid, int &errc, int &commerrc, ofstream &ausg)
void LSS (imatrix &A, ivector &b, ivector &Y, int &errc, int &commerrc, ofstream &ausg)

Variables

static int m
static int n
static int dim

Detailed Description

ILSS_PAR Parallel Interval Linear System Solver Central module with all central methods/functions.

Parallel Version Copyright (C) 2004-2007 Markus Grimmer

Based on: Serial Version Copyright (C) 2003 Carlos Holbig and Walter Kraemer

Parallel verified solution of interval linear systems using Rump's algorithm.


Function Documentation

void GUESS_ZEROES rvector &  x0,
rvector &  x1
 

x1 is the new, x0 the old value of an iteration. If a component of x1 has decreased by more than a factor of zerotest, then this component is set to 0. The same is done if the sign of a component has changed.

Parameters:
x0 old value of iteration
x1 new value of iteration

void LSS imatrix &  A,
ivector &  b,
ivector &  Y,
int &  errc,
int &  commerrc,
ofstream &  ausg
 

Parallel linear system solver (square matrix expected).

This version: Wrapper without local variables. Without parameters for distributed data and parallel environment. -> Distribution will be done inside the routine. -> Parallel environment will be initialized inside the routine.

Parameters:
[in] A The matrix of the system
[in] b Right hand side
[out] Y Solution enclosure
[out] errc Error code
[out] commerrc Error code
[in,out] ausg Output file stream

void LSS imatrix &  A,
ivector &  b,
ivector &  Y,
int  procs,
int  mypid,
int &  errc,
int &  commerrc,
ofstream &  ausg
 

Parallel linear system solver (square matrix expected).

This version: Wrapper without local variables. Without parameters for distributed data -> Distribution will be done inside the routine.

Includes parameters for already initialized parallel environment.

Parameters:
[in] A The matrix of the system
[in] b Right hand side
[out] Y Solution enclosure
[in] procs Number of parallel processes
[in] mypid Process ID
[out] errc Error code
[out] commerrc Error code
[in,out] ausg Output file stream

void LSS imatrix &  A,
ivector &  b,
ivector &  Y,
imatrix &  MyA,
vector< int > &  mycolumns,
intvector &  mycol,
bool  distribute,
int  procs,
int  mypid,
int &  errc,
int &  commerrc,
ofstream &  ausg
 

Parallel linear system solver (square matrix expected).

This version: Wrapper without local variables. Includes parameters for already distributed data (matrix columns) and already initialized parallel environment

Parameters:
[in] A The matrix of the system
[in] b Right hand side
[out] Y Solution enclosure
[in] MyA Distributed A
[in] mycolumns Local column subset
[in] mycol Local to global column mapping
[in] distribute Distribution of columns necessary?
[in] procs Number of parallel processes
[in] mypid Process ID
[out] errc Error code
[out] commerrc Error code
[in,out] ausg Output file stream

void LSS imatrix &  A,
ivector &  b,
ivector &  Y,
imatrix &  MyA,
vector< int > &  mycolumns,
intvector &  mycol,
bool  distribute,
int  procs,
int  mypid,
int &  errc,
int &  commerrc,
rmatrix &  R1,
rmatrix &  R2,
imatrix &  C,
int &  FLAGS,
ofstream &  ausg
 

Parallel linear system solver (square matrix expected).

The result of Y is an enclosure of the solution errc = 0: Y is enclosure of the solution errc = 1: no enclosure obtained, bad condition (?) errc = 2: no enclosure obtained, matrix A singular (?)

FLAGS = 0: R1,R2,C have not yet been computed FLAGS = 1: only R1 has been computed FLAGS = 2: R1 and corresponding C have been computed FLAGS = 3: R1 and R2 are computedbut not the corresponding C FLAGS = 4: R1, R2 and the corresponding C have been computed

This version: Includes parameters for already distributed data (matrix columns) and already initialized parallel environment

Parameters:
[in] A The matrix of the system
[in] b Right hand side
[out] Y Solution enclosure
[in] MyA Distributed A
[in] mycolumns Local columns
[in] mycol Local to global column mapping
[in] distribute Distribution of columns necessary?
[in] procs Number of parallel processes
[in] mypid Process ID
[out] errc Error code
[out] commerrc Error code
[in] R1 Real matrix
[in] R2 Real matrix
[in] C Interval Matrix
[out] FLAGS Flag
[in,out] ausg Output file stream

static ivector null ivector  A  )  [static]
 

Zero vector

real REL rvector  A,
rvector  B
 

REL computes componentwise the maximum relative error of A w.r.t B. if A[i] and B[i] do not have the same sign or if B[i] = 0, then rel. error = 0 for this component.

Parameters:
A The new value of an iteration
B The old value of an iteration
Returns:
Relative error

bool TOO_BAD ivector &  A  ) 
 

TOO_BAD = accuracy of A is far too bad

note: 0 for false, 1 for true;

Parameters:
A A vector
Returns:
Too bad or not

static imatrix transp imatrix &  A  )  [static]
 

Transposition of a matrix

Parameters:
A The matrix
Returns:
The transposed matrix


Variable Documentation

const real delta = 1e-15
 

int dim [static]
 

const real eps1 = 1e-15
 

const real limit = 1e20
 

int m [static]
 

int n [static]
 

const real sqrt_01 = 0.31622777
 

const real zerotest = 1e6
 


Generated on Tue Feb 27 21:19:13 2007 for VFIS by  doxygen 1.4.4