⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 newmatap.h

📁 matrix library for linux and windos
💻 H
字号:
//$$ newmatap.h           definition file for matrix package applications// Copyright (C) 1991,2,3,4,8: R B Davies#ifndef NEWMATAP_LIB#define NEWMATAP_LIB 0#include "newmat.h"#ifdef use_namespacenamespace NEWMAT {#endif// ************************** applications *****************************/void QRZT(Matrix&, LowerTriangularMatrix&);void QRZT(const Matrix&, Matrix&, Matrix&);void QRZ(Matrix&, UpperTriangularMatrix&);void QRZ(const Matrix&, Matrix&, Matrix&);inline void HHDecompose(Matrix& X, LowerTriangularMatrix& L){ QRZT(X,L); }inline void HHDecompose(const Matrix& X, Matrix& Y, Matrix& M){ QRZT(X, Y, M); }ReturnMatrix Cholesky(const SymmetricMatrix&);ReturnMatrix Cholesky(const SymmetricBandMatrix&);void SVD(const Matrix&, DiagonalMatrix&, Matrix&, Matrix&,    bool=true, bool=true);void SVD(const Matrix&, DiagonalMatrix&);inline void SVD(const Matrix& A, DiagonalMatrix& D, Matrix& U,   bool withU = true) { SVD(A, D, U, U, withU, false); }void SortSV(DiagonalMatrix& D, Matrix& U, bool ascending = false);void SortSV(DiagonalMatrix& D, Matrix& U, Matrix& V, bool ascending = false);void Jacobi(const SymmetricMatrix&, DiagonalMatrix&);void Jacobi(const SymmetricMatrix&, DiagonalMatrix&, SymmetricMatrix&);void Jacobi(const SymmetricMatrix&, DiagonalMatrix&, Matrix&);void Jacobi(const SymmetricMatrix&, DiagonalMatrix&, SymmetricMatrix&,   Matrix&, bool=true);void EigenValues(const SymmetricMatrix&, DiagonalMatrix&);void EigenValues(const SymmetricMatrix&, DiagonalMatrix&, SymmetricMatrix&);void EigenValues(const SymmetricMatrix&, DiagonalMatrix&, Matrix&);class SymmetricEigenAnalysis// not implemented yet{public:   SymmetricEigenAnalysis(const SymmetricMatrix&);private:   DiagonalMatrix diag;   DiagonalMatrix offdiag;   SymmetricMatrix backtransform;   FREE_CHECK(SymmetricEigenAnalysis)};void SortAscending(GeneralMatrix&);void SortDescending(GeneralMatrix&);// class for deciding which fft to use and containing new fft functionclass FFT_Controller{public:   static bool OnlyOldFFT;   static bool ar_1d_ft (int PTS, Real* X, Real *Y);   static bool CanFactor(int PTS);};void FFT(const ColumnVector&, const ColumnVector&,   ColumnVector&, ColumnVector&);void FFTI(const ColumnVector&, const ColumnVector&,   ColumnVector&, ColumnVector&);void RealFFT(const ColumnVector&, ColumnVector&, ColumnVector&);void RealFFTI(const ColumnVector&, const ColumnVector&, ColumnVector&);void DCT_II(const ColumnVector&, ColumnVector&);void DCT_II_inverse(const ColumnVector&, ColumnVector&);void DST_II(const ColumnVector&, ColumnVector&);void DST_II_inverse(const ColumnVector&, ColumnVector&);void DCT(const ColumnVector&, ColumnVector&);void DCT_inverse(const ColumnVector&, ColumnVector&);void DST(const ColumnVector&, ColumnVector&);void DST_inverse(const ColumnVector&, ColumnVector&);// This class is used by the new FFT program// Suppose an integer is expressed as a sequence of digits with each// digit having a different radix.// This class supposes we are counting with this multi-radix number// but also keeps track of the number with the digits (and radices)// reversed.// The integer starts at zero// operator++() increases it by 1// Counter gives the number of increments// Reverse() gives the value with the digits in reverse order// Swap is true if reverse is less than counter// Finish is true when we have done a complete cycle and are back at zeroclass MultiRadixCounter{   const SimpleIntArray& Radix;                              // radix of each digit                              // n-1 highest order, 0 lowest order   SimpleIntArray& Value;     // value of each digit   const int n;               // number of digits   int reverse;               // value when order of digits is reversed   int product;               // product of radices   int counter;               // counter   bool finish;               // true when we have gone over whole rangepublic:   MultiRadixCounter(int nx, const SimpleIntArray& rx,      SimpleIntArray& vx);   void operator++();         // increment the multi-radix counter   bool Swap() const { return reverse < counter; }   bool Finish() const { return finish; }   int Reverse() const { return reverse; }   int Counter() const { return counter; }};#ifdef use_namespace}#endif#endif// body file: cholesky.cpp// body file: evalue.cpp// body file: fft.cpp// body file: hholder.cpp// body file: jacobi.cpp// body file: newfft.cpp// body file: sort.cpp// body file: svd.cpp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -