FRX SDK Documentation 2025 SP0
Loading...
Searching...
No Matches
NmMatrix.h
Go to the documentation of this file.
1#pragma once
2
3//
4// (C) Copyright 2005-2024 by Graebert GmbH.
5//
6// Permission to use, copy, modify, and distribute this software in
7// object code form for any purpose and without fee is hereby granted,
8// provided that the above copyright notice appears in all copies and
9// that both that copyright notice and the limited warranty and
10// restricted rights notice below appear in all supporting
11// documentation.
12//
13// GRAEBERT PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
14// GRAEBERT SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
15// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. GRAEBERT GMBH
16// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
17// UNINTERRUPTED OR ERROR FREE.
18
19class NmIntVec;
20class NmVector;
21
23{
24public:
25 NmMatrix( NmMatrix const &);
26 NmMatrix( NmVector const &);
28 NmMatrix(int,double);
29 NmMatrix(int,int);
30 NmMatrix(void);
31 ~NmMatrix(void);
32 NmMatrix & invert(double);
33 NmMatrix & invertLUs(double,bool &);
43 NmMatrix & reset(int,int);
44 NmMatrix & reset(int,int,double,double);
45 NmMatrix & setColumn(int, NmVector const &);
47 NmMatrix & setRow(int, NmVector const &);
49 NmMatrix operator*( NmMatrix const &)const ;
50 NmMatrix operator+( NmMatrix const &)const ;
51 NmMatrix operator-( NmMatrix const &)const ;
52 NmVector column(int)const ;
53 NmVector diagonal(void)const ;
54 NmVector operator*( NmVector const &)const ;
55 NmVector row(int)const ;
56 double & operator()(int,int);
57 double determinant(double);
58 double operator()(int,int)const ;
60 int colDim(void)const ;
61 int decomposeLU( NmIntVec &,double);
62 int decomposeLUScaling( NmIntVec &,double &,double);
64 int exequal( NmVector &, NmIntVec &, NmIntVec &, NmVector &, NmIntVec &, NmIntVec &,double &,double);
65 int feasible( NmVector &, NmIntVec &, NmIntVec &, NmVector &, NmIntVec &, NmIntVec &,double &,double);
66 int feasible( NmVector &, NmIntVec &, NmIntVec &,double);
67 int optimal( NmVector &, NmIntVec &, NmIntVec &, NmVector &, NmIntVec &, NmIntVec &,double &,double);
68 int rowDim(void)const ;
69 int solve( NmVector &,double);
70 int symmetricLU( NmVector &,double);
71 void dim(int &,int &)const ;
72 void force( NmVector &,double);
73 void solveAfterLUdecompose( NmVector &, NmIntVec const &)const ;
74 void solveLU( NmIntVec const &, NmVector &)const ;
75 void solveLUs( NmIntVec const &, NmVector &)const ;
76
77private:
78 int eigen( NmVector &, NmVector &);
79 int exequal( NmVector &, NmIntVec &, NmIntVec &,double);
80 int isUpperTriangular(void);
81 void band( NmVector &, NmVector &);
82 void pivot( NmVector &, NmIntVec &, NmIntVec &, NmVector &, NmIntVec &, NmIntVec &,double &,int,int,double);
83 void pivot( NmVector &, NmIntVec &, NmIntVec &,int,int,double);
84
85};
NmMatrix(void)
void force(NmVector &, double)
NmMatrix & reset(int, int)
NmMatrix & setDiagonal(double)
void solveLU(NmIntVec const &, NmVector &) const
~NmMatrix(void)
int rowDim(void) const
NmMatrix(NmVector const &)
NmMatrix & operator*=(NmMatrix const &)
NmVector operator*(NmVector const &) const
NmMatrix & setColumn(int, NmVector const &)
NmMatrix & operator+=(NmMatrix const &)
NmMatrix & reset(int)
NmMatrix operator*(NmMatrix const &) const
NmMatrix(int, double)
NmMatrix(int)
NmVector column(int) const
int eigensystem(NmVector &)
int decomposeLU(NmIntVec &, double)
int colDim(void) const
NmMatrix & operator=(double)
NmVector row(int) const
int LUdecompose(NmIntVec &)
NmMatrix & operator/=(double)
NmMatrix & operator*=(double)
double & operator()(int, int)
NmMatrix & operator=(NmMatrix const &)
double operator()(int, int) const
int symmetricLU(NmVector &, double)
NmMatrix & reset(int, int, double, double)
int solve(NmVector &, double)
int decomposeLUScaling(NmIntVec &, double &, double)
NmMatrix(NmMatrix const &)
NmMatrix & operator=(NmVector const &)
void dim(int &, int &) const
NmMatrix & invert(double)
NmMatrix & transpose(void)
int optimal(NmVector &, NmIntVec &, NmIntVec &, NmVector &, NmIntVec &, NmIntVec &, double &, double)
NmMatrix & invertLUs(double, bool &)
void solveLUs(NmIntVec const &, NmVector &) const
int feasible(NmVector &, NmIntVec &, NmIntVec &, NmVector &, NmIntVec &, NmIntVec &, double &, double)
NmMatrix operator+(NmMatrix const &) const
void solveAfterLUdecompose(NmVector &, NmIntVec const &) const
NmMatrix(int, int)
int feasible(NmVector &, NmIntVec &, NmIntVec &, double)
NmVector diagonal(void) const
int exequal(NmVector &, NmIntVec &, NmIntVec &, NmVector &, NmIntVec &, NmIntVec &, double &, double)
NmMatrix operator-(NmMatrix const &) const
NmMatrix & operator-=(NmMatrix const &)
double determinant(double)
NmMatrix & setRow(int, NmVector const &)