Newer
Older
/* sparsefn.h
Mark Woolrich, FMRIB Image Analysis Group
Copyright (C) 1999-2000 University of Oxford */
/* CCOPYRIGHT */
// Miscellaneous maths functions
#if !defined(__sparsefn_h)
#define __sparsefn_h
#define WANT_STREAM
#define WANT_MATH
#include "sparse_matrix.h"
#include "newmat.h"
using namespace NEWMAT;
namespace MISCMATHS {
float quadratic(const ColumnVector& m, const SparseMatrix& C);
void speye(int n, SparseMatrix& ret);
void chol(const SparseMatrix& A, SparseMatrix& U, SparseMatrix& L);
void inv(const SparseMatrix& U, const SparseMatrix& L, SparseMatrix& ret);
void solvefortracex(const SparseMatrix& U, const SparseMatrix& L, const SparseMatrix& b1, const SparseMatrix& b2, float& tr1, float& tr2);
void solveforx(const SparseMatrix& U, const SparseMatrix& L, const ColumnVector& b, ColumnVector& x);
void solveforx(const SparseMatrix& A, const ColumnVector& b, ColumnVector& x, float tol = 0.001, int kmax = 500);
void solveforx(const SparseMatrix& A, const ColumnVector& b, SparseMatrix& x);
void solveforx(const SparseMatrix& A, const SparseMatrix& b, SparseMatrix& x);
float solvefortracex(const SparseMatrix& A, const SparseMatrix& b, SparseMatrix& x, int nsamps = 50, float tol = 0.001);
void solve(const SparseMatrix& A, const Matrix& b, SparseMatrix& x);
void addto(SparseMatrix& A, const SparseMatrix& B, float S);
void symmetric_addto(SparseMatrix& A, const SparseMatrix& B, float S);
void addto(const SparseMatrix::Row& A, const SparseMatrix::Row& B, float S);
void addto(SparseMatrix& A, const Matrix& B);
void cov(const ColumnVector& A, SparseMatrix& ret);
}
#endif